diff --git a/gen/h1/parser.ypp b/gen/h1/parser.ypp index aa10662c..f7ff02a8 100644 --- a/gen/h1/parser.ypp +++ b/gen/h1/parser.ypp @@ -214,6 +214,7 @@ xsk::gsc::h1::parser::symbol_type H1lex(xsk::gsc::h1::lexer& lexer); %type expr_level %type expr_animation %type expr_animtree +%type expr_identifier_neg %type expr_identifier_nosize %type expr_identifier %type expr_path @@ -629,6 +630,7 @@ expr_primitive | expr_level { $$.as_node = std::move($1); } | expr_animation { $$.as_node = std::move($1); } | expr_animtree { $$.as_node = std::move($1); } + | expr_identifier_neg { $$ = std::move($1); } | expr_identifier { $$.as_node = std::move($1); } | expr_istring { $$.as_node = std::move($1); } | expr_string { $$.as_node = std::move($1); } @@ -796,6 +798,11 @@ expr_animtree { $$ = std::make_unique(@$); }; ; +expr_identifier_neg + : SUB IDENTIFIER + { $$.as_node = std::make_unique(@$, ast::expr(std::make_unique(@$, "0")), ast::expr(std::make_unique(@$, $2))); } + ; + expr_identifier_nosize : IDENTIFIER { $$ = std::make_unique(@$, $1); }; diff --git a/gen/h2/parser.ypp b/gen/h2/parser.ypp index 4174cae2..5c9e640f 100644 --- a/gen/h2/parser.ypp +++ b/gen/h2/parser.ypp @@ -214,6 +214,7 @@ xsk::gsc::h2::parser::symbol_type H2lex(xsk::gsc::h2::lexer& lexer); %type expr_level %type expr_animation %type expr_animtree +%type expr_identifier_neg %type expr_identifier_nosize %type expr_identifier %type expr_path @@ -629,6 +630,7 @@ expr_primitive | expr_level { $$.as_node = std::move($1); } | expr_animation { $$.as_node = std::move($1); } | expr_animtree { $$.as_node = std::move($1); } + | expr_identifier_neg { $$ = std::move($1); } | expr_identifier { $$.as_node = std::move($1); } | expr_istring { $$.as_node = std::move($1); } | expr_string { $$.as_node = std::move($1); } @@ -796,6 +798,11 @@ expr_animtree { $$ = std::make_unique(@$); }; ; +expr_identifier_neg + : SUB IDENTIFIER + { $$.as_node = std::make_unique(@$, ast::expr(std::make_unique(@$, "0")), ast::expr(std::make_unique(@$, $2))); } + ; + expr_identifier_nosize : IDENTIFIER { $$ = std::make_unique(@$, $1); }; diff --git a/gen/iw5/parser.ypp b/gen/iw5/parser.ypp index 8769f332..4e7f9cb2 100644 --- a/gen/iw5/parser.ypp +++ b/gen/iw5/parser.ypp @@ -212,6 +212,7 @@ xsk::gsc::iw5::parser::symbol_type IW5lex(xsk::gsc::iw5::lexer& lexer); %type expr_level %type expr_animation %type expr_animtree +%type expr_identifier_neg %type expr_identifier_nosize %type expr_identifier %type expr_path @@ -619,6 +620,7 @@ expr_primitive | expr_level { $$.as_node = std::move($1); } | expr_animation { $$.as_node = std::move($1); } | expr_animtree { $$.as_node = std::move($1); } + | expr_identifier_neg { $$ = std::move($1); } | expr_identifier { $$.as_node = std::move($1); } | expr_istring { $$.as_node = std::move($1); } | expr_string { $$.as_node = std::move($1); } @@ -786,6 +788,11 @@ expr_animtree { $$ = std::make_unique(@$); }; ; +expr_identifier_neg + : SUB IDENTIFIER + { $$.as_node = std::make_unique(@$, ast::expr(std::make_unique(@$, "0")), ast::expr(std::make_unique(@$, $2))); } + ; + expr_identifier_nosize : IDENTIFIER { $$ = std::make_unique(@$, $1); }; diff --git a/gen/iw6/parser.ypp b/gen/iw6/parser.ypp index ed228d52..941ef58d 100644 --- a/gen/iw6/parser.ypp +++ b/gen/iw6/parser.ypp @@ -212,6 +212,7 @@ xsk::gsc::iw6::parser::symbol_type IW6lex(xsk::gsc::iw6::lexer& lexer); %type expr_level %type expr_animation %type expr_animtree +%type expr_identifier_neg %type expr_identifier_nosize %type expr_identifier %type expr_path @@ -619,6 +620,7 @@ expr_primitive | expr_level { $$.as_node = std::move($1); } | expr_animation { $$.as_node = std::move($1); } | expr_animtree { $$.as_node = std::move($1); } + | expr_identifier_neg { $$ = std::move($1); } | expr_identifier { $$.as_node = std::move($1); } | expr_istring { $$.as_node = std::move($1); } | expr_string { $$.as_node = std::move($1); } @@ -786,6 +788,11 @@ expr_animtree { $$ = std::make_unique(@$); }; ; +expr_identifier_neg + : SUB IDENTIFIER + { $$.as_node = std::make_unique(@$, ast::expr(std::make_unique(@$, "0")), ast::expr(std::make_unique(@$, $2))); } + ; + expr_identifier_nosize : IDENTIFIER { $$ = std::make_unique(@$, $1); }; diff --git a/gen/iw7/parser.ypp b/gen/iw7/parser.ypp index 2be5365a..34ce1737 100644 --- a/gen/iw7/parser.ypp +++ b/gen/iw7/parser.ypp @@ -212,6 +212,7 @@ xsk::gsc::iw7::parser::symbol_type IW7lex(xsk::gsc::iw7::lexer& lexer); %type expr_level %type expr_animation %type expr_animtree +%type expr_identifier_neg %type expr_identifier_nosize %type expr_identifier %type expr_path @@ -619,6 +620,7 @@ expr_primitive | expr_level { $$.as_node = std::move($1); } | expr_animation { $$.as_node = std::move($1); } | expr_animtree { $$.as_node = std::move($1); } + | expr_identifier_neg { $$ = std::move($1); } | expr_identifier { $$.as_node = std::move($1); } | expr_istring { $$.as_node = std::move($1); } | expr_string { $$.as_node = std::move($1); } @@ -786,6 +788,11 @@ expr_animtree { $$ = std::make_unique(@$); }; ; +expr_identifier_neg + : SUB IDENTIFIER + { $$.as_node = std::make_unique(@$, ast::expr(std::make_unique(@$, "0")), ast::expr(std::make_unique(@$, $2))); } + ; + expr_identifier_nosize : IDENTIFIER { $$ = std::make_unique(@$, $1); }; diff --git a/gen/iw8/parser.ypp b/gen/iw8/parser.ypp index ffe41720..ac4b1b0b 100644 --- a/gen/iw8/parser.ypp +++ b/gen/iw8/parser.ypp @@ -218,6 +218,7 @@ xsk::gsc::iw8::parser::symbol_type IW8lex(xsk::gsc::iw8::lexer& lexer); %type expr_level %type expr_animation %type expr_animtree +%type expr_identifier_neg %type expr_identifier_nosize %type expr_identifier %type expr_path @@ -635,6 +636,7 @@ expr_primitive | expr_level { $$.as_node = std::move($1); } | expr_animation { $$.as_node = std::move($1); } | expr_animtree { $$.as_node = std::move($1); } + | expr_identifier_neg { $$ = std::move($1); } | expr_identifier { $$.as_node = std::move($1); } | expr_istring { $$.as_node = std::move($1); } | expr_string { $$.as_node = std::move($1); } @@ -812,6 +814,11 @@ expr_animtree { $$ = std::make_unique(@$); }; ; +expr_identifier_neg + : SUB IDENTIFIER + { $$.as_node = std::make_unique(@$, ast::expr(std::make_unique(@$, "0")), ast::expr(std::make_unique(@$, $2))); } + ; + expr_identifier_nosize : IDENTIFIER { $$ = std::make_unique(@$, $1); }; diff --git a/gen/s1/parser.ypp b/gen/s1/parser.ypp index 9524e552..db527f2a 100644 --- a/gen/s1/parser.ypp +++ b/gen/s1/parser.ypp @@ -214,6 +214,7 @@ xsk::gsc::s1::parser::symbol_type S1lex(xsk::gsc::s1::lexer& lexer); %type expr_level %type expr_animation %type expr_animtree +%type expr_identifier_neg %type expr_identifier_nosize %type expr_identifier %type expr_path @@ -629,6 +630,7 @@ expr_primitive | expr_level { $$.as_node = std::move($1); } | expr_animation { $$.as_node = std::move($1); } | expr_animtree { $$.as_node = std::move($1); } + | expr_identifier_neg { $$ = std::move($1); } | expr_identifier { $$.as_node = std::move($1); } | expr_istring { $$.as_node = std::move($1); } | expr_string { $$.as_node = std::move($1); } @@ -796,6 +798,11 @@ expr_animtree { $$ = std::make_unique(@$); }; ; +expr_identifier_neg + : SUB IDENTIFIER + { $$.as_node = std::make_unique(@$, ast::expr(std::make_unique(@$, "0")), ast::expr(std::make_unique(@$, $2))); } + ; + expr_identifier_nosize : IDENTIFIER { $$ = std::make_unique(@$, $1); }; diff --git a/gen/s2/parser.ypp b/gen/s2/parser.ypp index d1bf3c53..36476f34 100644 --- a/gen/s2/parser.ypp +++ b/gen/s2/parser.ypp @@ -214,6 +214,7 @@ xsk::gsc::s2::parser::symbol_type S2lex(xsk::gsc::s2::lexer& lexer); %type expr_level %type expr_animation %type expr_animtree +%type expr_identifier_neg %type expr_identifier_nosize %type expr_identifier %type expr_path @@ -629,6 +630,7 @@ expr_primitive | expr_level { $$.as_node = std::move($1); } | expr_animation { $$.as_node = std::move($1); } | expr_animtree { $$.as_node = std::move($1); } + | expr_identifier_neg { $$ = std::move($1); } | expr_identifier { $$.as_node = std::move($1); } | expr_istring { $$.as_node = std::move($1); } | expr_string { $$.as_node = std::move($1); } @@ -796,6 +798,11 @@ expr_animtree { $$ = std::make_unique(@$); }; ; +expr_identifier_neg + : SUB IDENTIFIER + { $$.as_node = std::make_unique(@$, ast::expr(std::make_unique(@$, "0")), ast::expr(std::make_unique(@$, $2))); } + ; + expr_identifier_nosize : IDENTIFIER { $$ = std::make_unique(@$, $1); }; diff --git a/gen/s4/parser.ypp b/gen/s4/parser.ypp index 99aaa844..9e310501 100644 --- a/gen/s4/parser.ypp +++ b/gen/s4/parser.ypp @@ -218,6 +218,7 @@ xsk::gsc::s4::parser::symbol_type S4lex(xsk::gsc::s4::lexer& lexer); %type expr_level %type expr_animation %type expr_animtree +%type expr_identifier_neg %type expr_identifier_nosize %type expr_identifier %type expr_path @@ -635,6 +636,7 @@ expr_primitive | expr_level { $$.as_node = std::move($1); } | expr_animation { $$.as_node = std::move($1); } | expr_animtree { $$.as_node = std::move($1); } + | expr_identifier_neg { $$ = std::move($1); } | expr_identifier { $$.as_node = std::move($1); } | expr_istring { $$.as_node = std::move($1); } | expr_string { $$.as_node = std::move($1); } @@ -812,6 +814,11 @@ expr_animtree { $$ = std::make_unique(@$); }; ; +expr_identifier_neg + : SUB IDENTIFIER + { $$.as_node = std::make_unique(@$, ast::expr(std::make_unique(@$, "0")), ast::expr(std::make_unique(@$, $2))); } + ; + expr_identifier_nosize : IDENTIFIER { $$ = std::make_unique(@$, $1); }; diff --git a/src/h1/xsk/parser.cpp b/src/h1/xsk/parser.cpp index 3af04927..da5d860e 100644 --- a/src/h1/xsk/parser.cpp +++ b/src/h1/xsk/parser.cpp @@ -245,6 +245,7 @@ namespace xsk { namespace gsc { namespace h1 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.YY_MOVE_OR_COPY< ast::expr > (YY_MOVE (that.value)); break; @@ -547,6 +548,7 @@ namespace xsk { namespace gsc { namespace h1 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (that.value)); break; @@ -849,6 +851,7 @@ namespace xsk { namespace gsc { namespace h1 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (that.value); break; @@ -1150,6 +1153,7 @@ namespace xsk { namespace gsc { namespace h1 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (that.value); break; @@ -1706,6 +1710,7 @@ namespace xsk { namespace gsc { namespace h1 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg yylhs.value.emplace< ast::expr > (); break; @@ -1984,1321 +1989,1333 @@ namespace xsk { namespace gsc { namespace h1 { switch (yyn) { case 2: // root: program -#line 259 "parser.ypp" +#line 260 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1990 "parser.cpp" +#line 1995 "parser.cpp" break; case 3: // root: %empty -#line 260 "parser.ypp" +#line 261 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 1996 "parser.cpp" +#line 2001 "parser.cpp" break; case 4: // program: program inline -#line 265 "parser.ypp" +#line 266 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2002 "parser.cpp" +#line 2007 "parser.cpp" break; case 5: // program: program include -#line 267 "parser.ypp" +#line 268 "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 2008 "parser.cpp" +#line 2013 "parser.cpp" break; case 6: // program: program declaration -#line 269 "parser.ypp" +#line 270 "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 2014 "parser.cpp" +#line 2019 "parser.cpp" break; case 7: // program: inline -#line 271 "parser.ypp" +#line 272 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2020 "parser.cpp" +#line 2025 "parser.cpp" break; case 8: // program: include -#line 273 "parser.ypp" +#line 274 "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 2026 "parser.cpp" +#line 2031 "parser.cpp" break; case 9: // program: declaration -#line 275 "parser.ypp" +#line 276 "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 2032 "parser.cpp" +#line 2037 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" -#line 279 "parser.ypp" +#line 280 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2038 "parser.cpp" +#line 2043 "parser.cpp" break; case 11: // include: "#include" expr_path ";" -#line 284 "parser.ypp" +#line 285 "parser.ypp" { yylhs.value.as < ast::include::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_path::ptr > ())); } -#line 2044 "parser.cpp" +#line 2049 "parser.cpp" break; case 12: // declaration: "/#" -#line 288 "parser.ypp" +#line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2050 "parser.cpp" +#line 2055 "parser.cpp" break; case 13: // declaration: "#/" -#line 289 "parser.ypp" +#line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2056 "parser.cpp" +#line 2061 "parser.cpp" break; case 14: // declaration: decl_usingtree -#line 290 "parser.ypp" +#line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2062 "parser.cpp" +#line 2067 "parser.cpp" break; case 15: // declaration: decl_constant -#line 291 "parser.ypp" +#line 292 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2068 "parser.cpp" +#line 2073 "parser.cpp" break; case 16: // declaration: decl_thread -#line 292 "parser.ypp" +#line 293 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2074 "parser.cpp" +#line 2079 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" -#line 297 "parser.ypp" +#line 298 "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 2080 "parser.cpp" +#line 2085 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" -#line 302 "parser.ypp" +#line 303 "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 2086 "parser.cpp" +#line 2091 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block -#line 307 "parser.ypp" +#line 308 "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 2092 "parser.cpp" +#line 2097 "parser.cpp" break; case 20: // stmt: stmt_block -#line 311 "parser.ypp" +#line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2098 "parser.cpp" +#line 2103 "parser.cpp" break; case 21: // stmt: stmt_call -#line 312 "parser.ypp" +#line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2104 "parser.cpp" +#line 2109 "parser.cpp" break; case 22: // stmt: stmt_assign -#line 313 "parser.ypp" +#line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2110 "parser.cpp" +#line 2115 "parser.cpp" break; case 23: // stmt: stmt_endon -#line 314 "parser.ypp" +#line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2116 "parser.cpp" +#line 2121 "parser.cpp" break; case 24: // stmt: stmt_notify -#line 315 "parser.ypp" +#line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2122 "parser.cpp" +#line 2127 "parser.cpp" break; case 25: // stmt: stmt_wait -#line 316 "parser.ypp" +#line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2128 "parser.cpp" +#line 2133 "parser.cpp" break; case 26: // stmt: stmt_waittill -#line 317 "parser.ypp" +#line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2134 "parser.cpp" +#line 2139 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch -#line 318 "parser.ypp" +#line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2140 "parser.cpp" +#line 2145 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend -#line 319 "parser.ypp" +#line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2146 "parser.cpp" +#line 2151 "parser.cpp" break; case 29: // stmt: stmt_waitframe -#line 320 "parser.ypp" +#line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waitframe = std::move(yystack_[0].value.as < ast::stmt_waitframe::ptr > ()); } -#line 2152 "parser.cpp" +#line 2157 "parser.cpp" break; case 30: // stmt: stmt_if -#line 321 "parser.ypp" +#line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2158 "parser.cpp" +#line 2163 "parser.cpp" break; case 31: // stmt: stmt_ifelse -#line 322 "parser.ypp" +#line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2164 "parser.cpp" +#line 2169 "parser.cpp" break; case 32: // stmt: stmt_while -#line 323 "parser.ypp" +#line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2170 "parser.cpp" +#line 2175 "parser.cpp" break; case 33: // stmt: stmt_dowhile -#line 324 "parser.ypp" +#line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2176 "parser.cpp" +#line 2181 "parser.cpp" break; case 34: // stmt: stmt_for -#line 325 "parser.ypp" +#line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2182 "parser.cpp" +#line 2187 "parser.cpp" break; case 35: // stmt: stmt_foreach -#line 326 "parser.ypp" +#line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2188 "parser.cpp" +#line 2193 "parser.cpp" break; case 36: // stmt: stmt_switch -#line 327 "parser.ypp" +#line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2194 "parser.cpp" +#line 2199 "parser.cpp" break; case 37: // stmt: stmt_case -#line 328 "parser.ypp" +#line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2200 "parser.cpp" +#line 2205 "parser.cpp" break; case 38: // stmt: stmt_default -#line 329 "parser.ypp" +#line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2206 "parser.cpp" +#line 2211 "parser.cpp" break; case 39: // stmt: stmt_break -#line 330 "parser.ypp" +#line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2212 "parser.cpp" +#line 2217 "parser.cpp" break; case 40: // stmt: stmt_continue -#line 331 "parser.ypp" +#line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2218 "parser.cpp" +#line 2223 "parser.cpp" break; case 41: // stmt: stmt_return -#line 332 "parser.ypp" +#line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2224 "parser.cpp" +#line 2229 "parser.cpp" break; case 42: // stmt: stmt_breakpoint -#line 333 "parser.ypp" +#line 334 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2230 "parser.cpp" +#line 2235 "parser.cpp" break; case 43: // stmt: stmt_prof_begin -#line 334 "parser.ypp" +#line 335 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2236 "parser.cpp" +#line 2241 "parser.cpp" break; case 44: // stmt: stmt_prof_end -#line 335 "parser.ypp" +#line 336 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2242 "parser.cpp" +#line 2247 "parser.cpp" break; case 45: // stmt_or_dev: stmt -#line 339 "parser.ypp" +#line 340 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2248 "parser.cpp" +#line 2253 "parser.cpp" break; case 46: // stmt_or_dev: stmt_dev -#line 340 "parser.ypp" +#line 341 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2254 "parser.cpp" +#line 2259 "parser.cpp" break; case 47: // stmt_list: stmt_list stmt -#line 345 "parser.ypp" +#line 346 "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 2260 "parser.cpp" +#line 2265 "parser.cpp" break; case 48: // stmt_list: stmt -#line 347 "parser.ypp" +#line 348 "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 2266 "parser.cpp" +#line 2271 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev -#line 352 "parser.ypp" +#line 353 "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 2272 "parser.cpp" +#line 2277 "parser.cpp" break; case 50: // stmt_or_dev_list: stmt_or_dev -#line 354 "parser.ypp" +#line 355 "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 2278 "parser.cpp" +#line 2283 "parser.cpp" break; case 51: // stmt_dev: "/#" stmt_list "#/" -#line 358 "parser.ypp" +#line 359 "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 2284 "parser.cpp" +#line 2289 "parser.cpp" break; case 52: // stmt_dev: "/#" "#/" -#line 359 "parser.ypp" +#line 360 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2290 "parser.cpp" +#line 2295 "parser.cpp" break; case 53: // stmt_block: "{" stmt_or_dev_list "}" -#line 363 "parser.ypp" +#line 364 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2296 "parser.cpp" +#line 2301 "parser.cpp" break; case 54: // stmt_block: "{" "}" -#line 364 "parser.ypp" +#line 365 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2302 "parser.cpp" +#line 2307 "parser.cpp" break; case 55: // stmt_expr: expr_assign -#line 369 "parser.ypp" +#line 370 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2308 "parser.cpp" +#line 2313 "parser.cpp" break; case 56: // stmt_expr: expr_increment -#line 371 "parser.ypp" +#line 372 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2314 "parser.cpp" +#line 2319 "parser.cpp" break; case 57: // stmt_expr: expr_decrement -#line 373 "parser.ypp" +#line 374 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2320 "parser.cpp" +#line 2325 "parser.cpp" break; case 58: // stmt_expr: %empty -#line 375 "parser.ypp" +#line 376 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2326 "parser.cpp" +#line 2331 "parser.cpp" break; case 59: // stmt_call: expr_call ";" -#line 380 "parser.ypp" +#line 381 "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 2332 "parser.cpp" +#line 2337 "parser.cpp" break; case 60: // stmt_call: expr_method ";" -#line 382 "parser.ypp" +#line 383 "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 2338 "parser.cpp" +#line 2343 "parser.cpp" break; case 61: // stmt_assign: expr_assign ";" -#line 387 "parser.ypp" +#line 388 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2344 "parser.cpp" +#line 2349 "parser.cpp" break; case 62: // stmt_assign: expr_increment ";" -#line 389 "parser.ypp" +#line 390 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2350 "parser.cpp" +#line 2355 "parser.cpp" break; case 63: // stmt_assign: expr_decrement ";" -#line 391 "parser.ypp" +#line 392 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2356 "parser.cpp" +#line 2361 "parser.cpp" break; case 64: // stmt_endon: expr_object "endon" "(" expr ")" ";" -#line 396 "parser.ypp" +#line 397 "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 2362 "parser.cpp" +#line 2367 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" -#line 401 "parser.ypp" +#line 402 "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 2368 "parser.cpp" +#line 2373 "parser.cpp" break; case 66: // stmt_notify: expr_object "notify" "(" expr ")" ";" -#line 403 "parser.ypp" +#line 404 "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 2374 "parser.cpp" +#line 2379 "parser.cpp" break; case 67: // stmt_wait: "wait" expr ";" -#line 408 "parser.ypp" +#line 409 "parser.ypp" { yylhs.value.as < ast::stmt_wait::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2380 "parser.cpp" +#line 2385 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" -#line 413 "parser.ypp" +#line 414 "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 2386 "parser.cpp" +#line 2391 "parser.cpp" break; case 69: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" -#line 415 "parser.ypp" +#line 416 "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 2392 "parser.cpp" +#line 2397 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" -#line 420 "parser.ypp" +#line 421 "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 2398 "parser.cpp" +#line 2403 "parser.cpp" break; case 71: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" -#line 422 "parser.ypp" +#line 423 "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 2404 "parser.cpp" +#line 2409 "parser.cpp" break; case 72: // stmt_waittillframeend: "waittillframeend" ";" -#line 427 "parser.ypp" +#line 428 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2410 "parser.cpp" +#line 2415 "parser.cpp" break; case 73: // stmt_waitframe: "waitframe" ";" -#line 432 "parser.ypp" +#line 433 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2416 "parser.cpp" +#line 2421 "parser.cpp" break; case 74: // stmt_waitframe: "waitframe" "(" ")" ";" -#line 434 "parser.ypp" +#line 435 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2422 "parser.cpp" +#line 2427 "parser.cpp" break; case 75: // stmt_if: "if" "(" expr ")" stmt -#line 439 "parser.ypp" +#line 440 "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 2428 "parser.cpp" +#line 2433 "parser.cpp" break; case 76: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt -#line 444 "parser.ypp" +#line 445 "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 2434 "parser.cpp" +#line 2439 "parser.cpp" break; case 77: // stmt_while: "while" "(" expr ")" stmt -#line 449 "parser.ypp" +#line 450 "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 2440 "parser.cpp" +#line 2445 "parser.cpp" break; case 78: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" -#line 454 "parser.ypp" +#line 455 "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 2446 "parser.cpp" +#line 2451 "parser.cpp" break; case 79: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt -#line 459 "parser.ypp" +#line 460 "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 2452 "parser.cpp" +#line 2457 "parser.cpp" break; case 80: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt -#line 464 "parser.ypp" +#line 465 "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 2458 "parser.cpp" +#line 2463 "parser.cpp" break; case 81: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt -#line 466 "parser.ypp" +#line 467 "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 2464 "parser.cpp" +#line 2469 "parser.cpp" break; case 82: // stmt_switch: "switch" "(" expr ")" stmt_block -#line 471 "parser.ypp" +#line 472 "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 2470 "parser.cpp" +#line 2475 "parser.cpp" break; case 83: // stmt_case: "case" expr_integer ":" -#line 476 "parser.ypp" +#line 477 "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 2476 "parser.cpp" +#line 2481 "parser.cpp" break; case 84: // stmt_case: "case" expr_string ":" -#line 478 "parser.ypp" +#line 479 "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 2482 "parser.cpp" +#line 2487 "parser.cpp" break; case 85: // stmt_default: "default" ":" -#line 483 "parser.ypp" +#line 484 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2488 "parser.cpp" +#line 2493 "parser.cpp" break; case 86: // stmt_break: "break" ";" -#line 488 "parser.ypp" +#line 489 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2494 "parser.cpp" +#line 2499 "parser.cpp" break; case 87: // stmt_continue: "continue" ";" -#line 493 "parser.ypp" +#line 494 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2500 "parser.cpp" +#line 2505 "parser.cpp" break; case 88: // stmt_return: "return" expr ";" -#line 498 "parser.ypp" +#line 499 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2506 "parser.cpp" +#line 2511 "parser.cpp" break; case 89: // stmt_return: "return" ";" -#line 500 "parser.ypp" +#line 501 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2512 "parser.cpp" +#line 2517 "parser.cpp" break; case 90: // stmt_breakpoint: "breakpoint" ";" -#line 505 "parser.ypp" +#line 506 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2518 "parser.cpp" +#line 2523 "parser.cpp" break; case 91: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" -#line 510 "parser.ypp" +#line 511 "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 2524 "parser.cpp" +#line 2529 "parser.cpp" break; case 92: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" -#line 515 "parser.ypp" +#line 516 "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 2530 "parser.cpp" +#line 2535 "parser.cpp" break; case 93: // expr: expr_ternary -#line 519 "parser.ypp" +#line 520 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2536 "parser.cpp" +#line 2541 "parser.cpp" break; case 94: // expr: expr_binary -#line 520 "parser.ypp" +#line 521 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2542 "parser.cpp" +#line 2547 "parser.cpp" break; case 95: // expr: expr_primitive -#line 521 "parser.ypp" +#line 522 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2548 "parser.cpp" +#line 2553 "parser.cpp" break; case 96: // expr_or_empty: expr -#line 525 "parser.ypp" +#line 526 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2554 "parser.cpp" +#line 2559 "parser.cpp" break; case 97: // expr_or_empty: %empty -#line 526 "parser.ypp" +#line 527 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2560 "parser.cpp" +#line 2565 "parser.cpp" break; case 98: // expr_assign: expr_object "=" expr -#line 531 "parser.ypp" +#line 532 "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 2566 "parser.cpp" +#line 2571 "parser.cpp" break; case 99: // expr_assign: expr_object "|=" expr -#line 533 "parser.ypp" +#line 534 "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 2572 "parser.cpp" +#line 2577 "parser.cpp" break; case 100: // expr_assign: expr_object "&=" expr -#line 535 "parser.ypp" +#line 536 "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 2578 "parser.cpp" +#line 2583 "parser.cpp" break; case 101: // expr_assign: expr_object "^=" expr -#line 537 "parser.ypp" +#line 538 "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 2584 "parser.cpp" +#line 2589 "parser.cpp" break; case 102: // expr_assign: expr_object "<<=" expr -#line 539 "parser.ypp" +#line 540 "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 2590 "parser.cpp" +#line 2595 "parser.cpp" break; case 103: // expr_assign: expr_object ">>=" expr -#line 541 "parser.ypp" +#line 542 "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 2596 "parser.cpp" +#line 2601 "parser.cpp" break; case 104: // expr_assign: expr_object "+=" expr -#line 543 "parser.ypp" +#line 544 "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 2602 "parser.cpp" +#line 2607 "parser.cpp" break; case 105: // expr_assign: expr_object "-=" expr -#line 545 "parser.ypp" +#line 546 "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 2608 "parser.cpp" +#line 2613 "parser.cpp" break; case 106: // expr_assign: expr_object "*=" expr -#line 547 "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 2614 "parser.cpp" +#line 2619 "parser.cpp" break; case 107: // expr_assign: expr_object "/=" expr -#line 549 "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 2620 "parser.cpp" +#line 2625 "parser.cpp" break; case 108: // expr_assign: expr_object "%=" expr -#line 551 "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 2626 "parser.cpp" +#line 2631 "parser.cpp" break; case 109: // expr_increment: "++" expr_object -#line 556 "parser.ypp" +#line 557 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2632 "parser.cpp" +#line 2637 "parser.cpp" break; case 110: // expr_increment: expr_object "++" -#line 558 "parser.ypp" +#line 559 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2638 "parser.cpp" +#line 2643 "parser.cpp" break; case 111: // expr_decrement: "--" expr_object -#line 563 "parser.ypp" +#line 564 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2644 "parser.cpp" +#line 2649 "parser.cpp" break; case 112: // expr_decrement: expr_object "--" -#line 565 "parser.ypp" +#line 566 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2650 "parser.cpp" +#line 2655 "parser.cpp" break; case 113: // expr_ternary: expr "?" expr ":" expr -#line 570 "parser.ypp" +#line 571 "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 2656 "parser.cpp" +#line 2661 "parser.cpp" break; case 114: // expr_binary: expr "||" expr -#line 575 "parser.ypp" +#line 576 "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 2662 "parser.cpp" +#line 2667 "parser.cpp" break; case 115: // expr_binary: expr "&&" expr -#line 577 "parser.ypp" +#line 578 "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 2668 "parser.cpp" +#line 2673 "parser.cpp" break; case 116: // expr_binary: expr "==" expr -#line 579 "parser.ypp" +#line 580 "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 2674 "parser.cpp" +#line 2679 "parser.cpp" break; case 117: // expr_binary: expr "!=" expr -#line 581 "parser.ypp" +#line 582 "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 2680 "parser.cpp" +#line 2685 "parser.cpp" break; case 118: // expr_binary: expr "<=" expr -#line 583 "parser.ypp" +#line 584 "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 2686 "parser.cpp" +#line 2691 "parser.cpp" break; case 119: // expr_binary: expr ">=" expr -#line 585 "parser.ypp" +#line 586 "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 2692 "parser.cpp" +#line 2697 "parser.cpp" break; case 120: // expr_binary: expr "<" expr -#line 587 "parser.ypp" +#line 588 "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 2698 "parser.cpp" +#line 2703 "parser.cpp" break; case 121: // expr_binary: expr ">" expr -#line 589 "parser.ypp" +#line 590 "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 2704 "parser.cpp" +#line 2709 "parser.cpp" break; case 122: // expr_binary: expr "|" expr -#line 591 "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 2710 "parser.cpp" +#line 2715 "parser.cpp" break; case 123: // expr_binary: expr "&" expr -#line 593 "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 2716 "parser.cpp" +#line 2721 "parser.cpp" break; case 124: // expr_binary: expr "^" expr -#line 595 "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 2722 "parser.cpp" +#line 2727 "parser.cpp" break; case 125: // expr_binary: expr "<<" expr -#line 597 "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 2728 "parser.cpp" +#line 2733 "parser.cpp" break; case 126: // expr_binary: expr ">>" expr -#line 599 "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 2734 "parser.cpp" +#line 2739 "parser.cpp" break; case 127: // expr_binary: expr "+" expr -#line 601 "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 2740 "parser.cpp" +#line 2745 "parser.cpp" break; case 128: // expr_binary: expr "-" expr -#line 603 "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 2746 "parser.cpp" +#line 2751 "parser.cpp" break; case 129: // expr_binary: expr "*" expr -#line 605 "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 2752 "parser.cpp" +#line 2757 "parser.cpp" break; case 130: // expr_binary: expr "/" expr -#line 607 "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 2758 "parser.cpp" +#line 2763 "parser.cpp" break; case 131: // expr_binary: expr "%" expr -#line 609 "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 2764 "parser.cpp" +#line 2769 "parser.cpp" break; case 132: // expr_primitive: expr_complement -#line 613 "parser.ypp" +#line 614 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2770 "parser.cpp" +#line 2775 "parser.cpp" break; case 133: // expr_primitive: expr_not -#line 614 "parser.ypp" +#line 615 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2776 "parser.cpp" +#line 2781 "parser.cpp" break; case 134: // expr_primitive: expr_call -#line 615 "parser.ypp" +#line 616 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2782 "parser.cpp" +#line 2787 "parser.cpp" break; case 135: // expr_primitive: expr_method -#line 616 "parser.ypp" +#line 617 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2788 "parser.cpp" +#line 2793 "parser.cpp" break; case 136: // expr_primitive: expr_add_array -#line 617 "parser.ypp" +#line 618 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2794 "parser.cpp" +#line 2799 "parser.cpp" break; case 137: // expr_primitive: expr_reference -#line 618 "parser.ypp" +#line 619 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2800 "parser.cpp" +#line 2805 "parser.cpp" break; case 138: // expr_primitive: expr_array -#line 619 "parser.ypp" +#line 620 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2806 "parser.cpp" +#line 2811 "parser.cpp" break; case 139: // expr_primitive: expr_field -#line 620 "parser.ypp" +#line 621 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2812 "parser.cpp" +#line 2817 "parser.cpp" break; case 140: // expr_primitive: expr_size -#line 621 "parser.ypp" +#line 622 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2818 "parser.cpp" +#line 2823 "parser.cpp" break; case 141: // expr_primitive: expr_paren -#line 622 "parser.ypp" +#line 623 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2824 "parser.cpp" +#line 2829 "parser.cpp" break; case 142: // expr_primitive: expr_thisthread -#line 623 "parser.ypp" +#line 624 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2830 "parser.cpp" +#line 2835 "parser.cpp" break; case 143: // expr_primitive: expr_empty_array -#line 624 "parser.ypp" +#line 625 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2836 "parser.cpp" +#line 2841 "parser.cpp" break; case 144: // expr_primitive: expr_undefined -#line 625 "parser.ypp" +#line 626 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2842 "parser.cpp" +#line 2847 "parser.cpp" break; case 145: // expr_primitive: expr_game -#line 626 "parser.ypp" +#line 627 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2848 "parser.cpp" +#line 2853 "parser.cpp" break; case 146: // expr_primitive: expr_self -#line 627 "parser.ypp" +#line 628 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2854 "parser.cpp" +#line 2859 "parser.cpp" break; case 147: // expr_primitive: expr_anim -#line 628 "parser.ypp" +#line 629 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2860 "parser.cpp" +#line 2865 "parser.cpp" break; case 148: // expr_primitive: expr_level -#line 629 "parser.ypp" +#line 630 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2866 "parser.cpp" +#line 2871 "parser.cpp" break; case 149: // expr_primitive: expr_animation -#line 630 "parser.ypp" +#line 631 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2872 "parser.cpp" +#line 2877 "parser.cpp" break; case 150: // expr_primitive: expr_animtree -#line 631 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2878 "parser.cpp" - break; - - case 151: // expr_primitive: expr_identifier #line 632 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 2884 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2883 "parser.cpp" break; - case 152: // expr_primitive: expr_istring + case 151: // expr_primitive: expr_identifier_neg #line 633 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } -#line 2890 "parser.cpp" + { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } +#line 2889 "parser.cpp" break; - case 153: // expr_primitive: expr_string + case 152: // expr_primitive: expr_identifier #line 634 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } -#line 2896 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 2895 "parser.cpp" break; - case 154: // expr_primitive: expr_vector + case 153: // expr_primitive: expr_istring #line 635 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } -#line 2902 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } +#line 2901 "parser.cpp" break; - case 155: // expr_primitive: expr_float + case 154: // expr_primitive: expr_string #line 636 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } -#line 2908 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } +#line 2907 "parser.cpp" break; - case 156: // expr_primitive: expr_integer + case 155: // expr_primitive: expr_vector #line 637 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } -#line 2914 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } +#line 2913 "parser.cpp" break; - case 157: // expr_primitive: expr_false + case 156: // expr_primitive: expr_float #line 638 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } -#line 2920 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } +#line 2919 "parser.cpp" break; - case 158: // expr_primitive: expr_true + case 157: // expr_primitive: expr_integer #line 639 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } +#line 2925 "parser.cpp" + break; + + case 158: // expr_primitive: expr_false +#line 640 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } +#line 2931 "parser.cpp" + break; + + case 159: // expr_primitive: expr_true +#line 641 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_true::ptr > ()); } -#line 2926 "parser.cpp" +#line 2937 "parser.cpp" break; - case 159: // expr_complement: "~" expr -#line 644 "parser.ypp" + case 160: // expr_complement: "~" expr +#line 646 "parser.ypp" { yylhs.value.as < ast::expr_complement::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2932 "parser.cpp" +#line 2943 "parser.cpp" break; - case 160: // expr_not: "!" expr -#line 649 "parser.ypp" + case 161: // expr_not: "!" expr +#line 651 "parser.ypp" { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2938 "parser.cpp" +#line 2949 "parser.cpp" break; - case 161: // expr_call: expr_function -#line 653 "parser.ypp" + case 162: // expr_call: expr_function +#line 655 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2944 "parser.cpp" +#line 2955 "parser.cpp" break; - case 162: // expr_call: expr_pointer -#line 654 "parser.ypp" + case 163: // expr_call: expr_pointer +#line 656 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2950 "parser.cpp" +#line 2961 "parser.cpp" break; - case 163: // expr_method: expr_object expr_function -#line 657 "parser.ypp" + case 164: // expr_method: expr_object expr_function +#line 659 "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 2956 "parser.cpp" +#line 2967 "parser.cpp" break; - case 164: // expr_method: expr_object expr_pointer -#line 658 "parser.ypp" + case 165: // expr_method: expr_object expr_pointer +#line 660 "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 2962 "parser.cpp" +#line 2973 "parser.cpp" break; - case 165: // expr_function: expr_identifier "(" expr_arguments ")" -#line 663 "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 2968 "parser.cpp" - break; - - case 166: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" + case 166: // expr_function: expr_identifier "(" expr_arguments ")" #line 665 "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 2974 "parser.cpp" + { 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 2979 "parser.cpp" break; - case 167: // expr_function: "thread" expr_identifier "(" expr_arguments ")" + case 167: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" #line 667 "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 2980 "parser.cpp" + { 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 2985 "parser.cpp" break; - case 168: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 168: // expr_function: "thread" expr_identifier "(" expr_arguments ")" #line 669 "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 2986 "parser.cpp" + { 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 2991 "parser.cpp" break; - case 169: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" + case 169: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" #line 671 "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::childthread); } -#line 2992 "parser.cpp" + { 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 2997 "parser.cpp" break; - case 170: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 170: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" #line 673 "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::childthread); } +#line 3003 "parser.cpp" + break; + + case 171: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" +#line 675 "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::childthread); } -#line 2998 "parser.cpp" +#line 3009 "parser.cpp" break; - case 171: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" -#line 678 "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 3004 "parser.cpp" - break; - - case 172: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 172: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 680 "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 3010 "parser.cpp" + { 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 3015 "parser.cpp" break; - case 173: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 173: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 682 "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::childthread); } -#line 3016 "parser.cpp" + { 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 3021 "parser.cpp" break; - case 174: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 174: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 684 "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::childthread); } +#line 3027 "parser.cpp" + break; + + case 175: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 686 "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::builtin); } -#line 3022 "parser.cpp" +#line 3033 "parser.cpp" break; - case 175: // expr_add_array: "[" expr_arguments_no_empty "]" -#line 689 "parser.ypp" + case 176: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 691 "parser.ypp" { yylhs.value.as < ast::expr_add_array::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ())); } -#line 3028 "parser.cpp" +#line 3039 "parser.cpp" break; - case 176: // expr_parameters: expr_parameters "," expr_identifier -#line 694 "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 3034 "parser.cpp" - break; - - case 177: // expr_parameters: expr_identifier + case 177: // expr_parameters: expr_parameters "," expr_identifier #line 696 "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 3040 "parser.cpp" + { 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 3045 "parser.cpp" break; - case 178: // expr_parameters: %empty + case 178: // expr_parameters: expr_identifier #line 698 "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 3051 "parser.cpp" + break; + + case 179: // expr_parameters: %empty +#line 700 "parser.ypp" { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } -#line 3046 "parser.cpp" +#line 3057 "parser.cpp" break; - case 179: // expr_arguments: expr_arguments_no_empty -#line 703 "parser.ypp" - { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } -#line 3052 "parser.cpp" - break; - - case 180: // expr_arguments: %empty + case 180: // expr_arguments: expr_arguments_no_empty #line 705 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3063 "parser.cpp" + break; + + case 181: // expr_arguments: %empty +#line 707 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3058 "parser.cpp" +#line 3069 "parser.cpp" break; - case 181: // expr_arguments_no_empty: expr_arguments "," expr -#line 710 "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 3064 "parser.cpp" - break; - - case 182: // expr_arguments_no_empty: expr + case 182: // expr_arguments_no_empty: expr_arguments "," expr #line 712 "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 3075 "parser.cpp" + break; + + case 183: // expr_arguments_no_empty: expr +#line 714 "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 3070 "parser.cpp" +#line 3081 "parser.cpp" break; - case 183: // expr_reference: "::" expr_identifier -#line 717 "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 3076 "parser.cpp" - break; - - case 184: // expr_reference: expr_path "::" expr_identifier + case 184: // expr_reference: "::" expr_identifier #line 719 "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 3087 "parser.cpp" + break; + + case 185: // expr_reference: expr_path "::" expr_identifier +#line 721 "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 3082 "parser.cpp" +#line 3093 "parser.cpp" break; - case 185: // expr_array: expr_object "[" expr "]" -#line 724 "parser.ypp" + case 186: // expr_array: expr_object "[" expr "]" +#line 726 "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 3088 "parser.cpp" +#line 3099 "parser.cpp" break; - case 186: // expr_field: expr_object "." expr_identifier_nosize -#line 729 "parser.ypp" + case 187: // expr_field: expr_object "." expr_identifier_nosize +#line 731 "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 3094 "parser.cpp" +#line 3105 "parser.cpp" break; - case 187: // expr_size: expr_object "." "size" -#line 734 "parser.ypp" + case 188: // expr_size: expr_object "." "size" +#line 736 "parser.ypp" { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } -#line 3100 "parser.cpp" +#line 3111 "parser.cpp" break; - case 188: // expr_paren: "(" expr ")" -#line 739 "parser.ypp" + case 189: // expr_paren: "(" expr ")" +#line 741 "parser.ypp" { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3106 "parser.cpp" +#line 3117 "parser.cpp" break; - case 189: // expr_object: expr_call -#line 743 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 3112 "parser.cpp" - break; - - case 190: // expr_object: expr_method -#line 744 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 3118 "parser.cpp" - break; - - case 191: // expr_object: expr_array + case 190: // expr_object: expr_call #line 745 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3124 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3123 "parser.cpp" break; - case 192: // expr_object: expr_field + case 191: // expr_object: expr_method #line 746 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 3130 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3129 "parser.cpp" break; - case 193: // expr_object: expr_game + case 192: // expr_object: expr_array #line 747 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 3136 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3135 "parser.cpp" break; - case 194: // expr_object: expr_self + case 193: // expr_object: expr_field #line 748 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 3142 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3141 "parser.cpp" break; - case 195: // expr_object: expr_anim + case 194: // expr_object: expr_game #line 749 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 3148 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3147 "parser.cpp" break; - case 196: // expr_object: expr_level + case 195: // expr_object: expr_self #line 750 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 3154 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3153 "parser.cpp" break; - case 197: // expr_object: expr_identifier + case 196: // expr_object: expr_anim #line 751 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3159 "parser.cpp" + break; + + case 197: // expr_object: expr_level +#line 752 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3165 "parser.cpp" + break; + + case 198: // expr_object: expr_identifier +#line 753 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 3160 "parser.cpp" +#line 3171 "parser.cpp" break; - case 198: // expr_thisthread: "thisthread" -#line 756 "parser.ypp" + case 199: // expr_thisthread: "thisthread" +#line 758 "parser.ypp" { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3166 "parser.cpp" +#line 3177 "parser.cpp" break; - case 199: // expr_empty_array: "[" "]" -#line 761 "parser.ypp" + case 200: // expr_empty_array: "[" "]" +#line 763 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3172 "parser.cpp" +#line 3183 "parser.cpp" break; - case 200: // expr_undefined: "undefined" -#line 766 "parser.ypp" + case 201: // expr_undefined: "undefined" +#line 768 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3178 "parser.cpp" +#line 3189 "parser.cpp" break; - case 201: // expr_game: "game" -#line 771 "parser.ypp" + case 202: // expr_game: "game" +#line 773 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3184 "parser.cpp" +#line 3195 "parser.cpp" break; - case 202: // expr_self: "self" -#line 776 "parser.ypp" + case 203: // expr_self: "self" +#line 778 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3190 "parser.cpp" +#line 3201 "parser.cpp" break; - case 203: // expr_anim: "anim" -#line 781 "parser.ypp" + case 204: // expr_anim: "anim" +#line 783 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3196 "parser.cpp" +#line 3207 "parser.cpp" break; - case 204: // expr_level: "level" -#line 786 "parser.ypp" + case 205: // expr_level: "level" +#line 788 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3202 "parser.cpp" +#line 3213 "parser.cpp" break; - case 205: // expr_animation: "%" "identifier" -#line 791 "parser.ypp" + case 206: // expr_animation: "%" "identifier" +#line 793 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3208 "parser.cpp" +#line 3219 "parser.cpp" break; - case 206: // expr_animtree: "#animtree" -#line 796 "parser.ypp" + case 207: // expr_animtree: "#animtree" +#line 798 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3214 "parser.cpp" +#line 3225 "parser.cpp" break; - case 207: // expr_identifier_nosize: "identifier" -#line 801 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3220 "parser.cpp" + case 208: // expr_identifier_neg: "-" "identifier" +#line 803 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, ast::expr(std::make_unique(yylhs.location, "0")), ast::expr(std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()))); } +#line 3231 "parser.cpp" break; - case 208: // expr_identifier: "identifier" -#line 806 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3226 "parser.cpp" - break; - - case 209: // expr_identifier: "size" + case 209: // expr_identifier_nosize: "identifier" #line 808 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3232 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3237 "parser.cpp" break; - case 210: // expr_path: "identifier" + case 210: // expr_identifier: "identifier" #line 813 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3238 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3243 "parser.cpp" break; - case 211: // expr_path: "path" + case 211: // expr_identifier: "size" #line 815 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3244 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } +#line 3249 "parser.cpp" break; - case 212: // expr_istring: "localized string" + case 212: // expr_path: "identifier" #line 820 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3255 "parser.cpp" + break; + + case 213: // expr_path: "path" +#line 822 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3261 "parser.cpp" + break; + + case 214: // expr_istring: "localized string" +#line 827 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3250 "parser.cpp" +#line 3267 "parser.cpp" break; - case 213: // expr_string: "string literal" -#line 825 "parser.ypp" + case 215: // expr_string: "string literal" +#line 832 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3256 "parser.cpp" +#line 3273 "parser.cpp" break; - case 214: // expr_vector: "(" expr "," expr "," expr ")" -#line 830 "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 3262 "parser.cpp" - break; - - case 215: // expr_float: "-" "float" -#line 835 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3268 "parser.cpp" - break; - - case 216: // expr_float: "float" + case 216: // expr_vector: "(" expr "," expr "," expr ")" #line 837 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3274 "parser.cpp" + { 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 3279 "parser.cpp" break; - case 217: // expr_integer: "-" "integer" + case 217: // expr_float: "-" "float" #line 842 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3280 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3285 "parser.cpp" break; - case 218: // expr_integer: "integer" + case 218: // expr_float: "float" #line 844 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3286 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3291 "parser.cpp" break; - case 219: // expr_false: "false" + case 219: // expr_integer: "-" "integer" #line 849 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3297 "parser.cpp" + break; + + case 220: // expr_integer: "integer" +#line 851 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3303 "parser.cpp" + break; + + case 221: // expr_false: "false" +#line 856 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3292 "parser.cpp" +#line 3309 "parser.cpp" break; - case 220: // expr_true: "true" -#line 854 "parser.ypp" + case 222: // expr_true: "true" +#line 861 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3298 "parser.cpp" +#line 3315 "parser.cpp" break; -#line 3302 "parser.cpp" +#line 3319 "parser.cpp" default: break; @@ -3513,9 +3530,9 @@ namespace xsk { namespace gsc { namespace h1 { "expr_size", "expr_paren", "expr_object", "expr_thisthread", "expr_empty_array", "expr_undefined", "expr_game", "expr_self", "expr_anim", "expr_level", "expr_animation", "expr_animtree", - "expr_identifier_nosize", "expr_identifier", "expr_path", "expr_istring", - "expr_string", "expr_vector", "expr_float", "expr_integer", "expr_false", - "expr_true", YY_NULLPTR + "expr_identifier_neg", "expr_identifier_nosize", "expr_identifier", + "expr_path", "expr_istring", "expr_string", "expr_vector", "expr_float", + "expr_integer", "expr_false", "expr_true", YY_NULLPTR }; return yy_sname[yysymbol]; } @@ -3786,454 +3803,461 @@ namespace xsk { namespace gsc { namespace h1 { const short parser::yypact_ninf_ = -271; - const short parser::yytable_ninf_ = -211; + const short parser::yytable_ninf_ = -213; const short parser::yypact_[] = { - 9, -271, -271, -48, -48, -34, -271, -271, 29, 9, - -271, -271, -271, -271, -271, -271, -44, -271, -271, -30, - -9, -85, -271, -271, -271, -271, -20, 684, -271, -271, - -271, -6, 21, -271, -271, -28, 39, -271, 15, -271, - -271, -271, -271, -271, -271, -271, 684, 1024, -20, 684, - 684, -38, 2, 43, -271, -271, -271, 1959, -271, -271, - -271, -271, -271, 42, 72, -271, -271, -271, -271, 86, - 186, -271, -271, 427, -271, -271, -271, 490, 615, 712, - 876, -271, -271, 25, 50, -271, -271, -271, -271, -271, - -271, -271, 44, 62, -20, 64, 82, 78, 68, 92, - 96, 103, 1284, 1024, -271, 2042, 118, 132, -271, -271, - -271, -271, -271, -271, -271, 684, 684, 684, 684, 684, - 684, 684, 684, 684, 684, 684, 684, 684, 684, 684, - 684, 684, 684, 684, 1150, -2, -271, -271, 141, 147, - 684, -20, -271, 792, -271, -271, 684, 684, -20, 684, - 684, -20, 684, -271, 684, 1728, 684, -271, 1924, 315, - 315, 2073, 2083, 1078, 1078, 165, 165, 165, 165, 2114, - 2155, 2124, -4, -4, -271, -271, -271, 1768, -271, -271, - -271, -20, 46, -271, 158, 921, 684, 149, -37, 162, - 1274, 163, 166, 167, 168, 12, 164, 172, 173, 1087, - 175, 176, 178, -271, 191, -10, -10, -271, -271, 844, + 2, -271, -271, -32, -32, -30, -271, -271, 20, 2, + -271, -271, -271, -271, -271, -271, -19, -271, -271, -21, + -8, -69, -271, -271, -271, -271, -20, 1097, -271, -271, + -271, 11, -35, -271, -271, -22, 6, -271, 1, -271, + -271, -271, -271, -271, -271, -271, 1097, 642, -20, 1097, + 1097, 59, -2, 17, -271, -271, -271, 2008, -271, -271, + -271, -271, -271, 115, 353, -271, -271, -271, -271, 521, + 552, -271, -271, 581, -271, -271, -271, 750, 886, 963, + 1061, -271, -271, -271, 491, 19, -271, -271, -271, -271, + -271, -271, -271, 44, 27, -20, 65, 74, 78, 73, + 76, 87, 103, 1294, 642, -271, 2091, 105, 107, -271, + -271, -271, -271, -271, -271, -271, -271, 1097, 1097, 1097, + 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, + 1097, 1097, 1097, 1097, 1097, 1097, 1160, -1, -271, -271, + 117, 110, 1097, -20, -271, 802, -271, -271, 1097, 1097, + -20, 1097, 1097, -20, 1097, -271, 1097, 1738, 1097, -271, + 1973, 141, 141, 2122, 2132, 2214, 2214, 136, 136, 136, + 136, 2163, 2204, 2173, -56, -56, -271, -271, -271, 1778, + -271, -271, -271, -20, 3, -271, 120, 931, 1097, 111, + -33, 126, 1284, 127, 130, 132, 133, 21, 125, 128, + 129, 1034, 131, 137, 143, -271, 142, 706, 706, -271, + -271, 854, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - -271, -271, -271, -271, -271, -271, 184, 187, 189, 192, - 200, -271, -271, 1197, -271, -271, -271, -271, 141, 1808, - 77, 201, 1848, 94, 215, 1888, 1019, 181, 2042, 684, - -271, 158, -271, 684, -271, -271, 998, 1994, -271, 199, - -271, 684, 241, 684, 11, -20, 684, 169, 208, 217, - -271, -271, -271, -271, 2029, -271, 684, 684, 684, -271, - -271, 953, 953, -271, -271, -271, -271, -271, -271, -271, - 224, 227, 228, 230, 188, -271, -271, 684, 684, 684, - 684, 684, 684, 684, 684, 684, 684, 684, 232, -271, - 684, 233, -271, 684, 237, 684, 243, 2042, 100, -271, - -271, -271, 234, 1450, 245, 1484, 240, -271, -271, -271, - 550, -14, 1518, -271, -271, -271, 104, 107, 1728, 684, - 684, 684, 684, 2042, 2042, 2042, 2042, 2042, 2042, 2042, - 2042, 2042, 2042, 2042, 251, 110, 252, 113, 275, 1552, - 684, -271, -271, 1274, 684, 1274, 684, 684, -20, 62, - 268, 269, 1586, 1328, 1372, 1416, 684, -271, 684, -271, - 684, -271, 124, 307, 1620, -271, 2042, 271, 1654, 305, - -271, -271, -271, 276, 281, 684, 283, 684, 286, 684, - 143, 146, 150, -271, 1274, 289, 11, 1274, 684, -271, - -271, 288, -271, 299, -271, 300, -271, -271, -271, -271, - -271, 301, -271, 1688, 294, 296, 298, 1274, 1274, -271, - -271, -271, -271, -271 + -271, -271, -271, -271, -271, -271, -271, -271, 144, 147, + 148, 154, 155, -271, -271, 1207, -271, -271, -271, -271, + 117, 1818, 14, 153, 1858, 40, 167, 1898, 1937, 164, + 2091, 1097, -271, 120, -271, 1097, -271, -271, 1008, 2043, + -271, 135, -271, 1097, 212, 1097, 68, -20, 1097, 139, + 181, 182, -271, -271, -271, -271, 2078, -271, 1097, 1097, + 1097, -271, -271, 1121, 1121, -271, -271, -271, -271, -271, + -271, -271, 192, 195, 196, 201, 156, -271, -271, 1097, + 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, + 198, -271, 1097, 199, -271, 1097, 202, 1097, 206, 2091, + 41, -271, -271, -271, 204, 1460, 208, 1494, 211, -271, + -271, -271, 4, -6, 1528, -271, -271, -271, 52, 54, + 1738, 1097, 1097, 1097, 1097, 2091, 2091, 2091, 2091, 2091, + 2091, 2091, 2091, 2091, 2091, 2091, 210, 69, 218, 72, + 226, 1562, 1097, -271, -271, 1284, 1097, 1284, 1097, 1097, + -20, 27, 224, 225, 1596, 1338, 1382, 1426, 1097, -271, + 1097, -271, 1097, -271, 82, 238, 1630, -271, 2091, 228, + 1664, 250, -271, -271, -271, 229, 230, 1097, 233, 1097, + 234, 1097, 83, 84, 93, -271, 1284, 235, 68, 1284, + 1097, -271, -271, 245, -271, 246, -271, 252, -271, -271, + -271, -271, -271, 253, -271, 1698, 247, 249, 251, 1284, + 1284, -271, -271, -271, -271, -271 }; const unsigned char parser::yydefact_[] = { - 3, 12, 13, 0, 0, 0, 209, 208, 0, 2, - 7, 8, 9, 14, 15, 16, 0, 211, 210, 0, - 0, 0, 1, 4, 5, 6, 178, 0, 10, 11, - 213, 0, 0, 177, 206, 0, 0, 198, 0, 220, - 219, 200, 201, 202, 203, 204, 0, 180, 0, 0, - 0, 0, 0, 208, 212, 216, 218, 0, 93, 94, - 95, 132, 133, 134, 135, 161, 162, 136, 137, 138, + 3, 12, 13, 0, 0, 0, 211, 210, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 213, 212, 0, + 0, 0, 1, 4, 5, 6, 179, 0, 10, 11, + 215, 0, 0, 178, 207, 0, 0, 199, 0, 222, + 221, 201, 202, 203, 204, 205, 0, 181, 0, 0, + 0, 0, 0, 210, 214, 218, 220, 0, 93, 94, + 95, 132, 133, 134, 135, 162, 163, 136, 137, 138, 139, 140, 141, 0, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 157, 158, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 180, 199, 182, 0, 179, 183, 160, - 159, 215, 217, 205, 18, 0, 0, 0, 0, 0, + 148, 149, 150, 151, 152, 0, 153, 154, 155, 156, + 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 181, 200, 183, 0, 180, 184, + 161, 160, 208, 217, 219, 206, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 163, 164, 0, 0, - 180, 0, 17, 0, 19, 176, 0, 180, 0, 0, - 180, 0, 0, 188, 0, 182, 0, 175, 0, 125, - 126, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 127, 128, 129, 130, 131, 0, 187, 207, - 186, 0, 0, 179, 184, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, + 0, 0, 181, 0, 17, 0, 19, 177, 0, 181, + 0, 0, 181, 0, 0, 189, 0, 183, 0, 176, + 0, 125, 126, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 127, 128, 129, 130, 131, 0, + 188, 209, 187, 0, 0, 180, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 54, 0, 0, 0, 45, 50, 0, - 46, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 0, 0, 0, 189, - 190, 191, 192, 0, 193, 194, 195, 196, 197, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, - 185, 0, 165, 180, 52, 48, 0, 0, 72, 0, - 73, 0, 0, 0, 58, 0, 0, 0, 0, 0, - 85, 86, 87, 89, 0, 90, 180, 180, 0, 189, - 190, 109, 111, 53, 49, 61, 62, 63, 59, 60, - 0, 0, 0, 0, 0, 110, 112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, - 180, 0, 169, 180, 0, 0, 0, 113, 0, 51, - 47, 67, 0, 0, 0, 0, 0, 55, 56, 57, - 0, 0, 0, 84, 83, 88, 0, 0, 0, 0, - 0, 0, 0, 98, 104, 105, 106, 107, 108, 99, - 100, 101, 103, 102, 0, 0, 0, 0, 0, 0, - 180, 166, 74, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 180, 168, 180, 170, - 180, 214, 0, 75, 0, 77, 96, 0, 0, 0, - 82, 91, 92, 0, 0, 180, 0, 180, 0, 180, - 0, 0, 0, 171, 0, 0, 58, 0, 0, 64, - 66, 179, 69, 179, 71, 179, 172, 173, 174, 76, - 78, 0, 80, 0, 0, 0, 0, 0, 0, 65, - 68, 70, 79, 81 + 0, 0, 0, 0, 0, 54, 0, 0, 0, 45, + 50, 0, 46, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 0, 0, + 0, 190, 191, 192, 193, 0, 194, 195, 196, 197, + 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 182, 0, 186, 0, 166, 181, 52, 48, 0, 0, + 72, 0, 73, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 85, 86, 87, 89, 0, 90, 181, 181, + 0, 190, 191, 109, 111, 53, 49, 61, 62, 63, + 59, 60, 0, 0, 0, 0, 0, 110, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 168, 181, 0, 170, 181, 0, 0, 0, 113, + 0, 51, 47, 67, 0, 0, 0, 0, 0, 55, + 56, 57, 0, 0, 0, 84, 83, 88, 0, 0, + 0, 0, 0, 0, 0, 98, 104, 105, 106, 107, + 108, 99, 100, 101, 103, 102, 0, 0, 0, 0, + 0, 0, 181, 167, 74, 0, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 181, 169, + 181, 171, 181, 216, 0, 75, 0, 77, 96, 0, + 0, 0, 82, 91, 92, 0, 0, 181, 0, 181, + 0, 181, 0, 0, 0, 172, 0, 0, 58, 0, + 0, 64, 66, 180, 69, 180, 71, 180, 173, 174, + 175, 76, 78, 0, 80, 0, 0, 0, 0, 0, + 0, 65, 68, 70, 79, 81 }; const short parser::yypgoto_[] = { - -271, -271, -271, 356, 357, 359, -271, -271, -271, -173, - 160, -271, -271, -271, -91, -45, -271, -271, -271, -271, + -271, -271, -271, 279, 298, 299, -271, -271, -271, -155, + 101, -271, -271, -271, -92, -104, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - 190, -271, -270, -267, -261, -271, -271, -271, -271, -271, - -88, -18, -70, -68, -271, -271, 14, -46, -271, -11, - 182, -271, -271, 270, -271, -271, -271, 279, 304, 329, - 375, -271, -271, -271, 0, 7, -271, -15, -271, -271, - 179, -271, -271 + 200, -271, -270, -269, -264, -271, -271, -271, -271, -271, + -137, -11, -70, -68, -271, -271, -121, -46, -271, 165, + 223, -271, -271, 257, -271, -271, -271, 290, 297, 349, + 383, -271, -271, -271, -271, 0, 7, -271, -17, -271, + -271, 118, -271, -271 }; const short parser::yydefgoto_[] = { - 0, 8, 9, 10, 11, 12, 13, 14, 15, 207, - 208, 266, 209, 210, 211, 336, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 105, 397, 236, 237, 238, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 32, 106, 183, 68, 69, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 209, + 210, 268, 211, 212, 213, 338, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 106, 399, 238, 239, 240, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 32, 107, 185, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 180, 83, 84, 85, 86, 87, 88, - 89, 90, 91 + 80, 81, 82, 83, 182, 84, 85, 86, 87, 88, + 89, 90, 91, 92 }; const short parser::yytable_[] = { - 16, 107, 144, 136, 337, 137, 31, 338, 26, 16, - 19, 20, 265, 339, 30, 269, 377, 272, 21, 6, - 1, 2, 3, 4, 5, 270, 33, 6, 95, 22, - 35, 36, 28, 38, 27, 96, 99, 6, 42, 43, - 44, 45, 97, 100, 378, 178, 204, 92, 108, 17, - 18, 35, 36, 29, 38, 239, 6, 107, 6, 42, - 43, 44, 45, 111, 112, -197, -197, 204, -197, 17, - 53, 101, -197, 138, 93, 205, 206, 140, 7, 94, - 139, -197, -189, -189, -197, -189, 6, 17, 53, -189, - 131, 132, 133, 330, 145, 98, 179, 239, -189, 262, - 113, -189, 239, -210, 156, 277, 142, 7, 17, 53, - 141, 30, -190, -190, 56, -190, 143, 289, 289, -190, - 146, 239, -197, -197, 149, 240, -191, -191, -190, -191, - 319, -190, 241, -191, 147, 156, 17, 53, 148, -189, - -189, 184, -191, 248, 150, -191, 337, 322, 251, 338, - 139, 254, 156, 371, 182, 339, 151, 380, 156, 152, - 381, 250, 156, 387, 253, 156, 389, 240, 156, -190, - -190, 156, 240, 136, 241, 137, 156, 413, 239, 241, - 278, 261, 156, -191, -191, 248, 289, 290, 290, 157, - 248, 240, 139, 140, 241, 241, 426, 139, 241, 427, - 393, 156, 395, 428, 156, 248, 248, 181, 156, 248, - 263, 268, 139, 139, 271, 273, 139, 57, 274, 275, - 276, 136, 136, 137, 137, 280, -192, -192, 286, -192, - 287, 116, 117, -192, 281, 282, 102, 285, 326, 109, - 110, 429, -192, 138, 432, -192, 295, 288, 240, 296, - 139, 297, 332, 320, 298, 241, 290, 129, 130, 131, - 132, 133, 299, 241, 442, 443, 248, 323, 334, 343, - 136, 112, 137, 139, 248, 341, 349, 328, 344, 350, - 351, 139, 352, -192, -192, 239, 179, 239, 400, 364, - 366, 138, 138, 155, 368, 370, 372, 374, 139, 139, - 346, 347, 376, 386, 388, 158, 159, 160, 161, 162, + 16, 108, 146, 138, 31, 139, 339, 340, 241, 16, + 19, 20, 341, 1, 2, 3, 4, 5, 94, 271, + 22, 184, 21, 95, 379, 6, 33, 6, 252, 272, + 30, 255, 267, 26, 96, 97, 100, 274, 133, 134, + 135, 28, 98, 101, 35, 36, 180, 38, 109, 6, + 241, 6, 380, 6, 29, 241, 264, 102, 108, 27, + 136, 158, 99, 306, 93, 17, 18, 321, 307, 308, + 291, 291, 158, 140, 241, 17, 53, -212, 7, 143, + 141, 145, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 324, 373, 147, 115, 181, 158, 158, + 7, 17, 53, 17, 53, 382, 144, 383, 35, 36, + 158, 38, 158, 332, 279, 6, 42, 43, 44, 45, + 30, 148, 389, 56, 206, 391, 149, 158, 152, 151, + 158, 241, 207, 208, 242, 415, 428, 429, 150, 291, + 158, 158, 158, 186, 330, 250, 430, 153, 339, 340, + 253, 158, 141, 256, 341, -190, -190, 112, -190, 154, + 113, 114, -190, 158, 159, 17, 53, 348, 349, 142, + 183, -190, 265, 270, -190, 138, 242, 139, 273, 275, + 280, 242, 276, 263, 277, 278, 282, 250, 334, 288, + 283, 284, 250, 287, 141, 289, 292, 292, 290, 141, + 242, 367, 118, 119, 369, 322, 297, 250, 250, 298, + 299, 250, -190, -190, 141, 141, 300, 301, 141, 325, + 395, 328, 397, 138, 138, 139, 139, 57, 131, 132, + 133, 134, 135, 131, 132, 133, 134, 135, 241, 336, + 241, 114, 345, 346, 351, 140, 103, 352, 353, 110, + 111, 394, 141, 354, 181, 366, 368, 242, 372, 370, + 376, 431, 388, 416, 434, 292, 374, 412, 250, 413, + 390, 414, 138, 378, 139, 141, 250, 343, 392, 241, + 420, 291, 241, 141, 444, 445, 403, 404, 23, 402, + 418, 421, 422, 140, 140, 424, 426, 432, 436, 437, + 141, 141, 241, 241, 157, 438, 439, 24, 25, 441, + 243, 442, 296, 443, 433, 281, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 242, 239, 390, 289, 239, - 401, 402, 414, 416, 365, 418, 249, 367, 419, 252, - 138, 434, 255, 420, 256, 422, 258, 139, 424, 239, - 239, 430, 435, 436, 437, 240, 439, 240, 440, 421, - 441, 423, 241, 425, 241, 23, 24, 242, 25, 294, - 0, 431, 242, 248, 279, 248, 267, 0, 399, 0, - 139, 0, 139, 0, 392, 0, 0, 242, 242, 284, - 0, 242, 0, 0, 0, 0, 240, 0, 290, 240, - 410, 0, 411, 241, 412, 241, 241, 129, 130, 131, - 132, 133, 0, 243, 248, 0, 248, 248, 0, 240, - 240, 139, 244, 139, 139, 0, 241, 241, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 248, 248, 0, - 0, 0, 0, 0, 139, 139, 0, 245, 242, 327, - 0, 0, 0, 0, 0, 243, 242, 0, 0, 0, - 243, 333, 0, 335, 244, 0, 342, 35, 36, 244, - 38, 0, 246, 0, 6, 291, 292, 0, 348, 243, - 0, 0, 0, 134, 244, 244, 135, 0, 244, 245, - 0, 0, 0, 0, 245, 0, 0, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 0, 245, - 245, 0, 0, 245, 246, 369, 0, 0, 247, 246, - 0, 0, 0, 0, 17, 53, 0, 0, 0, 0, - -193, -193, 0, -193, 246, 246, 243, -193, 246, 382, - 383, 384, 385, 0, 340, 244, -193, 0, 0, -193, - 0, 0, 0, 244, 0, 242, 0, 242, 0, 0, - 247, 0, 0, 0, 394, 247, 396, 398, 0, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 247, 247, 0, 0, 247, 0, 0, -193, -193, 0, - 35, 36, 0, 38, 0, 246, 242, 6, 242, 242, - 0, 0, 0, 246, 0, 0, 134, 0, 433, 304, - 0, 0, 0, 0, 305, 306, 0, 0, 0, 242, - 242, 0, 0, 0, 0, 0, 0, 0, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, - 0, 247, 0, 243, 0, 243, 0, 17, 53, 247, - 0, 0, 244, 0, 244, -194, -194, 0, -194, 0, - 0, 0, -194, 0, 0, 0, 0, 0, 0, 0, - 0, -194, 0, 0, -194, 0, 0, 245, 0, 245, - 0, 0, 0, 0, 243, 0, 340, 243, 0, 0, - 0, 0, 0, 244, 0, 244, 244, 0, 0, 0, - 34, 0, 246, 0, 246, 0, 0, 243, 243, 0, - 0, 0, -194, -194, 0, 0, 244, 244, 245, 0, - 245, 245, 0, 0, 35, 36, 37, 38, 39, 40, - 41, 6, 42, 43, 44, 45, 46, 0, 0, 0, - 47, 245, 245, 246, 48, 246, 246, 0, 247, 0, - 247, 0, -195, -195, 0, -195, 0, 0, 0, -195, - 49, 50, 0, 0, 0, 0, 246, 246, -195, 0, - 0, -195, 0, 0, 0, 0, 0, 51, 0, 0, - 52, 17, 53, 30, 54, 55, 56, 0, 0, 247, - 0, 247, 247, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 0, 0, 0, 0, 0, -195, - -195, 186, 247, 247, 187, 188, 189, 0, 190, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 35, 36, 0, 38, 0, 0, 0, 6, - 42, 43, 44, 45, 0, 0, 143, 203, 204, 0, - 0, 0, 0, 0, 0, 185, 205, 206, 0, 0, - 0, 0, 0, 186, 0, 0, 187, 188, 189, 0, - 190, 191, 192, 193, 0, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 35, 36, 0, 38, 0, 17, - 53, 6, 42, 43, 44, 45, 0, 0, 143, 293, - 204, 0, 0, 0, 0, 0, 0, 0, 205, 206, - 0, 0, 0, 0, 0, 0, -196, -196, 0, -196, - 0, 0, 0, -196, 0, 0, 0, 0, 0, 0, - 0, 0, -196, 264, 0, -196, 0, 0, 0, 0, - 186, 17, 53, 187, 188, 189, 0, 190, 191, 192, - 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 35, 36, 0, 38, 0, 0, 0, 6, 42, - 43, 44, 45, -196, -196, 143, 0, 204, 0, 0, - 0, 0, 0, 0, 0, 205, 206, 0, 0, 0, - 0, 0, 0, 35, 36, 0, 38, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 134, - 329, 0, 304, 0, 0, 0, 0, 186, 17, 53, - 187, 188, 189, 0, 190, 191, 192, 193, 0, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 35, 36, + 173, 174, 175, 176, 177, 178, 179, 0, 0, 0, + 0, 0, 140, 0, 0, 0, 0, 0, 251, 141, + 0, 254, 243, 0, 257, 0, 258, 243, 260, 0, + 0, 423, 0, 425, 242, 427, 242, 0, 244, 0, + 0, 0, 243, 243, 0, 250, 243, 250, 0, 0, + 401, 0, 141, 0, 141, 0, 0, 0, 269, 0, + 0, 0, 0, -191, -191, 0, -191, 0, 0, 0, + -191, 286, 245, 0, 0, 242, 0, 292, 242, -191, + 244, 0, -191, 0, 0, 244, 250, 0, 250, 250, + 0, 0, 0, 141, 0, 141, 141, 0, 242, 242, + 244, 244, 0, 243, 244, 246, 0, 0, 0, 250, + 250, 243, 247, 0, 245, 0, 141, 141, 0, 245, + -191, -191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 329, 0, 0, 293, 294, 0, 0, 245, 0, + 0, 0, 0, 335, 0, 337, 0, 246, 344, 0, + 0, 0, 246, 0, 247, 0, 0, 0, 0, 247, + 350, 244, 0, 0, 248, 0, 0, 246, 246, 244, + 0, 246, 0, 0, 247, 247, 0, 0, 247, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 0, 0, 0, 0, 0, 245, 0, 371, 249, 0, + 0, -198, -198, 342, -198, 0, 248, 0, -198, 0, + 243, 248, 243, 142, 0, 0, 0, -198, 0, 0, + -198, 384, 385, 386, 387, 0, 248, 248, 246, 0, + 248, -192, -192, 0, -192, 247, 246, 0, -192, 0, + 249, 0, 0, 247, 0, 249, 396, -192, 398, 400, + -192, 243, 0, 243, 243, 0, 0, 0, -198, -198, + 249, 249, -193, -193, 249, -193, 0, 0, 244, -193, + 244, 0, 0, 0, 243, 243, 0, 0, -193, 0, + 0, -193, 0, 0, 0, 0, 0, 248, -192, -192, + 435, 35, 36, 0, 38, 248, 0, 0, 6, 0, + 0, 0, 245, 0, 245, 0, 0, 136, 0, 244, + 137, 244, 244, 0, 0, 0, 0, 0, 0, -193, + -193, 249, 0, 0, 0, 0, 0, 0, 34, 249, + 0, 0, 244, 244, 0, 246, 0, 246, 0, 0, + 0, 0, 247, 245, 247, 342, 245, 0, 17, 53, + 0, 0, 35, 36, 37, 38, 39, 40, 41, 6, + 42, 43, 44, 45, 46, 0, 245, 245, 104, 105, + 0, 0, 48, 0, 0, 0, 246, 0, 246, 246, + 0, 0, 0, 247, 0, 247, 247, 0, 49, 50, + 0, 0, 0, 0, 248, 0, 248, 0, 0, 246, + 246, 0, 0, 0, 0, 51, 247, 247, 52, 17, + 53, 30, 54, 55, 56, 0, 35, 36, 0, 38, + 0, 0, 0, 6, 42, 43, 44, 45, 249, 0, + 249, 0, 206, 0, 0, 248, 0, 248, 248, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, + -194, -194, 0, -194, 0, 0, 0, -194, 0, 249, + 0, 249, 249, 17, 53, 0, -194, 0, 0, -194, + 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, + 0, 188, 249, 249, 189, 190, 191, 0, 192, 193, + 194, 195, 0, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 35, 36, 0, 38, 0, -194, -194, 6, + 42, 43, 44, 45, 0, 0, 145, 205, 206, 0, + 0, 0, 0, 0, 0, 187, 207, 208, 0, 0, + 0, 0, 0, 188, 0, 0, 189, 190, 191, 0, + 192, 193, 194, 195, 0, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 35, 36, 0, 38, 0, 17, + 53, 6, 42, 43, 44, 45, 0, 0, 145, 295, + 206, 0, 0, 0, 0, 0, 0, 0, 207, 208, + 0, 0, 0, 0, 0, 0, -195, -195, 0, -195, + 0, 0, 0, -195, 0, 0, 0, 0, 0, 0, + 0, 0, -195, 266, 0, -195, 0, 0, 0, 0, + 188, 17, 53, 189, 190, 191, 0, 192, 193, 194, + 195, 0, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 35, 36, 0, 38, 0, 0, 0, 6, 42, + 43, 44, 45, -195, -195, 145, 0, 206, 0, 0, + 0, 0, 0, 0, 0, 207, 208, 0, 0, 0, + 0, 0, 0, -196, -196, 0, -196, 0, 0, 0, + -196, 0, 0, 0, 0, 0, 0, 0, 0, -196, + 331, 0, -196, 0, 0, 0, 0, 188, 17, 53, + 189, 190, 191, 0, 192, 193, 194, 195, 0, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 35, 36, 34, 38, 0, 0, 0, 6, 42, 43, 44, 45, - 17, 53, 143, 0, 204, 0, 0, 0, 0, 0, - 0, 0, 205, 206, 35, 36, 37, 38, 39, 40, - 41, 6, 42, 43, 44, 45, 46, 325, 0, 0, - 103, 104, 115, 0, 48, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 17, 53, 0, 0, 0, - 49, 50, 0, 34, 0, 0, 0, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 0, 51, 0, 0, + -196, -196, 145, 0, 206, 0, 0, 0, 0, 0, + 0, 0, 207, 208, 35, 36, 37, 38, 39, 40, + 41, 6, 42, 43, 44, 45, 46, 0, 0, 0, + 47, 0, 0, 0, 48, 0, 285, 0, 0, 0, + 0, -197, -197, 0, -197, 17, 53, 0, -197, 0, + 49, 50, 0, 34, 0, 0, 0, -197, 0, 0, + -197, 0, 0, 0, 0, 0, 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, 45, 46, - 0, 0, 0, 47, 116, 117, 0, 48, 0, 283, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 49, 50, 0, 34, 0, 0, 0, - 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 47, 0, 0, 0, 48, -197, -197, + 0, 35, 36, 0, 38, 0, 0, 0, 6, 0, + 0, 0, 0, 49, 50, 0, 34, 136, 0, 0, + 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, - 44, 45, 46, 0, 0, 0, 103, 0, 0, 0, - 48, 0, 0, 0, 300, 301, 0, 302, 303, 0, + 44, 45, 46, 0, 0, 0, 104, 0, 17, 53, + 48, 0, 0, 0, 302, 303, 0, 304, 305, 0, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 36, 0, 38, 0, 0, 51, 6, 0, 52, 17, 53, 30, - 54, 55, 56, 134, 0, 0, 304, 0, 0, 0, - 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 0, 0, 0, 0, - 0, 0, 0, 186, 17, 53, 187, 188, 189, 0, - 190, 191, 192, 193, 0, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 35, 36, 0, 38, 0, 0, - 0, 6, 42, 43, 44, 45, 0, 0, 143, 0, - 204, 0, 0, 0, 0, 0, 0, 153, 205, 206, - 0, 0, 154, 0, 0, 0, 0, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 17, 53, 126, 127, 128, 129, 130, 131, 132, - 133, 404, 0, 0, 0, 0, 405, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 406, 0, 0, 0, 0, - 407, 0, 0, 0, 0, 115, 0, 0, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 126, 127, 128, 129, 130, 131, 132, 133, 408, - 0, 0, 0, 0, 409, 0, 0, 0, 0, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 373, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 115, 0, 0, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 375, 0, 126, - 127, 128, 129, 130, 131, 132, 133, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 379, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 391, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 115, 0, 0, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, - 0, 126, 127, 128, 129, 130, 131, 132, 133, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 415, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 115, 0, 0, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 417, 0, 126, - 127, 128, 129, 130, 131, 132, 133, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 438, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 257, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 260, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 318, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 321, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 324, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 259, 0, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 114, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 331, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 345, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 115, 0, 0, 116, 117, + 54, 55, 56, 136, 0, 0, 306, 0, 0, 0, + 0, 307, 308, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, + 0, 0, 0, 188, 17, 53, 189, 190, 191, 0, + 192, 193, 194, 195, 0, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 35, 36, 0, 38, 0, 0, + 0, 6, 42, 43, 44, 45, 0, 0, 145, 0, + 206, 0, 0, 0, 0, 0, 0, 155, 207, 208, + 0, 0, 156, 0, 0, 0, 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, - 0, 126, 127, 128, 129, 130, 131, 132, 133, 116, - 117, 0, 119, 120, 121, 122, 123, 124, 125, 116, - 117, 0, 0, 120, 121, 122, 123, 124, 125, 0, - 0, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 0, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 116, 117, 0, 0, 120, 121, 122, 123, 124, 125, - 116, 117, 0, 0, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 127, 128, 129, 130, 131, 132, - 133, 0, 0, 0, 127, 0, 129, 130, 131, 132, - 133, 116, 117, 0, 0, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, - 132, 133 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 53, 128, 129, 130, 131, 132, 133, 134, + 135, 406, 0, 0, 0, 0, 407, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 408, 0, 0, 0, 0, + 409, 0, 0, 0, 0, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 410, + 0, 0, 0, 0, 411, 0, 0, 0, 0, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 375, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 377, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 381, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 393, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 419, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 440, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 259, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 262, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 320, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 323, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 326, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 327, 0, 0, 0, 0, + 117, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 261, 0, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 116, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 333, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 347, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 117, 0, 0, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 0, 0, 0, 0, 0, + 128, 129, 130, 131, 132, 133, 134, 135, 118, 119, + 0, 121, 122, 123, 124, 125, 126, 127, 118, 119, + 0, 0, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 129, 130, 131, 132, 133, 134, 135, + 0, 0, 0, 129, 0, 131, 132, 133, 134, 135, + 118, 119, 0, 0, 122, 123, 124, 125, 126, 127, + 118, 119, 0, 0, 0, 0, 124, 125, 126, 127, + 0, 0, 0, 0, 0, 0, 131, 132, 133, 134, + 135, 0, 0, 0, 0, 0, 131, 132, 133, 134, + 135 }; const short parser::yycheck_[] = { - 0, 47, 93, 73, 274, 73, 21, 274, 52, 9, - 3, 4, 185, 274, 99, 52, 30, 190, 52, 47, - 11, 12, 13, 14, 15, 62, 26, 47, 56, 0, - 40, 41, 62, 43, 78, 35, 36, 47, 48, 49, - 50, 51, 35, 36, 58, 47, 56, 53, 48, 97, - 98, 40, 41, 62, 43, 143, 47, 103, 47, 48, - 49, 50, 51, 101, 102, 40, 41, 56, 43, 97, - 98, 56, 47, 73, 53, 64, 65, 52, 98, 58, - 73, 56, 40, 41, 59, 43, 47, 97, 98, 47, - 94, 95, 96, 266, 94, 56, 98, 185, 56, 53, - 98, 59, 190, 60, 58, 93, 62, 98, 97, 98, - 60, 99, 40, 41, 102, 43, 54, 205, 206, 47, - 56, 209, 97, 98, 56, 143, 40, 41, 56, 43, - 53, 59, 143, 47, 52, 58, 97, 98, 60, 97, - 98, 141, 56, 143, 52, 59, 416, 53, 148, 416, - 143, 151, 58, 53, 140, 416, 60, 53, 58, 56, - 53, 147, 58, 53, 150, 58, 53, 185, 58, 97, - 98, 58, 190, 243, 185, 243, 58, 53, 266, 190, - 195, 181, 58, 97, 98, 185, 274, 205, 206, 57, - 190, 209, 185, 52, 205, 206, 53, 190, 209, 53, - 373, 58, 375, 53, 58, 205, 206, 60, 58, 209, - 52, 62, 205, 206, 52, 52, 209, 27, 52, 52, - 52, 291, 292, 291, 292, 61, 40, 41, 52, 43, - 52, 66, 67, 47, 62, 62, 46, 62, 57, 49, - 50, 414, 56, 243, 417, 59, 62, 56, 266, 62, - 243, 62, 53, 52, 62, 266, 274, 92, 93, 94, - 95, 96, 62, 274, 437, 438, 266, 52, 27, 61, - 340, 102, 340, 266, 274, 275, 52, 263, 61, 52, - 52, 274, 52, 97, 98, 373, 98, 375, 379, 57, - 57, 291, 292, 103, 57, 52, 62, 52, 291, 292, - 286, 287, 62, 52, 52, 115, 116, 117, 118, 119, + 0, 47, 94, 73, 21, 73, 276, 276, 145, 9, + 3, 4, 276, 11, 12, 13, 14, 15, 53, 52, + 0, 142, 52, 58, 30, 47, 26, 47, 149, 62, + 99, 152, 187, 52, 56, 35, 36, 192, 94, 95, + 96, 62, 35, 36, 40, 41, 47, 43, 48, 47, + 187, 47, 58, 47, 62, 192, 53, 56, 104, 78, + 56, 58, 56, 59, 53, 97, 98, 53, 64, 65, + 207, 208, 58, 73, 211, 97, 98, 60, 98, 60, + 73, 54, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 53, 53, 95, 98, 98, 58, 58, + 98, 97, 98, 97, 98, 53, 62, 53, 40, 41, + 58, 43, 58, 268, 93, 47, 48, 49, 50, 51, + 99, 56, 53, 102, 56, 53, 52, 58, 52, 56, + 58, 268, 64, 65, 145, 53, 53, 53, 60, 276, + 58, 58, 58, 143, 265, 145, 53, 60, 418, 418, + 150, 58, 145, 153, 418, 40, 41, 98, 43, 56, + 101, 102, 47, 58, 57, 97, 98, 288, 289, 52, + 60, 56, 52, 62, 59, 245, 187, 245, 52, 52, + 197, 192, 52, 183, 52, 52, 61, 187, 53, 52, + 62, 62, 192, 62, 187, 52, 207, 208, 56, 192, + 211, 322, 66, 67, 325, 52, 62, 207, 208, 62, + 62, 211, 97, 98, 207, 208, 62, 62, 211, 52, + 375, 57, 377, 293, 294, 293, 294, 27, 92, 93, + 94, 95, 96, 92, 93, 94, 95, 96, 375, 27, + 377, 102, 61, 61, 52, 245, 46, 52, 52, 49, + 50, 372, 245, 52, 98, 57, 57, 268, 52, 57, + 52, 416, 52, 25, 419, 276, 62, 388, 268, 390, + 52, 392, 342, 62, 342, 268, 276, 277, 52, 416, + 30, 418, 419, 276, 439, 440, 62, 62, 9, 381, + 62, 62, 62, 293, 294, 62, 62, 62, 53, 53, + 293, 294, 439, 440, 104, 53, 53, 9, 9, 62, + 145, 62, 211, 62, 418, 197, -1, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 143, 414, 52, 416, 417, - 62, 62, 25, 62, 320, 30, 146, 323, 62, 149, - 340, 53, 152, 62, 154, 62, 156, 340, 62, 437, - 438, 62, 53, 53, 53, 373, 62, 375, 62, 405, - 62, 407, 373, 409, 375, 9, 9, 185, 9, 209, - -1, 416, 190, 373, 195, 375, 186, -1, 378, -1, - 373, -1, 375, -1, 370, -1, -1, 205, 206, 199, - -1, 209, -1, -1, -1, -1, 414, -1, 416, 417, - 386, -1, 388, 414, 390, 416, 417, 92, 93, 94, - 95, 96, -1, 143, 414, -1, 416, 417, -1, 437, - 438, 414, 143, 416, 417, -1, 437, 438, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 437, 438, -1, - -1, -1, -1, -1, 437, 438, -1, 143, 266, 259, - -1, -1, -1, -1, -1, 185, 274, -1, -1, -1, - 190, 271, -1, 273, 185, -1, 276, 40, 41, 190, - 43, -1, 143, -1, 47, 205, 206, -1, 288, 209, - -1, -1, -1, 56, 205, 206, 59, -1, 209, 185, - -1, -1, -1, -1, 190, -1, -1, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, -1, 205, - 206, -1, -1, 209, 185, 325, -1, -1, 143, 190, - -1, -1, -1, -1, 97, 98, -1, -1, -1, -1, - 40, 41, -1, 43, 205, 206, 266, 47, 209, 349, - 350, 351, 352, -1, 274, 266, 56, -1, -1, 59, - -1, -1, -1, 274, -1, 373, -1, 375, -1, -1, - 185, -1, -1, -1, 374, 190, 376, 377, -1, -1, - 266, -1, -1, -1, -1, -1, -1, -1, 274, -1, - 205, 206, -1, -1, 209, -1, -1, 97, 98, -1, - 40, 41, -1, 43, -1, 266, 414, 47, 416, 417, - -1, -1, -1, 274, -1, -1, 56, -1, 418, 59, - -1, -1, -1, -1, 64, 65, -1, -1, -1, 437, - 438, -1, -1, -1, -1, -1, -1, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, - -1, 266, -1, 373, -1, 375, -1, 97, 98, 274, - -1, -1, 373, -1, 375, 40, 41, -1, 43, -1, - -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, 56, -1, -1, 59, -1, -1, 373, -1, 375, - -1, -1, -1, -1, 414, -1, 416, 417, -1, -1, - -1, -1, -1, 414, -1, 416, 417, -1, -1, -1, - 16, -1, 373, -1, 375, -1, -1, 437, 438, -1, - -1, -1, 97, 98, -1, -1, 437, 438, 414, -1, - 416, 417, -1, -1, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, -1, -1, -1, - 56, 437, 438, 414, 60, 416, 417, -1, 373, -1, - 375, -1, 40, 41, -1, 43, -1, -1, -1, 47, - 76, 77, -1, -1, -1, -1, 437, 438, 56, -1, - -1, 59, -1, -1, -1, -1, -1, 93, -1, -1, - 96, 97, 98, 99, 100, 101, 102, -1, -1, 414, - -1, 416, 417, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 11, -1, -1, -1, -1, -1, 97, - 98, 19, 437, 438, 22, 23, 24, -1, 26, 27, + 130, 131, 132, 133, 134, 135, 136, -1, -1, -1, + -1, -1, 342, -1, -1, -1, -1, -1, 148, 342, + -1, 151, 187, -1, 154, -1, 156, 192, 158, -1, + -1, 407, -1, 409, 375, 411, 377, -1, 145, -1, + -1, -1, 207, 208, -1, 375, 211, 377, -1, -1, + 380, -1, 375, -1, 377, -1, -1, -1, 188, -1, + -1, -1, -1, 40, 41, -1, 43, -1, -1, -1, + 47, 201, 145, -1, -1, 416, -1, 418, 419, 56, + 187, -1, 59, -1, -1, 192, 416, -1, 418, 419, + -1, -1, -1, 416, -1, 418, 419, -1, 439, 440, + 207, 208, -1, 268, 211, 145, -1, -1, -1, 439, + 440, 276, 145, -1, 187, -1, 439, 440, -1, 192, + 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 261, -1, -1, 207, 208, -1, -1, 211, -1, + -1, -1, -1, 273, -1, 275, -1, 187, 278, -1, + -1, -1, 192, -1, 187, -1, -1, -1, -1, 192, + 290, 268, -1, -1, 145, -1, -1, 207, 208, 276, + -1, 211, -1, -1, 207, 208, -1, -1, 211, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, -1, -1, -1, -1, 268, -1, 327, 145, -1, + -1, 40, 41, 276, 43, -1, 187, -1, 47, -1, + 375, 192, 377, 52, -1, -1, -1, 56, -1, -1, + 59, 351, 352, 353, 354, -1, 207, 208, 268, -1, + 211, 40, 41, -1, 43, 268, 276, -1, 47, -1, + 187, -1, -1, 276, -1, 192, 376, 56, 378, 379, + 59, 416, -1, 418, 419, -1, -1, -1, 97, 98, + 207, 208, 40, 41, 211, 43, -1, -1, 375, 47, + 377, -1, -1, -1, 439, 440, -1, -1, 56, -1, + -1, 59, -1, -1, -1, -1, -1, 268, 97, 98, + 420, 40, 41, -1, 43, 276, -1, -1, 47, -1, + -1, -1, 375, -1, 377, -1, -1, 56, -1, 416, + 59, 418, 419, -1, -1, -1, -1, -1, -1, 97, + 98, 268, -1, -1, -1, -1, -1, -1, 16, 276, + -1, -1, 439, 440, -1, 375, -1, 377, -1, -1, + -1, -1, 375, 416, 377, 418, 419, -1, 97, 98, + -1, -1, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, -1, 439, 440, 56, 57, + -1, -1, 60, -1, -1, -1, 416, -1, 418, 419, + -1, -1, -1, 416, -1, 418, 419, -1, 76, 77, + -1, -1, -1, -1, 375, -1, 377, -1, -1, 439, + 440, -1, -1, -1, -1, 93, 439, 440, 96, 97, + 98, 99, 100, 101, 102, -1, 40, 41, -1, 43, + -1, -1, -1, 47, 48, 49, 50, 51, 375, -1, + 377, -1, 56, -1, -1, 416, -1, 418, 419, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 439, 440, + 40, 41, -1, 43, -1, -1, -1, 47, -1, 416, + -1, 418, 419, 97, 98, -1, 56, -1, -1, 59, + -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, + -1, 19, 439, 440, 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, -1, 43, -1, -1, -1, 47, + 38, 39, 40, 41, -1, 43, -1, 97, 98, 47, 48, 49, 50, 51, -1, -1, 54, 55, 56, -1, -1, -1, -1, -1, -1, 11, 64, 65, -1, -1, -1, -1, -1, 19, -1, -1, 22, 23, 24, -1, @@ -4257,20 +4281,20 @@ namespace xsk { namespace gsc { namespace h1 { 16, 43, -1, -1, -1, 47, 48, 49, 50, 51, 97, 98, 54, -1, 56, -1, -1, -1, -1, -1, -1, -1, 64, 65, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 58, -1, -1, - 56, 57, 63, -1, 60, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 97, 98, -1, -1, -1, - 76, 77, -1, 16, -1, -1, -1, -1, 89, 90, - 91, 92, 93, 94, 95, 96, -1, 93, -1, -1, + 46, 47, 48, 49, 50, 51, 52, -1, -1, -1, + 56, -1, -1, -1, 60, -1, 62, -1, -1, -1, + -1, 40, 41, -1, 43, 97, 98, -1, 47, -1, + 76, 77, -1, 16, -1, -1, -1, 56, -1, -1, + 59, -1, -1, -1, -1, -1, -1, 93, -1, -1, 96, 97, 98, 99, 100, 101, 102, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - -1, -1, -1, 56, 66, 67, -1, 60, -1, 62, - 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 76, 77, -1, 16, -1, -1, -1, - 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, 56, -1, -1, -1, 60, 97, 98, + -1, 40, 41, -1, 43, -1, -1, -1, 47, -1, + -1, -1, -1, 76, 77, -1, 16, 56, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, 96, 97, 98, 99, 100, 101, 102, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, -1, -1, -1, 56, -1, -1, -1, + 50, 51, 52, -1, -1, -1, 56, -1, 97, 98, 60, -1, -1, -1, 17, 18, -1, 20, 21, -1, -1, -1, -1, -1, -1, -1, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, @@ -4348,84 +4372,89 @@ namespace xsk { namespace gsc { namespace h1 { -1, 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, - 92, 93, 94, 95, 96, 61, -1, 63, -1, -1, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 92, 93, 94, 95, 96, 58, -1, -1, -1, -1, + 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 89, 90, 91, 92, + 93, 94, 95, 96, 61, -1, 63, -1, -1, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 89, 90, 91, 92, 93, 94, 95, - 96, 62, 63, -1, -1, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, - 91, 92, 93, 94, 95, 96, 62, 63, -1, -1, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + 62, 63, -1, -1, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, + 92, 93, 94, 95, 96, 62, 63, -1, -1, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 89, 90, 91, 92, 93, 94, 95, - 96, 62, 63, -1, -1, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 63, -1, -1, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 89, 90, - 91, 92, 93, 94, 95, 96, -1, -1, -1, -1, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + 62, 63, -1, -1, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 63, -1, -1, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 89, 90, 91, + 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, + 89, 90, 91, 92, 93, 94, 95, 96, 66, 67, + -1, 69, 70, 71, 72, 73, 74, 75, 66, 67, + -1, -1, 70, 71, 72, 73, 74, 75, -1, -1, + -1, 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, 66, - 67, -1, 69, 70, 71, 72, 73, 74, 75, 66, + 67, -1, -1, 70, 71, 72, 73, 74, 75, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, -1, - -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, - -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + -1, -1, -1, 90, 91, 92, 93, 94, 95, 96, + -1, -1, -1, 90, -1, 92, 93, 94, 95, 96, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, - 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, - -1, -1, -1, -1, 90, 91, 92, 93, 94, 95, - 96, -1, -1, -1, 90, -1, 92, 93, 94, 95, - 96, 66, 67, -1, -1, 70, 71, 72, 73, 74, - 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 92, 93, 94, - 95, 96 + 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, + -1, -1, -1, -1, -1, -1, 92, 93, 94, 95, + 96, -1, -1, -1, -1, -1, 92, 93, 94, 95, + 96 }; const unsigned char parser::yystos_[] = { 0, 11, 12, 13, 14, 15, 47, 98, 114, 115, - 116, 117, 118, 119, 120, 121, 187, 97, 98, 188, - 188, 52, 0, 116, 117, 118, 52, 78, 62, 62, - 99, 190, 168, 187, 16, 40, 41, 42, 43, 44, + 116, 117, 118, 119, 120, 121, 188, 97, 98, 189, + 189, 52, 0, 116, 117, 118, 52, 78, 62, 62, + 99, 191, 168, 188, 16, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 56, 60, 76, 77, 93, 96, 98, 100, 101, 102, 153, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 53, 53, 58, 56, 187, 188, 56, 187, - 188, 56, 153, 56, 57, 153, 169, 170, 187, 153, - 153, 101, 102, 98, 62, 63, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 89, 90, 91, 92, - 93, 94, 95, 96, 56, 59, 165, 166, 187, 188, - 52, 60, 62, 54, 127, 187, 56, 52, 60, 56, - 52, 60, 56, 53, 58, 153, 58, 57, 153, 153, + 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 53, 53, 58, 56, 188, 189, 56, + 188, 189, 56, 153, 56, 57, 153, 169, 170, 188, + 153, 153, 98, 101, 102, 98, 62, 63, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 89, 90, + 91, 92, 93, 94, 95, 96, 56, 59, 165, 166, + 188, 189, 52, 60, 62, 54, 127, 188, 56, 52, + 60, 56, 52, 60, 56, 53, 58, 153, 58, 57, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 47, 98, - 186, 60, 169, 170, 187, 11, 19, 22, 23, 24, - 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 55, 56, 64, 65, 122, 123, 125, - 126, 127, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 155, 156, 157, 163, - 164, 172, 173, 176, 180, 181, 182, 183, 187, 153, - 169, 187, 153, 169, 187, 153, 153, 57, 153, 61, - 57, 187, 53, 52, 12, 122, 124, 153, 62, 52, - 62, 52, 122, 52, 52, 52, 52, 93, 190, 193, - 61, 62, 62, 62, 153, 62, 52, 52, 56, 163, - 164, 176, 176, 55, 123, 62, 62, 62, 62, 62, - 17, 18, 20, 21, 59, 64, 65, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 57, 53, - 52, 57, 53, 52, 57, 58, 57, 153, 169, 12, - 122, 62, 53, 153, 27, 153, 128, 155, 156, 157, - 176, 187, 153, 61, 61, 62, 169, 169, 153, 52, - 52, 52, 52, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 57, 169, 57, 169, 57, 153, - 52, 53, 62, 53, 52, 53, 62, 30, 58, 53, - 53, 53, 153, 153, 153, 153, 52, 53, 52, 53, - 52, 53, 169, 122, 153, 122, 153, 154, 153, 187, - 127, 62, 62, 53, 53, 58, 53, 58, 53, 58, - 169, 169, 169, 53, 25, 53, 62, 53, 30, 62, - 62, 170, 62, 170, 62, 170, 53, 53, 53, 122, - 62, 128, 122, 153, 53, 53, 53, 53, 53, 62, - 62, 62, 122, 122 + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 47, 98, 187, 60, 169, 170, 188, 11, 19, 22, + 23, 24, 26, 27, 28, 29, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 55, 56, 64, 65, 122, + 123, 125, 126, 127, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 155, 156, + 157, 163, 164, 172, 173, 176, 180, 181, 182, 183, + 188, 153, 169, 188, 153, 169, 188, 153, 153, 57, + 153, 61, 57, 188, 53, 52, 12, 122, 124, 153, + 62, 52, 62, 52, 122, 52, 52, 52, 52, 93, + 191, 194, 61, 62, 62, 62, 153, 62, 52, 52, + 56, 163, 164, 176, 176, 55, 123, 62, 62, 62, + 62, 62, 17, 18, 20, 21, 59, 64, 65, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 57, 53, 52, 57, 53, 52, 57, 58, 57, 153, + 169, 12, 122, 62, 53, 153, 27, 153, 128, 155, + 156, 157, 176, 188, 153, 61, 61, 62, 169, 169, + 153, 52, 52, 52, 52, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 57, 169, 57, 169, + 57, 153, 52, 53, 62, 53, 52, 53, 62, 30, + 58, 53, 53, 53, 153, 153, 153, 153, 52, 53, + 52, 53, 52, 53, 169, 122, 153, 122, 153, 154, + 153, 188, 127, 62, 62, 53, 53, 58, 53, 58, + 53, 58, 169, 169, 169, 53, 25, 53, 62, 53, + 30, 62, 62, 170, 62, 170, 62, 170, 53, 53, + 53, 122, 62, 128, 122, 153, 53, 53, 53, 53, + 53, 62, 62, 62, 122, 122 }; const unsigned char @@ -4446,14 +4475,14 @@ namespace xsk { namespace gsc { namespace h1 { 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 161, - 162, 163, 163, 164, 164, 165, 165, 165, 165, 165, - 165, 166, 166, 166, 166, 167, 168, 168, 168, 169, - 169, 170, 170, 171, 171, 172, 173, 174, 175, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 187, - 188, 188, 189, 190, 191, 192, 192, 193, 193, 194, - 195 + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 161, 162, 163, 163, 164, 164, 165, 165, 165, 165, + 165, 165, 166, 166, 166, 166, 167, 168, 168, 168, + 169, 169, 170, 170, 171, 171, 172, 173, 174, 175, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 188, 189, 189, 190, 191, 192, 193, 193, 194, + 194, 195, 196 }; const signed char @@ -4474,14 +4503,14 @@ namespace xsk { namespace gsc { namespace h1 { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 1, 1, 2, 2, 4, 6, 5, 7, 5, - 7, 8, 9, 9, 9, 3, 3, 1, 0, 1, - 0, 3, 1, 2, 3, 4, 3, 3, 3, 1, - 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, 2, 1, 2, 1, 1, - 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 1, 1, 2, 2, 4, 6, 5, 7, + 5, 7, 8, 9, 9, 9, 3, 3, 1, 0, + 1, 0, 3, 1, 2, 3, 4, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 7, 2, 1, 2, + 1, 1, 1 }; @@ -4491,29 +4520,29 @@ namespace xsk { namespace gsc { namespace h1 { const short parser::yyrline_[] = { - 0, 259, 259, 260, 264, 266, 268, 270, 272, 274, - 279, 283, 288, 289, 290, 291, 292, 296, 301, 306, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 339, 340, 344, 346, 351, - 353, 358, 359, 363, 364, 368, 370, 372, 375, 379, - 381, 386, 388, 390, 395, 400, 402, 407, 412, 414, - 419, 421, 426, 431, 433, 438, 443, 448, 453, 458, - 463, 465, 470, 475, 477, 482, 487, 492, 497, 499, - 504, 509, 514, 519, 520, 521, 525, 526, 530, 532, - 534, 536, 538, 540, 542, 544, 546, 548, 550, 555, - 557, 562, 564, 569, 574, 576, 578, 580, 582, 584, - 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, - 606, 608, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 643, - 648, 653, 654, 657, 658, 662, 664, 666, 668, 670, - 672, 677, 679, 681, 683, 688, 693, 695, 698, 702, - 705, 709, 711, 716, 718, 723, 728, 733, 738, 743, - 744, 745, 746, 747, 748, 749, 750, 751, 755, 760, - 765, 770, 775, 780, 785, 790, 795, 800, 805, 807, - 812, 814, 819, 824, 829, 834, 836, 841, 843, 848, - 853 + 0, 260, 260, 261, 265, 267, 269, 271, 273, 275, + 280, 284, 289, 290, 291, 292, 293, 297, 302, 307, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 340, 341, 345, 347, 352, + 354, 359, 360, 364, 365, 369, 371, 373, 376, 380, + 382, 387, 389, 391, 396, 401, 403, 408, 413, 415, + 420, 422, 427, 432, 434, 439, 444, 449, 454, 459, + 464, 466, 471, 476, 478, 483, 488, 493, 498, 500, + 505, 510, 515, 520, 521, 522, 526, 527, 531, 533, + 535, 537, 539, 541, 543, 545, 547, 549, 551, 556, + 558, 563, 565, 570, 575, 577, 579, 581, 583, 585, + 587, 589, 591, 593, 595, 597, 599, 601, 603, 605, + 607, 609, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 645, 650, 655, 656, 659, 660, 664, 666, 668, 670, + 672, 674, 679, 681, 683, 685, 690, 695, 697, 700, + 704, 707, 711, 713, 718, 720, 725, 730, 735, 740, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 757, + 762, 767, 772, 777, 782, 787, 792, 797, 802, 807, + 812, 814, 819, 821, 826, 831, 836, 841, 843, 848, + 850, 855, 860 }; void @@ -4546,9 +4575,9 @@ namespace xsk { namespace gsc { namespace h1 { #line 13 "parser.ypp" } } } // xsk::gsc::h1 -#line 4550 "parser.cpp" +#line 4579 "parser.cpp" -#line 857 "parser.ypp" +#line 864 "parser.ypp" void xsk::gsc::h1::parser::error(const xsk::gsc::location& loc, const std::string& msg) diff --git a/src/h1/xsk/parser.hpp b/src/h1/xsk/parser.hpp index 139436cb..fd955bb3 100644 --- a/src/h1/xsk/parser.hpp +++ b/src/h1/xsk/parser.hpp @@ -447,6 +447,7 @@ namespace xsk { namespace gsc { namespace h1 { // expr_binary // expr_primitive // expr_object + // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -1007,16 +1008,17 @@ namespace xsk { namespace gsc { namespace h1 { S_expr_level = 183, // expr_level S_expr_animation = 184, // expr_animation S_expr_animtree = 185, // expr_animtree - S_expr_identifier_nosize = 186, // expr_identifier_nosize - S_expr_identifier = 187, // expr_identifier - S_expr_path = 188, // expr_path - S_expr_istring = 189, // expr_istring - S_expr_string = 190, // expr_string - S_expr_vector = 191, // expr_vector - S_expr_float = 192, // expr_float - S_expr_integer = 193, // expr_integer - S_expr_false = 194, // expr_false - S_expr_true = 195 // expr_true + S_expr_identifier_neg = 186, // expr_identifier_neg + S_expr_identifier_nosize = 187, // expr_identifier_nosize + S_expr_identifier = 188, // expr_identifier + S_expr_path = 189, // expr_path + S_expr_istring = 190, // expr_istring + S_expr_string = 191, // expr_string + S_expr_vector = 192, // expr_vector + S_expr_float = 193, // expr_float + S_expr_integer = 194, // expr_integer + S_expr_false = 195, // expr_false + S_expr_true = 196 // expr_true }; }; @@ -1083,6 +1085,7 @@ namespace xsk { namespace gsc { namespace h1 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (std::move (that.value)); break; @@ -2355,6 +2358,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.template destroy< ast::expr > (); break; @@ -4813,8 +4817,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 2251, ///< Last index in yytable_. - yynnts_ = 83, ///< Number of nonterminal symbols. + yylast_ = 2310, ///< Last index in yytable_. + yynnts_ = 84, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4871,6 +4875,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (YY_MOVE (that.value)); break; @@ -5189,6 +5194,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (s.value)); break; @@ -5513,7 +5519,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::h1 -#line 5517 "parser.hpp" +#line 5523 "parser.hpp" diff --git a/src/h2/xsk/parser.cpp b/src/h2/xsk/parser.cpp index 43760766..5e769ad0 100644 --- a/src/h2/xsk/parser.cpp +++ b/src/h2/xsk/parser.cpp @@ -245,6 +245,7 @@ namespace xsk { namespace gsc { namespace h2 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.YY_MOVE_OR_COPY< ast::expr > (YY_MOVE (that.value)); break; @@ -547,6 +548,7 @@ namespace xsk { namespace gsc { namespace h2 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (that.value)); break; @@ -849,6 +851,7 @@ namespace xsk { namespace gsc { namespace h2 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (that.value); break; @@ -1150,6 +1153,7 @@ namespace xsk { namespace gsc { namespace h2 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (that.value); break; @@ -1706,6 +1710,7 @@ namespace xsk { namespace gsc { namespace h2 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg yylhs.value.emplace< ast::expr > (); break; @@ -1984,1321 +1989,1333 @@ namespace xsk { namespace gsc { namespace h2 { switch (yyn) { case 2: // root: program -#line 259 "parser.ypp" +#line 260 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1990 "parser.cpp" +#line 1995 "parser.cpp" break; case 3: // root: %empty -#line 260 "parser.ypp" +#line 261 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 1996 "parser.cpp" +#line 2001 "parser.cpp" break; case 4: // program: program inline -#line 265 "parser.ypp" +#line 266 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2002 "parser.cpp" +#line 2007 "parser.cpp" break; case 5: // program: program include -#line 267 "parser.ypp" +#line 268 "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 2008 "parser.cpp" +#line 2013 "parser.cpp" break; case 6: // program: program declaration -#line 269 "parser.ypp" +#line 270 "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 2014 "parser.cpp" +#line 2019 "parser.cpp" break; case 7: // program: inline -#line 271 "parser.ypp" +#line 272 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2020 "parser.cpp" +#line 2025 "parser.cpp" break; case 8: // program: include -#line 273 "parser.ypp" +#line 274 "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 2026 "parser.cpp" +#line 2031 "parser.cpp" break; case 9: // program: declaration -#line 275 "parser.ypp" +#line 276 "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 2032 "parser.cpp" +#line 2037 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" -#line 279 "parser.ypp" +#line 280 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2038 "parser.cpp" +#line 2043 "parser.cpp" break; case 11: // include: "#include" expr_path ";" -#line 284 "parser.ypp" +#line 285 "parser.ypp" { yylhs.value.as < ast::include::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_path::ptr > ())); } -#line 2044 "parser.cpp" +#line 2049 "parser.cpp" break; case 12: // declaration: "/#" -#line 288 "parser.ypp" +#line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2050 "parser.cpp" +#line 2055 "parser.cpp" break; case 13: // declaration: "#/" -#line 289 "parser.ypp" +#line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2056 "parser.cpp" +#line 2061 "parser.cpp" break; case 14: // declaration: decl_usingtree -#line 290 "parser.ypp" +#line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2062 "parser.cpp" +#line 2067 "parser.cpp" break; case 15: // declaration: decl_constant -#line 291 "parser.ypp" +#line 292 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2068 "parser.cpp" +#line 2073 "parser.cpp" break; case 16: // declaration: decl_thread -#line 292 "parser.ypp" +#line 293 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2074 "parser.cpp" +#line 2079 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" -#line 297 "parser.ypp" +#line 298 "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 2080 "parser.cpp" +#line 2085 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" -#line 302 "parser.ypp" +#line 303 "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 2086 "parser.cpp" +#line 2091 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block -#line 307 "parser.ypp" +#line 308 "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 2092 "parser.cpp" +#line 2097 "parser.cpp" break; case 20: // stmt: stmt_block -#line 311 "parser.ypp" +#line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2098 "parser.cpp" +#line 2103 "parser.cpp" break; case 21: // stmt: stmt_call -#line 312 "parser.ypp" +#line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2104 "parser.cpp" +#line 2109 "parser.cpp" break; case 22: // stmt: stmt_assign -#line 313 "parser.ypp" +#line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2110 "parser.cpp" +#line 2115 "parser.cpp" break; case 23: // stmt: stmt_endon -#line 314 "parser.ypp" +#line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2116 "parser.cpp" +#line 2121 "parser.cpp" break; case 24: // stmt: stmt_notify -#line 315 "parser.ypp" +#line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2122 "parser.cpp" +#line 2127 "parser.cpp" break; case 25: // stmt: stmt_wait -#line 316 "parser.ypp" +#line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2128 "parser.cpp" +#line 2133 "parser.cpp" break; case 26: // stmt: stmt_waittill -#line 317 "parser.ypp" +#line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2134 "parser.cpp" +#line 2139 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch -#line 318 "parser.ypp" +#line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2140 "parser.cpp" +#line 2145 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend -#line 319 "parser.ypp" +#line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2146 "parser.cpp" +#line 2151 "parser.cpp" break; case 29: // stmt: stmt_waitframe -#line 320 "parser.ypp" +#line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waitframe = std::move(yystack_[0].value.as < ast::stmt_waitframe::ptr > ()); } -#line 2152 "parser.cpp" +#line 2157 "parser.cpp" break; case 30: // stmt: stmt_if -#line 321 "parser.ypp" +#line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2158 "parser.cpp" +#line 2163 "parser.cpp" break; case 31: // stmt: stmt_ifelse -#line 322 "parser.ypp" +#line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2164 "parser.cpp" +#line 2169 "parser.cpp" break; case 32: // stmt: stmt_while -#line 323 "parser.ypp" +#line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2170 "parser.cpp" +#line 2175 "parser.cpp" break; case 33: // stmt: stmt_dowhile -#line 324 "parser.ypp" +#line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2176 "parser.cpp" +#line 2181 "parser.cpp" break; case 34: // stmt: stmt_for -#line 325 "parser.ypp" +#line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2182 "parser.cpp" +#line 2187 "parser.cpp" break; case 35: // stmt: stmt_foreach -#line 326 "parser.ypp" +#line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2188 "parser.cpp" +#line 2193 "parser.cpp" break; case 36: // stmt: stmt_switch -#line 327 "parser.ypp" +#line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2194 "parser.cpp" +#line 2199 "parser.cpp" break; case 37: // stmt: stmt_case -#line 328 "parser.ypp" +#line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2200 "parser.cpp" +#line 2205 "parser.cpp" break; case 38: // stmt: stmt_default -#line 329 "parser.ypp" +#line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2206 "parser.cpp" +#line 2211 "parser.cpp" break; case 39: // stmt: stmt_break -#line 330 "parser.ypp" +#line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2212 "parser.cpp" +#line 2217 "parser.cpp" break; case 40: // stmt: stmt_continue -#line 331 "parser.ypp" +#line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2218 "parser.cpp" +#line 2223 "parser.cpp" break; case 41: // stmt: stmt_return -#line 332 "parser.ypp" +#line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2224 "parser.cpp" +#line 2229 "parser.cpp" break; case 42: // stmt: stmt_breakpoint -#line 333 "parser.ypp" +#line 334 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2230 "parser.cpp" +#line 2235 "parser.cpp" break; case 43: // stmt: stmt_prof_begin -#line 334 "parser.ypp" +#line 335 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2236 "parser.cpp" +#line 2241 "parser.cpp" break; case 44: // stmt: stmt_prof_end -#line 335 "parser.ypp" +#line 336 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2242 "parser.cpp" +#line 2247 "parser.cpp" break; case 45: // stmt_or_dev: stmt -#line 339 "parser.ypp" +#line 340 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2248 "parser.cpp" +#line 2253 "parser.cpp" break; case 46: // stmt_or_dev: stmt_dev -#line 340 "parser.ypp" +#line 341 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2254 "parser.cpp" +#line 2259 "parser.cpp" break; case 47: // stmt_list: stmt_list stmt -#line 345 "parser.ypp" +#line 346 "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 2260 "parser.cpp" +#line 2265 "parser.cpp" break; case 48: // stmt_list: stmt -#line 347 "parser.ypp" +#line 348 "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 2266 "parser.cpp" +#line 2271 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev -#line 352 "parser.ypp" +#line 353 "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 2272 "parser.cpp" +#line 2277 "parser.cpp" break; case 50: // stmt_or_dev_list: stmt_or_dev -#line 354 "parser.ypp" +#line 355 "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 2278 "parser.cpp" +#line 2283 "parser.cpp" break; case 51: // stmt_dev: "/#" stmt_list "#/" -#line 358 "parser.ypp" +#line 359 "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 2284 "parser.cpp" +#line 2289 "parser.cpp" break; case 52: // stmt_dev: "/#" "#/" -#line 359 "parser.ypp" +#line 360 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2290 "parser.cpp" +#line 2295 "parser.cpp" break; case 53: // stmt_block: "{" stmt_or_dev_list "}" -#line 363 "parser.ypp" +#line 364 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2296 "parser.cpp" +#line 2301 "parser.cpp" break; case 54: // stmt_block: "{" "}" -#line 364 "parser.ypp" +#line 365 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2302 "parser.cpp" +#line 2307 "parser.cpp" break; case 55: // stmt_expr: expr_assign -#line 369 "parser.ypp" +#line 370 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2308 "parser.cpp" +#line 2313 "parser.cpp" break; case 56: // stmt_expr: expr_increment -#line 371 "parser.ypp" +#line 372 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2314 "parser.cpp" +#line 2319 "parser.cpp" break; case 57: // stmt_expr: expr_decrement -#line 373 "parser.ypp" +#line 374 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2320 "parser.cpp" +#line 2325 "parser.cpp" break; case 58: // stmt_expr: %empty -#line 375 "parser.ypp" +#line 376 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2326 "parser.cpp" +#line 2331 "parser.cpp" break; case 59: // stmt_call: expr_call ";" -#line 380 "parser.ypp" +#line 381 "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 2332 "parser.cpp" +#line 2337 "parser.cpp" break; case 60: // stmt_call: expr_method ";" -#line 382 "parser.ypp" +#line 383 "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 2338 "parser.cpp" +#line 2343 "parser.cpp" break; case 61: // stmt_assign: expr_assign ";" -#line 387 "parser.ypp" +#line 388 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2344 "parser.cpp" +#line 2349 "parser.cpp" break; case 62: // stmt_assign: expr_increment ";" -#line 389 "parser.ypp" +#line 390 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2350 "parser.cpp" +#line 2355 "parser.cpp" break; case 63: // stmt_assign: expr_decrement ";" -#line 391 "parser.ypp" +#line 392 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2356 "parser.cpp" +#line 2361 "parser.cpp" break; case 64: // stmt_endon: expr_object "endon" "(" expr ")" ";" -#line 396 "parser.ypp" +#line 397 "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 2362 "parser.cpp" +#line 2367 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" -#line 401 "parser.ypp" +#line 402 "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 2368 "parser.cpp" +#line 2373 "parser.cpp" break; case 66: // stmt_notify: expr_object "notify" "(" expr ")" ";" -#line 403 "parser.ypp" +#line 404 "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 2374 "parser.cpp" +#line 2379 "parser.cpp" break; case 67: // stmt_wait: "wait" expr ";" -#line 408 "parser.ypp" +#line 409 "parser.ypp" { yylhs.value.as < ast::stmt_wait::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2380 "parser.cpp" +#line 2385 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" -#line 413 "parser.ypp" +#line 414 "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 2386 "parser.cpp" +#line 2391 "parser.cpp" break; case 69: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" -#line 415 "parser.ypp" +#line 416 "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 2392 "parser.cpp" +#line 2397 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" -#line 420 "parser.ypp" +#line 421 "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 2398 "parser.cpp" +#line 2403 "parser.cpp" break; case 71: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" -#line 422 "parser.ypp" +#line 423 "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 2404 "parser.cpp" +#line 2409 "parser.cpp" break; case 72: // stmt_waittillframeend: "waittillframeend" ";" -#line 427 "parser.ypp" +#line 428 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2410 "parser.cpp" +#line 2415 "parser.cpp" break; case 73: // stmt_waitframe: "waitframe" ";" -#line 432 "parser.ypp" +#line 433 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2416 "parser.cpp" +#line 2421 "parser.cpp" break; case 74: // stmt_waitframe: "waitframe" "(" ")" ";" -#line 434 "parser.ypp" +#line 435 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2422 "parser.cpp" +#line 2427 "parser.cpp" break; case 75: // stmt_if: "if" "(" expr ")" stmt -#line 439 "parser.ypp" +#line 440 "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 2428 "parser.cpp" +#line 2433 "parser.cpp" break; case 76: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt -#line 444 "parser.ypp" +#line 445 "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 2434 "parser.cpp" +#line 2439 "parser.cpp" break; case 77: // stmt_while: "while" "(" expr ")" stmt -#line 449 "parser.ypp" +#line 450 "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 2440 "parser.cpp" +#line 2445 "parser.cpp" break; case 78: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" -#line 454 "parser.ypp" +#line 455 "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 2446 "parser.cpp" +#line 2451 "parser.cpp" break; case 79: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt -#line 459 "parser.ypp" +#line 460 "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 2452 "parser.cpp" +#line 2457 "parser.cpp" break; case 80: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt -#line 464 "parser.ypp" +#line 465 "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 2458 "parser.cpp" +#line 2463 "parser.cpp" break; case 81: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt -#line 466 "parser.ypp" +#line 467 "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 2464 "parser.cpp" +#line 2469 "parser.cpp" break; case 82: // stmt_switch: "switch" "(" expr ")" stmt_block -#line 471 "parser.ypp" +#line 472 "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 2470 "parser.cpp" +#line 2475 "parser.cpp" break; case 83: // stmt_case: "case" expr_integer ":" -#line 476 "parser.ypp" +#line 477 "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 2476 "parser.cpp" +#line 2481 "parser.cpp" break; case 84: // stmt_case: "case" expr_string ":" -#line 478 "parser.ypp" +#line 479 "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 2482 "parser.cpp" +#line 2487 "parser.cpp" break; case 85: // stmt_default: "default" ":" -#line 483 "parser.ypp" +#line 484 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2488 "parser.cpp" +#line 2493 "parser.cpp" break; case 86: // stmt_break: "break" ";" -#line 488 "parser.ypp" +#line 489 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2494 "parser.cpp" +#line 2499 "parser.cpp" break; case 87: // stmt_continue: "continue" ";" -#line 493 "parser.ypp" +#line 494 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2500 "parser.cpp" +#line 2505 "parser.cpp" break; case 88: // stmt_return: "return" expr ";" -#line 498 "parser.ypp" +#line 499 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2506 "parser.cpp" +#line 2511 "parser.cpp" break; case 89: // stmt_return: "return" ";" -#line 500 "parser.ypp" +#line 501 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2512 "parser.cpp" +#line 2517 "parser.cpp" break; case 90: // stmt_breakpoint: "breakpoint" ";" -#line 505 "parser.ypp" +#line 506 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2518 "parser.cpp" +#line 2523 "parser.cpp" break; case 91: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" -#line 510 "parser.ypp" +#line 511 "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 2524 "parser.cpp" +#line 2529 "parser.cpp" break; case 92: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" -#line 515 "parser.ypp" +#line 516 "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 2530 "parser.cpp" +#line 2535 "parser.cpp" break; case 93: // expr: expr_ternary -#line 519 "parser.ypp" +#line 520 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2536 "parser.cpp" +#line 2541 "parser.cpp" break; case 94: // expr: expr_binary -#line 520 "parser.ypp" +#line 521 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2542 "parser.cpp" +#line 2547 "parser.cpp" break; case 95: // expr: expr_primitive -#line 521 "parser.ypp" +#line 522 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2548 "parser.cpp" +#line 2553 "parser.cpp" break; case 96: // expr_or_empty: expr -#line 525 "parser.ypp" +#line 526 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2554 "parser.cpp" +#line 2559 "parser.cpp" break; case 97: // expr_or_empty: %empty -#line 526 "parser.ypp" +#line 527 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2560 "parser.cpp" +#line 2565 "parser.cpp" break; case 98: // expr_assign: expr_object "=" expr -#line 531 "parser.ypp" +#line 532 "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 2566 "parser.cpp" +#line 2571 "parser.cpp" break; case 99: // expr_assign: expr_object "|=" expr -#line 533 "parser.ypp" +#line 534 "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 2572 "parser.cpp" +#line 2577 "parser.cpp" break; case 100: // expr_assign: expr_object "&=" expr -#line 535 "parser.ypp" +#line 536 "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 2578 "parser.cpp" +#line 2583 "parser.cpp" break; case 101: // expr_assign: expr_object "^=" expr -#line 537 "parser.ypp" +#line 538 "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 2584 "parser.cpp" +#line 2589 "parser.cpp" break; case 102: // expr_assign: expr_object "<<=" expr -#line 539 "parser.ypp" +#line 540 "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 2590 "parser.cpp" +#line 2595 "parser.cpp" break; case 103: // expr_assign: expr_object ">>=" expr -#line 541 "parser.ypp" +#line 542 "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 2596 "parser.cpp" +#line 2601 "parser.cpp" break; case 104: // expr_assign: expr_object "+=" expr -#line 543 "parser.ypp" +#line 544 "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 2602 "parser.cpp" +#line 2607 "parser.cpp" break; case 105: // expr_assign: expr_object "-=" expr -#line 545 "parser.ypp" +#line 546 "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 2608 "parser.cpp" +#line 2613 "parser.cpp" break; case 106: // expr_assign: expr_object "*=" expr -#line 547 "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 2614 "parser.cpp" +#line 2619 "parser.cpp" break; case 107: // expr_assign: expr_object "/=" expr -#line 549 "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 2620 "parser.cpp" +#line 2625 "parser.cpp" break; case 108: // expr_assign: expr_object "%=" expr -#line 551 "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 2626 "parser.cpp" +#line 2631 "parser.cpp" break; case 109: // expr_increment: "++" expr_object -#line 556 "parser.ypp" +#line 557 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2632 "parser.cpp" +#line 2637 "parser.cpp" break; case 110: // expr_increment: expr_object "++" -#line 558 "parser.ypp" +#line 559 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2638 "parser.cpp" +#line 2643 "parser.cpp" break; case 111: // expr_decrement: "--" expr_object -#line 563 "parser.ypp" +#line 564 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2644 "parser.cpp" +#line 2649 "parser.cpp" break; case 112: // expr_decrement: expr_object "--" -#line 565 "parser.ypp" +#line 566 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2650 "parser.cpp" +#line 2655 "parser.cpp" break; case 113: // expr_ternary: expr "?" expr ":" expr -#line 570 "parser.ypp" +#line 571 "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 2656 "parser.cpp" +#line 2661 "parser.cpp" break; case 114: // expr_binary: expr "||" expr -#line 575 "parser.ypp" +#line 576 "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 2662 "parser.cpp" +#line 2667 "parser.cpp" break; case 115: // expr_binary: expr "&&" expr -#line 577 "parser.ypp" +#line 578 "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 2668 "parser.cpp" +#line 2673 "parser.cpp" break; case 116: // expr_binary: expr "==" expr -#line 579 "parser.ypp" +#line 580 "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 2674 "parser.cpp" +#line 2679 "parser.cpp" break; case 117: // expr_binary: expr "!=" expr -#line 581 "parser.ypp" +#line 582 "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 2680 "parser.cpp" +#line 2685 "parser.cpp" break; case 118: // expr_binary: expr "<=" expr -#line 583 "parser.ypp" +#line 584 "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 2686 "parser.cpp" +#line 2691 "parser.cpp" break; case 119: // expr_binary: expr ">=" expr -#line 585 "parser.ypp" +#line 586 "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 2692 "parser.cpp" +#line 2697 "parser.cpp" break; case 120: // expr_binary: expr "<" expr -#line 587 "parser.ypp" +#line 588 "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 2698 "parser.cpp" +#line 2703 "parser.cpp" break; case 121: // expr_binary: expr ">" expr -#line 589 "parser.ypp" +#line 590 "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 2704 "parser.cpp" +#line 2709 "parser.cpp" break; case 122: // expr_binary: expr "|" expr -#line 591 "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 2710 "parser.cpp" +#line 2715 "parser.cpp" break; case 123: // expr_binary: expr "&" expr -#line 593 "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 2716 "parser.cpp" +#line 2721 "parser.cpp" break; case 124: // expr_binary: expr "^" expr -#line 595 "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 2722 "parser.cpp" +#line 2727 "parser.cpp" break; case 125: // expr_binary: expr "<<" expr -#line 597 "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 2728 "parser.cpp" +#line 2733 "parser.cpp" break; case 126: // expr_binary: expr ">>" expr -#line 599 "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 2734 "parser.cpp" +#line 2739 "parser.cpp" break; case 127: // expr_binary: expr "+" expr -#line 601 "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 2740 "parser.cpp" +#line 2745 "parser.cpp" break; case 128: // expr_binary: expr "-" expr -#line 603 "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 2746 "parser.cpp" +#line 2751 "parser.cpp" break; case 129: // expr_binary: expr "*" expr -#line 605 "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 2752 "parser.cpp" +#line 2757 "parser.cpp" break; case 130: // expr_binary: expr "/" expr -#line 607 "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 2758 "parser.cpp" +#line 2763 "parser.cpp" break; case 131: // expr_binary: expr "%" expr -#line 609 "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 2764 "parser.cpp" +#line 2769 "parser.cpp" break; case 132: // expr_primitive: expr_complement -#line 613 "parser.ypp" +#line 614 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2770 "parser.cpp" +#line 2775 "parser.cpp" break; case 133: // expr_primitive: expr_not -#line 614 "parser.ypp" +#line 615 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2776 "parser.cpp" +#line 2781 "parser.cpp" break; case 134: // expr_primitive: expr_call -#line 615 "parser.ypp" +#line 616 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2782 "parser.cpp" +#line 2787 "parser.cpp" break; case 135: // expr_primitive: expr_method -#line 616 "parser.ypp" +#line 617 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2788 "parser.cpp" +#line 2793 "parser.cpp" break; case 136: // expr_primitive: expr_add_array -#line 617 "parser.ypp" +#line 618 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2794 "parser.cpp" +#line 2799 "parser.cpp" break; case 137: // expr_primitive: expr_reference -#line 618 "parser.ypp" +#line 619 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2800 "parser.cpp" +#line 2805 "parser.cpp" break; case 138: // expr_primitive: expr_array -#line 619 "parser.ypp" +#line 620 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2806 "parser.cpp" +#line 2811 "parser.cpp" break; case 139: // expr_primitive: expr_field -#line 620 "parser.ypp" +#line 621 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2812 "parser.cpp" +#line 2817 "parser.cpp" break; case 140: // expr_primitive: expr_size -#line 621 "parser.ypp" +#line 622 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2818 "parser.cpp" +#line 2823 "parser.cpp" break; case 141: // expr_primitive: expr_paren -#line 622 "parser.ypp" +#line 623 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2824 "parser.cpp" +#line 2829 "parser.cpp" break; case 142: // expr_primitive: expr_thisthread -#line 623 "parser.ypp" +#line 624 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2830 "parser.cpp" +#line 2835 "parser.cpp" break; case 143: // expr_primitive: expr_empty_array -#line 624 "parser.ypp" +#line 625 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2836 "parser.cpp" +#line 2841 "parser.cpp" break; case 144: // expr_primitive: expr_undefined -#line 625 "parser.ypp" +#line 626 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2842 "parser.cpp" +#line 2847 "parser.cpp" break; case 145: // expr_primitive: expr_game -#line 626 "parser.ypp" +#line 627 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2848 "parser.cpp" +#line 2853 "parser.cpp" break; case 146: // expr_primitive: expr_self -#line 627 "parser.ypp" +#line 628 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2854 "parser.cpp" +#line 2859 "parser.cpp" break; case 147: // expr_primitive: expr_anim -#line 628 "parser.ypp" +#line 629 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2860 "parser.cpp" +#line 2865 "parser.cpp" break; case 148: // expr_primitive: expr_level -#line 629 "parser.ypp" +#line 630 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2866 "parser.cpp" +#line 2871 "parser.cpp" break; case 149: // expr_primitive: expr_animation -#line 630 "parser.ypp" +#line 631 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2872 "parser.cpp" +#line 2877 "parser.cpp" break; case 150: // expr_primitive: expr_animtree -#line 631 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2878 "parser.cpp" - break; - - case 151: // expr_primitive: expr_identifier #line 632 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 2884 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2883 "parser.cpp" break; - case 152: // expr_primitive: expr_istring + case 151: // expr_primitive: expr_identifier_neg #line 633 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } -#line 2890 "parser.cpp" + { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } +#line 2889 "parser.cpp" break; - case 153: // expr_primitive: expr_string + case 152: // expr_primitive: expr_identifier #line 634 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } -#line 2896 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 2895 "parser.cpp" break; - case 154: // expr_primitive: expr_vector + case 153: // expr_primitive: expr_istring #line 635 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } -#line 2902 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } +#line 2901 "parser.cpp" break; - case 155: // expr_primitive: expr_float + case 154: // expr_primitive: expr_string #line 636 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } -#line 2908 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } +#line 2907 "parser.cpp" break; - case 156: // expr_primitive: expr_integer + case 155: // expr_primitive: expr_vector #line 637 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } -#line 2914 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } +#line 2913 "parser.cpp" break; - case 157: // expr_primitive: expr_false + case 156: // expr_primitive: expr_float #line 638 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } -#line 2920 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } +#line 2919 "parser.cpp" break; - case 158: // expr_primitive: expr_true + case 157: // expr_primitive: expr_integer #line 639 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } +#line 2925 "parser.cpp" + break; + + case 158: // expr_primitive: expr_false +#line 640 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } +#line 2931 "parser.cpp" + break; + + case 159: // expr_primitive: expr_true +#line 641 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_true::ptr > ()); } -#line 2926 "parser.cpp" +#line 2937 "parser.cpp" break; - case 159: // expr_complement: "~" expr -#line 644 "parser.ypp" + case 160: // expr_complement: "~" expr +#line 646 "parser.ypp" { yylhs.value.as < ast::expr_complement::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2932 "parser.cpp" +#line 2943 "parser.cpp" break; - case 160: // expr_not: "!" expr -#line 649 "parser.ypp" + case 161: // expr_not: "!" expr +#line 651 "parser.ypp" { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2938 "parser.cpp" +#line 2949 "parser.cpp" break; - case 161: // expr_call: expr_function -#line 653 "parser.ypp" + case 162: // expr_call: expr_function +#line 655 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2944 "parser.cpp" +#line 2955 "parser.cpp" break; - case 162: // expr_call: expr_pointer -#line 654 "parser.ypp" + case 163: // expr_call: expr_pointer +#line 656 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2950 "parser.cpp" +#line 2961 "parser.cpp" break; - case 163: // expr_method: expr_object expr_function -#line 657 "parser.ypp" + case 164: // expr_method: expr_object expr_function +#line 659 "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 2956 "parser.cpp" +#line 2967 "parser.cpp" break; - case 164: // expr_method: expr_object expr_pointer -#line 658 "parser.ypp" + case 165: // expr_method: expr_object expr_pointer +#line 660 "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 2962 "parser.cpp" +#line 2973 "parser.cpp" break; - case 165: // expr_function: expr_identifier "(" expr_arguments ")" -#line 663 "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 2968 "parser.cpp" - break; - - case 166: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" + case 166: // expr_function: expr_identifier "(" expr_arguments ")" #line 665 "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 2974 "parser.cpp" + { 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 2979 "parser.cpp" break; - case 167: // expr_function: "thread" expr_identifier "(" expr_arguments ")" + case 167: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" #line 667 "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 2980 "parser.cpp" + { 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 2985 "parser.cpp" break; - case 168: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 168: // expr_function: "thread" expr_identifier "(" expr_arguments ")" #line 669 "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 2986 "parser.cpp" + { 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 2991 "parser.cpp" break; - case 169: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" + case 169: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" #line 671 "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::childthread); } -#line 2992 "parser.cpp" + { 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 2997 "parser.cpp" break; - case 170: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 170: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" #line 673 "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::childthread); } +#line 3003 "parser.cpp" + break; + + case 171: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" +#line 675 "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::childthread); } -#line 2998 "parser.cpp" +#line 3009 "parser.cpp" break; - case 171: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" -#line 678 "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 3004 "parser.cpp" - break; - - case 172: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 172: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 680 "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 3010 "parser.cpp" + { 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 3015 "parser.cpp" break; - case 173: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 173: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 682 "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::childthread); } -#line 3016 "parser.cpp" + { 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 3021 "parser.cpp" break; - case 174: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 174: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 684 "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::childthread); } +#line 3027 "parser.cpp" + break; + + case 175: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 686 "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::builtin); } -#line 3022 "parser.cpp" +#line 3033 "parser.cpp" break; - case 175: // expr_add_array: "[" expr_arguments_no_empty "]" -#line 689 "parser.ypp" + case 176: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 691 "parser.ypp" { yylhs.value.as < ast::expr_add_array::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ())); } -#line 3028 "parser.cpp" +#line 3039 "parser.cpp" break; - case 176: // expr_parameters: expr_parameters "," expr_identifier -#line 694 "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 3034 "parser.cpp" - break; - - case 177: // expr_parameters: expr_identifier + case 177: // expr_parameters: expr_parameters "," expr_identifier #line 696 "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 3040 "parser.cpp" + { 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 3045 "parser.cpp" break; - case 178: // expr_parameters: %empty + case 178: // expr_parameters: expr_identifier #line 698 "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 3051 "parser.cpp" + break; + + case 179: // expr_parameters: %empty +#line 700 "parser.ypp" { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } -#line 3046 "parser.cpp" +#line 3057 "parser.cpp" break; - case 179: // expr_arguments: expr_arguments_no_empty -#line 703 "parser.ypp" - { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } -#line 3052 "parser.cpp" - break; - - case 180: // expr_arguments: %empty + case 180: // expr_arguments: expr_arguments_no_empty #line 705 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3063 "parser.cpp" + break; + + case 181: // expr_arguments: %empty +#line 707 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3058 "parser.cpp" +#line 3069 "parser.cpp" break; - case 181: // expr_arguments_no_empty: expr_arguments "," expr -#line 710 "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 3064 "parser.cpp" - break; - - case 182: // expr_arguments_no_empty: expr + case 182: // expr_arguments_no_empty: expr_arguments "," expr #line 712 "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 3075 "parser.cpp" + break; + + case 183: // expr_arguments_no_empty: expr +#line 714 "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 3070 "parser.cpp" +#line 3081 "parser.cpp" break; - case 183: // expr_reference: "::" expr_identifier -#line 717 "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 3076 "parser.cpp" - break; - - case 184: // expr_reference: expr_path "::" expr_identifier + case 184: // expr_reference: "::" expr_identifier #line 719 "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 3087 "parser.cpp" + break; + + case 185: // expr_reference: expr_path "::" expr_identifier +#line 721 "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 3082 "parser.cpp" +#line 3093 "parser.cpp" break; - case 185: // expr_array: expr_object "[" expr "]" -#line 724 "parser.ypp" + case 186: // expr_array: expr_object "[" expr "]" +#line 726 "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 3088 "parser.cpp" +#line 3099 "parser.cpp" break; - case 186: // expr_field: expr_object "." expr_identifier_nosize -#line 729 "parser.ypp" + case 187: // expr_field: expr_object "." expr_identifier_nosize +#line 731 "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 3094 "parser.cpp" +#line 3105 "parser.cpp" break; - case 187: // expr_size: expr_object "." "size" -#line 734 "parser.ypp" + case 188: // expr_size: expr_object "." "size" +#line 736 "parser.ypp" { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } -#line 3100 "parser.cpp" +#line 3111 "parser.cpp" break; - case 188: // expr_paren: "(" expr ")" -#line 739 "parser.ypp" + case 189: // expr_paren: "(" expr ")" +#line 741 "parser.ypp" { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3106 "parser.cpp" +#line 3117 "parser.cpp" break; - case 189: // expr_object: expr_call -#line 743 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 3112 "parser.cpp" - break; - - case 190: // expr_object: expr_method -#line 744 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 3118 "parser.cpp" - break; - - case 191: // expr_object: expr_array + case 190: // expr_object: expr_call #line 745 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3124 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3123 "parser.cpp" break; - case 192: // expr_object: expr_field + case 191: // expr_object: expr_method #line 746 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 3130 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3129 "parser.cpp" break; - case 193: // expr_object: expr_game + case 192: // expr_object: expr_array #line 747 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 3136 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3135 "parser.cpp" break; - case 194: // expr_object: expr_self + case 193: // expr_object: expr_field #line 748 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 3142 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3141 "parser.cpp" break; - case 195: // expr_object: expr_anim + case 194: // expr_object: expr_game #line 749 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 3148 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3147 "parser.cpp" break; - case 196: // expr_object: expr_level + case 195: // expr_object: expr_self #line 750 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 3154 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3153 "parser.cpp" break; - case 197: // expr_object: expr_identifier + case 196: // expr_object: expr_anim #line 751 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3159 "parser.cpp" + break; + + case 197: // expr_object: expr_level +#line 752 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3165 "parser.cpp" + break; + + case 198: // expr_object: expr_identifier +#line 753 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 3160 "parser.cpp" +#line 3171 "parser.cpp" break; - case 198: // expr_thisthread: "thisthread" -#line 756 "parser.ypp" + case 199: // expr_thisthread: "thisthread" +#line 758 "parser.ypp" { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3166 "parser.cpp" +#line 3177 "parser.cpp" break; - case 199: // expr_empty_array: "[" "]" -#line 761 "parser.ypp" + case 200: // expr_empty_array: "[" "]" +#line 763 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3172 "parser.cpp" +#line 3183 "parser.cpp" break; - case 200: // expr_undefined: "undefined" -#line 766 "parser.ypp" + case 201: // expr_undefined: "undefined" +#line 768 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3178 "parser.cpp" +#line 3189 "parser.cpp" break; - case 201: // expr_game: "game" -#line 771 "parser.ypp" + case 202: // expr_game: "game" +#line 773 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3184 "parser.cpp" +#line 3195 "parser.cpp" break; - case 202: // expr_self: "self" -#line 776 "parser.ypp" + case 203: // expr_self: "self" +#line 778 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3190 "parser.cpp" +#line 3201 "parser.cpp" break; - case 203: // expr_anim: "anim" -#line 781 "parser.ypp" + case 204: // expr_anim: "anim" +#line 783 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3196 "parser.cpp" +#line 3207 "parser.cpp" break; - case 204: // expr_level: "level" -#line 786 "parser.ypp" + case 205: // expr_level: "level" +#line 788 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3202 "parser.cpp" +#line 3213 "parser.cpp" break; - case 205: // expr_animation: "%" "identifier" -#line 791 "parser.ypp" + case 206: // expr_animation: "%" "identifier" +#line 793 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3208 "parser.cpp" +#line 3219 "parser.cpp" break; - case 206: // expr_animtree: "#animtree" -#line 796 "parser.ypp" + case 207: // expr_animtree: "#animtree" +#line 798 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3214 "parser.cpp" +#line 3225 "parser.cpp" break; - case 207: // expr_identifier_nosize: "identifier" -#line 801 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3220 "parser.cpp" + case 208: // expr_identifier_neg: "-" "identifier" +#line 803 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, ast::expr(std::make_unique(yylhs.location, "0")), ast::expr(std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()))); } +#line 3231 "parser.cpp" break; - case 208: // expr_identifier: "identifier" -#line 806 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3226 "parser.cpp" - break; - - case 209: // expr_identifier: "size" + case 209: // expr_identifier_nosize: "identifier" #line 808 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3232 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3237 "parser.cpp" break; - case 210: // expr_path: "identifier" + case 210: // expr_identifier: "identifier" #line 813 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3238 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3243 "parser.cpp" break; - case 211: // expr_path: "path" + case 211: // expr_identifier: "size" #line 815 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3244 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } +#line 3249 "parser.cpp" break; - case 212: // expr_istring: "localized string" + case 212: // expr_path: "identifier" #line 820 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3255 "parser.cpp" + break; + + case 213: // expr_path: "path" +#line 822 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3261 "parser.cpp" + break; + + case 214: // expr_istring: "localized string" +#line 827 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3250 "parser.cpp" +#line 3267 "parser.cpp" break; - case 213: // expr_string: "string literal" -#line 825 "parser.ypp" + case 215: // expr_string: "string literal" +#line 832 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3256 "parser.cpp" +#line 3273 "parser.cpp" break; - case 214: // expr_vector: "(" expr "," expr "," expr ")" -#line 830 "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 3262 "parser.cpp" - break; - - case 215: // expr_float: "-" "float" -#line 835 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3268 "parser.cpp" - break; - - case 216: // expr_float: "float" + case 216: // expr_vector: "(" expr "," expr "," expr ")" #line 837 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3274 "parser.cpp" + { 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 3279 "parser.cpp" break; - case 217: // expr_integer: "-" "integer" + case 217: // expr_float: "-" "float" #line 842 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3280 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3285 "parser.cpp" break; - case 218: // expr_integer: "integer" + case 218: // expr_float: "float" #line 844 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3286 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3291 "parser.cpp" break; - case 219: // expr_false: "false" + case 219: // expr_integer: "-" "integer" #line 849 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3297 "parser.cpp" + break; + + case 220: // expr_integer: "integer" +#line 851 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3303 "parser.cpp" + break; + + case 221: // expr_false: "false" +#line 856 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3292 "parser.cpp" +#line 3309 "parser.cpp" break; - case 220: // expr_true: "true" -#line 854 "parser.ypp" + case 222: // expr_true: "true" +#line 861 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3298 "parser.cpp" +#line 3315 "parser.cpp" break; -#line 3302 "parser.cpp" +#line 3319 "parser.cpp" default: break; @@ -3513,9 +3530,9 @@ namespace xsk { namespace gsc { namespace h2 { "expr_size", "expr_paren", "expr_object", "expr_thisthread", "expr_empty_array", "expr_undefined", "expr_game", "expr_self", "expr_anim", "expr_level", "expr_animation", "expr_animtree", - "expr_identifier_nosize", "expr_identifier", "expr_path", "expr_istring", - "expr_string", "expr_vector", "expr_float", "expr_integer", "expr_false", - "expr_true", YY_NULLPTR + "expr_identifier_neg", "expr_identifier_nosize", "expr_identifier", + "expr_path", "expr_istring", "expr_string", "expr_vector", "expr_float", + "expr_integer", "expr_false", "expr_true", YY_NULLPTR }; return yy_sname[yysymbol]; } @@ -3786,454 +3803,461 @@ namespace xsk { namespace gsc { namespace h2 { const short parser::yypact_ninf_ = -271; - const short parser::yytable_ninf_ = -211; + const short parser::yytable_ninf_ = -213; const short parser::yypact_[] = { - 9, -271, -271, -48, -48, -34, -271, -271, 29, 9, - -271, -271, -271, -271, -271, -271, -44, -271, -271, -30, - -9, -85, -271, -271, -271, -271, -20, 684, -271, -271, - -271, -6, 21, -271, -271, -28, 39, -271, 15, -271, - -271, -271, -271, -271, -271, -271, 684, 1024, -20, 684, - 684, -38, 2, 43, -271, -271, -271, 1959, -271, -271, - -271, -271, -271, 42, 72, -271, -271, -271, -271, 86, - 186, -271, -271, 427, -271, -271, -271, 490, 615, 712, - 876, -271, -271, 25, 50, -271, -271, -271, -271, -271, - -271, -271, 44, 62, -20, 64, 82, 78, 68, 92, - 96, 103, 1284, 1024, -271, 2042, 118, 132, -271, -271, - -271, -271, -271, -271, -271, 684, 684, 684, 684, 684, - 684, 684, 684, 684, 684, 684, 684, 684, 684, 684, - 684, 684, 684, 684, 1150, -2, -271, -271, 141, 147, - 684, -20, -271, 792, -271, -271, 684, 684, -20, 684, - 684, -20, 684, -271, 684, 1728, 684, -271, 1924, 315, - 315, 2073, 2083, 1078, 1078, 165, 165, 165, 165, 2114, - 2155, 2124, -4, -4, -271, -271, -271, 1768, -271, -271, - -271, -20, 46, -271, 158, 921, 684, 149, -37, 162, - 1274, 163, 166, 167, 168, 12, 164, 172, 173, 1087, - 175, 176, 178, -271, 191, -10, -10, -271, -271, 844, + 2, -271, -271, -32, -32, -30, -271, -271, 20, 2, + -271, -271, -271, -271, -271, -271, -19, -271, -271, -21, + -8, -69, -271, -271, -271, -271, -20, 1097, -271, -271, + -271, 11, -35, -271, -271, -22, 6, -271, 1, -271, + -271, -271, -271, -271, -271, -271, 1097, 642, -20, 1097, + 1097, 59, -2, 17, -271, -271, -271, 2008, -271, -271, + -271, -271, -271, 115, 353, -271, -271, -271, -271, 521, + 552, -271, -271, 581, -271, -271, -271, 750, 886, 963, + 1061, -271, -271, -271, 491, 19, -271, -271, -271, -271, + -271, -271, -271, 44, 27, -20, 65, 74, 78, 73, + 76, 87, 103, 1294, 642, -271, 2091, 105, 107, -271, + -271, -271, -271, -271, -271, -271, -271, 1097, 1097, 1097, + 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, + 1097, 1097, 1097, 1097, 1097, 1097, 1160, -1, -271, -271, + 117, 110, 1097, -20, -271, 802, -271, -271, 1097, 1097, + -20, 1097, 1097, -20, 1097, -271, 1097, 1738, 1097, -271, + 1973, 141, 141, 2122, 2132, 2214, 2214, 136, 136, 136, + 136, 2163, 2204, 2173, -56, -56, -271, -271, -271, 1778, + -271, -271, -271, -20, 3, -271, 120, 931, 1097, 111, + -33, 126, 1284, 127, 130, 132, 133, 21, 125, 128, + 129, 1034, 131, 137, 143, -271, 142, 706, 706, -271, + -271, 854, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - -271, -271, -271, -271, -271, -271, 184, 187, 189, 192, - 200, -271, -271, 1197, -271, -271, -271, -271, 141, 1808, - 77, 201, 1848, 94, 215, 1888, 1019, 181, 2042, 684, - -271, 158, -271, 684, -271, -271, 998, 1994, -271, 199, - -271, 684, 241, 684, 11, -20, 684, 169, 208, 217, - -271, -271, -271, -271, 2029, -271, 684, 684, 684, -271, - -271, 953, 953, -271, -271, -271, -271, -271, -271, -271, - 224, 227, 228, 230, 188, -271, -271, 684, 684, 684, - 684, 684, 684, 684, 684, 684, 684, 684, 232, -271, - 684, 233, -271, 684, 237, 684, 243, 2042, 100, -271, - -271, -271, 234, 1450, 245, 1484, 240, -271, -271, -271, - 550, -14, 1518, -271, -271, -271, 104, 107, 1728, 684, - 684, 684, 684, 2042, 2042, 2042, 2042, 2042, 2042, 2042, - 2042, 2042, 2042, 2042, 251, 110, 252, 113, 275, 1552, - 684, -271, -271, 1274, 684, 1274, 684, 684, -20, 62, - 268, 269, 1586, 1328, 1372, 1416, 684, -271, 684, -271, - 684, -271, 124, 307, 1620, -271, 2042, 271, 1654, 305, - -271, -271, -271, 276, 281, 684, 283, 684, 286, 684, - 143, 146, 150, -271, 1274, 289, 11, 1274, 684, -271, - -271, 288, -271, 299, -271, 300, -271, -271, -271, -271, - -271, 301, -271, 1688, 294, 296, 298, 1274, 1274, -271, - -271, -271, -271, -271 + -271, -271, -271, -271, -271, -271, -271, -271, 144, 147, + 148, 154, 155, -271, -271, 1207, -271, -271, -271, -271, + 117, 1818, 14, 153, 1858, 40, 167, 1898, 1937, 164, + 2091, 1097, -271, 120, -271, 1097, -271, -271, 1008, 2043, + -271, 135, -271, 1097, 212, 1097, 68, -20, 1097, 139, + 181, 182, -271, -271, -271, -271, 2078, -271, 1097, 1097, + 1097, -271, -271, 1121, 1121, -271, -271, -271, -271, -271, + -271, -271, 192, 195, 196, 201, 156, -271, -271, 1097, + 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, + 198, -271, 1097, 199, -271, 1097, 202, 1097, 206, 2091, + 41, -271, -271, -271, 204, 1460, 208, 1494, 211, -271, + -271, -271, 4, -6, 1528, -271, -271, -271, 52, 54, + 1738, 1097, 1097, 1097, 1097, 2091, 2091, 2091, 2091, 2091, + 2091, 2091, 2091, 2091, 2091, 2091, 210, 69, 218, 72, + 226, 1562, 1097, -271, -271, 1284, 1097, 1284, 1097, 1097, + -20, 27, 224, 225, 1596, 1338, 1382, 1426, 1097, -271, + 1097, -271, 1097, -271, 82, 238, 1630, -271, 2091, 228, + 1664, 250, -271, -271, -271, 229, 230, 1097, 233, 1097, + 234, 1097, 83, 84, 93, -271, 1284, 235, 68, 1284, + 1097, -271, -271, 245, -271, 246, -271, 252, -271, -271, + -271, -271, -271, 253, -271, 1698, 247, 249, 251, 1284, + 1284, -271, -271, -271, -271, -271 }; const unsigned char parser::yydefact_[] = { - 3, 12, 13, 0, 0, 0, 209, 208, 0, 2, - 7, 8, 9, 14, 15, 16, 0, 211, 210, 0, - 0, 0, 1, 4, 5, 6, 178, 0, 10, 11, - 213, 0, 0, 177, 206, 0, 0, 198, 0, 220, - 219, 200, 201, 202, 203, 204, 0, 180, 0, 0, - 0, 0, 0, 208, 212, 216, 218, 0, 93, 94, - 95, 132, 133, 134, 135, 161, 162, 136, 137, 138, + 3, 12, 13, 0, 0, 0, 211, 210, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 213, 212, 0, + 0, 0, 1, 4, 5, 6, 179, 0, 10, 11, + 215, 0, 0, 178, 207, 0, 0, 199, 0, 222, + 221, 201, 202, 203, 204, 205, 0, 181, 0, 0, + 0, 0, 0, 210, 214, 218, 220, 0, 93, 94, + 95, 132, 133, 134, 135, 162, 163, 136, 137, 138, 139, 140, 141, 0, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 157, 158, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 180, 199, 182, 0, 179, 183, 160, - 159, 215, 217, 205, 18, 0, 0, 0, 0, 0, + 148, 149, 150, 151, 152, 0, 153, 154, 155, 156, + 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 181, 200, 183, 0, 180, 184, + 161, 160, 208, 217, 219, 206, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 163, 164, 0, 0, - 180, 0, 17, 0, 19, 176, 0, 180, 0, 0, - 180, 0, 0, 188, 0, 182, 0, 175, 0, 125, - 126, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 127, 128, 129, 130, 131, 0, 187, 207, - 186, 0, 0, 179, 184, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, + 0, 0, 181, 0, 17, 0, 19, 177, 0, 181, + 0, 0, 181, 0, 0, 189, 0, 183, 0, 176, + 0, 125, 126, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 127, 128, 129, 130, 131, 0, + 188, 209, 187, 0, 0, 180, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 54, 0, 0, 0, 45, 50, 0, - 46, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 0, 0, 0, 189, - 190, 191, 192, 0, 193, 194, 195, 196, 197, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, - 185, 0, 165, 180, 52, 48, 0, 0, 72, 0, - 73, 0, 0, 0, 58, 0, 0, 0, 0, 0, - 85, 86, 87, 89, 0, 90, 180, 180, 0, 189, - 190, 109, 111, 53, 49, 61, 62, 63, 59, 60, - 0, 0, 0, 0, 0, 110, 112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, - 180, 0, 169, 180, 0, 0, 0, 113, 0, 51, - 47, 67, 0, 0, 0, 0, 0, 55, 56, 57, - 0, 0, 0, 84, 83, 88, 0, 0, 0, 0, - 0, 0, 0, 98, 104, 105, 106, 107, 108, 99, - 100, 101, 103, 102, 0, 0, 0, 0, 0, 0, - 180, 166, 74, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 180, 168, 180, 170, - 180, 214, 0, 75, 0, 77, 96, 0, 0, 0, - 82, 91, 92, 0, 0, 180, 0, 180, 0, 180, - 0, 0, 0, 171, 0, 0, 58, 0, 0, 64, - 66, 179, 69, 179, 71, 179, 172, 173, 174, 76, - 78, 0, 80, 0, 0, 0, 0, 0, 0, 65, - 68, 70, 79, 81 + 0, 0, 0, 0, 0, 54, 0, 0, 0, 45, + 50, 0, 46, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 0, 0, + 0, 190, 191, 192, 193, 0, 194, 195, 196, 197, + 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 182, 0, 186, 0, 166, 181, 52, 48, 0, 0, + 72, 0, 73, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 85, 86, 87, 89, 0, 90, 181, 181, + 0, 190, 191, 109, 111, 53, 49, 61, 62, 63, + 59, 60, 0, 0, 0, 0, 0, 110, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 168, 181, 0, 170, 181, 0, 0, 0, 113, + 0, 51, 47, 67, 0, 0, 0, 0, 0, 55, + 56, 57, 0, 0, 0, 84, 83, 88, 0, 0, + 0, 0, 0, 0, 0, 98, 104, 105, 106, 107, + 108, 99, 100, 101, 103, 102, 0, 0, 0, 0, + 0, 0, 181, 167, 74, 0, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 181, 169, + 181, 171, 181, 216, 0, 75, 0, 77, 96, 0, + 0, 0, 82, 91, 92, 0, 0, 181, 0, 181, + 0, 181, 0, 0, 0, 172, 0, 0, 58, 0, + 0, 64, 66, 180, 69, 180, 71, 180, 173, 174, + 175, 76, 78, 0, 80, 0, 0, 0, 0, 0, + 0, 65, 68, 70, 79, 81 }; const short parser::yypgoto_[] = { - -271, -271, -271, 356, 357, 359, -271, -271, -271, -173, - 160, -271, -271, -271, -91, -45, -271, -271, -271, -271, + -271, -271, -271, 279, 298, 299, -271, -271, -271, -155, + 101, -271, -271, -271, -92, -104, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - 190, -271, -270, -267, -261, -271, -271, -271, -271, -271, - -88, -18, -70, -68, -271, -271, 14, -46, -271, -11, - 182, -271, -271, 270, -271, -271, -271, 279, 304, 329, - 375, -271, -271, -271, 0, 7, -271, -15, -271, -271, - 179, -271, -271 + 200, -271, -270, -269, -264, -271, -271, -271, -271, -271, + -137, -11, -70, -68, -271, -271, -121, -46, -271, 165, + 223, -271, -271, 257, -271, -271, -271, 290, 297, 349, + 383, -271, -271, -271, -271, 0, 7, -271, -17, -271, + -271, 118, -271, -271 }; const short parser::yydefgoto_[] = { - 0, 8, 9, 10, 11, 12, 13, 14, 15, 207, - 208, 266, 209, 210, 211, 336, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 105, 397, 236, 237, 238, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 32, 106, 183, 68, 69, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 209, + 210, 268, 211, 212, 213, 338, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 106, 399, 238, 239, 240, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 32, 107, 185, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 180, 83, 84, 85, 86, 87, 88, - 89, 90, 91 + 80, 81, 82, 83, 182, 84, 85, 86, 87, 88, + 89, 90, 91, 92 }; const short parser::yytable_[] = { - 16, 107, 144, 136, 337, 137, 31, 338, 26, 16, - 19, 20, 265, 339, 30, 269, 377, 272, 21, 6, - 1, 2, 3, 4, 5, 270, 33, 6, 95, 22, - 35, 36, 28, 38, 27, 96, 99, 6, 42, 43, - 44, 45, 97, 100, 378, 178, 204, 92, 108, 17, - 18, 35, 36, 29, 38, 239, 6, 107, 6, 42, - 43, 44, 45, 111, 112, -197, -197, 204, -197, 17, - 53, 101, -197, 138, 93, 205, 206, 140, 7, 94, - 139, -197, -189, -189, -197, -189, 6, 17, 53, -189, - 131, 132, 133, 330, 145, 98, 179, 239, -189, 262, - 113, -189, 239, -210, 156, 277, 142, 7, 17, 53, - 141, 30, -190, -190, 56, -190, 143, 289, 289, -190, - 146, 239, -197, -197, 149, 240, -191, -191, -190, -191, - 319, -190, 241, -191, 147, 156, 17, 53, 148, -189, - -189, 184, -191, 248, 150, -191, 337, 322, 251, 338, - 139, 254, 156, 371, 182, 339, 151, 380, 156, 152, - 381, 250, 156, 387, 253, 156, 389, 240, 156, -190, - -190, 156, 240, 136, 241, 137, 156, 413, 239, 241, - 278, 261, 156, -191, -191, 248, 289, 290, 290, 157, - 248, 240, 139, 140, 241, 241, 426, 139, 241, 427, - 393, 156, 395, 428, 156, 248, 248, 181, 156, 248, - 263, 268, 139, 139, 271, 273, 139, 57, 274, 275, - 276, 136, 136, 137, 137, 280, -192, -192, 286, -192, - 287, 116, 117, -192, 281, 282, 102, 285, 326, 109, - 110, 429, -192, 138, 432, -192, 295, 288, 240, 296, - 139, 297, 332, 320, 298, 241, 290, 129, 130, 131, - 132, 133, 299, 241, 442, 443, 248, 323, 334, 343, - 136, 112, 137, 139, 248, 341, 349, 328, 344, 350, - 351, 139, 352, -192, -192, 239, 179, 239, 400, 364, - 366, 138, 138, 155, 368, 370, 372, 374, 139, 139, - 346, 347, 376, 386, 388, 158, 159, 160, 161, 162, + 16, 108, 146, 138, 31, 139, 339, 340, 241, 16, + 19, 20, 341, 1, 2, 3, 4, 5, 94, 271, + 22, 184, 21, 95, 379, 6, 33, 6, 252, 272, + 30, 255, 267, 26, 96, 97, 100, 274, 133, 134, + 135, 28, 98, 101, 35, 36, 180, 38, 109, 6, + 241, 6, 380, 6, 29, 241, 264, 102, 108, 27, + 136, 158, 99, 306, 93, 17, 18, 321, 307, 308, + 291, 291, 158, 140, 241, 17, 53, -212, 7, 143, + 141, 145, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 324, 373, 147, 115, 181, 158, 158, + 7, 17, 53, 17, 53, 382, 144, 383, 35, 36, + 158, 38, 158, 332, 279, 6, 42, 43, 44, 45, + 30, 148, 389, 56, 206, 391, 149, 158, 152, 151, + 158, 241, 207, 208, 242, 415, 428, 429, 150, 291, + 158, 158, 158, 186, 330, 250, 430, 153, 339, 340, + 253, 158, 141, 256, 341, -190, -190, 112, -190, 154, + 113, 114, -190, 158, 159, 17, 53, 348, 349, 142, + 183, -190, 265, 270, -190, 138, 242, 139, 273, 275, + 280, 242, 276, 263, 277, 278, 282, 250, 334, 288, + 283, 284, 250, 287, 141, 289, 292, 292, 290, 141, + 242, 367, 118, 119, 369, 322, 297, 250, 250, 298, + 299, 250, -190, -190, 141, 141, 300, 301, 141, 325, + 395, 328, 397, 138, 138, 139, 139, 57, 131, 132, + 133, 134, 135, 131, 132, 133, 134, 135, 241, 336, + 241, 114, 345, 346, 351, 140, 103, 352, 353, 110, + 111, 394, 141, 354, 181, 366, 368, 242, 372, 370, + 376, 431, 388, 416, 434, 292, 374, 412, 250, 413, + 390, 414, 138, 378, 139, 141, 250, 343, 392, 241, + 420, 291, 241, 141, 444, 445, 403, 404, 23, 402, + 418, 421, 422, 140, 140, 424, 426, 432, 436, 437, + 141, 141, 241, 241, 157, 438, 439, 24, 25, 441, + 243, 442, 296, 443, 433, 281, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 242, 239, 390, 289, 239, - 401, 402, 414, 416, 365, 418, 249, 367, 419, 252, - 138, 434, 255, 420, 256, 422, 258, 139, 424, 239, - 239, 430, 435, 436, 437, 240, 439, 240, 440, 421, - 441, 423, 241, 425, 241, 23, 24, 242, 25, 294, - 0, 431, 242, 248, 279, 248, 267, 0, 399, 0, - 139, 0, 139, 0, 392, 0, 0, 242, 242, 284, - 0, 242, 0, 0, 0, 0, 240, 0, 290, 240, - 410, 0, 411, 241, 412, 241, 241, 129, 130, 131, - 132, 133, 0, 243, 248, 0, 248, 248, 0, 240, - 240, 139, 244, 139, 139, 0, 241, 241, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 248, 248, 0, - 0, 0, 0, 0, 139, 139, 0, 245, 242, 327, - 0, 0, 0, 0, 0, 243, 242, 0, 0, 0, - 243, 333, 0, 335, 244, 0, 342, 35, 36, 244, - 38, 0, 246, 0, 6, 291, 292, 0, 348, 243, - 0, 0, 0, 134, 244, 244, 135, 0, 244, 245, - 0, 0, 0, 0, 245, 0, 0, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 0, 245, - 245, 0, 0, 245, 246, 369, 0, 0, 247, 246, - 0, 0, 0, 0, 17, 53, 0, 0, 0, 0, - -193, -193, 0, -193, 246, 246, 243, -193, 246, 382, - 383, 384, 385, 0, 340, 244, -193, 0, 0, -193, - 0, 0, 0, 244, 0, 242, 0, 242, 0, 0, - 247, 0, 0, 0, 394, 247, 396, 398, 0, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 247, 247, 0, 0, 247, 0, 0, -193, -193, 0, - 35, 36, 0, 38, 0, 246, 242, 6, 242, 242, - 0, 0, 0, 246, 0, 0, 134, 0, 433, 304, - 0, 0, 0, 0, 305, 306, 0, 0, 0, 242, - 242, 0, 0, 0, 0, 0, 0, 0, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, - 0, 247, 0, 243, 0, 243, 0, 17, 53, 247, - 0, 0, 244, 0, 244, -194, -194, 0, -194, 0, - 0, 0, -194, 0, 0, 0, 0, 0, 0, 0, - 0, -194, 0, 0, -194, 0, 0, 245, 0, 245, - 0, 0, 0, 0, 243, 0, 340, 243, 0, 0, - 0, 0, 0, 244, 0, 244, 244, 0, 0, 0, - 34, 0, 246, 0, 246, 0, 0, 243, 243, 0, - 0, 0, -194, -194, 0, 0, 244, 244, 245, 0, - 245, 245, 0, 0, 35, 36, 37, 38, 39, 40, - 41, 6, 42, 43, 44, 45, 46, 0, 0, 0, - 47, 245, 245, 246, 48, 246, 246, 0, 247, 0, - 247, 0, -195, -195, 0, -195, 0, 0, 0, -195, - 49, 50, 0, 0, 0, 0, 246, 246, -195, 0, - 0, -195, 0, 0, 0, 0, 0, 51, 0, 0, - 52, 17, 53, 30, 54, 55, 56, 0, 0, 247, - 0, 247, 247, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 0, 0, 0, 0, 0, -195, - -195, 186, 247, 247, 187, 188, 189, 0, 190, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 35, 36, 0, 38, 0, 0, 0, 6, - 42, 43, 44, 45, 0, 0, 143, 203, 204, 0, - 0, 0, 0, 0, 0, 185, 205, 206, 0, 0, - 0, 0, 0, 186, 0, 0, 187, 188, 189, 0, - 190, 191, 192, 193, 0, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 35, 36, 0, 38, 0, 17, - 53, 6, 42, 43, 44, 45, 0, 0, 143, 293, - 204, 0, 0, 0, 0, 0, 0, 0, 205, 206, - 0, 0, 0, 0, 0, 0, -196, -196, 0, -196, - 0, 0, 0, -196, 0, 0, 0, 0, 0, 0, - 0, 0, -196, 264, 0, -196, 0, 0, 0, 0, - 186, 17, 53, 187, 188, 189, 0, 190, 191, 192, - 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 35, 36, 0, 38, 0, 0, 0, 6, 42, - 43, 44, 45, -196, -196, 143, 0, 204, 0, 0, - 0, 0, 0, 0, 0, 205, 206, 0, 0, 0, - 0, 0, 0, 35, 36, 0, 38, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 134, - 329, 0, 304, 0, 0, 0, 0, 186, 17, 53, - 187, 188, 189, 0, 190, 191, 192, 193, 0, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 35, 36, + 173, 174, 175, 176, 177, 178, 179, 0, 0, 0, + 0, 0, 140, 0, 0, 0, 0, 0, 251, 141, + 0, 254, 243, 0, 257, 0, 258, 243, 260, 0, + 0, 423, 0, 425, 242, 427, 242, 0, 244, 0, + 0, 0, 243, 243, 0, 250, 243, 250, 0, 0, + 401, 0, 141, 0, 141, 0, 0, 0, 269, 0, + 0, 0, 0, -191, -191, 0, -191, 0, 0, 0, + -191, 286, 245, 0, 0, 242, 0, 292, 242, -191, + 244, 0, -191, 0, 0, 244, 250, 0, 250, 250, + 0, 0, 0, 141, 0, 141, 141, 0, 242, 242, + 244, 244, 0, 243, 244, 246, 0, 0, 0, 250, + 250, 243, 247, 0, 245, 0, 141, 141, 0, 245, + -191, -191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 329, 0, 0, 293, 294, 0, 0, 245, 0, + 0, 0, 0, 335, 0, 337, 0, 246, 344, 0, + 0, 0, 246, 0, 247, 0, 0, 0, 0, 247, + 350, 244, 0, 0, 248, 0, 0, 246, 246, 244, + 0, 246, 0, 0, 247, 247, 0, 0, 247, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 0, 0, 0, 0, 0, 245, 0, 371, 249, 0, + 0, -198, -198, 342, -198, 0, 248, 0, -198, 0, + 243, 248, 243, 142, 0, 0, 0, -198, 0, 0, + -198, 384, 385, 386, 387, 0, 248, 248, 246, 0, + 248, -192, -192, 0, -192, 247, 246, 0, -192, 0, + 249, 0, 0, 247, 0, 249, 396, -192, 398, 400, + -192, 243, 0, 243, 243, 0, 0, 0, -198, -198, + 249, 249, -193, -193, 249, -193, 0, 0, 244, -193, + 244, 0, 0, 0, 243, 243, 0, 0, -193, 0, + 0, -193, 0, 0, 0, 0, 0, 248, -192, -192, + 435, 35, 36, 0, 38, 248, 0, 0, 6, 0, + 0, 0, 245, 0, 245, 0, 0, 136, 0, 244, + 137, 244, 244, 0, 0, 0, 0, 0, 0, -193, + -193, 249, 0, 0, 0, 0, 0, 0, 34, 249, + 0, 0, 244, 244, 0, 246, 0, 246, 0, 0, + 0, 0, 247, 245, 247, 342, 245, 0, 17, 53, + 0, 0, 35, 36, 37, 38, 39, 40, 41, 6, + 42, 43, 44, 45, 46, 0, 245, 245, 104, 105, + 0, 0, 48, 0, 0, 0, 246, 0, 246, 246, + 0, 0, 0, 247, 0, 247, 247, 0, 49, 50, + 0, 0, 0, 0, 248, 0, 248, 0, 0, 246, + 246, 0, 0, 0, 0, 51, 247, 247, 52, 17, + 53, 30, 54, 55, 56, 0, 35, 36, 0, 38, + 0, 0, 0, 6, 42, 43, 44, 45, 249, 0, + 249, 0, 206, 0, 0, 248, 0, 248, 248, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, + -194, -194, 0, -194, 0, 0, 0, -194, 0, 249, + 0, 249, 249, 17, 53, 0, -194, 0, 0, -194, + 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, + 0, 188, 249, 249, 189, 190, 191, 0, 192, 193, + 194, 195, 0, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 35, 36, 0, 38, 0, -194, -194, 6, + 42, 43, 44, 45, 0, 0, 145, 205, 206, 0, + 0, 0, 0, 0, 0, 187, 207, 208, 0, 0, + 0, 0, 0, 188, 0, 0, 189, 190, 191, 0, + 192, 193, 194, 195, 0, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 35, 36, 0, 38, 0, 17, + 53, 6, 42, 43, 44, 45, 0, 0, 145, 295, + 206, 0, 0, 0, 0, 0, 0, 0, 207, 208, + 0, 0, 0, 0, 0, 0, -195, -195, 0, -195, + 0, 0, 0, -195, 0, 0, 0, 0, 0, 0, + 0, 0, -195, 266, 0, -195, 0, 0, 0, 0, + 188, 17, 53, 189, 190, 191, 0, 192, 193, 194, + 195, 0, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 35, 36, 0, 38, 0, 0, 0, 6, 42, + 43, 44, 45, -195, -195, 145, 0, 206, 0, 0, + 0, 0, 0, 0, 0, 207, 208, 0, 0, 0, + 0, 0, 0, -196, -196, 0, -196, 0, 0, 0, + -196, 0, 0, 0, 0, 0, 0, 0, 0, -196, + 331, 0, -196, 0, 0, 0, 0, 188, 17, 53, + 189, 190, 191, 0, 192, 193, 194, 195, 0, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 35, 36, 34, 38, 0, 0, 0, 6, 42, 43, 44, 45, - 17, 53, 143, 0, 204, 0, 0, 0, 0, 0, - 0, 0, 205, 206, 35, 36, 37, 38, 39, 40, - 41, 6, 42, 43, 44, 45, 46, 325, 0, 0, - 103, 104, 115, 0, 48, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 17, 53, 0, 0, 0, - 49, 50, 0, 34, 0, 0, 0, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 0, 51, 0, 0, + -196, -196, 145, 0, 206, 0, 0, 0, 0, 0, + 0, 0, 207, 208, 35, 36, 37, 38, 39, 40, + 41, 6, 42, 43, 44, 45, 46, 0, 0, 0, + 47, 0, 0, 0, 48, 0, 285, 0, 0, 0, + 0, -197, -197, 0, -197, 17, 53, 0, -197, 0, + 49, 50, 0, 34, 0, 0, 0, -197, 0, 0, + -197, 0, 0, 0, 0, 0, 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, 45, 46, - 0, 0, 0, 47, 116, 117, 0, 48, 0, 283, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 49, 50, 0, 34, 0, 0, 0, - 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 47, 0, 0, 0, 48, -197, -197, + 0, 35, 36, 0, 38, 0, 0, 0, 6, 0, + 0, 0, 0, 49, 50, 0, 34, 136, 0, 0, + 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, - 44, 45, 46, 0, 0, 0, 103, 0, 0, 0, - 48, 0, 0, 0, 300, 301, 0, 302, 303, 0, + 44, 45, 46, 0, 0, 0, 104, 0, 17, 53, + 48, 0, 0, 0, 302, 303, 0, 304, 305, 0, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 36, 0, 38, 0, 0, 51, 6, 0, 52, 17, 53, 30, - 54, 55, 56, 134, 0, 0, 304, 0, 0, 0, - 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 0, 0, 0, 0, - 0, 0, 0, 186, 17, 53, 187, 188, 189, 0, - 190, 191, 192, 193, 0, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 35, 36, 0, 38, 0, 0, - 0, 6, 42, 43, 44, 45, 0, 0, 143, 0, - 204, 0, 0, 0, 0, 0, 0, 153, 205, 206, - 0, 0, 154, 0, 0, 0, 0, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 17, 53, 126, 127, 128, 129, 130, 131, 132, - 133, 404, 0, 0, 0, 0, 405, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 406, 0, 0, 0, 0, - 407, 0, 0, 0, 0, 115, 0, 0, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 126, 127, 128, 129, 130, 131, 132, 133, 408, - 0, 0, 0, 0, 409, 0, 0, 0, 0, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 373, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 115, 0, 0, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 375, 0, 126, - 127, 128, 129, 130, 131, 132, 133, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 379, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 391, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 115, 0, 0, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, - 0, 126, 127, 128, 129, 130, 131, 132, 133, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 415, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 115, 0, 0, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 417, 0, 126, - 127, 128, 129, 130, 131, 132, 133, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 438, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 257, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 260, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 318, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 321, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 324, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 259, 0, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 114, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 331, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 345, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 115, 0, 0, 116, 117, + 54, 55, 56, 136, 0, 0, 306, 0, 0, 0, + 0, 307, 308, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, + 0, 0, 0, 188, 17, 53, 189, 190, 191, 0, + 192, 193, 194, 195, 0, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 35, 36, 0, 38, 0, 0, + 0, 6, 42, 43, 44, 45, 0, 0, 145, 0, + 206, 0, 0, 0, 0, 0, 0, 155, 207, 208, + 0, 0, 156, 0, 0, 0, 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, - 0, 126, 127, 128, 129, 130, 131, 132, 133, 116, - 117, 0, 119, 120, 121, 122, 123, 124, 125, 116, - 117, 0, 0, 120, 121, 122, 123, 124, 125, 0, - 0, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 0, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 116, 117, 0, 0, 120, 121, 122, 123, 124, 125, - 116, 117, 0, 0, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 127, 128, 129, 130, 131, 132, - 133, 0, 0, 0, 127, 0, 129, 130, 131, 132, - 133, 116, 117, 0, 0, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, - 132, 133 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 53, 128, 129, 130, 131, 132, 133, 134, + 135, 406, 0, 0, 0, 0, 407, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 408, 0, 0, 0, 0, + 409, 0, 0, 0, 0, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 410, + 0, 0, 0, 0, 411, 0, 0, 0, 0, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 375, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 377, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 381, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 393, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 419, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 440, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 259, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 262, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 320, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 323, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 326, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 327, 0, 0, 0, 0, + 117, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 261, 0, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 116, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 333, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 347, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 117, 0, 0, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 0, 0, 0, 0, 0, + 128, 129, 130, 131, 132, 133, 134, 135, 118, 119, + 0, 121, 122, 123, 124, 125, 126, 127, 118, 119, + 0, 0, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 129, 130, 131, 132, 133, 134, 135, + 0, 0, 0, 129, 0, 131, 132, 133, 134, 135, + 118, 119, 0, 0, 122, 123, 124, 125, 126, 127, + 118, 119, 0, 0, 0, 0, 124, 125, 126, 127, + 0, 0, 0, 0, 0, 0, 131, 132, 133, 134, + 135, 0, 0, 0, 0, 0, 131, 132, 133, 134, + 135 }; const short parser::yycheck_[] = { - 0, 47, 93, 73, 274, 73, 21, 274, 52, 9, - 3, 4, 185, 274, 99, 52, 30, 190, 52, 47, - 11, 12, 13, 14, 15, 62, 26, 47, 56, 0, - 40, 41, 62, 43, 78, 35, 36, 47, 48, 49, - 50, 51, 35, 36, 58, 47, 56, 53, 48, 97, - 98, 40, 41, 62, 43, 143, 47, 103, 47, 48, - 49, 50, 51, 101, 102, 40, 41, 56, 43, 97, - 98, 56, 47, 73, 53, 64, 65, 52, 98, 58, - 73, 56, 40, 41, 59, 43, 47, 97, 98, 47, - 94, 95, 96, 266, 94, 56, 98, 185, 56, 53, - 98, 59, 190, 60, 58, 93, 62, 98, 97, 98, - 60, 99, 40, 41, 102, 43, 54, 205, 206, 47, - 56, 209, 97, 98, 56, 143, 40, 41, 56, 43, - 53, 59, 143, 47, 52, 58, 97, 98, 60, 97, - 98, 141, 56, 143, 52, 59, 416, 53, 148, 416, - 143, 151, 58, 53, 140, 416, 60, 53, 58, 56, - 53, 147, 58, 53, 150, 58, 53, 185, 58, 97, - 98, 58, 190, 243, 185, 243, 58, 53, 266, 190, - 195, 181, 58, 97, 98, 185, 274, 205, 206, 57, - 190, 209, 185, 52, 205, 206, 53, 190, 209, 53, - 373, 58, 375, 53, 58, 205, 206, 60, 58, 209, - 52, 62, 205, 206, 52, 52, 209, 27, 52, 52, - 52, 291, 292, 291, 292, 61, 40, 41, 52, 43, - 52, 66, 67, 47, 62, 62, 46, 62, 57, 49, - 50, 414, 56, 243, 417, 59, 62, 56, 266, 62, - 243, 62, 53, 52, 62, 266, 274, 92, 93, 94, - 95, 96, 62, 274, 437, 438, 266, 52, 27, 61, - 340, 102, 340, 266, 274, 275, 52, 263, 61, 52, - 52, 274, 52, 97, 98, 373, 98, 375, 379, 57, - 57, 291, 292, 103, 57, 52, 62, 52, 291, 292, - 286, 287, 62, 52, 52, 115, 116, 117, 118, 119, + 0, 47, 94, 73, 21, 73, 276, 276, 145, 9, + 3, 4, 276, 11, 12, 13, 14, 15, 53, 52, + 0, 142, 52, 58, 30, 47, 26, 47, 149, 62, + 99, 152, 187, 52, 56, 35, 36, 192, 94, 95, + 96, 62, 35, 36, 40, 41, 47, 43, 48, 47, + 187, 47, 58, 47, 62, 192, 53, 56, 104, 78, + 56, 58, 56, 59, 53, 97, 98, 53, 64, 65, + 207, 208, 58, 73, 211, 97, 98, 60, 98, 60, + 73, 54, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 53, 53, 95, 98, 98, 58, 58, + 98, 97, 98, 97, 98, 53, 62, 53, 40, 41, + 58, 43, 58, 268, 93, 47, 48, 49, 50, 51, + 99, 56, 53, 102, 56, 53, 52, 58, 52, 56, + 58, 268, 64, 65, 145, 53, 53, 53, 60, 276, + 58, 58, 58, 143, 265, 145, 53, 60, 418, 418, + 150, 58, 145, 153, 418, 40, 41, 98, 43, 56, + 101, 102, 47, 58, 57, 97, 98, 288, 289, 52, + 60, 56, 52, 62, 59, 245, 187, 245, 52, 52, + 197, 192, 52, 183, 52, 52, 61, 187, 53, 52, + 62, 62, 192, 62, 187, 52, 207, 208, 56, 192, + 211, 322, 66, 67, 325, 52, 62, 207, 208, 62, + 62, 211, 97, 98, 207, 208, 62, 62, 211, 52, + 375, 57, 377, 293, 294, 293, 294, 27, 92, 93, + 94, 95, 96, 92, 93, 94, 95, 96, 375, 27, + 377, 102, 61, 61, 52, 245, 46, 52, 52, 49, + 50, 372, 245, 52, 98, 57, 57, 268, 52, 57, + 52, 416, 52, 25, 419, 276, 62, 388, 268, 390, + 52, 392, 342, 62, 342, 268, 276, 277, 52, 416, + 30, 418, 419, 276, 439, 440, 62, 62, 9, 381, + 62, 62, 62, 293, 294, 62, 62, 62, 53, 53, + 293, 294, 439, 440, 104, 53, 53, 9, 9, 62, + 145, 62, 211, 62, 418, 197, -1, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 143, 414, 52, 416, 417, - 62, 62, 25, 62, 320, 30, 146, 323, 62, 149, - 340, 53, 152, 62, 154, 62, 156, 340, 62, 437, - 438, 62, 53, 53, 53, 373, 62, 375, 62, 405, - 62, 407, 373, 409, 375, 9, 9, 185, 9, 209, - -1, 416, 190, 373, 195, 375, 186, -1, 378, -1, - 373, -1, 375, -1, 370, -1, -1, 205, 206, 199, - -1, 209, -1, -1, -1, -1, 414, -1, 416, 417, - 386, -1, 388, 414, 390, 416, 417, 92, 93, 94, - 95, 96, -1, 143, 414, -1, 416, 417, -1, 437, - 438, 414, 143, 416, 417, -1, 437, 438, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 437, 438, -1, - -1, -1, -1, -1, 437, 438, -1, 143, 266, 259, - -1, -1, -1, -1, -1, 185, 274, -1, -1, -1, - 190, 271, -1, 273, 185, -1, 276, 40, 41, 190, - 43, -1, 143, -1, 47, 205, 206, -1, 288, 209, - -1, -1, -1, 56, 205, 206, 59, -1, 209, 185, - -1, -1, -1, -1, 190, -1, -1, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, -1, 205, - 206, -1, -1, 209, 185, 325, -1, -1, 143, 190, - -1, -1, -1, -1, 97, 98, -1, -1, -1, -1, - 40, 41, -1, 43, 205, 206, 266, 47, 209, 349, - 350, 351, 352, -1, 274, 266, 56, -1, -1, 59, - -1, -1, -1, 274, -1, 373, -1, 375, -1, -1, - 185, -1, -1, -1, 374, 190, 376, 377, -1, -1, - 266, -1, -1, -1, -1, -1, -1, -1, 274, -1, - 205, 206, -1, -1, 209, -1, -1, 97, 98, -1, - 40, 41, -1, 43, -1, 266, 414, 47, 416, 417, - -1, -1, -1, 274, -1, -1, 56, -1, 418, 59, - -1, -1, -1, -1, 64, 65, -1, -1, -1, 437, - 438, -1, -1, -1, -1, -1, -1, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, - -1, 266, -1, 373, -1, 375, -1, 97, 98, 274, - -1, -1, 373, -1, 375, 40, 41, -1, 43, -1, - -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, 56, -1, -1, 59, -1, -1, 373, -1, 375, - -1, -1, -1, -1, 414, -1, 416, 417, -1, -1, - -1, -1, -1, 414, -1, 416, 417, -1, -1, -1, - 16, -1, 373, -1, 375, -1, -1, 437, 438, -1, - -1, -1, 97, 98, -1, -1, 437, 438, 414, -1, - 416, 417, -1, -1, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, -1, -1, -1, - 56, 437, 438, 414, 60, 416, 417, -1, 373, -1, - 375, -1, 40, 41, -1, 43, -1, -1, -1, 47, - 76, 77, -1, -1, -1, -1, 437, 438, 56, -1, - -1, 59, -1, -1, -1, -1, -1, 93, -1, -1, - 96, 97, 98, 99, 100, 101, 102, -1, -1, 414, - -1, 416, 417, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 11, -1, -1, -1, -1, -1, 97, - 98, 19, 437, 438, 22, 23, 24, -1, 26, 27, + 130, 131, 132, 133, 134, 135, 136, -1, -1, -1, + -1, -1, 342, -1, -1, -1, -1, -1, 148, 342, + -1, 151, 187, -1, 154, -1, 156, 192, 158, -1, + -1, 407, -1, 409, 375, 411, 377, -1, 145, -1, + -1, -1, 207, 208, -1, 375, 211, 377, -1, -1, + 380, -1, 375, -1, 377, -1, -1, -1, 188, -1, + -1, -1, -1, 40, 41, -1, 43, -1, -1, -1, + 47, 201, 145, -1, -1, 416, -1, 418, 419, 56, + 187, -1, 59, -1, -1, 192, 416, -1, 418, 419, + -1, -1, -1, 416, -1, 418, 419, -1, 439, 440, + 207, 208, -1, 268, 211, 145, -1, -1, -1, 439, + 440, 276, 145, -1, 187, -1, 439, 440, -1, 192, + 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 261, -1, -1, 207, 208, -1, -1, 211, -1, + -1, -1, -1, 273, -1, 275, -1, 187, 278, -1, + -1, -1, 192, -1, 187, -1, -1, -1, -1, 192, + 290, 268, -1, -1, 145, -1, -1, 207, 208, 276, + -1, 211, -1, -1, 207, 208, -1, -1, 211, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, -1, -1, -1, -1, 268, -1, 327, 145, -1, + -1, 40, 41, 276, 43, -1, 187, -1, 47, -1, + 375, 192, 377, 52, -1, -1, -1, 56, -1, -1, + 59, 351, 352, 353, 354, -1, 207, 208, 268, -1, + 211, 40, 41, -1, 43, 268, 276, -1, 47, -1, + 187, -1, -1, 276, -1, 192, 376, 56, 378, 379, + 59, 416, -1, 418, 419, -1, -1, -1, 97, 98, + 207, 208, 40, 41, 211, 43, -1, -1, 375, 47, + 377, -1, -1, -1, 439, 440, -1, -1, 56, -1, + -1, 59, -1, -1, -1, -1, -1, 268, 97, 98, + 420, 40, 41, -1, 43, 276, -1, -1, 47, -1, + -1, -1, 375, -1, 377, -1, -1, 56, -1, 416, + 59, 418, 419, -1, -1, -1, -1, -1, -1, 97, + 98, 268, -1, -1, -1, -1, -1, -1, 16, 276, + -1, -1, 439, 440, -1, 375, -1, 377, -1, -1, + -1, -1, 375, 416, 377, 418, 419, -1, 97, 98, + -1, -1, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, -1, 439, 440, 56, 57, + -1, -1, 60, -1, -1, -1, 416, -1, 418, 419, + -1, -1, -1, 416, -1, 418, 419, -1, 76, 77, + -1, -1, -1, -1, 375, -1, 377, -1, -1, 439, + 440, -1, -1, -1, -1, 93, 439, 440, 96, 97, + 98, 99, 100, 101, 102, -1, 40, 41, -1, 43, + -1, -1, -1, 47, 48, 49, 50, 51, 375, -1, + 377, -1, 56, -1, -1, 416, -1, 418, 419, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 439, 440, + 40, 41, -1, 43, -1, -1, -1, 47, -1, 416, + -1, 418, 419, 97, 98, -1, 56, -1, -1, 59, + -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, + -1, 19, 439, 440, 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, -1, 43, -1, -1, -1, 47, + 38, 39, 40, 41, -1, 43, -1, 97, 98, 47, 48, 49, 50, 51, -1, -1, 54, 55, 56, -1, -1, -1, -1, -1, -1, 11, 64, 65, -1, -1, -1, -1, -1, 19, -1, -1, 22, 23, 24, -1, @@ -4257,20 +4281,20 @@ namespace xsk { namespace gsc { namespace h2 { 16, 43, -1, -1, -1, 47, 48, 49, 50, 51, 97, 98, 54, -1, 56, -1, -1, -1, -1, -1, -1, -1, 64, 65, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 58, -1, -1, - 56, 57, 63, -1, 60, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 97, 98, -1, -1, -1, - 76, 77, -1, 16, -1, -1, -1, -1, 89, 90, - 91, 92, 93, 94, 95, 96, -1, 93, -1, -1, + 46, 47, 48, 49, 50, 51, 52, -1, -1, -1, + 56, -1, -1, -1, 60, -1, 62, -1, -1, -1, + -1, 40, 41, -1, 43, 97, 98, -1, 47, -1, + 76, 77, -1, 16, -1, -1, -1, 56, -1, -1, + 59, -1, -1, -1, -1, -1, -1, 93, -1, -1, 96, 97, 98, 99, 100, 101, 102, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - -1, -1, -1, 56, 66, 67, -1, 60, -1, 62, - 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 76, 77, -1, 16, -1, -1, -1, - 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, 56, -1, -1, -1, 60, 97, 98, + -1, 40, 41, -1, 43, -1, -1, -1, 47, -1, + -1, -1, -1, 76, 77, -1, 16, 56, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, 96, 97, 98, 99, 100, 101, 102, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, -1, -1, -1, 56, -1, -1, -1, + 50, 51, 52, -1, -1, -1, 56, -1, 97, 98, 60, -1, -1, -1, 17, 18, -1, 20, 21, -1, -1, -1, -1, -1, -1, -1, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, @@ -4348,84 +4372,89 @@ namespace xsk { namespace gsc { namespace h2 { -1, 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, - 92, 93, 94, 95, 96, 61, -1, 63, -1, -1, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 92, 93, 94, 95, 96, 58, -1, -1, -1, -1, + 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 89, 90, 91, 92, + 93, 94, 95, 96, 61, -1, 63, -1, -1, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 89, 90, 91, 92, 93, 94, 95, - 96, 62, 63, -1, -1, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, - 91, 92, 93, 94, 95, 96, 62, 63, -1, -1, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + 62, 63, -1, -1, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, + 92, 93, 94, 95, 96, 62, 63, -1, -1, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 89, 90, 91, 92, 93, 94, 95, - 96, 62, 63, -1, -1, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 63, -1, -1, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 89, 90, - 91, 92, 93, 94, 95, 96, -1, -1, -1, -1, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + 62, 63, -1, -1, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 63, -1, -1, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 89, 90, 91, + 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, + 89, 90, 91, 92, 93, 94, 95, 96, 66, 67, + -1, 69, 70, 71, 72, 73, 74, 75, 66, 67, + -1, -1, 70, 71, 72, 73, 74, 75, -1, -1, + -1, 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, 66, - 67, -1, 69, 70, 71, 72, 73, 74, 75, 66, + 67, -1, -1, 70, 71, 72, 73, 74, 75, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, -1, - -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, - -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + -1, -1, -1, 90, 91, 92, 93, 94, 95, 96, + -1, -1, -1, 90, -1, 92, 93, 94, 95, 96, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, - 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, - -1, -1, -1, -1, 90, 91, 92, 93, 94, 95, - 96, -1, -1, -1, 90, -1, 92, 93, 94, 95, - 96, 66, 67, -1, -1, 70, 71, 72, 73, 74, - 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 92, 93, 94, - 95, 96 + 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, + -1, -1, -1, -1, -1, -1, 92, 93, 94, 95, + 96, -1, -1, -1, -1, -1, 92, 93, 94, 95, + 96 }; const unsigned char parser::yystos_[] = { 0, 11, 12, 13, 14, 15, 47, 98, 114, 115, - 116, 117, 118, 119, 120, 121, 187, 97, 98, 188, - 188, 52, 0, 116, 117, 118, 52, 78, 62, 62, - 99, 190, 168, 187, 16, 40, 41, 42, 43, 44, + 116, 117, 118, 119, 120, 121, 188, 97, 98, 189, + 189, 52, 0, 116, 117, 118, 52, 78, 62, 62, + 99, 191, 168, 188, 16, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 56, 60, 76, 77, 93, 96, 98, 100, 101, 102, 153, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 53, 53, 58, 56, 187, 188, 56, 187, - 188, 56, 153, 56, 57, 153, 169, 170, 187, 153, - 153, 101, 102, 98, 62, 63, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 89, 90, 91, 92, - 93, 94, 95, 96, 56, 59, 165, 166, 187, 188, - 52, 60, 62, 54, 127, 187, 56, 52, 60, 56, - 52, 60, 56, 53, 58, 153, 58, 57, 153, 153, + 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 53, 53, 58, 56, 188, 189, 56, + 188, 189, 56, 153, 56, 57, 153, 169, 170, 188, + 153, 153, 98, 101, 102, 98, 62, 63, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 89, 90, + 91, 92, 93, 94, 95, 96, 56, 59, 165, 166, + 188, 189, 52, 60, 62, 54, 127, 188, 56, 52, + 60, 56, 52, 60, 56, 53, 58, 153, 58, 57, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 47, 98, - 186, 60, 169, 170, 187, 11, 19, 22, 23, 24, - 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 55, 56, 64, 65, 122, 123, 125, - 126, 127, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 155, 156, 157, 163, - 164, 172, 173, 176, 180, 181, 182, 183, 187, 153, - 169, 187, 153, 169, 187, 153, 153, 57, 153, 61, - 57, 187, 53, 52, 12, 122, 124, 153, 62, 52, - 62, 52, 122, 52, 52, 52, 52, 93, 190, 193, - 61, 62, 62, 62, 153, 62, 52, 52, 56, 163, - 164, 176, 176, 55, 123, 62, 62, 62, 62, 62, - 17, 18, 20, 21, 59, 64, 65, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 57, 53, - 52, 57, 53, 52, 57, 58, 57, 153, 169, 12, - 122, 62, 53, 153, 27, 153, 128, 155, 156, 157, - 176, 187, 153, 61, 61, 62, 169, 169, 153, 52, - 52, 52, 52, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 57, 169, 57, 169, 57, 153, - 52, 53, 62, 53, 52, 53, 62, 30, 58, 53, - 53, 53, 153, 153, 153, 153, 52, 53, 52, 53, - 52, 53, 169, 122, 153, 122, 153, 154, 153, 187, - 127, 62, 62, 53, 53, 58, 53, 58, 53, 58, - 169, 169, 169, 53, 25, 53, 62, 53, 30, 62, - 62, 170, 62, 170, 62, 170, 53, 53, 53, 122, - 62, 128, 122, 153, 53, 53, 53, 53, 53, 62, - 62, 62, 122, 122 + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 47, 98, 187, 60, 169, 170, 188, 11, 19, 22, + 23, 24, 26, 27, 28, 29, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 55, 56, 64, 65, 122, + 123, 125, 126, 127, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 155, 156, + 157, 163, 164, 172, 173, 176, 180, 181, 182, 183, + 188, 153, 169, 188, 153, 169, 188, 153, 153, 57, + 153, 61, 57, 188, 53, 52, 12, 122, 124, 153, + 62, 52, 62, 52, 122, 52, 52, 52, 52, 93, + 191, 194, 61, 62, 62, 62, 153, 62, 52, 52, + 56, 163, 164, 176, 176, 55, 123, 62, 62, 62, + 62, 62, 17, 18, 20, 21, 59, 64, 65, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 57, 53, 52, 57, 53, 52, 57, 58, 57, 153, + 169, 12, 122, 62, 53, 153, 27, 153, 128, 155, + 156, 157, 176, 188, 153, 61, 61, 62, 169, 169, + 153, 52, 52, 52, 52, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 57, 169, 57, 169, + 57, 153, 52, 53, 62, 53, 52, 53, 62, 30, + 58, 53, 53, 53, 153, 153, 153, 153, 52, 53, + 52, 53, 52, 53, 169, 122, 153, 122, 153, 154, + 153, 188, 127, 62, 62, 53, 53, 58, 53, 58, + 53, 58, 169, 169, 169, 53, 25, 53, 62, 53, + 30, 62, 62, 170, 62, 170, 62, 170, 53, 53, + 53, 122, 62, 128, 122, 153, 53, 53, 53, 53, + 53, 62, 62, 62, 122, 122 }; const unsigned char @@ -4446,14 +4475,14 @@ namespace xsk { namespace gsc { namespace h2 { 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 161, - 162, 163, 163, 164, 164, 165, 165, 165, 165, 165, - 165, 166, 166, 166, 166, 167, 168, 168, 168, 169, - 169, 170, 170, 171, 171, 172, 173, 174, 175, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 187, - 188, 188, 189, 190, 191, 192, 192, 193, 193, 194, - 195 + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 161, 162, 163, 163, 164, 164, 165, 165, 165, 165, + 165, 165, 166, 166, 166, 166, 167, 168, 168, 168, + 169, 169, 170, 170, 171, 171, 172, 173, 174, 175, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 188, 189, 189, 190, 191, 192, 193, 193, 194, + 194, 195, 196 }; const signed char @@ -4474,14 +4503,14 @@ namespace xsk { namespace gsc { namespace h2 { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 1, 1, 2, 2, 4, 6, 5, 7, 5, - 7, 8, 9, 9, 9, 3, 3, 1, 0, 1, - 0, 3, 1, 2, 3, 4, 3, 3, 3, 1, - 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, 2, 1, 2, 1, 1, - 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 1, 1, 2, 2, 4, 6, 5, 7, + 5, 7, 8, 9, 9, 9, 3, 3, 1, 0, + 1, 0, 3, 1, 2, 3, 4, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 7, 2, 1, 2, + 1, 1, 1 }; @@ -4491,29 +4520,29 @@ namespace xsk { namespace gsc { namespace h2 { const short parser::yyrline_[] = { - 0, 259, 259, 260, 264, 266, 268, 270, 272, 274, - 279, 283, 288, 289, 290, 291, 292, 296, 301, 306, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 339, 340, 344, 346, 351, - 353, 358, 359, 363, 364, 368, 370, 372, 375, 379, - 381, 386, 388, 390, 395, 400, 402, 407, 412, 414, - 419, 421, 426, 431, 433, 438, 443, 448, 453, 458, - 463, 465, 470, 475, 477, 482, 487, 492, 497, 499, - 504, 509, 514, 519, 520, 521, 525, 526, 530, 532, - 534, 536, 538, 540, 542, 544, 546, 548, 550, 555, - 557, 562, 564, 569, 574, 576, 578, 580, 582, 584, - 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, - 606, 608, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 643, - 648, 653, 654, 657, 658, 662, 664, 666, 668, 670, - 672, 677, 679, 681, 683, 688, 693, 695, 698, 702, - 705, 709, 711, 716, 718, 723, 728, 733, 738, 743, - 744, 745, 746, 747, 748, 749, 750, 751, 755, 760, - 765, 770, 775, 780, 785, 790, 795, 800, 805, 807, - 812, 814, 819, 824, 829, 834, 836, 841, 843, 848, - 853 + 0, 260, 260, 261, 265, 267, 269, 271, 273, 275, + 280, 284, 289, 290, 291, 292, 293, 297, 302, 307, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 340, 341, 345, 347, 352, + 354, 359, 360, 364, 365, 369, 371, 373, 376, 380, + 382, 387, 389, 391, 396, 401, 403, 408, 413, 415, + 420, 422, 427, 432, 434, 439, 444, 449, 454, 459, + 464, 466, 471, 476, 478, 483, 488, 493, 498, 500, + 505, 510, 515, 520, 521, 522, 526, 527, 531, 533, + 535, 537, 539, 541, 543, 545, 547, 549, 551, 556, + 558, 563, 565, 570, 575, 577, 579, 581, 583, 585, + 587, 589, 591, 593, 595, 597, 599, 601, 603, 605, + 607, 609, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 645, 650, 655, 656, 659, 660, 664, 666, 668, 670, + 672, 674, 679, 681, 683, 685, 690, 695, 697, 700, + 704, 707, 711, 713, 718, 720, 725, 730, 735, 740, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 757, + 762, 767, 772, 777, 782, 787, 792, 797, 802, 807, + 812, 814, 819, 821, 826, 831, 836, 841, 843, 848, + 850, 855, 860 }; void @@ -4546,9 +4575,9 @@ namespace xsk { namespace gsc { namespace h2 { #line 13 "parser.ypp" } } } // xsk::gsc::h2 -#line 4550 "parser.cpp" +#line 4579 "parser.cpp" -#line 857 "parser.ypp" +#line 864 "parser.ypp" void xsk::gsc::h2::parser::error(const xsk::gsc::location& loc, const std::string& msg) diff --git a/src/h2/xsk/parser.hpp b/src/h2/xsk/parser.hpp index da5bfcc0..3b0ab6f3 100644 --- a/src/h2/xsk/parser.hpp +++ b/src/h2/xsk/parser.hpp @@ -447,6 +447,7 @@ namespace xsk { namespace gsc { namespace h2 { // expr_binary // expr_primitive // expr_object + // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -1007,16 +1008,17 @@ namespace xsk { namespace gsc { namespace h2 { S_expr_level = 183, // expr_level S_expr_animation = 184, // expr_animation S_expr_animtree = 185, // expr_animtree - S_expr_identifier_nosize = 186, // expr_identifier_nosize - S_expr_identifier = 187, // expr_identifier - S_expr_path = 188, // expr_path - S_expr_istring = 189, // expr_istring - S_expr_string = 190, // expr_string - S_expr_vector = 191, // expr_vector - S_expr_float = 192, // expr_float - S_expr_integer = 193, // expr_integer - S_expr_false = 194, // expr_false - S_expr_true = 195 // expr_true + S_expr_identifier_neg = 186, // expr_identifier_neg + S_expr_identifier_nosize = 187, // expr_identifier_nosize + S_expr_identifier = 188, // expr_identifier + S_expr_path = 189, // expr_path + S_expr_istring = 190, // expr_istring + S_expr_string = 191, // expr_string + S_expr_vector = 192, // expr_vector + S_expr_float = 193, // expr_float + S_expr_integer = 194, // expr_integer + S_expr_false = 195, // expr_false + S_expr_true = 196 // expr_true }; }; @@ -1083,6 +1085,7 @@ namespace xsk { namespace gsc { namespace h2 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (std::move (that.value)); break; @@ -2355,6 +2358,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.template destroy< ast::expr > (); break; @@ -4813,8 +4817,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 2251, ///< Last index in yytable_. - yynnts_ = 83, ///< Number of nonterminal symbols. + yylast_ = 2310, ///< Last index in yytable_. + yynnts_ = 84, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4871,6 +4875,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (YY_MOVE (that.value)); break; @@ -5189,6 +5194,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (s.value)); break; @@ -5513,7 +5519,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::h2 -#line 5517 "parser.hpp" +#line 5523 "parser.hpp" diff --git a/src/iw5/xsk/parser.cpp b/src/iw5/xsk/parser.cpp index 9e1e8a3b..a1d7a74e 100644 --- a/src/iw5/xsk/parser.cpp +++ b/src/iw5/xsk/parser.cpp @@ -245,6 +245,7 @@ namespace xsk { namespace gsc { namespace iw5 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.YY_MOVE_OR_COPY< ast::expr > (YY_MOVE (that.value)); break; @@ -543,6 +544,7 @@ namespace xsk { namespace gsc { namespace iw5 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (that.value)); break; @@ -841,6 +843,7 @@ namespace xsk { namespace gsc { namespace iw5 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (that.value); break; @@ -1138,6 +1141,7 @@ namespace xsk { namespace gsc { namespace iw5 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (that.value); break; @@ -1690,6 +1694,7 @@ namespace xsk { namespace gsc { namespace iw5 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg yylhs.value.emplace< ast::expr > (); break; @@ -1964,1303 +1969,1315 @@ namespace xsk { namespace gsc { namespace iw5 { switch (yyn) { case 2: // root: program -#line 257 "parser.ypp" +#line 258 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1970 "parser.cpp" +#line 1975 "parser.cpp" break; case 3: // root: %empty -#line 258 "parser.ypp" +#line 259 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 1976 "parser.cpp" +#line 1981 "parser.cpp" break; case 4: // program: program inline -#line 263 "parser.ypp" +#line 264 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 1982 "parser.cpp" +#line 1987 "parser.cpp" break; case 5: // program: program include -#line 265 "parser.ypp" +#line 266 "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 1988 "parser.cpp" +#line 1993 "parser.cpp" break; case 6: // program: program declaration -#line 267 "parser.ypp" +#line 268 "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 1994 "parser.cpp" +#line 1999 "parser.cpp" break; case 7: // program: inline -#line 269 "parser.ypp" +#line 270 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2000 "parser.cpp" +#line 2005 "parser.cpp" break; case 8: // program: include -#line 271 "parser.ypp" +#line 272 "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 2006 "parser.cpp" +#line 2011 "parser.cpp" break; case 9: // program: declaration -#line 273 "parser.ypp" +#line 274 "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 2012 "parser.cpp" +#line 2017 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" -#line 277 "parser.ypp" +#line 278 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2018 "parser.cpp" +#line 2023 "parser.cpp" break; case 11: // include: "#include" expr_path ";" -#line 282 "parser.ypp" +#line 283 "parser.ypp" { yylhs.value.as < ast::include::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_path::ptr > ())); } -#line 2024 "parser.cpp" +#line 2029 "parser.cpp" break; case 12: // declaration: "/#" -#line 286 "parser.ypp" +#line 287 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2030 "parser.cpp" +#line 2035 "parser.cpp" break; case 13: // declaration: "#/" -#line 287 "parser.ypp" +#line 288 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2036 "parser.cpp" +#line 2041 "parser.cpp" break; case 14: // declaration: decl_usingtree -#line 288 "parser.ypp" +#line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2042 "parser.cpp" +#line 2047 "parser.cpp" break; case 15: // declaration: decl_constant -#line 289 "parser.ypp" +#line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2048 "parser.cpp" +#line 2053 "parser.cpp" break; case 16: // declaration: decl_thread -#line 290 "parser.ypp" +#line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2054 "parser.cpp" +#line 2059 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" -#line 295 "parser.ypp" +#line 296 "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 2060 "parser.cpp" +#line 2065 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" -#line 300 "parser.ypp" +#line 301 "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 2066 "parser.cpp" +#line 2071 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block -#line 305 "parser.ypp" +#line 306 "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 2072 "parser.cpp" +#line 2077 "parser.cpp" break; case 20: // stmt: stmt_block -#line 309 "parser.ypp" +#line 310 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2078 "parser.cpp" +#line 2083 "parser.cpp" break; case 21: // stmt: stmt_call -#line 310 "parser.ypp" +#line 311 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2084 "parser.cpp" +#line 2089 "parser.cpp" break; case 22: // stmt: stmt_assign -#line 311 "parser.ypp" +#line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2090 "parser.cpp" +#line 2095 "parser.cpp" break; case 23: // stmt: stmt_endon -#line 312 "parser.ypp" +#line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2096 "parser.cpp" +#line 2101 "parser.cpp" break; case 24: // stmt: stmt_notify -#line 313 "parser.ypp" +#line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2102 "parser.cpp" +#line 2107 "parser.cpp" break; case 25: // stmt: stmt_wait -#line 314 "parser.ypp" +#line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2108 "parser.cpp" +#line 2113 "parser.cpp" break; case 26: // stmt: stmt_waittill -#line 315 "parser.ypp" +#line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2114 "parser.cpp" +#line 2119 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch -#line 316 "parser.ypp" +#line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2120 "parser.cpp" +#line 2125 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend -#line 317 "parser.ypp" +#line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2126 "parser.cpp" +#line 2131 "parser.cpp" break; case 29: // stmt: stmt_if -#line 318 "parser.ypp" +#line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2132 "parser.cpp" +#line 2137 "parser.cpp" break; case 30: // stmt: stmt_ifelse -#line 319 "parser.ypp" +#line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2138 "parser.cpp" +#line 2143 "parser.cpp" break; case 31: // stmt: stmt_while -#line 320 "parser.ypp" +#line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2144 "parser.cpp" +#line 2149 "parser.cpp" break; case 32: // stmt: stmt_dowhile -#line 321 "parser.ypp" +#line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2150 "parser.cpp" +#line 2155 "parser.cpp" break; case 33: // stmt: stmt_for -#line 322 "parser.ypp" +#line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2156 "parser.cpp" +#line 2161 "parser.cpp" break; case 34: // stmt: stmt_foreach -#line 323 "parser.ypp" +#line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2162 "parser.cpp" +#line 2167 "parser.cpp" break; case 35: // stmt: stmt_switch -#line 324 "parser.ypp" +#line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2168 "parser.cpp" +#line 2173 "parser.cpp" break; case 36: // stmt: stmt_case -#line 325 "parser.ypp" +#line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2174 "parser.cpp" +#line 2179 "parser.cpp" break; case 37: // stmt: stmt_default -#line 326 "parser.ypp" +#line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2180 "parser.cpp" +#line 2185 "parser.cpp" break; case 38: // stmt: stmt_break -#line 327 "parser.ypp" +#line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2186 "parser.cpp" +#line 2191 "parser.cpp" break; case 39: // stmt: stmt_continue -#line 328 "parser.ypp" +#line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2192 "parser.cpp" +#line 2197 "parser.cpp" break; case 40: // stmt: stmt_return -#line 329 "parser.ypp" +#line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2198 "parser.cpp" +#line 2203 "parser.cpp" break; case 41: // stmt: stmt_breakpoint -#line 330 "parser.ypp" +#line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2204 "parser.cpp" +#line 2209 "parser.cpp" break; case 42: // stmt: stmt_prof_begin -#line 331 "parser.ypp" +#line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2210 "parser.cpp" +#line 2215 "parser.cpp" break; case 43: // stmt: stmt_prof_end -#line 332 "parser.ypp" +#line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2216 "parser.cpp" +#line 2221 "parser.cpp" break; case 44: // stmt_or_dev: stmt -#line 336 "parser.ypp" +#line 337 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2222 "parser.cpp" +#line 2227 "parser.cpp" break; case 45: // stmt_or_dev: stmt_dev -#line 337 "parser.ypp" +#line 338 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2228 "parser.cpp" +#line 2233 "parser.cpp" break; case 46: // stmt_list: stmt_list stmt -#line 342 "parser.ypp" +#line 343 "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 2234 "parser.cpp" +#line 2239 "parser.cpp" break; case 47: // stmt_list: stmt -#line 344 "parser.ypp" +#line 345 "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 2240 "parser.cpp" +#line 2245 "parser.cpp" break; case 48: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev -#line 349 "parser.ypp" +#line 350 "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 2246 "parser.cpp" +#line 2251 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev -#line 351 "parser.ypp" +#line 352 "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 2252 "parser.cpp" +#line 2257 "parser.cpp" break; case 50: // stmt_dev: "/#" stmt_list "#/" -#line 355 "parser.ypp" +#line 356 "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 2258 "parser.cpp" +#line 2263 "parser.cpp" break; case 51: // stmt_dev: "/#" "#/" -#line 356 "parser.ypp" +#line 357 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2264 "parser.cpp" +#line 2269 "parser.cpp" break; case 52: // stmt_block: "{" stmt_or_dev_list "}" -#line 360 "parser.ypp" +#line 361 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2270 "parser.cpp" +#line 2275 "parser.cpp" break; case 53: // stmt_block: "{" "}" -#line 361 "parser.ypp" +#line 362 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2276 "parser.cpp" +#line 2281 "parser.cpp" break; case 54: // stmt_expr: expr_assign -#line 366 "parser.ypp" +#line 367 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2282 "parser.cpp" +#line 2287 "parser.cpp" break; case 55: // stmt_expr: expr_increment -#line 368 "parser.ypp" +#line 369 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2288 "parser.cpp" +#line 2293 "parser.cpp" break; case 56: // stmt_expr: expr_decrement -#line 370 "parser.ypp" +#line 371 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2294 "parser.cpp" +#line 2299 "parser.cpp" break; case 57: // stmt_expr: %empty -#line 372 "parser.ypp" +#line 373 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2300 "parser.cpp" +#line 2305 "parser.cpp" break; case 58: // stmt_call: expr_call ";" -#line 377 "parser.ypp" +#line 378 "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 2306 "parser.cpp" +#line 2311 "parser.cpp" break; case 59: // stmt_call: expr_method ";" -#line 379 "parser.ypp" +#line 380 "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 2312 "parser.cpp" +#line 2317 "parser.cpp" break; case 60: // stmt_assign: expr_assign ";" -#line 384 "parser.ypp" +#line 385 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2318 "parser.cpp" +#line 2323 "parser.cpp" break; case 61: // stmt_assign: expr_increment ";" -#line 386 "parser.ypp" +#line 387 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2324 "parser.cpp" +#line 2329 "parser.cpp" break; case 62: // stmt_assign: expr_decrement ";" -#line 388 "parser.ypp" +#line 389 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2330 "parser.cpp" +#line 2335 "parser.cpp" break; case 63: // stmt_endon: expr_object "endon" "(" expr ")" ";" -#line 393 "parser.ypp" +#line 394 "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 2336 "parser.cpp" +#line 2341 "parser.cpp" break; case 64: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" -#line 398 "parser.ypp" +#line 399 "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 2342 "parser.cpp" +#line 2347 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr ")" ";" -#line 400 "parser.ypp" +#line 401 "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 2348 "parser.cpp" +#line 2353 "parser.cpp" break; case 66: // stmt_wait: "wait" expr ";" -#line 405 "parser.ypp" +#line 406 "parser.ypp" { yylhs.value.as < ast::stmt_wait::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2354 "parser.cpp" +#line 2359 "parser.cpp" break; case 67: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" -#line 410 "parser.ypp" +#line 411 "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 2360 "parser.cpp" +#line 2365 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" -#line 412 "parser.ypp" +#line 413 "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 2366 "parser.cpp" +#line 2371 "parser.cpp" break; case 69: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" -#line 417 "parser.ypp" +#line 418 "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 2372 "parser.cpp" +#line 2377 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" -#line 419 "parser.ypp" +#line 420 "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 2378 "parser.cpp" +#line 2383 "parser.cpp" break; case 71: // stmt_waittillframeend: "waittillframeend" ";" -#line 424 "parser.ypp" +#line 425 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2384 "parser.cpp" +#line 2389 "parser.cpp" break; case 72: // stmt_if: "if" "(" expr ")" stmt -#line 429 "parser.ypp" +#line 430 "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 2390 "parser.cpp" +#line 2395 "parser.cpp" break; case 73: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt -#line 434 "parser.ypp" +#line 435 "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 2396 "parser.cpp" +#line 2401 "parser.cpp" break; case 74: // stmt_while: "while" "(" expr ")" stmt -#line 439 "parser.ypp" +#line 440 "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 2402 "parser.cpp" +#line 2407 "parser.cpp" break; case 75: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" -#line 444 "parser.ypp" +#line 445 "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 2408 "parser.cpp" +#line 2413 "parser.cpp" break; case 76: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt -#line 449 "parser.ypp" +#line 450 "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 2414 "parser.cpp" +#line 2419 "parser.cpp" break; case 77: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt -#line 454 "parser.ypp" +#line 455 "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 2420 "parser.cpp" +#line 2425 "parser.cpp" break; case 78: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt -#line 456 "parser.ypp" +#line 457 "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 2426 "parser.cpp" +#line 2431 "parser.cpp" break; case 79: // stmt_switch: "switch" "(" expr ")" stmt_block -#line 461 "parser.ypp" +#line 462 "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 2432 "parser.cpp" +#line 2437 "parser.cpp" break; case 80: // stmt_case: "case" expr_integer ":" -#line 466 "parser.ypp" +#line 467 "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 2438 "parser.cpp" +#line 2443 "parser.cpp" break; case 81: // stmt_case: "case" expr_string ":" -#line 468 "parser.ypp" +#line 469 "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 2444 "parser.cpp" +#line 2449 "parser.cpp" break; case 82: // stmt_default: "default" ":" -#line 473 "parser.ypp" +#line 474 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2450 "parser.cpp" +#line 2455 "parser.cpp" break; case 83: // stmt_break: "break" ";" -#line 478 "parser.ypp" +#line 479 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2456 "parser.cpp" +#line 2461 "parser.cpp" break; case 84: // stmt_continue: "continue" ";" -#line 483 "parser.ypp" +#line 484 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2462 "parser.cpp" +#line 2467 "parser.cpp" break; case 85: // stmt_return: "return" expr ";" -#line 488 "parser.ypp" +#line 489 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2468 "parser.cpp" +#line 2473 "parser.cpp" break; case 86: // stmt_return: "return" ";" -#line 490 "parser.ypp" +#line 491 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2474 "parser.cpp" +#line 2479 "parser.cpp" break; case 87: // stmt_breakpoint: "breakpoint" ";" -#line 495 "parser.ypp" +#line 496 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2480 "parser.cpp" +#line 2485 "parser.cpp" break; case 88: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" -#line 500 "parser.ypp" +#line 501 "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 2486 "parser.cpp" +#line 2491 "parser.cpp" break; case 89: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" -#line 505 "parser.ypp" +#line 506 "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 2492 "parser.cpp" +#line 2497 "parser.cpp" break; case 90: // expr: expr_ternary -#line 509 "parser.ypp" +#line 510 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2498 "parser.cpp" +#line 2503 "parser.cpp" break; case 91: // expr: expr_binary -#line 510 "parser.ypp" +#line 511 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2504 "parser.cpp" +#line 2509 "parser.cpp" break; case 92: // expr: expr_primitive -#line 511 "parser.ypp" +#line 512 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2510 "parser.cpp" +#line 2515 "parser.cpp" break; case 93: // expr_or_empty: expr -#line 515 "parser.ypp" +#line 516 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2516 "parser.cpp" +#line 2521 "parser.cpp" break; case 94: // expr_or_empty: %empty -#line 516 "parser.ypp" +#line 517 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2522 "parser.cpp" +#line 2527 "parser.cpp" break; case 95: // expr_assign: expr_object "=" expr -#line 521 "parser.ypp" +#line 522 "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 2528 "parser.cpp" +#line 2533 "parser.cpp" break; case 96: // expr_assign: expr_object "|=" expr -#line 523 "parser.ypp" +#line 524 "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 2534 "parser.cpp" +#line 2539 "parser.cpp" break; case 97: // expr_assign: expr_object "&=" expr -#line 525 "parser.ypp" +#line 526 "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 2540 "parser.cpp" +#line 2545 "parser.cpp" break; case 98: // expr_assign: expr_object "^=" expr -#line 527 "parser.ypp" +#line 528 "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 2546 "parser.cpp" +#line 2551 "parser.cpp" break; case 99: // expr_assign: expr_object "<<=" expr -#line 529 "parser.ypp" +#line 530 "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 2552 "parser.cpp" +#line 2557 "parser.cpp" break; case 100: // expr_assign: expr_object ">>=" expr -#line 531 "parser.ypp" +#line 532 "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 2558 "parser.cpp" +#line 2563 "parser.cpp" break; case 101: // expr_assign: expr_object "+=" expr -#line 533 "parser.ypp" +#line 534 "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 2564 "parser.cpp" +#line 2569 "parser.cpp" break; case 102: // expr_assign: expr_object "-=" expr -#line 535 "parser.ypp" +#line 536 "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 2570 "parser.cpp" +#line 2575 "parser.cpp" break; case 103: // expr_assign: expr_object "*=" expr -#line 537 "parser.ypp" +#line 538 "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 2576 "parser.cpp" +#line 2581 "parser.cpp" break; case 104: // expr_assign: expr_object "/=" expr -#line 539 "parser.ypp" +#line 540 "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 2582 "parser.cpp" +#line 2587 "parser.cpp" break; case 105: // expr_assign: expr_object "%=" expr -#line 541 "parser.ypp" +#line 542 "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 2588 "parser.cpp" +#line 2593 "parser.cpp" break; case 106: // expr_increment: "++" expr_object -#line 546 "parser.ypp" +#line 547 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2594 "parser.cpp" +#line 2599 "parser.cpp" break; case 107: // expr_increment: expr_object "++" -#line 548 "parser.ypp" +#line 549 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2600 "parser.cpp" +#line 2605 "parser.cpp" break; case 108: // expr_decrement: "--" expr_object -#line 553 "parser.ypp" +#line 554 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2606 "parser.cpp" +#line 2611 "parser.cpp" break; case 109: // expr_decrement: expr_object "--" -#line 555 "parser.ypp" +#line 556 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2612 "parser.cpp" +#line 2617 "parser.cpp" break; case 110: // expr_ternary: expr "?" expr ":" expr -#line 560 "parser.ypp" +#line 561 "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 2618 "parser.cpp" +#line 2623 "parser.cpp" break; case 111: // expr_binary: expr "||" expr -#line 565 "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 2624 "parser.cpp" +#line 2629 "parser.cpp" break; case 112: // expr_binary: expr "&&" expr -#line 567 "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 2630 "parser.cpp" +#line 2635 "parser.cpp" break; case 113: // expr_binary: expr "==" expr -#line 569 "parser.ypp" +#line 570 "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 2636 "parser.cpp" +#line 2641 "parser.cpp" break; case 114: // expr_binary: expr "!=" expr -#line 571 "parser.ypp" +#line 572 "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 2642 "parser.cpp" +#line 2647 "parser.cpp" break; case 115: // expr_binary: expr "<=" expr -#line 573 "parser.ypp" +#line 574 "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 2648 "parser.cpp" +#line 2653 "parser.cpp" break; case 116: // expr_binary: expr ">=" expr -#line 575 "parser.ypp" +#line 576 "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 2654 "parser.cpp" +#line 2659 "parser.cpp" break; case 117: // expr_binary: expr "<" expr -#line 577 "parser.ypp" +#line 578 "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 2660 "parser.cpp" +#line 2665 "parser.cpp" break; case 118: // expr_binary: expr ">" expr -#line 579 "parser.ypp" +#line 580 "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 2666 "parser.cpp" +#line 2671 "parser.cpp" break; case 119: // expr_binary: expr "|" expr -#line 581 "parser.ypp" +#line 582 "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 2672 "parser.cpp" +#line 2677 "parser.cpp" break; case 120: // expr_binary: expr "&" expr -#line 583 "parser.ypp" +#line 584 "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 2678 "parser.cpp" +#line 2683 "parser.cpp" break; case 121: // expr_binary: expr "^" expr -#line 585 "parser.ypp" +#line 586 "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 2684 "parser.cpp" +#line 2689 "parser.cpp" break; case 122: // expr_binary: expr "<<" expr -#line 587 "parser.ypp" +#line 588 "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 2690 "parser.cpp" +#line 2695 "parser.cpp" break; case 123: // expr_binary: expr ">>" expr -#line 589 "parser.ypp" +#line 590 "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 2696 "parser.cpp" +#line 2701 "parser.cpp" break; case 124: // expr_binary: expr "+" expr -#line 591 "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 2702 "parser.cpp" +#line 2707 "parser.cpp" break; case 125: // expr_binary: expr "-" expr -#line 593 "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 2708 "parser.cpp" +#line 2713 "parser.cpp" break; case 126: // expr_binary: expr "*" expr -#line 595 "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 2714 "parser.cpp" +#line 2719 "parser.cpp" break; case 127: // expr_binary: expr "/" expr -#line 597 "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 2720 "parser.cpp" +#line 2725 "parser.cpp" break; case 128: // expr_binary: expr "%" expr -#line 599 "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 2726 "parser.cpp" +#line 2731 "parser.cpp" break; case 129: // expr_primitive: expr_complement -#line 603 "parser.ypp" +#line 604 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2732 "parser.cpp" +#line 2737 "parser.cpp" break; case 130: // expr_primitive: expr_not -#line 604 "parser.ypp" +#line 605 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2738 "parser.cpp" +#line 2743 "parser.cpp" break; case 131: // expr_primitive: expr_call -#line 605 "parser.ypp" +#line 606 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2744 "parser.cpp" +#line 2749 "parser.cpp" break; case 132: // expr_primitive: expr_method -#line 606 "parser.ypp" +#line 607 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2750 "parser.cpp" +#line 2755 "parser.cpp" break; case 133: // expr_primitive: expr_add_array -#line 607 "parser.ypp" +#line 608 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2756 "parser.cpp" +#line 2761 "parser.cpp" break; case 134: // expr_primitive: expr_reference -#line 608 "parser.ypp" +#line 609 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2762 "parser.cpp" +#line 2767 "parser.cpp" break; case 135: // expr_primitive: expr_array -#line 609 "parser.ypp" +#line 610 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2768 "parser.cpp" +#line 2773 "parser.cpp" break; case 136: // expr_primitive: expr_field -#line 610 "parser.ypp" +#line 611 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2774 "parser.cpp" +#line 2779 "parser.cpp" break; case 137: // expr_primitive: expr_size -#line 611 "parser.ypp" +#line 612 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2780 "parser.cpp" +#line 2785 "parser.cpp" break; case 138: // expr_primitive: expr_paren -#line 612 "parser.ypp" +#line 613 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2786 "parser.cpp" +#line 2791 "parser.cpp" break; case 139: // expr_primitive: expr_thisthread -#line 613 "parser.ypp" +#line 614 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2792 "parser.cpp" +#line 2797 "parser.cpp" break; case 140: // expr_primitive: expr_empty_array -#line 614 "parser.ypp" +#line 615 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2798 "parser.cpp" +#line 2803 "parser.cpp" break; case 141: // expr_primitive: expr_undefined -#line 615 "parser.ypp" +#line 616 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2804 "parser.cpp" +#line 2809 "parser.cpp" break; case 142: // expr_primitive: expr_game -#line 616 "parser.ypp" +#line 617 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2810 "parser.cpp" +#line 2815 "parser.cpp" break; case 143: // expr_primitive: expr_self -#line 617 "parser.ypp" +#line 618 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2816 "parser.cpp" +#line 2821 "parser.cpp" break; case 144: // expr_primitive: expr_anim -#line 618 "parser.ypp" +#line 619 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2822 "parser.cpp" +#line 2827 "parser.cpp" break; case 145: // expr_primitive: expr_level -#line 619 "parser.ypp" +#line 620 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2828 "parser.cpp" +#line 2833 "parser.cpp" break; case 146: // expr_primitive: expr_animation -#line 620 "parser.ypp" +#line 621 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2834 "parser.cpp" +#line 2839 "parser.cpp" break; case 147: // expr_primitive: expr_animtree -#line 621 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2840 "parser.cpp" - break; - - case 148: // expr_primitive: expr_identifier #line 622 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 2846 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2845 "parser.cpp" break; - case 149: // expr_primitive: expr_istring + case 148: // expr_primitive: expr_identifier_neg #line 623 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } -#line 2852 "parser.cpp" + { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } +#line 2851 "parser.cpp" break; - case 150: // expr_primitive: expr_string + case 149: // expr_primitive: expr_identifier #line 624 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } -#line 2858 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 2857 "parser.cpp" break; - case 151: // expr_primitive: expr_vector + case 150: // expr_primitive: expr_istring #line 625 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } -#line 2864 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } +#line 2863 "parser.cpp" break; - case 152: // expr_primitive: expr_float + case 151: // expr_primitive: expr_string #line 626 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } -#line 2870 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } +#line 2869 "parser.cpp" break; - case 153: // expr_primitive: expr_integer + case 152: // expr_primitive: expr_vector #line 627 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } -#line 2876 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } +#line 2875 "parser.cpp" break; - case 154: // expr_primitive: expr_false + case 153: // expr_primitive: expr_float #line 628 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } -#line 2882 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } +#line 2881 "parser.cpp" break; - case 155: // expr_primitive: expr_true + case 154: // expr_primitive: expr_integer #line 629 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } +#line 2887 "parser.cpp" + break; + + case 155: // expr_primitive: expr_false +#line 630 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } +#line 2893 "parser.cpp" + break; + + case 156: // expr_primitive: expr_true +#line 631 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_true::ptr > ()); } -#line 2888 "parser.cpp" +#line 2899 "parser.cpp" break; - case 156: // expr_complement: "~" expr -#line 634 "parser.ypp" + case 157: // expr_complement: "~" expr +#line 636 "parser.ypp" { yylhs.value.as < ast::expr_complement::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2894 "parser.cpp" +#line 2905 "parser.cpp" break; - case 157: // expr_not: "!" expr -#line 639 "parser.ypp" + case 158: // expr_not: "!" expr +#line 641 "parser.ypp" { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2900 "parser.cpp" +#line 2911 "parser.cpp" break; - case 158: // expr_call: expr_function -#line 643 "parser.ypp" + case 159: // expr_call: expr_function +#line 645 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2906 "parser.cpp" +#line 2917 "parser.cpp" break; - case 159: // expr_call: expr_pointer -#line 644 "parser.ypp" + case 160: // expr_call: expr_pointer +#line 646 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2912 "parser.cpp" +#line 2923 "parser.cpp" break; - case 160: // expr_method: expr_object expr_function -#line 647 "parser.ypp" + case 161: // expr_method: expr_object expr_function +#line 649 "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 2918 "parser.cpp" +#line 2929 "parser.cpp" break; - case 161: // expr_method: expr_object expr_pointer -#line 648 "parser.ypp" + case 162: // expr_method: expr_object expr_pointer +#line 650 "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 2924 "parser.cpp" +#line 2935 "parser.cpp" break; - case 162: // expr_function: expr_identifier "(" expr_arguments ")" -#line 653 "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 2930 "parser.cpp" - break; - - case 163: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" + case 163: // expr_function: expr_identifier "(" expr_arguments ")" #line 655 "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 2936 "parser.cpp" + { 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 2941 "parser.cpp" break; - case 164: // expr_function: "thread" expr_identifier "(" expr_arguments ")" + case 164: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" #line 657 "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 2942 "parser.cpp" + { 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 2947 "parser.cpp" break; - case 165: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 165: // expr_function: "thread" expr_identifier "(" expr_arguments ")" #line 659 "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 2948 "parser.cpp" + { 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 2953 "parser.cpp" break; - case 166: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" + case 166: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" #line 661 "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::childthread); } -#line 2954 "parser.cpp" + { 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 2959 "parser.cpp" break; - case 167: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 167: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" #line 663 "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::childthread); } +#line 2965 "parser.cpp" + break; + + case 168: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" +#line 665 "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::childthread); } -#line 2960 "parser.cpp" +#line 2971 "parser.cpp" break; - case 168: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" -#line 668 "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 2966 "parser.cpp" - break; - - case 169: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 169: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 670 "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 2972 "parser.cpp" + { 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 2977 "parser.cpp" break; - case 170: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 170: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 672 "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::childthread); } -#line 2978 "parser.cpp" + { 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 2983 "parser.cpp" break; - case 171: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 171: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 674 "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::childthread); } +#line 2989 "parser.cpp" + break; + + case 172: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 676 "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::builtin); } -#line 2984 "parser.cpp" +#line 2995 "parser.cpp" break; - case 172: // expr_add_array: "[" expr_arguments_no_empty "]" -#line 679 "parser.ypp" + case 173: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 681 "parser.ypp" { yylhs.value.as < ast::expr_add_array::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ())); } -#line 2990 "parser.cpp" +#line 3001 "parser.cpp" break; - case 173: // expr_parameters: expr_parameters "," expr_identifier -#line 684 "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 2996 "parser.cpp" - break; - - case 174: // expr_parameters: expr_identifier + case 174: // expr_parameters: expr_parameters "," expr_identifier #line 686 "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 3002 "parser.cpp" + { 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 3007 "parser.cpp" break; - case 175: // expr_parameters: %empty + case 175: // expr_parameters: expr_identifier #line 688 "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 3013 "parser.cpp" + break; + + case 176: // expr_parameters: %empty +#line 690 "parser.ypp" { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } -#line 3008 "parser.cpp" +#line 3019 "parser.cpp" break; - case 176: // expr_arguments: expr_arguments_no_empty -#line 693 "parser.ypp" - { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } -#line 3014 "parser.cpp" - break; - - case 177: // expr_arguments: %empty + case 177: // expr_arguments: expr_arguments_no_empty #line 695 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3025 "parser.cpp" + break; + + case 178: // expr_arguments: %empty +#line 697 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3020 "parser.cpp" +#line 3031 "parser.cpp" break; - case 178: // expr_arguments_no_empty: expr_arguments "," expr -#line 700 "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 3026 "parser.cpp" - break; - - case 179: // expr_arguments_no_empty: expr + case 179: // expr_arguments_no_empty: expr_arguments "," expr #line 702 "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 3037 "parser.cpp" + break; + + case 180: // expr_arguments_no_empty: expr +#line 704 "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 3032 "parser.cpp" +#line 3043 "parser.cpp" break; - case 180: // expr_reference: "::" expr_identifier -#line 707 "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 3038 "parser.cpp" - break; - - case 181: // expr_reference: expr_path "::" expr_identifier + case 181: // expr_reference: "::" expr_identifier #line 709 "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 3049 "parser.cpp" + break; + + case 182: // expr_reference: expr_path "::" expr_identifier +#line 711 "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 3044 "parser.cpp" +#line 3055 "parser.cpp" break; - case 182: // expr_array: expr_object "[" expr "]" -#line 714 "parser.ypp" + case 183: // expr_array: expr_object "[" expr "]" +#line 716 "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 3050 "parser.cpp" +#line 3061 "parser.cpp" break; - case 183: // expr_field: expr_object "." expr_identifier_nosize -#line 719 "parser.ypp" + case 184: // expr_field: expr_object "." expr_identifier_nosize +#line 721 "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 3056 "parser.cpp" +#line 3067 "parser.cpp" break; - case 184: // expr_size: expr_object "." "size" -#line 724 "parser.ypp" + case 185: // expr_size: expr_object "." "size" +#line 726 "parser.ypp" { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } -#line 3062 "parser.cpp" +#line 3073 "parser.cpp" break; - case 185: // expr_paren: "(" expr ")" -#line 729 "parser.ypp" + case 186: // expr_paren: "(" expr ")" +#line 731 "parser.ypp" { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3068 "parser.cpp" +#line 3079 "parser.cpp" break; - case 186: // expr_object: expr_call -#line 733 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 3074 "parser.cpp" - break; - - case 187: // expr_object: expr_method -#line 734 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 3080 "parser.cpp" - break; - - case 188: // expr_object: expr_array + case 187: // expr_object: expr_call #line 735 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3086 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3085 "parser.cpp" break; - case 189: // expr_object: expr_field + case 188: // expr_object: expr_method #line 736 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 3092 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3091 "parser.cpp" break; - case 190: // expr_object: expr_game + case 189: // expr_object: expr_array #line 737 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 3098 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3097 "parser.cpp" break; - case 191: // expr_object: expr_self + case 190: // expr_object: expr_field #line 738 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 3104 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3103 "parser.cpp" break; - case 192: // expr_object: expr_anim + case 191: // expr_object: expr_game #line 739 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 3110 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3109 "parser.cpp" break; - case 193: // expr_object: expr_level + case 192: // expr_object: expr_self #line 740 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 3116 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3115 "parser.cpp" break; - case 194: // expr_object: expr_identifier + case 193: // expr_object: expr_anim #line 741 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3121 "parser.cpp" + break; + + case 194: // expr_object: expr_level +#line 742 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3127 "parser.cpp" + break; + + case 195: // expr_object: expr_identifier +#line 743 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 3122 "parser.cpp" +#line 3133 "parser.cpp" break; - case 195: // expr_thisthread: "thisthread" -#line 746 "parser.ypp" + case 196: // expr_thisthread: "thisthread" +#line 748 "parser.ypp" { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3128 "parser.cpp" +#line 3139 "parser.cpp" break; - case 196: // expr_empty_array: "[" "]" -#line 751 "parser.ypp" + case 197: // expr_empty_array: "[" "]" +#line 753 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3134 "parser.cpp" +#line 3145 "parser.cpp" break; - case 197: // expr_undefined: "undefined" -#line 756 "parser.ypp" + case 198: // expr_undefined: "undefined" +#line 758 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3140 "parser.cpp" +#line 3151 "parser.cpp" break; - case 198: // expr_game: "game" -#line 761 "parser.ypp" + case 199: // expr_game: "game" +#line 763 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3146 "parser.cpp" +#line 3157 "parser.cpp" break; - case 199: // expr_self: "self" -#line 766 "parser.ypp" + case 200: // expr_self: "self" +#line 768 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3152 "parser.cpp" +#line 3163 "parser.cpp" break; - case 200: // expr_anim: "anim" -#line 771 "parser.ypp" + case 201: // expr_anim: "anim" +#line 773 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3158 "parser.cpp" +#line 3169 "parser.cpp" break; - case 201: // expr_level: "level" -#line 776 "parser.ypp" + case 202: // expr_level: "level" +#line 778 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3164 "parser.cpp" +#line 3175 "parser.cpp" break; - case 202: // expr_animation: "%" "identifier" -#line 781 "parser.ypp" + case 203: // expr_animation: "%" "identifier" +#line 783 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3170 "parser.cpp" +#line 3181 "parser.cpp" break; - case 203: // expr_animtree: "#animtree" -#line 786 "parser.ypp" + case 204: // expr_animtree: "#animtree" +#line 788 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3176 "parser.cpp" +#line 3187 "parser.cpp" break; - case 204: // expr_identifier_nosize: "identifier" -#line 791 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3182 "parser.cpp" + case 205: // expr_identifier_neg: "-" "identifier" +#line 793 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, ast::expr(std::make_unique(yylhs.location, "0")), ast::expr(std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()))); } +#line 3193 "parser.cpp" break; - case 205: // expr_identifier: "identifier" -#line 796 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3188 "parser.cpp" - break; - - case 206: // expr_identifier: "size" + case 206: // expr_identifier_nosize: "identifier" #line 798 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3194 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3199 "parser.cpp" break; - case 207: // expr_path: "identifier" + case 207: // expr_identifier: "identifier" #line 803 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3200 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3205 "parser.cpp" break; - case 208: // expr_path: "path" + case 208: // expr_identifier: "size" #line 805 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3206 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } +#line 3211 "parser.cpp" break; - case 209: // expr_istring: "localized string" + case 209: // expr_path: "identifier" #line 810 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3217 "parser.cpp" + break; + + case 210: // expr_path: "path" +#line 812 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3223 "parser.cpp" + break; + + case 211: // expr_istring: "localized string" +#line 817 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3212 "parser.cpp" +#line 3229 "parser.cpp" break; - case 210: // expr_string: "string literal" -#line 815 "parser.ypp" + case 212: // expr_string: "string literal" +#line 822 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3218 "parser.cpp" +#line 3235 "parser.cpp" break; - case 211: // expr_vector: "(" expr "," expr "," expr ")" -#line 820 "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 3224 "parser.cpp" - break; - - case 212: // expr_float: "-" "float" -#line 825 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3230 "parser.cpp" - break; - - case 213: // expr_float: "float" + case 213: // expr_vector: "(" expr "," expr "," expr ")" #line 827 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3236 "parser.cpp" + { 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 3241 "parser.cpp" break; - case 214: // expr_integer: "-" "integer" + case 214: // expr_float: "-" "float" #line 832 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3242 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3247 "parser.cpp" break; - case 215: // expr_integer: "integer" + case 215: // expr_float: "float" #line 834 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3248 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3253 "parser.cpp" break; - case 216: // expr_false: "false" + case 216: // expr_integer: "-" "integer" #line 839 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3259 "parser.cpp" + break; + + case 217: // expr_integer: "integer" +#line 841 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3265 "parser.cpp" + break; + + case 218: // expr_false: "false" +#line 846 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3254 "parser.cpp" +#line 3271 "parser.cpp" break; - case 217: // expr_true: "true" -#line 844 "parser.ypp" + case 219: // expr_true: "true" +#line 851 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3260 "parser.cpp" +#line 3277 "parser.cpp" break; -#line 3264 "parser.cpp" +#line 3281 "parser.cpp" default: break; @@ -3474,9 +3491,9 @@ namespace xsk { namespace gsc { namespace iw5 { "expr_array", "expr_field", "expr_size", "expr_paren", "expr_object", "expr_thisthread", "expr_empty_array", "expr_undefined", "expr_game", "expr_self", "expr_anim", "expr_level", "expr_animation", - "expr_animtree", "expr_identifier_nosize", "expr_identifier", - "expr_path", "expr_istring", "expr_string", "expr_vector", "expr_float", - "expr_integer", "expr_false", "expr_true", YY_NULLPTR + "expr_animtree", "expr_identifier_neg", "expr_identifier_nosize", + "expr_identifier", "expr_path", "expr_istring", "expr_string", + "expr_vector", "expr_float", "expr_integer", "expr_false", "expr_true", YY_NULLPTR }; return yy_sname[yysymbol]; } @@ -3747,494 +3764,490 @@ namespace xsk { namespace gsc { namespace iw5 { const short parser::yypact_ninf_ = -266; - const short parser::yytable_ninf_ = -208; + const short parser::yytable_ninf_ = -210; const short parser::yypact_[] = { - 6, -266, -266, -13, -13, -23, -266, -266, 39, 6, - -266, -266, -266, -266, -266, -266, -40, -266, -266, 11, - 20, -11, -266, -266, -266, -266, -38, 1079, -266, -266, - -266, 43, -3, -266, -266, -22, 31, -266, 46, -266, - -266, -266, -266, -266, -266, -266, 1079, 644, -38, 1079, - 1079, 60, -6, 45, -266, -266, -266, 2012, -266, -266, - -266, -266, -266, 476, 583, -266, -266, -266, -266, 836, - 841, -266, -266, 1039, -266, -266, -266, 1047, 1106, 1277, - 1285, -266, -266, 67, 49, -266, -266, -266, -266, -266, - -266, -266, 41, 64, -38, 65, 68, 83, 71, 72, - 91, 98, 1298, 644, -266, 2095, 76, 101, -266, -266, - -266, -266, -266, -266, -266, 1079, 1079, 1079, 1079, 1079, - 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, - 1079, 1079, 1079, 1079, 1142, -19, -266, -266, 108, 103, - 1079, -38, -266, 805, -266, -266, 1079, 1079, -38, 1079, - 1079, -38, 1079, -266, 1079, 1742, 1079, -266, 1977, 133, - 133, 2126, 2136, 212, 212, 74, 74, 74, 74, 2167, - 2208, 2177, -63, -63, -266, -266, -266, 1782, -266, -266, - -266, -38, -2, -266, 119, 934, 1079, 110, 127, 1265, - 128, 131, 132, 135, -58, 136, 126, 130, 1016, 134, - 141, 142, -266, 146, 50, 50, -266, -266, 881, -266, + 3, -266, -266, 1, 1, -31, -266, -266, 24, 3, + -266, -266, -266, -266, -266, -266, -23, -266, -266, -22, + -20, -48, -266, -266, -266, -266, -27, 1109, -266, -266, + -266, -1, -47, -266, -266, 6, 21, -266, 11, -266, + -266, -266, -266, -266, -266, -266, 1109, 983, -27, 1109, + 1109, 60, -44, 15, -266, -266, -266, 1979, -266, -266, + -266, -266, -266, 409, 540, -266, -266, -266, -266, 550, + 599, -266, -266, 609, -266, -266, -266, 630, 677, 720, + 803, -266, -266, -266, 503, 18, -266, -266, -266, -266, + -266, -266, -266, 20, 35, -27, 41, 68, 63, 75, + 89, 72, 86, 1305, 983, -266, 2062, 85, 90, -266, + -266, -266, -266, -266, -266, -266, -266, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1172, -25, -266, -266, + 98, 93, 1109, -27, -266, 772, -266, -266, 1109, 1109, + -27, 1109, 1109, -27, 1109, -266, 1109, 1105, 1109, -266, + 1944, 167, 167, 975, 2093, 1037, 1037, 137, 137, 137, + 137, 2103, 2144, 2134, -30, -30, -266, -266, -266, 1749, + -266, -266, -266, -27, -15, -266, 108, 901, 1109, 106, + 117, 1295, 119, 121, 124, 128, -58, 125, 120, 123, + 1046, 129, 142, 143, -266, 140, 116, 116, -266, -266, + 848, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, - -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, - -266, -266, -266, -266, 145, 148, 149, 150, 151, -266, - -266, 1189, -266, -266, -266, -266, 108, 1822, -1, 156, - 1862, 1, 164, 1902, 1941, 160, 2095, 1079, -266, 119, - -266, 1079, -266, -266, 987, 2047, -266, 1079, 171, 1079, - 397, -38, 1079, 129, 174, 176, -266, -266, -266, -266, - 2082, -266, 1079, 1079, 1079, -266, -266, 1299, 1299, -266, - -266, -266, -266, -266, -266, -266, 169, 180, 186, 187, - 105, -266, -266, 1079, 1079, 1079, 1079, 1079, 1079, 1079, - 1079, 1079, 1079, 1079, 184, -266, 1079, 188, -266, 1079, - 191, 1079, 192, 2095, 19, -266, -266, -266, 1464, 197, - 1498, 190, -266, -266, -266, -17, -15, 1532, -266, -266, - -266, 36, 58, 1742, 1079, 1079, 1079, 1079, 2095, 2095, - 2095, 2095, 2095, 2095, 2095, 2095, 2095, 2095, 2095, 198, - 59, 203, 77, 204, 1566, 1079, -266, 1265, 1079, 1265, - 1079, 1079, -38, 64, 199, 200, 1600, 1342, 1386, 1430, - 1079, -266, 1079, -266, 1079, -266, 78, 234, 1634, -266, - 2095, 201, 1668, 238, -266, -266, -266, 202, 207, 1079, - 211, 1079, 213, 1079, 79, 80, 92, -266, 1265, 214, - 397, 1265, 1079, -266, -266, 224, -266, 228, -266, 229, - -266, -266, -266, -266, -266, 237, -266, 1702, 230, 231, - 233, 1265, 1265, -266, -266, -266, -266, -266 + -266, -266, -266, -266, -266, -266, 138, 144, 147, 148, + 150, -266, -266, 1219, -266, -266, -266, -266, 98, 1789, + 5, 153, 1829, 26, 166, 1869, 1908, 162, 2062, 1109, + -266, 108, -266, 1109, -266, -266, 954, 2014, -266, 1109, + 198, 1109, -17, -27, 1109, 126, 165, 174, -266, -266, + -266, -266, 2049, -266, 1109, 1109, 1109, -266, -266, 808, + 808, -266, -266, -266, -266, -266, -266, -266, 175, 184, + 188, 190, 145, -266, -266, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 189, -266, 1109, 191, + -266, 1109, 193, 1109, 195, 2062, 33, -266, -266, -266, + 1471, 200, 1505, 183, -266, -266, -266, 29, -2, 1539, + -266, -266, -266, 34, 37, 1105, 1109, 1109, 1109, 1109, + 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, + 2062, 202, 47, 204, 71, 205, 1573, 1109, -266, 1295, + 1109, 1295, 1109, 1109, -27, 35, 203, 206, 1607, 1349, + 1393, 1437, 1109, -266, 1109, -266, 1109, -266, 77, 226, + 1641, -266, 2062, 208, 1675, 236, -266, -266, -266, 210, + 213, 1109, 215, 1109, 216, 1109, 80, 81, 87, -266, + 1295, 217, -17, 1295, 1109, -266, -266, 228, -266, 234, + -266, 235, -266, -266, -266, -266, -266, 240, -266, 1709, + 227, 232, 233, 1295, 1295, -266, -266, -266, -266, -266 }; const unsigned char parser::yydefact_[] = { - 3, 12, 13, 0, 0, 0, 206, 205, 0, 2, - 7, 8, 9, 14, 15, 16, 0, 208, 207, 0, - 0, 0, 1, 4, 5, 6, 175, 0, 10, 11, - 210, 0, 0, 174, 203, 0, 0, 195, 0, 217, - 216, 197, 198, 199, 200, 201, 0, 177, 0, 0, - 0, 0, 0, 205, 209, 213, 215, 0, 90, 91, - 92, 129, 130, 131, 132, 158, 159, 133, 134, 135, + 3, 12, 13, 0, 0, 0, 208, 207, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 210, 209, 0, + 0, 0, 1, 4, 5, 6, 176, 0, 10, 11, + 212, 0, 0, 175, 204, 0, 0, 196, 0, 219, + 218, 198, 199, 200, 201, 202, 0, 178, 0, 0, + 0, 0, 0, 207, 211, 215, 217, 0, 90, 91, + 92, 129, 130, 131, 132, 159, 160, 133, 134, 135, 136, 137, 138, 0, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 0, 149, 150, 151, 152, 153, - 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 177, 196, 179, 0, 176, 180, 157, - 156, 212, 214, 202, 18, 0, 0, 0, 0, 0, + 145, 146, 147, 148, 149, 0, 150, 151, 152, 153, + 154, 155, 156, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 178, 197, 180, 0, 177, 181, + 158, 157, 205, 214, 216, 203, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 160, 161, 0, 0, - 177, 0, 17, 0, 19, 173, 0, 177, 0, 0, - 177, 0, 0, 185, 0, 179, 0, 172, 0, 122, - 123, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 124, 125, 126, 127, 128, 0, 184, 204, - 183, 0, 0, 176, 181, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, + 0, 0, 178, 0, 17, 0, 19, 174, 0, 178, + 0, 0, 178, 0, 0, 186, 0, 180, 0, 173, + 0, 122, 123, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 124, 125, 126, 127, 128, 0, + 185, 206, 184, 0, 0, 177, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 0, 44, 49, 0, 45, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 0, 0, 0, 186, 187, 188, - 189, 0, 190, 191, 192, 193, 194, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 178, 0, 182, 0, - 162, 177, 51, 47, 0, 0, 71, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 82, 83, 84, 86, - 0, 87, 177, 177, 0, 186, 187, 106, 108, 52, - 48, 60, 61, 62, 58, 59, 0, 0, 0, 0, - 0, 107, 109, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 164, 177, 0, 166, 177, - 0, 0, 0, 110, 0, 50, 46, 66, 0, 0, - 0, 0, 54, 55, 56, 0, 0, 0, 81, 80, - 85, 0, 0, 0, 0, 0, 0, 0, 95, 101, - 102, 103, 104, 105, 96, 97, 98, 100, 99, 0, - 0, 0, 0, 0, 0, 177, 163, 0, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 177, 165, 177, 167, 177, 211, 0, 72, 0, 74, - 93, 0, 0, 0, 79, 88, 89, 0, 0, 177, - 0, 177, 0, 177, 0, 0, 0, 168, 0, 0, - 57, 0, 0, 63, 65, 176, 68, 176, 70, 176, - 169, 170, 171, 73, 75, 0, 77, 0, 0, 0, - 0, 0, 0, 64, 67, 69, 76, 78 + 0, 0, 0, 0, 53, 0, 0, 0, 44, 49, + 0, 45, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 0, 0, 0, 187, + 188, 189, 190, 0, 191, 192, 193, 194, 195, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, + 183, 0, 163, 178, 51, 47, 0, 0, 71, 0, + 0, 0, 57, 0, 0, 0, 0, 0, 82, 83, + 84, 86, 0, 87, 178, 178, 0, 187, 188, 106, + 108, 52, 48, 60, 61, 62, 58, 59, 0, 0, + 0, 0, 0, 107, 109, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 165, 178, 0, + 167, 178, 0, 0, 0, 110, 0, 50, 46, 66, + 0, 0, 0, 0, 54, 55, 56, 0, 0, 0, + 81, 80, 85, 0, 0, 0, 0, 0, 0, 0, + 95, 101, 102, 103, 104, 105, 96, 97, 98, 100, + 99, 0, 0, 0, 0, 0, 0, 178, 164, 0, + 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 178, 166, 178, 168, 178, 213, 0, 72, + 0, 74, 93, 0, 0, 0, 79, 88, 89, 0, + 0, 178, 0, 178, 0, 178, 0, 0, 0, 169, + 0, 0, 57, 0, 0, 63, 65, 177, 68, 177, + 70, 177, 170, 171, 172, 73, 75, 0, 77, 0, + 0, 0, 0, 0, 0, 64, 67, 69, 76, 78 }; const short parser::yypgoto_[] = { - -266, -266, -266, 286, 289, 291, -266, -266, -266, -179, - 93, -266, -266, -266, -91, -108, -266, -266, -266, -266, + -266, -266, -266, 286, 287, 288, -266, -266, -266, -131, + 91, -266, -266, -266, -91, -112, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, - -266, -266, -266, -266, -266, -266, -266, -266, -266, 196, - -266, -265, -255, -254, -266, -266, -266, -266, -266, -31, - -5, -69, -66, -266, -266, -26, -46, -266, 208, 266, - -266, -266, 306, -266, -266, -266, 340, 380, 389, 394, - -266, -266, -266, 0, 9, -266, -18, -266, -266, 114, - -266, -266 + -266, -266, -266, -266, -266, -266, -266, -266, -266, 187, + -266, -265, -264, -261, -266, -266, -266, -266, -266, -86, + -18, -69, -67, -266, -266, 289, -46, -266, -9, 199, + -266, -266, 253, -266, -266, -266, 281, 321, 331, 359, + -266, -266, -266, -266, 0, 9, -266, -19, -266, -266, + 132, -266, -266 }; const short parser::yydefgoto_[] = { - 0, 8, 9, 10, 11, 12, 13, 14, 15, 206, - 207, 264, 208, 209, 210, 331, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 105, - 391, 234, 235, 236, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 32, 106, 183, 68, 69, 70, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 208, + 209, 266, 210, 211, 212, 333, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 106, + 393, 236, 237, 238, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 32, 107, 185, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 180, 83, 84, 85, 86, 87, 88, 89, - 90, 91 + 81, 82, 83, 182, 84, 85, 86, 87, 88, 89, + 90, 91, 92 }; const short parser::yytable_[] = { - 16, 107, 144, 31, 136, 332, 263, 137, 6, 16, - 268, 26, 19, 20, 371, 333, 334, 1, 2, 3, - 4, 5, 35, 36, 6, 38, 33, 178, 21, 6, - 131, 132, 133, 95, 273, 96, 99, 27, 134, 22, - 30, 300, 372, 56, 97, 100, 301, 302, 108, 93, - 260, 315, 6, 318, 94, 156, 156, 107, 156, 7, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 366, 28, 138, 17, 53, 156, 6, 179, 17, - 53, 29, 139, 17, 18, 326, 98, 30, 374, 35, - 36, 113, 38, 156, 145, 92, 6, 42, 43, 44, - 45, 101, 142, 7, -207, 203, -194, -194, 141, -194, - 375, 381, 237, -194, 182, 156, 156, 143, 140, 147, - 146, 248, -194, 150, 251, -194, 149, 17, 53, 383, - 407, 420, 421, 156, 156, 156, 156, 156, 238, 116, - 117, 184, 148, 246, 422, 332, 17, 53, 249, 156, - 151, 252, 139, 152, 237, 333, 334, 157, 237, 140, - 111, 112, 181, -194, -194, 129, 130, 131, 132, 133, - 261, 266, 136, 285, 285, 137, 274, 237, 267, 269, - 238, 259, 270, 271, 238, 246, 272, 277, 387, 246, - 389, 278, 282, 283, 139, 281, 276, 329, 139, 286, - 286, 284, 179, 238, 246, 246, 291, 316, 246, 292, - 293, 294, 295, 139, 139, 319, 322, 139, 136, 136, - 344, 137, 137, 57, 129, 130, 131, 132, 133, 423, - 112, 345, 426, 237, 338, 324, 339, 346, 347, 285, - 359, 138, 102, 365, 361, 109, 110, 363, 368, 380, - 139, 370, 436, 437, 382, 384, 341, 342, 408, 238, - 395, 396, 410, 413, 246, 286, 136, 412, 414, 137, - 246, 336, 416, 139, 418, 424, 428, 116, 117, 139, - 429, 430, 394, 122, 123, 124, 125, 138, 138, 431, - 360, 433, 434, 362, 435, 23, 139, 139, 24, 155, - 25, 290, 425, 129, 130, 131, 132, 133, 275, 0, - 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 0, 0, 0, 0, 138, 237, 0, 237, 386, - 0, 0, 247, 0, 139, 250, 0, 0, 253, 0, - 254, 239, 256, 415, 404, 417, 405, 419, 406, 0, - 0, 0, 238, 0, 238, 0, 0, 246, 0, 246, - 0, 0, 393, 0, 0, 0, 139, 237, 139, 285, - 237, 0, 265, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 239, 280, 0, 0, 239, 0, 0, - 237, 237, 0, 238, 0, 286, 238, 0, 246, 240, - 246, 246, 239, 239, 0, 0, 239, 139, 0, 139, - 139, 0, 0, 0, 0, 0, 238, 238, 0, 0, - 0, 246, 246, 0, 0, 0, 35, 36, 0, 38, - 139, 139, 0, 6, 42, 43, 44, 45, 0, 241, - 0, 240, 203, 323, 0, 240, 0, 0, 0, 0, - 204, 205, 0, 328, 0, 330, 0, 0, 337, 0, - 240, 240, 239, 0, 240, 0, 0, 0, 239, 0, - 343, 0, 0, 242, 0, 0, 0, 0, 0, 0, - 0, 241, 0, 17, 53, 241, 0, 0, 0, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 287, 288, 0, 0, 241, -186, -186, 364, -186, 0, - 0, 0, -186, 243, 0, 242, 0, 0, 0, 242, - 240, -186, 244, 0, -186, 0, 240, 245, 0, 0, - 376, 377, 378, 379, 242, 242, 0, 0, 242, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 388, 243, 390, 392, 0, 243, - 241, 0, -186, -186, 244, 239, 335, 239, 244, 245, - 0, 0, 0, 245, 243, 243, 0, 0, 243, 0, - 0, 0, 0, 244, 244, 0, 0, 244, 245, 245, - 0, 0, 245, 0, 242, 0, 0, 0, 427, 0, - 242, 0, 0, 0, 0, 0, 239, 0, 239, 239, - 0, 0, -187, -187, 0, -187, 0, 0, 0, -187, - 0, 0, 0, 240, 0, 240, 0, 0, -187, 239, - 239, -187, 0, 0, 243, 0, 0, 0, 0, 0, - 243, 0, 0, 244, 0, 0, 0, 0, 245, 244, - 34, 0, 0, 0, 245, 0, 0, 0, 0, 0, - 0, 0, 0, 241, 240, 241, 240, 240, 0, -187, - -187, 0, 0, 35, 36, 37, 38, 39, 40, 41, - 6, 42, 43, 44, 45, 46, 0, 240, 240, 103, - 104, 0, 0, 48, 0, 0, 0, 242, 0, 242, - 0, 0, 0, 0, 241, 0, 335, 241, 0, 49, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 51, 241, 241, 52, - 17, 53, 30, 54, 55, 56, 0, 243, 242, 243, - 242, 242, 0, 0, 0, 0, 244, 0, 244, 0, - 0, 245, 0, 245, 0, 0, 0, 0, 0, 0, - 0, 242, 242, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 243, 0, - 243, 243, 0, 0, 0, 0, 0, 244, 0, 244, - 244, 0, 245, 0, 245, 245, 0, 0, 0, 0, - 0, 243, 243, 0, 0, 0, 185, 0, 0, 0, - 244, 244, 0, 0, 186, 245, 245, 187, 188, 0, - 189, 190, 191, 192, 0, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 35, 36, 0, 38, 0, 0, - 0, 6, 42, 43, 44, 45, 0, 0, 143, 202, - 203, 0, 0, 0, 0, 0, 0, 0, 204, 205, - 0, 0, 0, 0, 0, -188, -188, 0, -188, 0, - -189, -189, -188, -189, 0, 0, 0, -189, 0, 0, - 0, -188, 185, 0, -188, 0, -189, 0, 0, -189, - 186, 17, 53, 187, 188, 0, 189, 190, 191, 192, - 0, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 35, 36, 0, 38, 0, 0, 0, 6, 42, 43, - 44, 45, -188, -188, 143, 289, 203, -189, -189, 0, - 0, 0, 0, 0, 204, 205, 262, 0, 0, 0, - 0, 0, 0, 186, 0, 0, 187, 188, 0, 189, - 190, 191, 192, 0, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 35, 36, 0, 38, 17, 53, 0, - 6, 42, 43, 44, 45, 0, 0, 143, 0, 203, - 0, 0, 0, 0, 0, 0, 0, 204, 205, 325, - 0, 0, 0, 0, 0, 0, 186, 0, 0, 187, - 188, 0, 189, 190, 191, 192, 0, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 35, 36, 0, 38, - 17, 53, 34, 6, 42, 43, 44, 45, 0, 0, - 143, 0, 203, 0, 0, 0, 0, 0, 0, 0, - 204, 205, 0, 0, 0, 35, 36, 37, 38, 39, + 16, 108, 31, 146, 138, 94, 139, 334, 335, 16, + 95, 336, 19, 20, 1, 2, 3, 4, 5, 6, + 21, 180, 35, 36, 22, 38, 33, 373, 26, 6, + 42, 43, 44, 45, 275, 97, 100, 262, 205, 28, + 30, 29, 158, 56, 98, 101, 206, 207, 109, 6, + 30, 93, 6, 115, 27, 374, 265, 317, 108, 239, + 270, 96, 158, 133, 134, 135, 102, 6, 35, 36, + 7, 38, 181, 140, -209, 6, 99, 143, 320, 17, + 53, 144, 141, 158, 136, 368, 376, 302, 145, 377, + 158, 158, 303, 304, 158, 147, 148, 17, 18, 383, + 7, 239, 17, 53, 158, 239, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 17, 53, 149, + 287, 287, 150, 385, 239, 17, 53, 240, 158, 409, + 151, 153, 422, 423, 158, 328, 241, 158, 158, 424, + 152, 154, 158, 186, 158, 248, 159, 334, 335, 142, + 251, 336, 183, 254, 141, 35, 36, 112, 38, 263, + 113, 114, 6, 42, 43, 44, 45, 268, 269, 240, + 271, 205, 272, 240, 138, 273, 139, 276, 241, 274, + 239, 279, 241, 261, 280, 278, 287, 248, 288, 288, + 283, 248, 240, 284, 285, 286, 141, 241, 241, 293, + 141, 241, 118, 119, 318, 294, 248, 248, 295, 296, + 248, 297, 17, 53, 57, 141, 141, 321, 324, 141, + 138, 138, 139, 139, 331, 340, 346, 114, 131, 132, + 133, 134, 135, 103, 341, 347, 110, 111, 389, 348, + 391, 349, 181, 140, 372, 361, 367, 363, 240, 365, + 410, 370, 141, 382, 288, 384, 386, 241, 131, 132, + 133, 134, 135, 241, 397, 414, 248, 398, 138, 412, + 139, 415, 248, 338, 416, 141, 418, 420, 426, 425, + 430, 141, 428, 239, 396, 239, 431, 432, 435, 140, + 140, 157, 433, 436, 437, 23, 24, 25, 141, 141, + 427, 292, 438, 439, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 239, 0, 287, 239, 277, 0, + 0, 0, 0, 0, 0, 249, 0, 140, 252, 0, + 0, 255, 0, 256, 242, 258, 141, 239, 239, 0, + 0, 240, 0, 240, 0, 417, 0, 419, 0, 421, + 241, 0, 241, 0, 0, 0, 0, 0, 0, 248, + 0, 248, 0, 0, 395, 267, 0, 0, 141, 0, + 141, 0, 0, 0, 0, 0, 242, 282, 0, 0, + 242, 0, 240, 0, 288, 240, 0, 0, 243, 0, + 0, 241, 0, 241, 241, 242, 242, 0, 0, 242, + 248, 0, 248, 248, 0, 240, 240, 0, 0, 141, + 0, 141, 141, 0, 241, 241, 244, 0, 0, 0, + 0, 184, 0, 248, 248, 0, 0, 0, 250, 0, + 243, 253, 141, 141, 243, 0, 325, 0, -187, -187, + 0, -187, 0, 0, 0, -187, 330, 0, 332, 289, + 290, 339, 0, 243, -187, 242, 245, -187, 244, 0, + 0, 242, 244, 345, 0, 0, 246, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 244, 244, 0, + 0, 244, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 0, 247, -187, -187, 0, 245, 0, + 366, 0, 245, 0, 0, 0, 0, 0, 246, 243, + 0, 0, 246, 0, 0, 337, 0, 245, 245, 0, + 0, 245, 0, 378, 379, 380, 381, 246, 246, 0, + 0, 246, -195, -195, 0, -195, 247, 244, 0, -195, + 247, 0, 326, 244, 142, 0, 0, 390, -195, 392, + 394, -195, 0, 0, 0, 247, 247, 0, 242, 247, + 242, 0, 0, 343, 344, 0, 0, 0, 0, -188, + -188, 0, -188, 0, 0, 0, -188, 245, 0, -189, + -189, 0, -189, 245, 0, -188, -189, 246, -188, -195, + -195, 429, 0, 246, 0, -189, 0, 362, -189, 242, + 364, 242, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 243, 0, 243, 247, 0, 0, 0, 0, + 0, 247, 242, 242, 0, 0, -188, -188, -190, -190, + 0, -190, 0, 0, 0, -190, -189, -189, 35, 36, + 244, 38, 244, 0, -190, 6, 388, -190, 0, 0, + 0, 0, 0, 243, 136, 337, 243, 137, 0, -191, + -191, 406, -191, 407, 0, 408, -191, 0, 0, 0, + 0, 0, 0, 0, 0, -191, 243, 243, -191, 0, + 245, 244, 245, 244, 244, -190, -190, 0, 0, 0, + 246, 0, 246, 0, 0, 17, 53, 0, 0, 0, + 0, 0, 0, 0, 244, 244, -192, -192, 0, -192, + 0, 0, 0, -192, 0, 0, -191, -191, 247, 0, + 247, 245, -192, 245, 245, -192, 0, 0, 0, 0, + 0, 246, 0, 246, 246, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 245, 0, 0, 0, -193, + -193, 0, -193, 0, 246, 246, -193, 0, 0, 247, + 0, 247, 247, -192, -192, -193, 0, 0, -193, 0, + 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, + 0, 188, 247, 247, 189, 190, 0, 191, 192, 193, + 194, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 35, 36, 0, 38, 0, -193, -193, 6, 42, + 43, 44, 45, 0, 0, 145, 204, 205, 0, 0, + 0, 0, 0, 0, 0, 206, 207, 0, 0, 0, + 0, 0, -194, -194, 0, -194, 0, 35, 36, -194, + 38, 0, 0, 0, 6, 0, 0, 0, -194, 187, + 0, -194, 0, 136, 0, 0, 302, 188, 17, 53, + 189, 190, 0, 191, 192, 193, 194, 0, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 35, 36, 0, + 38, 0, 0, 0, 6, 42, 43, 44, 45, -194, + -194, 145, 291, 205, 17, 53, 0, 0, 0, 0, + 0, 206, 207, 264, 0, 0, 0, 0, 0, 0, + 188, 0, 0, 189, 190, 0, 191, 192, 193, 194, + 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 35, 36, 0, 38, 17, 53, 0, 6, 42, 43, + 44, 45, 0, 0, 145, 0, 205, 0, 0, 0, + 0, 0, 0, 0, 206, 207, 327, 0, 0, 0, + 0, 0, 0, 188, 0, 0, 189, 190, 0, 191, + 192, 193, 194, 0, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 35, 36, 0, 38, 17, 53, 34, + 6, 42, 43, 44, 45, 0, 0, 145, 0, 205, + 0, 0, 0, 0, 0, 0, 0, 206, 207, 0, + 0, 0, 35, 36, 37, 38, 39, 40, 41, 6, + 42, 43, 44, 45, 46, 0, 0, 0, 104, 105, + 118, 119, 48, 121, 122, 123, 124, 125, 126, 127, + 17, 53, 0, 0, 0, 0, 0, 0, 49, 50, + 0, 0, 34, 128, 129, 130, 131, 132, 133, 134, + 135, 0, 0, 0, 0, 51, 0, 0, 52, 17, + 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, 45, 46, 0, 0, - 0, 47, 0, 0, 0, 48, 0, 279, 35, 36, - 0, 38, 0, 17, 53, 6, -190, -190, 0, -190, - 0, 49, 50, -190, 134, 34, 0, 135, 0, 0, - 0, 0, -190, 0, 0, -190, 0, 0, 51, 0, + 0, 47, 118, 119, 0, 48, 0, 281, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 50, 0, 0, 34, 0, 0, 131, 132, + 133, 134, 135, 0, 0, 0, 0, 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, 45, - 46, 0, 0, 0, 47, 17, 53, 0, 48, 0, - 0, 0, 0, -190, -190, -191, -191, 0, -191, 0, - 0, 0, -191, 0, 49, 50, 0, 0, 34, 0, - 0, -191, 0, 0, -191, 0, 0, 0, 0, 0, - 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, + 46, 257, 0, 0, 47, 0, 0, 117, 48, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 0, 0, 0, 0, 49, 50, 0, 0, 34, 0, + 0, 0, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, - 43, 44, 45, 46, 0, 0, 0, 103, 0, 0, - 0, 48, -191, -191, 0, 0, 296, 297, 0, 298, - 299, 0, 0, 0, 0, 0, 0, 49, 50, 0, + 43, 44, 45, 46, 0, 0, 0, 104, 0, 0, + 0, 48, 0, 0, 0, 0, 298, 299, 0, 300, + 301, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 36, 0, 38, 0, 0, 51, 6, 0, 52, 17, 53, - 30, 54, 55, 56, 134, 0, 0, 300, 0, 0, - 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 0, 0, 0, - 0, 0, 0, 0, 186, 17, 53, 187, 188, 0, - 189, 190, 191, 192, 0, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 35, 36, 0, 38, 0, 0, - 0, 6, 42, 43, 44, 45, -192, -192, 143, -192, - 203, 0, 0, -192, -193, -193, 0, -193, 204, 205, - 0, -193, -192, 0, 0, -192, 0, 0, 35, 36, - -193, 38, 0, -193, 0, 6, 0, 0, 0, 0, - 153, 0, 0, 0, 134, 154, 0, 300, 0, 0, - 115, 17, 53, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -192, -192, 0, 0, 0, 0, 0, - 0, -193, -193, 0, 0, 0, 126, 127, 128, 129, - 130, 131, 132, 133, 398, 17, 53, 0, 0, 399, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, + 30, 54, 55, 56, 136, 0, 0, 302, 0, 0, + 0, 0, 303, 304, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 0, 0, 0, + 0, 0, 0, 0, 188, 17, 53, 189, 190, 0, + 191, 192, 193, 194, 0, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 35, 36, 0, 38, 0, 0, + 0, 6, 42, 43, 44, 45, 0, 0, 145, 0, + 205, 0, 0, 0, 0, 0, 0, 155, 206, 207, + 0, 0, 156, 0, 0, 0, 0, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 400, 0, - 0, 0, 0, 401, 0, 0, 0, 0, 115, 0, - 0, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 126, 127, 128, 129, 130, 131, - 132, 133, 402, 0, 0, 0, 0, 403, 0, 0, - 0, 0, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 367, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 115, 0, 0, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 0, + 0, 17, 53, 128, 129, 130, 131, 132, 133, 134, + 135, 400, 0, 0, 0, 0, 401, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 402, 0, 0, 0, 0, + 403, 0, 0, 0, 0, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 369, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 115, 0, 0, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 373, 0, 126, 127, 128, 129, - 130, 131, 132, 133, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 385, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 115, 0, - 0, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 397, 0, 126, 127, 128, 129, 130, 131, - 132, 133, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 409, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 115, 0, 0, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 404, + 0, 0, 0, 0, 405, 0, 0, 0, 0, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 369, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 371, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 411, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 115, 0, 0, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 432, 0, 126, 127, 128, 129, - 130, 131, 132, 133, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, + 0, 375, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 387, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 411, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 413, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 255, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, + 0, 434, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 260, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 316, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 319, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 322, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 323, 0, 0, 0, 0, + 117, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 259, 0, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 258, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 116, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 329, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 314, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 317, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 320, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 321, 0, - 0, 0, 0, 115, 0, 0, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, - 127, 128, 129, 130, 131, 132, 133, 257, 0, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 114, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 327, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 340, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 0, 0, - 0, 0, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 116, 117, 0, 119, 120, 121, 122, 123, 124, - 125, 116, 117, 0, 0, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 126, 127, 128, 129, 130, 131, - 132, 133, 0, 0, 126, 127, 128, 129, 130, 131, - 132, 133, 116, 117, 0, 0, 120, 121, 122, 123, - 124, 125, 116, 117, 0, 0, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 127, 128, 129, 130, - 131, 132, 133, 0, 0, 0, 127, 0, 129, 130, - 131, 132, 133, 116, 117, 0, 0, 120, 121, 122, - 123, 124, 125, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, - 130, 131, 132, 133 + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 342, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 117, 0, 0, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 0, 0, 0, 0, 0, + 128, 129, 130, 131, 132, 133, 134, 135, 118, 119, + 0, 0, 122, 123, 124, 125, 126, 127, 118, 119, + 0, 0, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 0, + 0, 0, 129, 130, 131, 132, 133, 134, 135, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 129, 0, 131, 132, 133, 134, 135, + 0, 0, 0, 0, 0, 131, 132, 133, 134, 135 }; const short parser::yycheck_[] = { - 0, 47, 93, 21, 73, 270, 185, 73, 46, 9, - 189, 51, 3, 4, 29, 270, 270, 11, 12, 13, - 14, 15, 39, 40, 46, 42, 26, 46, 51, 46, - 93, 94, 95, 55, 92, 35, 36, 77, 55, 0, - 98, 58, 57, 101, 35, 36, 63, 64, 48, 52, - 52, 52, 46, 52, 57, 57, 57, 103, 57, 97, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 52, 61, 73, 96, 97, 57, 46, 97, 96, - 97, 61, 73, 96, 97, 264, 55, 98, 52, 39, - 40, 97, 42, 57, 94, 52, 46, 47, 48, 49, - 50, 55, 61, 97, 59, 55, 39, 40, 59, 42, - 52, 52, 143, 46, 140, 57, 57, 53, 51, 51, - 55, 147, 55, 51, 150, 58, 55, 96, 97, 52, - 52, 52, 52, 57, 57, 57, 57, 57, 143, 65, - 66, 141, 59, 143, 52, 410, 96, 97, 148, 57, - 59, 151, 143, 55, 185, 410, 410, 56, 189, 51, - 100, 101, 59, 96, 97, 91, 92, 93, 94, 95, - 51, 61, 241, 204, 205, 241, 194, 208, 51, 51, - 185, 181, 51, 51, 189, 185, 51, 61, 367, 189, - 369, 61, 51, 51, 185, 61, 60, 26, 189, 204, - 205, 55, 97, 208, 204, 205, 61, 51, 208, 61, - 61, 61, 61, 204, 205, 51, 56, 208, 287, 288, - 51, 287, 288, 27, 91, 92, 93, 94, 95, 408, - 101, 51, 411, 264, 60, 261, 60, 51, 51, 270, - 56, 241, 46, 51, 56, 49, 50, 56, 51, 51, - 241, 61, 431, 432, 51, 51, 282, 283, 24, 264, - 61, 61, 61, 61, 264, 270, 335, 29, 61, 335, - 270, 271, 61, 264, 61, 61, 52, 65, 66, 270, - 52, 52, 373, 71, 72, 73, 74, 287, 288, 52, - 316, 61, 61, 319, 61, 9, 287, 288, 9, 103, - 9, 208, 410, 91, 92, 93, 94, 95, 194, -1, - -1, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 335, 367, -1, 369, 365, - -1, -1, 146, -1, 335, 149, -1, -1, 152, -1, - 154, 143, 156, 399, 380, 401, 382, 403, 384, -1, - -1, -1, 367, -1, 369, -1, -1, 367, -1, 369, - -1, -1, 372, -1, -1, -1, 367, 408, 369, 410, - 411, -1, 186, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 185, 198, -1, -1, 189, -1, -1, - 431, 432, -1, 408, -1, 410, 411, -1, 408, 143, - 410, 411, 204, 205, -1, -1, 208, 408, -1, 410, - 411, -1, -1, -1, -1, -1, 431, 432, -1, -1, - -1, 431, 432, -1, -1, -1, 39, 40, -1, 42, - 431, 432, -1, 46, 47, 48, 49, 50, -1, 143, - -1, 185, 55, 257, -1, 189, -1, -1, -1, -1, - 63, 64, -1, 267, -1, 269, -1, -1, 272, -1, - 204, 205, 264, -1, 208, -1, -1, -1, 270, -1, - 284, -1, -1, 143, -1, -1, -1, -1, -1, -1, - -1, 185, -1, 96, 97, 189, -1, -1, -1, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 204, 205, -1, -1, 208, 39, 40, 321, 42, -1, - -1, -1, 46, 143, -1, 185, -1, -1, -1, 189, - 264, 55, 143, -1, 58, -1, 270, 143, -1, -1, - 344, 345, 346, 347, 204, 205, -1, -1, 208, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 368, 185, 370, 371, -1, 189, - 264, -1, 96, 97, 185, 367, 270, 369, 189, 185, - -1, -1, -1, 189, 204, 205, -1, -1, 208, -1, - -1, -1, -1, 204, 205, -1, -1, 208, 204, 205, - -1, -1, 208, -1, 264, -1, -1, -1, 412, -1, - 270, -1, -1, -1, -1, -1, 408, -1, 410, 411, - -1, -1, 39, 40, -1, 42, -1, -1, -1, 46, - -1, -1, -1, 367, -1, 369, -1, -1, 55, 431, - 432, 58, -1, -1, 264, -1, -1, -1, -1, -1, - 270, -1, -1, 264, -1, -1, -1, -1, 264, 270, - 16, -1, -1, -1, 270, -1, -1, -1, -1, -1, - -1, -1, -1, 367, 408, 369, 410, 411, -1, 96, - 97, -1, -1, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, -1, 431, 432, 55, - 56, -1, -1, 59, -1, -1, -1, 367, -1, 369, - -1, -1, -1, -1, 408, -1, 410, 411, -1, 75, - 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 92, 431, 432, 95, - 96, 97, 98, 99, 100, 101, -1, 367, 408, 369, - 410, 411, -1, -1, -1, -1, 367, -1, 369, -1, - -1, 367, -1, 369, -1, -1, -1, -1, -1, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, - 410, 411, -1, -1, -1, -1, -1, 408, -1, 410, - 411, -1, 408, -1, 410, 411, -1, -1, -1, -1, - -1, 431, 432, -1, -1, -1, 11, -1, -1, -1, - 431, 432, -1, -1, 19, 431, 432, 22, 23, -1, - 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, -1, 42, -1, -1, - -1, 46, 47, 48, 49, 50, -1, -1, 53, 54, - 55, -1, -1, -1, -1, -1, -1, -1, 63, 64, - -1, -1, -1, -1, -1, 39, 40, -1, 42, -1, - 39, 40, 46, 42, -1, -1, -1, 46, -1, -1, - -1, 55, 11, -1, 58, -1, 55, -1, -1, 58, - 19, 96, 97, 22, 23, -1, 25, 26, 27, 28, + 0, 47, 21, 94, 73, 52, 73, 272, 272, 9, + 57, 272, 3, 4, 11, 12, 13, 14, 15, 46, + 51, 46, 39, 40, 0, 42, 26, 29, 51, 46, + 47, 48, 49, 50, 92, 35, 36, 52, 55, 61, + 98, 61, 57, 101, 35, 36, 63, 64, 48, 46, + 98, 52, 46, 97, 77, 57, 187, 52, 104, 145, + 191, 55, 57, 93, 94, 95, 55, 46, 39, 40, + 97, 42, 97, 73, 59, 46, 55, 59, 52, 96, + 97, 61, 73, 57, 55, 52, 52, 58, 53, 52, + 57, 57, 63, 64, 57, 95, 55, 96, 97, 52, + 97, 187, 96, 97, 57, 191, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 96, 97, 51, + 206, 207, 59, 52, 210, 96, 97, 145, 57, 52, + 55, 59, 52, 52, 57, 266, 145, 57, 57, 52, + 51, 55, 57, 143, 57, 145, 56, 412, 412, 51, + 150, 412, 59, 153, 145, 39, 40, 97, 42, 51, + 100, 101, 46, 47, 48, 49, 50, 61, 51, 187, + 51, 55, 51, 191, 243, 51, 243, 196, 187, 51, + 266, 61, 191, 183, 61, 60, 272, 187, 206, 207, + 61, 191, 210, 51, 51, 55, 187, 206, 207, 61, + 191, 210, 65, 66, 51, 61, 206, 207, 61, 61, + 210, 61, 96, 97, 27, 206, 207, 51, 56, 210, + 289, 290, 289, 290, 26, 60, 51, 101, 91, 92, + 93, 94, 95, 46, 60, 51, 49, 50, 369, 51, + 371, 51, 97, 243, 61, 56, 51, 56, 266, 56, + 24, 51, 243, 51, 272, 51, 51, 266, 91, 92, + 93, 94, 95, 272, 61, 29, 266, 61, 337, 61, + 337, 61, 272, 273, 61, 266, 61, 61, 61, 410, + 52, 272, 413, 369, 375, 371, 52, 52, 61, 289, + 290, 104, 52, 61, 61, 9, 9, 9, 289, 290, + 412, 210, 433, 434, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 410, -1, 412, 413, 196, -1, + -1, -1, -1, -1, -1, 148, -1, 337, 151, -1, + -1, 154, -1, 156, 145, 158, 337, 433, 434, -1, + -1, 369, -1, 371, -1, 401, -1, 403, -1, 405, + 369, -1, 371, -1, -1, -1, -1, -1, -1, 369, + -1, 371, -1, -1, 374, 188, -1, -1, 369, -1, + 371, -1, -1, -1, -1, -1, 187, 200, -1, -1, + 191, -1, 410, -1, 412, 413, -1, -1, 145, -1, + -1, 410, -1, 412, 413, 206, 207, -1, -1, 210, + 410, -1, 412, 413, -1, 433, 434, -1, -1, 410, + -1, 412, 413, -1, 433, 434, 145, -1, -1, -1, + -1, 142, -1, 433, 434, -1, -1, -1, 149, -1, + 187, 152, 433, 434, 191, -1, 259, -1, 39, 40, + -1, 42, -1, -1, -1, 46, 269, -1, 271, 206, + 207, 274, -1, 210, 55, 266, 145, 58, 187, -1, + -1, 272, 191, 286, -1, -1, 145, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 206, 207, -1, + -1, 210, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, -1, 145, 96, 97, -1, 187, -1, + 323, -1, 191, -1, -1, -1, -1, -1, 187, 266, + -1, -1, 191, -1, -1, 272, -1, 206, 207, -1, + -1, 210, -1, 346, 347, 348, 349, 206, 207, -1, + -1, 210, 39, 40, -1, 42, 187, 266, -1, 46, + 191, -1, 263, 272, 51, -1, -1, 370, 55, 372, + 373, 58, -1, -1, -1, 206, 207, -1, 369, 210, + 371, -1, -1, 284, 285, -1, -1, -1, -1, 39, + 40, -1, 42, -1, -1, -1, 46, 266, -1, 39, + 40, -1, 42, 272, -1, 55, 46, 266, 58, 96, + 97, 414, -1, 272, -1, 55, -1, 318, 58, 410, + 321, 412, 413, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 369, -1, 371, 266, -1, -1, -1, -1, + -1, 272, 433, 434, -1, -1, 96, 97, 39, 40, + -1, 42, -1, -1, -1, 46, 96, 97, 39, 40, + 369, 42, 371, -1, 55, 46, 367, 58, -1, -1, + -1, -1, -1, 410, 55, 412, 413, 58, -1, 39, + 40, 382, 42, 384, -1, 386, 46, -1, -1, -1, + -1, -1, -1, -1, -1, 55, 433, 434, 58, -1, + 369, 410, 371, 412, 413, 96, 97, -1, -1, -1, + 369, -1, 371, -1, -1, 96, 97, -1, -1, -1, + -1, -1, -1, -1, 433, 434, 39, 40, -1, 42, + -1, -1, -1, 46, -1, -1, 96, 97, 369, -1, + 371, 410, 55, 412, 413, 58, -1, -1, -1, -1, + -1, 410, -1, 412, 413, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 433, 434, -1, -1, -1, 39, + 40, -1, 42, -1, 433, 434, 46, -1, -1, 410, + -1, 412, 413, 96, 97, 55, -1, -1, 58, -1, + -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, + -1, 19, 433, 434, 22, 23, -1, 25, 26, 27, + 28, -1, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, -1, 42, -1, 96, 97, 46, 47, + 48, 49, 50, -1, -1, 53, 54, 55, -1, -1, + -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, + -1, -1, 39, 40, -1, 42, -1, 39, 40, 46, + 42, -1, -1, -1, 46, -1, -1, -1, 55, 11, + -1, 58, -1, 55, -1, -1, 58, 19, 96, 97, + 22, 23, -1, 25, 26, 27, 28, -1, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, + 42, -1, -1, -1, 46, 47, 48, 49, 50, 96, + 97, 53, 54, 55, 96, 97, -1, -1, -1, -1, + -1, 63, 64, 12, -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, - 39, 40, -1, 42, -1, -1, -1, 46, 47, 48, - 49, 50, 96, 97, 53, 54, 55, 96, 97, -1, + 39, 40, -1, 42, 96, 97, -1, 46, 47, 48, + 49, 50, -1, -1, 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, 63, 64, 12, -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, 39, 40, -1, 42, 96, 97, -1, + 36, 37, 38, 39, 40, -1, 42, 96, 97, 16, 46, 47, 48, 49, 50, -1, -1, 53, -1, 55, - -1, -1, -1, -1, -1, -1, -1, 63, 64, 12, - -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, 39, 40, -1, 42, - 96, 97, 16, 46, 47, 48, 49, 50, -1, -1, - 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, - 63, 64, -1, -1, -1, 39, 40, 41, 42, 43, + -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, + -1, -1, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, -1, -1, -1, 55, 56, + 65, 66, 59, 68, 69, 70, 71, 72, 73, 74, + 96, 97, -1, -1, -1, -1, -1, -1, 75, 76, + -1, -1, 16, 88, 89, 90, 91, 92, 93, 94, + 95, -1, -1, -1, -1, 92, -1, -1, 95, 96, + 97, 98, 99, 100, 101, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, - -1, 55, -1, -1, -1, 59, -1, 61, 39, 40, - -1, 42, -1, 96, 97, 46, 39, 40, -1, 42, - -1, 75, 76, 46, 55, 16, -1, 58, -1, -1, - -1, -1, 55, -1, -1, 58, -1, -1, 92, -1, + -1, 55, 65, 66, -1, 59, -1, 61, 71, 72, + 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 75, 76, -1, -1, 16, -1, -1, 91, 92, + 93, 94, 95, -1, -1, -1, -1, -1, 92, -1, -1, 95, 96, 97, 98, 99, 100, 101, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, -1, -1, -1, 55, 96, 97, -1, 59, -1, - -1, -1, -1, 96, 97, 39, 40, -1, 42, -1, - -1, -1, 46, -1, 75, 76, -1, -1, 16, -1, - -1, 55, -1, -1, 58, -1, -1, -1, -1, -1, - -1, 92, -1, -1, 95, 96, 97, 98, 99, 100, + 51, 56, -1, -1, 55, -1, -1, 62, 59, -1, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + -1, -1, -1, -1, 75, 76, -1, -1, 16, -1, + -1, -1, -1, 88, 89, 90, 91, 92, 93, 94, + 95, 92, -1, -1, 95, 96, 97, 98, 99, 100, 101, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, 55, -1, -1, - -1, 59, 96, 97, -1, -1, 17, 18, -1, 20, + -1, 59, -1, -1, -1, -1, 17, 18, -1, 20, 21, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, -1, -1, 92, 46, -1, 95, 96, 97, @@ -4245,155 +4258,145 @@ namespace xsk { namespace gsc { namespace iw5 { -1, -1, -1, -1, 19, 96, 97, 22, 23, -1, 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, 42, -1, -1, - -1, 46, 47, 48, 49, 50, 39, 40, 53, 42, - 55, -1, -1, 46, 39, 40, -1, 42, 63, 64, - -1, 46, 55, -1, -1, 58, -1, -1, 39, 40, - 55, 42, -1, 58, -1, 46, -1, -1, -1, -1, - 52, -1, -1, -1, 55, 57, -1, 58, -1, -1, - 62, 96, 97, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 96, 97, -1, -1, -1, -1, -1, - -1, 96, 97, -1, -1, -1, 88, 89, 90, 91, - 92, 93, 94, 95, 52, 96, 97, -1, -1, 57, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 52, -1, - -1, -1, -1, 57, -1, -1, -1, -1, 62, -1, - -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 88, 89, 90, 91, 92, 93, - 94, 95, 52, -1, -1, -1, -1, 57, -1, -1, - -1, -1, 62, -1, -1, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 52, -1, 88, 89, - 90, 91, 92, 93, 94, 95, 62, -1, -1, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 52, -1, 88, 89, 90, 91, 92, 93, 94, 95, - 62, -1, -1, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 52, -1, 88, 89, 90, 91, - 92, 93, 94, 95, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 62, -1, - -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 52, -1, 88, 89, 90, 91, 92, 93, - 94, 95, 62, -1, -1, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 52, -1, 88, 89, - 90, 91, 92, 93, 94, 95, 62, -1, -1, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 52, -1, 88, 89, 90, 91, 92, 93, 94, 95, - 62, -1, -1, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 52, -1, 88, 89, 90, 91, - 92, 93, 94, 95, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 57, -1, - -1, -1, -1, 62, -1, -1, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, - 89, 90, 91, 92, 93, 94, 95, 60, -1, 62, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, - 93, 94, 95, 61, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 61, 62, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, - 93, 94, 95, 61, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 62, -1, -1, + -1, 46, 47, 48, 49, 50, -1, -1, 53, -1, + 55, -1, -1, -1, -1, -1, -1, 52, 63, 64, + -1, -1, 57, -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 88, 89, 90, 91, 92, 93, 94, 95, -1, -1, - -1, -1, -1, 88, 89, 90, 91, 92, 93, 94, - 95, 65, 66, -1, 68, 69, 70, 71, 72, 73, - 74, 65, 66, -1, -1, 69, 70, 71, 72, 73, - 74, -1, -1, -1, 88, 89, 90, 91, 92, 93, - 94, 95, -1, -1, 88, 89, 90, 91, 92, 93, - 94, 95, 65, 66, -1, -1, 69, 70, 71, 72, - 73, 74, 65, 66, -1, -1, 69, 70, 71, 72, - 73, 74, -1, -1, -1, -1, 89, 90, 91, 92, - 93, 94, 95, -1, -1, -1, 89, -1, 91, 92, - 93, 94, 95, 65, 66, -1, -1, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 96, 97, 88, 89, 90, 91, 92, 93, 94, + 95, 52, -1, -1, -1, -1, 57, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 52, -1, -1, -1, -1, + 57, -1, -1, -1, -1, 62, -1, -1, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 88, 89, 90, 91, 92, 93, 94, 95, 52, + -1, -1, -1, -1, 57, -1, -1, -1, -1, 62, + -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 52, -1, 88, 89, 90, 91, 92, + 93, 94, 95, 62, -1, -1, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 52, -1, 88, + 89, 90, 91, 92, 93, 94, 95, 62, -1, -1, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 52, -1, 88, 89, 90, 91, 92, 93, 94, + 95, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 52, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 62, -1, -1, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, + -1, 88, 89, 90, 91, 92, 93, 94, 95, 62, + -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 52, -1, 88, 89, 90, 91, 92, + 93, 94, 95, 62, -1, -1, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 52, -1, 88, + 89, 90, 91, 92, 93, 94, 95, 62, -1, -1, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 52, -1, 88, 89, 90, 91, 92, 93, 94, + 95, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 57, -1, -1, -1, -1, + 62, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, - 92, 93, 94, 95 + -1, -1, -1, -1, -1, -1, 88, 89, 90, 91, + 92, 93, 94, 95, 60, -1, 62, -1, -1, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 88, 89, 90, 91, 92, 93, 94, 95, + 61, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 61, 62, -1, -1, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 88, 89, 90, 91, 92, 93, 94, 95, + 61, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 62, -1, -1, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 88, 89, 90, + 91, 92, 93, 94, 95, -1, -1, -1, -1, -1, + 88, 89, 90, 91, 92, 93, 94, 95, 65, 66, + -1, -1, 69, 70, 71, 72, 73, 74, 65, 66, + -1, -1, 69, 70, 71, 72, 73, 74, -1, -1, + -1, 88, 89, 90, 91, 92, 93, 94, 95, -1, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 65, + 66, -1, -1, 69, 70, 71, 72, 73, 74, 65, + 66, -1, -1, 69, 70, 71, 72, 73, 74, -1, + -1, -1, -1, 89, -1, 91, 92, 93, 94, 95, + -1, -1, -1, -1, -1, 91, 92, 93, 94, 95 }; const unsigned char parser::yystos_[] = { 0, 11, 12, 13, 14, 15, 46, 97, 113, 114, - 115, 116, 117, 118, 119, 120, 185, 96, 97, 186, - 186, 51, 0, 115, 116, 117, 51, 77, 61, 61, - 98, 188, 166, 185, 16, 39, 40, 41, 42, 43, + 115, 116, 117, 118, 119, 120, 186, 96, 97, 187, + 187, 51, 0, 115, 116, 117, 51, 77, 61, 61, + 98, 189, 166, 186, 16, 39, 40, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 55, 59, 75, 76, 92, 95, 97, 99, 100, 101, 151, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 52, 52, 57, 55, 185, 186, 55, 185, - 186, 55, 151, 55, 56, 151, 167, 168, 185, 151, - 151, 100, 101, 97, 61, 62, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 88, 89, 90, 91, - 92, 93, 94, 95, 55, 58, 163, 164, 185, 186, - 51, 59, 61, 53, 126, 185, 55, 51, 59, 55, - 51, 59, 55, 52, 57, 151, 57, 56, 151, 151, + 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 52, 52, 57, 55, 186, 187, 55, + 186, 187, 55, 151, 55, 56, 151, 167, 168, 186, + 151, 151, 97, 100, 101, 97, 61, 62, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 88, 89, + 90, 91, 92, 93, 94, 95, 55, 58, 163, 164, + 186, 187, 51, 59, 61, 53, 126, 186, 55, 51, + 59, 55, 51, 59, 55, 52, 57, 151, 57, 56, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 46, 97, - 184, 59, 167, 168, 185, 11, 19, 22, 23, 25, - 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 54, 55, 63, 64, 121, 122, 124, 125, - 126, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 153, 154, 155, 161, 162, 170, - 171, 174, 178, 179, 180, 181, 185, 151, 167, 185, - 151, 167, 185, 151, 151, 56, 151, 60, 56, 185, - 52, 51, 12, 121, 123, 151, 61, 51, 121, 51, - 51, 51, 51, 92, 188, 191, 60, 61, 61, 61, - 151, 61, 51, 51, 55, 161, 162, 174, 174, 54, - 122, 61, 61, 61, 61, 61, 17, 18, 20, 21, - 58, 63, 64, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 56, 52, 51, 56, 52, 51, - 56, 57, 56, 151, 167, 12, 121, 61, 151, 26, - 151, 127, 153, 154, 155, 174, 185, 151, 60, 60, - 61, 167, 167, 151, 51, 51, 51, 51, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 56, - 167, 56, 167, 56, 151, 51, 52, 52, 51, 52, - 61, 29, 57, 52, 52, 52, 151, 151, 151, 151, - 51, 52, 51, 52, 51, 52, 167, 121, 151, 121, - 151, 152, 151, 185, 126, 61, 61, 52, 52, 57, - 52, 57, 52, 57, 167, 167, 167, 52, 24, 52, - 61, 52, 29, 61, 61, 168, 61, 168, 61, 168, - 52, 52, 52, 121, 61, 127, 121, 151, 52, 52, - 52, 52, 52, 61, 61, 61, 121, 121 + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 46, 97, 185, 59, 167, 168, 186, 11, 19, 22, + 23, 25, 26, 27, 28, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 54, 55, 63, 64, 121, 122, + 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 153, 154, 155, 161, + 162, 170, 171, 174, 178, 179, 180, 181, 186, 151, + 167, 186, 151, 167, 186, 151, 151, 56, 151, 60, + 56, 186, 52, 51, 12, 121, 123, 151, 61, 51, + 121, 51, 51, 51, 51, 92, 189, 192, 60, 61, + 61, 61, 151, 61, 51, 51, 55, 161, 162, 174, + 174, 54, 122, 61, 61, 61, 61, 61, 17, 18, + 20, 21, 58, 63, 64, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 56, 52, 51, 56, + 52, 51, 56, 57, 56, 151, 167, 12, 121, 61, + 151, 26, 151, 127, 153, 154, 155, 174, 186, 151, + 60, 60, 61, 167, 167, 151, 51, 51, 51, 51, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 56, 167, 56, 167, 56, 151, 51, 52, 52, + 51, 52, 61, 29, 57, 52, 52, 52, 151, 151, + 151, 151, 51, 52, 51, 52, 51, 52, 167, 121, + 151, 121, 151, 152, 151, 186, 126, 61, 61, 52, + 52, 57, 52, 57, 52, 57, 167, 167, 167, 52, + 24, 52, 61, 52, 29, 61, 61, 168, 61, 168, + 61, 168, 52, 52, 52, 121, 61, 127, 121, 151, + 52, 52, 52, 52, 52, 61, 61, 61, 121, 121 }; const unsigned char @@ -4414,13 +4417,13 @@ namespace xsk { namespace gsc { namespace iw5 { 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 159, 160, 161, 161, - 162, 162, 163, 163, 163, 163, 163, 163, 164, 164, - 164, 164, 165, 166, 166, 166, 167, 167, 168, 168, - 169, 169, 170, 171, 172, 173, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 185, 186, 186, 187, - 188, 189, 190, 190, 191, 191, 192, 193 + 158, 158, 158, 158, 158, 158, 158, 159, 160, 161, + 161, 162, 162, 163, 163, 163, 163, 163, 163, 164, + 164, 164, 164, 165, 166, 166, 166, 167, 167, 168, + 168, 169, 169, 170, 171, 172, 173, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 186, 187, + 187, 188, 189, 190, 191, 191, 192, 192, 193, 194 }; const signed char @@ -4441,13 +4444,13 @@ namespace xsk { namespace gsc { namespace iw5 { 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, - 2, 2, 4, 6, 5, 7, 5, 7, 8, 9, - 9, 9, 3, 3, 1, 0, 1, 0, 3, 1, - 2, 3, 4, 3, 3, 3, 1, 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, 2, 1, 2, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, + 1, 2, 2, 4, 6, 5, 7, 5, 7, 8, + 9, 9, 9, 3, 3, 1, 0, 1, 0, 3, + 1, 2, 3, 4, 3, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, + 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 7, 2, 1, 2, 1, 1, 1 }; @@ -4457,28 +4460,28 @@ namespace xsk { namespace gsc { namespace iw5 { const short parser::yyrline_[] = { - 0, 257, 257, 258, 262, 264, 266, 268, 270, 272, - 277, 281, 286, 287, 288, 289, 290, 294, 299, 304, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 336, 337, 341, 343, 348, 350, - 355, 356, 360, 361, 365, 367, 369, 372, 376, 378, - 383, 385, 387, 392, 397, 399, 404, 409, 411, 416, - 418, 423, 428, 433, 438, 443, 448, 453, 455, 460, - 465, 467, 472, 477, 482, 487, 489, 494, 499, 504, - 509, 510, 511, 515, 516, 520, 522, 524, 526, 528, - 530, 532, 534, 536, 538, 540, 545, 547, 552, 554, - 559, 564, 566, 568, 570, 572, 574, 576, 578, 580, - 582, 584, 586, 588, 590, 592, 594, 596, 598, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 633, 638, 643, 644, - 647, 648, 652, 654, 656, 658, 660, 662, 667, 669, - 671, 673, 678, 683, 685, 688, 692, 695, 699, 701, - 706, 708, 713, 718, 723, 728, 733, 734, 735, 736, - 737, 738, 739, 740, 741, 745, 750, 755, 760, 765, - 770, 775, 780, 785, 790, 795, 797, 802, 804, 809, - 814, 819, 824, 826, 831, 833, 838, 843 + 0, 258, 258, 259, 263, 265, 267, 269, 271, 273, + 278, 282, 287, 288, 289, 290, 291, 295, 300, 305, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 337, 338, 342, 344, 349, 351, + 356, 357, 361, 362, 366, 368, 370, 373, 377, 379, + 384, 386, 388, 393, 398, 400, 405, 410, 412, 417, + 419, 424, 429, 434, 439, 444, 449, 454, 456, 461, + 466, 468, 473, 478, 483, 488, 490, 495, 500, 505, + 510, 511, 512, 516, 517, 521, 523, 525, 527, 529, + 531, 533, 535, 537, 539, 541, 546, 548, 553, 555, + 560, 565, 567, 569, 571, 573, 575, 577, 579, 581, + 583, 585, 587, 589, 591, 593, 595, 597, 599, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 635, 640, 645, + 646, 649, 650, 654, 656, 658, 660, 662, 664, 669, + 671, 673, 675, 680, 685, 687, 690, 694, 697, 701, + 703, 708, 710, 715, 720, 725, 730, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 747, 752, 757, 762, + 767, 772, 777, 782, 787, 792, 797, 802, 804, 809, + 811, 816, 821, 826, 831, 833, 838, 840, 845, 850 }; void @@ -4511,9 +4514,9 @@ namespace xsk { namespace gsc { namespace iw5 { #line 13 "parser.ypp" } } } // xsk::gsc::iw5 -#line 4515 "parser.cpp" +#line 4518 "parser.cpp" -#line 847 "parser.ypp" +#line 854 "parser.ypp" void xsk::gsc::iw5::parser::error(const xsk::gsc::location& loc, const std::string& msg) diff --git a/src/iw5/xsk/parser.hpp b/src/iw5/xsk/parser.hpp index b5564aea..7081bb72 100644 --- a/src/iw5/xsk/parser.hpp +++ b/src/iw5/xsk/parser.hpp @@ -447,6 +447,7 @@ namespace xsk { namespace gsc { namespace iw5 { // expr_binary // expr_primitive // expr_object + // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -1001,16 +1002,17 @@ namespace xsk { namespace gsc { namespace iw5 { S_expr_level = 181, // expr_level S_expr_animation = 182, // expr_animation S_expr_animtree = 183, // expr_animtree - S_expr_identifier_nosize = 184, // expr_identifier_nosize - S_expr_identifier = 185, // expr_identifier - S_expr_path = 186, // expr_path - S_expr_istring = 187, // expr_istring - S_expr_string = 188, // expr_string - S_expr_vector = 189, // expr_vector - S_expr_float = 190, // expr_float - S_expr_integer = 191, // expr_integer - S_expr_false = 192, // expr_false - S_expr_true = 193 // expr_true + S_expr_identifier_neg = 184, // expr_identifier_neg + S_expr_identifier_nosize = 185, // expr_identifier_nosize + S_expr_identifier = 186, // expr_identifier + S_expr_path = 187, // expr_path + S_expr_istring = 188, // expr_istring + S_expr_string = 189, // expr_string + S_expr_vector = 190, // expr_vector + S_expr_float = 191, // expr_float + S_expr_integer = 192, // expr_integer + S_expr_false = 193, // expr_false + S_expr_true = 194 // expr_true }; }; @@ -1077,6 +1079,7 @@ namespace xsk { namespace gsc { namespace iw5 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (std::move (that.value)); break; @@ -2331,6 +2334,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.template destroy< ast::expr > (); break; @@ -4770,8 +4774,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 2303, ///< Last index in yytable_. - yynnts_ = 82, ///< Number of nonterminal symbols. + yylast_ = 2239, ///< Last index in yytable_. + yynnts_ = 83, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4828,6 +4832,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (YY_MOVE (that.value)); break; @@ -5142,6 +5147,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (s.value)); break; @@ -5462,7 +5468,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::iw5 -#line 5466 "parser.hpp" +#line 5472 "parser.hpp" diff --git a/src/iw6/xsk/parser.cpp b/src/iw6/xsk/parser.cpp index 59543e5e..d3a728ea 100644 --- a/src/iw6/xsk/parser.cpp +++ b/src/iw6/xsk/parser.cpp @@ -245,6 +245,7 @@ namespace xsk { namespace gsc { namespace iw6 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.YY_MOVE_OR_COPY< ast::expr > (YY_MOVE (that.value)); break; @@ -543,6 +544,7 @@ namespace xsk { namespace gsc { namespace iw6 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (that.value)); break; @@ -841,6 +843,7 @@ namespace xsk { namespace gsc { namespace iw6 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (that.value); break; @@ -1138,6 +1141,7 @@ namespace xsk { namespace gsc { namespace iw6 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (that.value); break; @@ -1690,6 +1694,7 @@ namespace xsk { namespace gsc { namespace iw6 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg yylhs.value.emplace< ast::expr > (); break; @@ -1964,1303 +1969,1315 @@ namespace xsk { namespace gsc { namespace iw6 { switch (yyn) { case 2: // root: program -#line 257 "parser.ypp" +#line 258 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1970 "parser.cpp" +#line 1975 "parser.cpp" break; case 3: // root: %empty -#line 258 "parser.ypp" +#line 259 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 1976 "parser.cpp" +#line 1981 "parser.cpp" break; case 4: // program: program inline -#line 263 "parser.ypp" +#line 264 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 1982 "parser.cpp" +#line 1987 "parser.cpp" break; case 5: // program: program include -#line 265 "parser.ypp" +#line 266 "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 1988 "parser.cpp" +#line 1993 "parser.cpp" break; case 6: // program: program declaration -#line 267 "parser.ypp" +#line 268 "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 1994 "parser.cpp" +#line 1999 "parser.cpp" break; case 7: // program: inline -#line 269 "parser.ypp" +#line 270 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2000 "parser.cpp" +#line 2005 "parser.cpp" break; case 8: // program: include -#line 271 "parser.ypp" +#line 272 "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 2006 "parser.cpp" +#line 2011 "parser.cpp" break; case 9: // program: declaration -#line 273 "parser.ypp" +#line 274 "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 2012 "parser.cpp" +#line 2017 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" -#line 277 "parser.ypp" +#line 278 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2018 "parser.cpp" +#line 2023 "parser.cpp" break; case 11: // include: "#include" expr_path ";" -#line 282 "parser.ypp" +#line 283 "parser.ypp" { yylhs.value.as < ast::include::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_path::ptr > ())); } -#line 2024 "parser.cpp" +#line 2029 "parser.cpp" break; case 12: // declaration: "/#" -#line 286 "parser.ypp" +#line 287 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2030 "parser.cpp" +#line 2035 "parser.cpp" break; case 13: // declaration: "#/" -#line 287 "parser.ypp" +#line 288 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2036 "parser.cpp" +#line 2041 "parser.cpp" break; case 14: // declaration: decl_usingtree -#line 288 "parser.ypp" +#line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2042 "parser.cpp" +#line 2047 "parser.cpp" break; case 15: // declaration: decl_constant -#line 289 "parser.ypp" +#line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2048 "parser.cpp" +#line 2053 "parser.cpp" break; case 16: // declaration: decl_thread -#line 290 "parser.ypp" +#line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2054 "parser.cpp" +#line 2059 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" -#line 295 "parser.ypp" +#line 296 "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 2060 "parser.cpp" +#line 2065 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" -#line 300 "parser.ypp" +#line 301 "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 2066 "parser.cpp" +#line 2071 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block -#line 305 "parser.ypp" +#line 306 "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 2072 "parser.cpp" +#line 2077 "parser.cpp" break; case 20: // stmt: stmt_block -#line 309 "parser.ypp" +#line 310 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2078 "parser.cpp" +#line 2083 "parser.cpp" break; case 21: // stmt: stmt_call -#line 310 "parser.ypp" +#line 311 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2084 "parser.cpp" +#line 2089 "parser.cpp" break; case 22: // stmt: stmt_assign -#line 311 "parser.ypp" +#line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2090 "parser.cpp" +#line 2095 "parser.cpp" break; case 23: // stmt: stmt_endon -#line 312 "parser.ypp" +#line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2096 "parser.cpp" +#line 2101 "parser.cpp" break; case 24: // stmt: stmt_notify -#line 313 "parser.ypp" +#line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2102 "parser.cpp" +#line 2107 "parser.cpp" break; case 25: // stmt: stmt_wait -#line 314 "parser.ypp" +#line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2108 "parser.cpp" +#line 2113 "parser.cpp" break; case 26: // stmt: stmt_waittill -#line 315 "parser.ypp" +#line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2114 "parser.cpp" +#line 2119 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch -#line 316 "parser.ypp" +#line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2120 "parser.cpp" +#line 2125 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend -#line 317 "parser.ypp" +#line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2126 "parser.cpp" +#line 2131 "parser.cpp" break; case 29: // stmt: stmt_if -#line 318 "parser.ypp" +#line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2132 "parser.cpp" +#line 2137 "parser.cpp" break; case 30: // stmt: stmt_ifelse -#line 319 "parser.ypp" +#line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2138 "parser.cpp" +#line 2143 "parser.cpp" break; case 31: // stmt: stmt_while -#line 320 "parser.ypp" +#line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2144 "parser.cpp" +#line 2149 "parser.cpp" break; case 32: // stmt: stmt_dowhile -#line 321 "parser.ypp" +#line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2150 "parser.cpp" +#line 2155 "parser.cpp" break; case 33: // stmt: stmt_for -#line 322 "parser.ypp" +#line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2156 "parser.cpp" +#line 2161 "parser.cpp" break; case 34: // stmt: stmt_foreach -#line 323 "parser.ypp" +#line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2162 "parser.cpp" +#line 2167 "parser.cpp" break; case 35: // stmt: stmt_switch -#line 324 "parser.ypp" +#line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2168 "parser.cpp" +#line 2173 "parser.cpp" break; case 36: // stmt: stmt_case -#line 325 "parser.ypp" +#line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2174 "parser.cpp" +#line 2179 "parser.cpp" break; case 37: // stmt: stmt_default -#line 326 "parser.ypp" +#line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2180 "parser.cpp" +#line 2185 "parser.cpp" break; case 38: // stmt: stmt_break -#line 327 "parser.ypp" +#line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2186 "parser.cpp" +#line 2191 "parser.cpp" break; case 39: // stmt: stmt_continue -#line 328 "parser.ypp" +#line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2192 "parser.cpp" +#line 2197 "parser.cpp" break; case 40: // stmt: stmt_return -#line 329 "parser.ypp" +#line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2198 "parser.cpp" +#line 2203 "parser.cpp" break; case 41: // stmt: stmt_breakpoint -#line 330 "parser.ypp" +#line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2204 "parser.cpp" +#line 2209 "parser.cpp" break; case 42: // stmt: stmt_prof_begin -#line 331 "parser.ypp" +#line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2210 "parser.cpp" +#line 2215 "parser.cpp" break; case 43: // stmt: stmt_prof_end -#line 332 "parser.ypp" +#line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2216 "parser.cpp" +#line 2221 "parser.cpp" break; case 44: // stmt_or_dev: stmt -#line 336 "parser.ypp" +#line 337 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2222 "parser.cpp" +#line 2227 "parser.cpp" break; case 45: // stmt_or_dev: stmt_dev -#line 337 "parser.ypp" +#line 338 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2228 "parser.cpp" +#line 2233 "parser.cpp" break; case 46: // stmt_list: stmt_list stmt -#line 342 "parser.ypp" +#line 343 "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 2234 "parser.cpp" +#line 2239 "parser.cpp" break; case 47: // stmt_list: stmt -#line 344 "parser.ypp" +#line 345 "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 2240 "parser.cpp" +#line 2245 "parser.cpp" break; case 48: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev -#line 349 "parser.ypp" +#line 350 "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 2246 "parser.cpp" +#line 2251 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev -#line 351 "parser.ypp" +#line 352 "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 2252 "parser.cpp" +#line 2257 "parser.cpp" break; case 50: // stmt_dev: "/#" stmt_list "#/" -#line 355 "parser.ypp" +#line 356 "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 2258 "parser.cpp" +#line 2263 "parser.cpp" break; case 51: // stmt_dev: "/#" "#/" -#line 356 "parser.ypp" +#line 357 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2264 "parser.cpp" +#line 2269 "parser.cpp" break; case 52: // stmt_block: "{" stmt_or_dev_list "}" -#line 360 "parser.ypp" +#line 361 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2270 "parser.cpp" +#line 2275 "parser.cpp" break; case 53: // stmt_block: "{" "}" -#line 361 "parser.ypp" +#line 362 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2276 "parser.cpp" +#line 2281 "parser.cpp" break; case 54: // stmt_expr: expr_assign -#line 366 "parser.ypp" +#line 367 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2282 "parser.cpp" +#line 2287 "parser.cpp" break; case 55: // stmt_expr: expr_increment -#line 368 "parser.ypp" +#line 369 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2288 "parser.cpp" +#line 2293 "parser.cpp" break; case 56: // stmt_expr: expr_decrement -#line 370 "parser.ypp" +#line 371 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2294 "parser.cpp" +#line 2299 "parser.cpp" break; case 57: // stmt_expr: %empty -#line 372 "parser.ypp" +#line 373 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2300 "parser.cpp" +#line 2305 "parser.cpp" break; case 58: // stmt_call: expr_call ";" -#line 377 "parser.ypp" +#line 378 "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 2306 "parser.cpp" +#line 2311 "parser.cpp" break; case 59: // stmt_call: expr_method ";" -#line 379 "parser.ypp" +#line 380 "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 2312 "parser.cpp" +#line 2317 "parser.cpp" break; case 60: // stmt_assign: expr_assign ";" -#line 384 "parser.ypp" +#line 385 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2318 "parser.cpp" +#line 2323 "parser.cpp" break; case 61: // stmt_assign: expr_increment ";" -#line 386 "parser.ypp" +#line 387 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2324 "parser.cpp" +#line 2329 "parser.cpp" break; case 62: // stmt_assign: expr_decrement ";" -#line 388 "parser.ypp" +#line 389 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2330 "parser.cpp" +#line 2335 "parser.cpp" break; case 63: // stmt_endon: expr_object "endon" "(" expr ")" ";" -#line 393 "parser.ypp" +#line 394 "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 2336 "parser.cpp" +#line 2341 "parser.cpp" break; case 64: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" -#line 398 "parser.ypp" +#line 399 "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 2342 "parser.cpp" +#line 2347 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr ")" ";" -#line 400 "parser.ypp" +#line 401 "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 2348 "parser.cpp" +#line 2353 "parser.cpp" break; case 66: // stmt_wait: "wait" expr ";" -#line 405 "parser.ypp" +#line 406 "parser.ypp" { yylhs.value.as < ast::stmt_wait::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2354 "parser.cpp" +#line 2359 "parser.cpp" break; case 67: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" -#line 410 "parser.ypp" +#line 411 "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 2360 "parser.cpp" +#line 2365 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" -#line 412 "parser.ypp" +#line 413 "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 2366 "parser.cpp" +#line 2371 "parser.cpp" break; case 69: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" -#line 417 "parser.ypp" +#line 418 "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 2372 "parser.cpp" +#line 2377 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" -#line 419 "parser.ypp" +#line 420 "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 2378 "parser.cpp" +#line 2383 "parser.cpp" break; case 71: // stmt_waittillframeend: "waittillframeend" ";" -#line 424 "parser.ypp" +#line 425 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2384 "parser.cpp" +#line 2389 "parser.cpp" break; case 72: // stmt_if: "if" "(" expr ")" stmt -#line 429 "parser.ypp" +#line 430 "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 2390 "parser.cpp" +#line 2395 "parser.cpp" break; case 73: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt -#line 434 "parser.ypp" +#line 435 "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 2396 "parser.cpp" +#line 2401 "parser.cpp" break; case 74: // stmt_while: "while" "(" expr ")" stmt -#line 439 "parser.ypp" +#line 440 "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 2402 "parser.cpp" +#line 2407 "parser.cpp" break; case 75: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" -#line 444 "parser.ypp" +#line 445 "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 2408 "parser.cpp" +#line 2413 "parser.cpp" break; case 76: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt -#line 449 "parser.ypp" +#line 450 "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 2414 "parser.cpp" +#line 2419 "parser.cpp" break; case 77: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt -#line 454 "parser.ypp" +#line 455 "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 2420 "parser.cpp" +#line 2425 "parser.cpp" break; case 78: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt -#line 456 "parser.ypp" +#line 457 "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 2426 "parser.cpp" +#line 2431 "parser.cpp" break; case 79: // stmt_switch: "switch" "(" expr ")" stmt_block -#line 461 "parser.ypp" +#line 462 "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 2432 "parser.cpp" +#line 2437 "parser.cpp" break; case 80: // stmt_case: "case" expr_integer ":" -#line 466 "parser.ypp" +#line 467 "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 2438 "parser.cpp" +#line 2443 "parser.cpp" break; case 81: // stmt_case: "case" expr_string ":" -#line 468 "parser.ypp" +#line 469 "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 2444 "parser.cpp" +#line 2449 "parser.cpp" break; case 82: // stmt_default: "default" ":" -#line 473 "parser.ypp" +#line 474 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2450 "parser.cpp" +#line 2455 "parser.cpp" break; case 83: // stmt_break: "break" ";" -#line 478 "parser.ypp" +#line 479 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2456 "parser.cpp" +#line 2461 "parser.cpp" break; case 84: // stmt_continue: "continue" ";" -#line 483 "parser.ypp" +#line 484 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2462 "parser.cpp" +#line 2467 "parser.cpp" break; case 85: // stmt_return: "return" expr ";" -#line 488 "parser.ypp" +#line 489 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2468 "parser.cpp" +#line 2473 "parser.cpp" break; case 86: // stmt_return: "return" ";" -#line 490 "parser.ypp" +#line 491 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2474 "parser.cpp" +#line 2479 "parser.cpp" break; case 87: // stmt_breakpoint: "breakpoint" ";" -#line 495 "parser.ypp" +#line 496 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2480 "parser.cpp" +#line 2485 "parser.cpp" break; case 88: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" -#line 500 "parser.ypp" +#line 501 "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 2486 "parser.cpp" +#line 2491 "parser.cpp" break; case 89: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" -#line 505 "parser.ypp" +#line 506 "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 2492 "parser.cpp" +#line 2497 "parser.cpp" break; case 90: // expr: expr_ternary -#line 509 "parser.ypp" +#line 510 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2498 "parser.cpp" +#line 2503 "parser.cpp" break; case 91: // expr: expr_binary -#line 510 "parser.ypp" +#line 511 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2504 "parser.cpp" +#line 2509 "parser.cpp" break; case 92: // expr: expr_primitive -#line 511 "parser.ypp" +#line 512 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2510 "parser.cpp" +#line 2515 "parser.cpp" break; case 93: // expr_or_empty: expr -#line 515 "parser.ypp" +#line 516 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2516 "parser.cpp" +#line 2521 "parser.cpp" break; case 94: // expr_or_empty: %empty -#line 516 "parser.ypp" +#line 517 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2522 "parser.cpp" +#line 2527 "parser.cpp" break; case 95: // expr_assign: expr_object "=" expr -#line 521 "parser.ypp" +#line 522 "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 2528 "parser.cpp" +#line 2533 "parser.cpp" break; case 96: // expr_assign: expr_object "|=" expr -#line 523 "parser.ypp" +#line 524 "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 2534 "parser.cpp" +#line 2539 "parser.cpp" break; case 97: // expr_assign: expr_object "&=" expr -#line 525 "parser.ypp" +#line 526 "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 2540 "parser.cpp" +#line 2545 "parser.cpp" break; case 98: // expr_assign: expr_object "^=" expr -#line 527 "parser.ypp" +#line 528 "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 2546 "parser.cpp" +#line 2551 "parser.cpp" break; case 99: // expr_assign: expr_object "<<=" expr -#line 529 "parser.ypp" +#line 530 "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 2552 "parser.cpp" +#line 2557 "parser.cpp" break; case 100: // expr_assign: expr_object ">>=" expr -#line 531 "parser.ypp" +#line 532 "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 2558 "parser.cpp" +#line 2563 "parser.cpp" break; case 101: // expr_assign: expr_object "+=" expr -#line 533 "parser.ypp" +#line 534 "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 2564 "parser.cpp" +#line 2569 "parser.cpp" break; case 102: // expr_assign: expr_object "-=" expr -#line 535 "parser.ypp" +#line 536 "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 2570 "parser.cpp" +#line 2575 "parser.cpp" break; case 103: // expr_assign: expr_object "*=" expr -#line 537 "parser.ypp" +#line 538 "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 2576 "parser.cpp" +#line 2581 "parser.cpp" break; case 104: // expr_assign: expr_object "/=" expr -#line 539 "parser.ypp" +#line 540 "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 2582 "parser.cpp" +#line 2587 "parser.cpp" break; case 105: // expr_assign: expr_object "%=" expr -#line 541 "parser.ypp" +#line 542 "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 2588 "parser.cpp" +#line 2593 "parser.cpp" break; case 106: // expr_increment: "++" expr_object -#line 546 "parser.ypp" +#line 547 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2594 "parser.cpp" +#line 2599 "parser.cpp" break; case 107: // expr_increment: expr_object "++" -#line 548 "parser.ypp" +#line 549 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2600 "parser.cpp" +#line 2605 "parser.cpp" break; case 108: // expr_decrement: "--" expr_object -#line 553 "parser.ypp" +#line 554 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2606 "parser.cpp" +#line 2611 "parser.cpp" break; case 109: // expr_decrement: expr_object "--" -#line 555 "parser.ypp" +#line 556 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2612 "parser.cpp" +#line 2617 "parser.cpp" break; case 110: // expr_ternary: expr "?" expr ":" expr -#line 560 "parser.ypp" +#line 561 "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 2618 "parser.cpp" +#line 2623 "parser.cpp" break; case 111: // expr_binary: expr "||" expr -#line 565 "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 2624 "parser.cpp" +#line 2629 "parser.cpp" break; case 112: // expr_binary: expr "&&" expr -#line 567 "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 2630 "parser.cpp" +#line 2635 "parser.cpp" break; case 113: // expr_binary: expr "==" expr -#line 569 "parser.ypp" +#line 570 "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 2636 "parser.cpp" +#line 2641 "parser.cpp" break; case 114: // expr_binary: expr "!=" expr -#line 571 "parser.ypp" +#line 572 "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 2642 "parser.cpp" +#line 2647 "parser.cpp" break; case 115: // expr_binary: expr "<=" expr -#line 573 "parser.ypp" +#line 574 "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 2648 "parser.cpp" +#line 2653 "parser.cpp" break; case 116: // expr_binary: expr ">=" expr -#line 575 "parser.ypp" +#line 576 "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 2654 "parser.cpp" +#line 2659 "parser.cpp" break; case 117: // expr_binary: expr "<" expr -#line 577 "parser.ypp" +#line 578 "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 2660 "parser.cpp" +#line 2665 "parser.cpp" break; case 118: // expr_binary: expr ">" expr -#line 579 "parser.ypp" +#line 580 "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 2666 "parser.cpp" +#line 2671 "parser.cpp" break; case 119: // expr_binary: expr "|" expr -#line 581 "parser.ypp" +#line 582 "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 2672 "parser.cpp" +#line 2677 "parser.cpp" break; case 120: // expr_binary: expr "&" expr -#line 583 "parser.ypp" +#line 584 "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 2678 "parser.cpp" +#line 2683 "parser.cpp" break; case 121: // expr_binary: expr "^" expr -#line 585 "parser.ypp" +#line 586 "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 2684 "parser.cpp" +#line 2689 "parser.cpp" break; case 122: // expr_binary: expr "<<" expr -#line 587 "parser.ypp" +#line 588 "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 2690 "parser.cpp" +#line 2695 "parser.cpp" break; case 123: // expr_binary: expr ">>" expr -#line 589 "parser.ypp" +#line 590 "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 2696 "parser.cpp" +#line 2701 "parser.cpp" break; case 124: // expr_binary: expr "+" expr -#line 591 "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 2702 "parser.cpp" +#line 2707 "parser.cpp" break; case 125: // expr_binary: expr "-" expr -#line 593 "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 2708 "parser.cpp" +#line 2713 "parser.cpp" break; case 126: // expr_binary: expr "*" expr -#line 595 "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 2714 "parser.cpp" +#line 2719 "parser.cpp" break; case 127: // expr_binary: expr "/" expr -#line 597 "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 2720 "parser.cpp" +#line 2725 "parser.cpp" break; case 128: // expr_binary: expr "%" expr -#line 599 "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 2726 "parser.cpp" +#line 2731 "parser.cpp" break; case 129: // expr_primitive: expr_complement -#line 603 "parser.ypp" +#line 604 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2732 "parser.cpp" +#line 2737 "parser.cpp" break; case 130: // expr_primitive: expr_not -#line 604 "parser.ypp" +#line 605 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2738 "parser.cpp" +#line 2743 "parser.cpp" break; case 131: // expr_primitive: expr_call -#line 605 "parser.ypp" +#line 606 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2744 "parser.cpp" +#line 2749 "parser.cpp" break; case 132: // expr_primitive: expr_method -#line 606 "parser.ypp" +#line 607 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2750 "parser.cpp" +#line 2755 "parser.cpp" break; case 133: // expr_primitive: expr_add_array -#line 607 "parser.ypp" +#line 608 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2756 "parser.cpp" +#line 2761 "parser.cpp" break; case 134: // expr_primitive: expr_reference -#line 608 "parser.ypp" +#line 609 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2762 "parser.cpp" +#line 2767 "parser.cpp" break; case 135: // expr_primitive: expr_array -#line 609 "parser.ypp" +#line 610 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2768 "parser.cpp" +#line 2773 "parser.cpp" break; case 136: // expr_primitive: expr_field -#line 610 "parser.ypp" +#line 611 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2774 "parser.cpp" +#line 2779 "parser.cpp" break; case 137: // expr_primitive: expr_size -#line 611 "parser.ypp" +#line 612 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2780 "parser.cpp" +#line 2785 "parser.cpp" break; case 138: // expr_primitive: expr_paren -#line 612 "parser.ypp" +#line 613 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2786 "parser.cpp" +#line 2791 "parser.cpp" break; case 139: // expr_primitive: expr_thisthread -#line 613 "parser.ypp" +#line 614 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2792 "parser.cpp" +#line 2797 "parser.cpp" break; case 140: // expr_primitive: expr_empty_array -#line 614 "parser.ypp" +#line 615 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2798 "parser.cpp" +#line 2803 "parser.cpp" break; case 141: // expr_primitive: expr_undefined -#line 615 "parser.ypp" +#line 616 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2804 "parser.cpp" +#line 2809 "parser.cpp" break; case 142: // expr_primitive: expr_game -#line 616 "parser.ypp" +#line 617 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2810 "parser.cpp" +#line 2815 "parser.cpp" break; case 143: // expr_primitive: expr_self -#line 617 "parser.ypp" +#line 618 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2816 "parser.cpp" +#line 2821 "parser.cpp" break; case 144: // expr_primitive: expr_anim -#line 618 "parser.ypp" +#line 619 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2822 "parser.cpp" +#line 2827 "parser.cpp" break; case 145: // expr_primitive: expr_level -#line 619 "parser.ypp" +#line 620 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2828 "parser.cpp" +#line 2833 "parser.cpp" break; case 146: // expr_primitive: expr_animation -#line 620 "parser.ypp" +#line 621 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2834 "parser.cpp" +#line 2839 "parser.cpp" break; case 147: // expr_primitive: expr_animtree -#line 621 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2840 "parser.cpp" - break; - - case 148: // expr_primitive: expr_identifier #line 622 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 2846 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2845 "parser.cpp" break; - case 149: // expr_primitive: expr_istring + case 148: // expr_primitive: expr_identifier_neg #line 623 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } -#line 2852 "parser.cpp" + { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } +#line 2851 "parser.cpp" break; - case 150: // expr_primitive: expr_string + case 149: // expr_primitive: expr_identifier #line 624 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } -#line 2858 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 2857 "parser.cpp" break; - case 151: // expr_primitive: expr_vector + case 150: // expr_primitive: expr_istring #line 625 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } -#line 2864 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } +#line 2863 "parser.cpp" break; - case 152: // expr_primitive: expr_float + case 151: // expr_primitive: expr_string #line 626 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } -#line 2870 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } +#line 2869 "parser.cpp" break; - case 153: // expr_primitive: expr_integer + case 152: // expr_primitive: expr_vector #line 627 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } -#line 2876 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } +#line 2875 "parser.cpp" break; - case 154: // expr_primitive: expr_false + case 153: // expr_primitive: expr_float #line 628 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } -#line 2882 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } +#line 2881 "parser.cpp" break; - case 155: // expr_primitive: expr_true + case 154: // expr_primitive: expr_integer #line 629 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } +#line 2887 "parser.cpp" + break; + + case 155: // expr_primitive: expr_false +#line 630 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } +#line 2893 "parser.cpp" + break; + + case 156: // expr_primitive: expr_true +#line 631 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_true::ptr > ()); } -#line 2888 "parser.cpp" +#line 2899 "parser.cpp" break; - case 156: // expr_complement: "~" expr -#line 634 "parser.ypp" + case 157: // expr_complement: "~" expr +#line 636 "parser.ypp" { yylhs.value.as < ast::expr_complement::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2894 "parser.cpp" +#line 2905 "parser.cpp" break; - case 157: // expr_not: "!" expr -#line 639 "parser.ypp" + case 158: // expr_not: "!" expr +#line 641 "parser.ypp" { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2900 "parser.cpp" +#line 2911 "parser.cpp" break; - case 158: // expr_call: expr_function -#line 643 "parser.ypp" + case 159: // expr_call: expr_function +#line 645 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2906 "parser.cpp" +#line 2917 "parser.cpp" break; - case 159: // expr_call: expr_pointer -#line 644 "parser.ypp" + case 160: // expr_call: expr_pointer +#line 646 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2912 "parser.cpp" +#line 2923 "parser.cpp" break; - case 160: // expr_method: expr_object expr_function -#line 647 "parser.ypp" + case 161: // expr_method: expr_object expr_function +#line 649 "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 2918 "parser.cpp" +#line 2929 "parser.cpp" break; - case 161: // expr_method: expr_object expr_pointer -#line 648 "parser.ypp" + case 162: // expr_method: expr_object expr_pointer +#line 650 "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 2924 "parser.cpp" +#line 2935 "parser.cpp" break; - case 162: // expr_function: expr_identifier "(" expr_arguments ")" -#line 653 "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 2930 "parser.cpp" - break; - - case 163: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" + case 163: // expr_function: expr_identifier "(" expr_arguments ")" #line 655 "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 2936 "parser.cpp" + { 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 2941 "parser.cpp" break; - case 164: // expr_function: "thread" expr_identifier "(" expr_arguments ")" + case 164: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" #line 657 "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 2942 "parser.cpp" + { 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 2947 "parser.cpp" break; - case 165: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 165: // expr_function: "thread" expr_identifier "(" expr_arguments ")" #line 659 "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 2948 "parser.cpp" + { 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 2953 "parser.cpp" break; - case 166: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" + case 166: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" #line 661 "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::childthread); } -#line 2954 "parser.cpp" + { 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 2959 "parser.cpp" break; - case 167: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 167: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" #line 663 "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::childthread); } +#line 2965 "parser.cpp" + break; + + case 168: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" +#line 665 "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::childthread); } -#line 2960 "parser.cpp" +#line 2971 "parser.cpp" break; - case 168: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" -#line 668 "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 2966 "parser.cpp" - break; - - case 169: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 169: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 670 "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 2972 "parser.cpp" + { 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 2977 "parser.cpp" break; - case 170: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 170: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 672 "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::childthread); } -#line 2978 "parser.cpp" + { 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 2983 "parser.cpp" break; - case 171: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 171: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 674 "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::childthread); } +#line 2989 "parser.cpp" + break; + + case 172: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 676 "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::builtin); } -#line 2984 "parser.cpp" +#line 2995 "parser.cpp" break; - case 172: // expr_add_array: "[" expr_arguments_no_empty "]" -#line 679 "parser.ypp" + case 173: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 681 "parser.ypp" { yylhs.value.as < ast::expr_add_array::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ())); } -#line 2990 "parser.cpp" +#line 3001 "parser.cpp" break; - case 173: // expr_parameters: expr_parameters "," expr_identifier -#line 684 "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 2996 "parser.cpp" - break; - - case 174: // expr_parameters: expr_identifier + case 174: // expr_parameters: expr_parameters "," expr_identifier #line 686 "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 3002 "parser.cpp" + { 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 3007 "parser.cpp" break; - case 175: // expr_parameters: %empty + case 175: // expr_parameters: expr_identifier #line 688 "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 3013 "parser.cpp" + break; + + case 176: // expr_parameters: %empty +#line 690 "parser.ypp" { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } -#line 3008 "parser.cpp" +#line 3019 "parser.cpp" break; - case 176: // expr_arguments: expr_arguments_no_empty -#line 693 "parser.ypp" - { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } -#line 3014 "parser.cpp" - break; - - case 177: // expr_arguments: %empty + case 177: // expr_arguments: expr_arguments_no_empty #line 695 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3025 "parser.cpp" + break; + + case 178: // expr_arguments: %empty +#line 697 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3020 "parser.cpp" +#line 3031 "parser.cpp" break; - case 178: // expr_arguments_no_empty: expr_arguments "," expr -#line 700 "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 3026 "parser.cpp" - break; - - case 179: // expr_arguments_no_empty: expr + case 179: // expr_arguments_no_empty: expr_arguments "," expr #line 702 "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 3037 "parser.cpp" + break; + + case 180: // expr_arguments_no_empty: expr +#line 704 "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 3032 "parser.cpp" +#line 3043 "parser.cpp" break; - case 180: // expr_reference: "::" expr_identifier -#line 707 "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 3038 "parser.cpp" - break; - - case 181: // expr_reference: expr_path "::" expr_identifier + case 181: // expr_reference: "::" expr_identifier #line 709 "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 3049 "parser.cpp" + break; + + case 182: // expr_reference: expr_path "::" expr_identifier +#line 711 "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 3044 "parser.cpp" +#line 3055 "parser.cpp" break; - case 182: // expr_array: expr_object "[" expr "]" -#line 714 "parser.ypp" + case 183: // expr_array: expr_object "[" expr "]" +#line 716 "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 3050 "parser.cpp" +#line 3061 "parser.cpp" break; - case 183: // expr_field: expr_object "." expr_identifier_nosize -#line 719 "parser.ypp" + case 184: // expr_field: expr_object "." expr_identifier_nosize +#line 721 "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 3056 "parser.cpp" +#line 3067 "parser.cpp" break; - case 184: // expr_size: expr_object "." "size" -#line 724 "parser.ypp" + case 185: // expr_size: expr_object "." "size" +#line 726 "parser.ypp" { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } -#line 3062 "parser.cpp" +#line 3073 "parser.cpp" break; - case 185: // expr_paren: "(" expr ")" -#line 729 "parser.ypp" + case 186: // expr_paren: "(" expr ")" +#line 731 "parser.ypp" { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3068 "parser.cpp" +#line 3079 "parser.cpp" break; - case 186: // expr_object: expr_call -#line 733 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 3074 "parser.cpp" - break; - - case 187: // expr_object: expr_method -#line 734 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 3080 "parser.cpp" - break; - - case 188: // expr_object: expr_array + case 187: // expr_object: expr_call #line 735 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3086 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3085 "parser.cpp" break; - case 189: // expr_object: expr_field + case 188: // expr_object: expr_method #line 736 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 3092 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3091 "parser.cpp" break; - case 190: // expr_object: expr_game + case 189: // expr_object: expr_array #line 737 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 3098 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3097 "parser.cpp" break; - case 191: // expr_object: expr_self + case 190: // expr_object: expr_field #line 738 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 3104 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3103 "parser.cpp" break; - case 192: // expr_object: expr_anim + case 191: // expr_object: expr_game #line 739 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 3110 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3109 "parser.cpp" break; - case 193: // expr_object: expr_level + case 192: // expr_object: expr_self #line 740 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 3116 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3115 "parser.cpp" break; - case 194: // expr_object: expr_identifier + case 193: // expr_object: expr_anim #line 741 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3121 "parser.cpp" + break; + + case 194: // expr_object: expr_level +#line 742 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3127 "parser.cpp" + break; + + case 195: // expr_object: expr_identifier +#line 743 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 3122 "parser.cpp" +#line 3133 "parser.cpp" break; - case 195: // expr_thisthread: "thisthread" -#line 746 "parser.ypp" + case 196: // expr_thisthread: "thisthread" +#line 748 "parser.ypp" { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3128 "parser.cpp" +#line 3139 "parser.cpp" break; - case 196: // expr_empty_array: "[" "]" -#line 751 "parser.ypp" + case 197: // expr_empty_array: "[" "]" +#line 753 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3134 "parser.cpp" +#line 3145 "parser.cpp" break; - case 197: // expr_undefined: "undefined" -#line 756 "parser.ypp" + case 198: // expr_undefined: "undefined" +#line 758 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3140 "parser.cpp" +#line 3151 "parser.cpp" break; - case 198: // expr_game: "game" -#line 761 "parser.ypp" + case 199: // expr_game: "game" +#line 763 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3146 "parser.cpp" +#line 3157 "parser.cpp" break; - case 199: // expr_self: "self" -#line 766 "parser.ypp" + case 200: // expr_self: "self" +#line 768 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3152 "parser.cpp" +#line 3163 "parser.cpp" break; - case 200: // expr_anim: "anim" -#line 771 "parser.ypp" + case 201: // expr_anim: "anim" +#line 773 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3158 "parser.cpp" +#line 3169 "parser.cpp" break; - case 201: // expr_level: "level" -#line 776 "parser.ypp" + case 202: // expr_level: "level" +#line 778 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3164 "parser.cpp" +#line 3175 "parser.cpp" break; - case 202: // expr_animation: "%" "identifier" -#line 781 "parser.ypp" + case 203: // expr_animation: "%" "identifier" +#line 783 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3170 "parser.cpp" +#line 3181 "parser.cpp" break; - case 203: // expr_animtree: "#animtree" -#line 786 "parser.ypp" + case 204: // expr_animtree: "#animtree" +#line 788 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3176 "parser.cpp" +#line 3187 "parser.cpp" break; - case 204: // expr_identifier_nosize: "identifier" -#line 791 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3182 "parser.cpp" + case 205: // expr_identifier_neg: "-" "identifier" +#line 793 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, ast::expr(std::make_unique(yylhs.location, "0")), ast::expr(std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()))); } +#line 3193 "parser.cpp" break; - case 205: // expr_identifier: "identifier" -#line 796 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3188 "parser.cpp" - break; - - case 206: // expr_identifier: "size" + case 206: // expr_identifier_nosize: "identifier" #line 798 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3194 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3199 "parser.cpp" break; - case 207: // expr_path: "identifier" + case 207: // expr_identifier: "identifier" #line 803 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3200 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3205 "parser.cpp" break; - case 208: // expr_path: "path" + case 208: // expr_identifier: "size" #line 805 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3206 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } +#line 3211 "parser.cpp" break; - case 209: // expr_istring: "localized string" + case 209: // expr_path: "identifier" #line 810 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3217 "parser.cpp" + break; + + case 210: // expr_path: "path" +#line 812 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3223 "parser.cpp" + break; + + case 211: // expr_istring: "localized string" +#line 817 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3212 "parser.cpp" +#line 3229 "parser.cpp" break; - case 210: // expr_string: "string literal" -#line 815 "parser.ypp" + case 212: // expr_string: "string literal" +#line 822 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3218 "parser.cpp" +#line 3235 "parser.cpp" break; - case 211: // expr_vector: "(" expr "," expr "," expr ")" -#line 820 "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 3224 "parser.cpp" - break; - - case 212: // expr_float: "-" "float" -#line 825 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3230 "parser.cpp" - break; - - case 213: // expr_float: "float" + case 213: // expr_vector: "(" expr "," expr "," expr ")" #line 827 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3236 "parser.cpp" + { 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 3241 "parser.cpp" break; - case 214: // expr_integer: "-" "integer" + case 214: // expr_float: "-" "float" #line 832 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3242 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3247 "parser.cpp" break; - case 215: // expr_integer: "integer" + case 215: // expr_float: "float" #line 834 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3248 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3253 "parser.cpp" break; - case 216: // expr_false: "false" + case 216: // expr_integer: "-" "integer" #line 839 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3259 "parser.cpp" + break; + + case 217: // expr_integer: "integer" +#line 841 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3265 "parser.cpp" + break; + + case 218: // expr_false: "false" +#line 846 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3254 "parser.cpp" +#line 3271 "parser.cpp" break; - case 217: // expr_true: "true" -#line 844 "parser.ypp" + case 219: // expr_true: "true" +#line 851 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3260 "parser.cpp" +#line 3277 "parser.cpp" break; -#line 3264 "parser.cpp" +#line 3281 "parser.cpp" default: break; @@ -3474,9 +3491,9 @@ namespace xsk { namespace gsc { namespace iw6 { "expr_array", "expr_field", "expr_size", "expr_paren", "expr_object", "expr_thisthread", "expr_empty_array", "expr_undefined", "expr_game", "expr_self", "expr_anim", "expr_level", "expr_animation", - "expr_animtree", "expr_identifier_nosize", "expr_identifier", - "expr_path", "expr_istring", "expr_string", "expr_vector", "expr_float", - "expr_integer", "expr_false", "expr_true", YY_NULLPTR + "expr_animtree", "expr_identifier_neg", "expr_identifier_nosize", + "expr_identifier", "expr_path", "expr_istring", "expr_string", + "expr_vector", "expr_float", "expr_integer", "expr_false", "expr_true", YY_NULLPTR }; return yy_sname[yysymbol]; } @@ -3747,494 +3764,490 @@ namespace xsk { namespace gsc { namespace iw6 { const short parser::yypact_ninf_ = -266; - const short parser::yytable_ninf_ = -208; + const short parser::yytable_ninf_ = -210; const short parser::yypact_[] = { - 6, -266, -266, -13, -13, -23, -266, -266, 39, 6, - -266, -266, -266, -266, -266, -266, -40, -266, -266, 11, - 20, -11, -266, -266, -266, -266, -38, 1079, -266, -266, - -266, 43, -3, -266, -266, -22, 31, -266, 46, -266, - -266, -266, -266, -266, -266, -266, 1079, 644, -38, 1079, - 1079, 60, -6, 45, -266, -266, -266, 2012, -266, -266, - -266, -266, -266, 476, 583, -266, -266, -266, -266, 836, - 841, -266, -266, 1039, -266, -266, -266, 1047, 1106, 1277, - 1285, -266, -266, 67, 49, -266, -266, -266, -266, -266, - -266, -266, 41, 64, -38, 65, 68, 83, 71, 72, - 91, 98, 1298, 644, -266, 2095, 76, 101, -266, -266, - -266, -266, -266, -266, -266, 1079, 1079, 1079, 1079, 1079, - 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, - 1079, 1079, 1079, 1079, 1142, -19, -266, -266, 108, 103, - 1079, -38, -266, 805, -266, -266, 1079, 1079, -38, 1079, - 1079, -38, 1079, -266, 1079, 1742, 1079, -266, 1977, 133, - 133, 2126, 2136, 212, 212, 74, 74, 74, 74, 2167, - 2208, 2177, -63, -63, -266, -266, -266, 1782, -266, -266, - -266, -38, -2, -266, 119, 934, 1079, 110, 127, 1265, - 128, 131, 132, 135, -58, 136, 126, 130, 1016, 134, - 141, 142, -266, 146, 50, 50, -266, -266, 881, -266, + 3, -266, -266, 1, 1, -31, -266, -266, 24, 3, + -266, -266, -266, -266, -266, -266, -23, -266, -266, -22, + -20, -48, -266, -266, -266, -266, -27, 1109, -266, -266, + -266, -1, -47, -266, -266, 6, 21, -266, 11, -266, + -266, -266, -266, -266, -266, -266, 1109, 983, -27, 1109, + 1109, 60, -44, 15, -266, -266, -266, 1979, -266, -266, + -266, -266, -266, 409, 540, -266, -266, -266, -266, 550, + 599, -266, -266, 609, -266, -266, -266, 630, 677, 720, + 803, -266, -266, -266, 503, 18, -266, -266, -266, -266, + -266, -266, -266, 20, 35, -27, 41, 68, 63, 75, + 89, 72, 86, 1305, 983, -266, 2062, 85, 90, -266, + -266, -266, -266, -266, -266, -266, -266, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1172, -25, -266, -266, + 98, 93, 1109, -27, -266, 772, -266, -266, 1109, 1109, + -27, 1109, 1109, -27, 1109, -266, 1109, 1105, 1109, -266, + 1944, 167, 167, 975, 2093, 1037, 1037, 137, 137, 137, + 137, 2103, 2144, 2134, -30, -30, -266, -266, -266, 1749, + -266, -266, -266, -27, -15, -266, 108, 901, 1109, 106, + 117, 1295, 119, 121, 124, 128, -58, 125, 120, 123, + 1046, 129, 142, 143, -266, 140, 116, 116, -266, -266, + 848, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, - -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, - -266, -266, -266, -266, 145, 148, 149, 150, 151, -266, - -266, 1189, -266, -266, -266, -266, 108, 1822, -1, 156, - 1862, 1, 164, 1902, 1941, 160, 2095, 1079, -266, 119, - -266, 1079, -266, -266, 987, 2047, -266, 1079, 171, 1079, - 397, -38, 1079, 129, 174, 176, -266, -266, -266, -266, - 2082, -266, 1079, 1079, 1079, -266, -266, 1299, 1299, -266, - -266, -266, -266, -266, -266, -266, 169, 180, 186, 187, - 105, -266, -266, 1079, 1079, 1079, 1079, 1079, 1079, 1079, - 1079, 1079, 1079, 1079, 184, -266, 1079, 188, -266, 1079, - 191, 1079, 192, 2095, 19, -266, -266, -266, 1464, 197, - 1498, 190, -266, -266, -266, -17, -15, 1532, -266, -266, - -266, 36, 58, 1742, 1079, 1079, 1079, 1079, 2095, 2095, - 2095, 2095, 2095, 2095, 2095, 2095, 2095, 2095, 2095, 198, - 59, 203, 77, 204, 1566, 1079, -266, 1265, 1079, 1265, - 1079, 1079, -38, 64, 199, 200, 1600, 1342, 1386, 1430, - 1079, -266, 1079, -266, 1079, -266, 78, 234, 1634, -266, - 2095, 201, 1668, 238, -266, -266, -266, 202, 207, 1079, - 211, 1079, 213, 1079, 79, 80, 92, -266, 1265, 214, - 397, 1265, 1079, -266, -266, 224, -266, 228, -266, 229, - -266, -266, -266, -266, -266, 237, -266, 1702, 230, 231, - 233, 1265, 1265, -266, -266, -266, -266, -266 + -266, -266, -266, -266, -266, -266, 138, 144, 147, 148, + 150, -266, -266, 1219, -266, -266, -266, -266, 98, 1789, + 5, 153, 1829, 26, 166, 1869, 1908, 162, 2062, 1109, + -266, 108, -266, 1109, -266, -266, 954, 2014, -266, 1109, + 198, 1109, -17, -27, 1109, 126, 165, 174, -266, -266, + -266, -266, 2049, -266, 1109, 1109, 1109, -266, -266, 808, + 808, -266, -266, -266, -266, -266, -266, -266, 175, 184, + 188, 190, 145, -266, -266, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 189, -266, 1109, 191, + -266, 1109, 193, 1109, 195, 2062, 33, -266, -266, -266, + 1471, 200, 1505, 183, -266, -266, -266, 29, -2, 1539, + -266, -266, -266, 34, 37, 1105, 1109, 1109, 1109, 1109, + 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, + 2062, 202, 47, 204, 71, 205, 1573, 1109, -266, 1295, + 1109, 1295, 1109, 1109, -27, 35, 203, 206, 1607, 1349, + 1393, 1437, 1109, -266, 1109, -266, 1109, -266, 77, 226, + 1641, -266, 2062, 208, 1675, 236, -266, -266, -266, 210, + 213, 1109, 215, 1109, 216, 1109, 80, 81, 87, -266, + 1295, 217, -17, 1295, 1109, -266, -266, 228, -266, 234, + -266, 235, -266, -266, -266, -266, -266, 240, -266, 1709, + 227, 232, 233, 1295, 1295, -266, -266, -266, -266, -266 }; const unsigned char parser::yydefact_[] = { - 3, 12, 13, 0, 0, 0, 206, 205, 0, 2, - 7, 8, 9, 14, 15, 16, 0, 208, 207, 0, - 0, 0, 1, 4, 5, 6, 175, 0, 10, 11, - 210, 0, 0, 174, 203, 0, 0, 195, 0, 217, - 216, 197, 198, 199, 200, 201, 0, 177, 0, 0, - 0, 0, 0, 205, 209, 213, 215, 0, 90, 91, - 92, 129, 130, 131, 132, 158, 159, 133, 134, 135, + 3, 12, 13, 0, 0, 0, 208, 207, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 210, 209, 0, + 0, 0, 1, 4, 5, 6, 176, 0, 10, 11, + 212, 0, 0, 175, 204, 0, 0, 196, 0, 219, + 218, 198, 199, 200, 201, 202, 0, 178, 0, 0, + 0, 0, 0, 207, 211, 215, 217, 0, 90, 91, + 92, 129, 130, 131, 132, 159, 160, 133, 134, 135, 136, 137, 138, 0, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 0, 149, 150, 151, 152, 153, - 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 177, 196, 179, 0, 176, 180, 157, - 156, 212, 214, 202, 18, 0, 0, 0, 0, 0, + 145, 146, 147, 148, 149, 0, 150, 151, 152, 153, + 154, 155, 156, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 178, 197, 180, 0, 177, 181, + 158, 157, 205, 214, 216, 203, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 160, 161, 0, 0, - 177, 0, 17, 0, 19, 173, 0, 177, 0, 0, - 177, 0, 0, 185, 0, 179, 0, 172, 0, 122, - 123, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 124, 125, 126, 127, 128, 0, 184, 204, - 183, 0, 0, 176, 181, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, + 0, 0, 178, 0, 17, 0, 19, 174, 0, 178, + 0, 0, 178, 0, 0, 186, 0, 180, 0, 173, + 0, 122, 123, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 124, 125, 126, 127, 128, 0, + 185, 206, 184, 0, 0, 177, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 0, 44, 49, 0, 45, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 0, 0, 0, 186, 187, 188, - 189, 0, 190, 191, 192, 193, 194, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 178, 0, 182, 0, - 162, 177, 51, 47, 0, 0, 71, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 82, 83, 84, 86, - 0, 87, 177, 177, 0, 186, 187, 106, 108, 52, - 48, 60, 61, 62, 58, 59, 0, 0, 0, 0, - 0, 107, 109, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 164, 177, 0, 166, 177, - 0, 0, 0, 110, 0, 50, 46, 66, 0, 0, - 0, 0, 54, 55, 56, 0, 0, 0, 81, 80, - 85, 0, 0, 0, 0, 0, 0, 0, 95, 101, - 102, 103, 104, 105, 96, 97, 98, 100, 99, 0, - 0, 0, 0, 0, 0, 177, 163, 0, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 177, 165, 177, 167, 177, 211, 0, 72, 0, 74, - 93, 0, 0, 0, 79, 88, 89, 0, 0, 177, - 0, 177, 0, 177, 0, 0, 0, 168, 0, 0, - 57, 0, 0, 63, 65, 176, 68, 176, 70, 176, - 169, 170, 171, 73, 75, 0, 77, 0, 0, 0, - 0, 0, 0, 64, 67, 69, 76, 78 + 0, 0, 0, 0, 53, 0, 0, 0, 44, 49, + 0, 45, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 0, 0, 0, 187, + 188, 189, 190, 0, 191, 192, 193, 194, 195, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, + 183, 0, 163, 178, 51, 47, 0, 0, 71, 0, + 0, 0, 57, 0, 0, 0, 0, 0, 82, 83, + 84, 86, 0, 87, 178, 178, 0, 187, 188, 106, + 108, 52, 48, 60, 61, 62, 58, 59, 0, 0, + 0, 0, 0, 107, 109, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 165, 178, 0, + 167, 178, 0, 0, 0, 110, 0, 50, 46, 66, + 0, 0, 0, 0, 54, 55, 56, 0, 0, 0, + 81, 80, 85, 0, 0, 0, 0, 0, 0, 0, + 95, 101, 102, 103, 104, 105, 96, 97, 98, 100, + 99, 0, 0, 0, 0, 0, 0, 178, 164, 0, + 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 178, 166, 178, 168, 178, 213, 0, 72, + 0, 74, 93, 0, 0, 0, 79, 88, 89, 0, + 0, 178, 0, 178, 0, 178, 0, 0, 0, 169, + 0, 0, 57, 0, 0, 63, 65, 177, 68, 177, + 70, 177, 170, 171, 172, 73, 75, 0, 77, 0, + 0, 0, 0, 0, 0, 64, 67, 69, 76, 78 }; const short parser::yypgoto_[] = { - -266, -266, -266, 286, 289, 291, -266, -266, -266, -179, - 93, -266, -266, -266, -91, -108, -266, -266, -266, -266, + -266, -266, -266, 286, 287, 288, -266, -266, -266, -131, + 91, -266, -266, -266, -91, -112, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, - -266, -266, -266, -266, -266, -266, -266, -266, -266, 196, - -266, -265, -255, -254, -266, -266, -266, -266, -266, -31, - -5, -69, -66, -266, -266, -26, -46, -266, 208, 266, - -266, -266, 306, -266, -266, -266, 340, 380, 389, 394, - -266, -266, -266, 0, 9, -266, -18, -266, -266, 114, - -266, -266 + -266, -266, -266, -266, -266, -266, -266, -266, -266, 187, + -266, -265, -264, -261, -266, -266, -266, -266, -266, -86, + -18, -69, -67, -266, -266, 289, -46, -266, -9, 199, + -266, -266, 253, -266, -266, -266, 281, 321, 331, 359, + -266, -266, -266, -266, 0, 9, -266, -19, -266, -266, + 132, -266, -266 }; const short parser::yydefgoto_[] = { - 0, 8, 9, 10, 11, 12, 13, 14, 15, 206, - 207, 264, 208, 209, 210, 331, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 105, - 391, 234, 235, 236, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 32, 106, 183, 68, 69, 70, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 208, + 209, 266, 210, 211, 212, 333, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 106, + 393, 236, 237, 238, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 32, 107, 185, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 180, 83, 84, 85, 86, 87, 88, 89, - 90, 91 + 81, 82, 83, 182, 84, 85, 86, 87, 88, 89, + 90, 91, 92 }; const short parser::yytable_[] = { - 16, 107, 144, 31, 136, 332, 263, 137, 6, 16, - 268, 26, 19, 20, 371, 333, 334, 1, 2, 3, - 4, 5, 35, 36, 6, 38, 33, 178, 21, 6, - 131, 132, 133, 95, 273, 96, 99, 27, 134, 22, - 30, 300, 372, 56, 97, 100, 301, 302, 108, 93, - 260, 315, 6, 318, 94, 156, 156, 107, 156, 7, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 366, 28, 138, 17, 53, 156, 6, 179, 17, - 53, 29, 139, 17, 18, 326, 98, 30, 374, 35, - 36, 113, 38, 156, 145, 92, 6, 42, 43, 44, - 45, 101, 142, 7, -207, 203, -194, -194, 141, -194, - 375, 381, 237, -194, 182, 156, 156, 143, 140, 147, - 146, 248, -194, 150, 251, -194, 149, 17, 53, 383, - 407, 420, 421, 156, 156, 156, 156, 156, 238, 116, - 117, 184, 148, 246, 422, 332, 17, 53, 249, 156, - 151, 252, 139, 152, 237, 333, 334, 157, 237, 140, - 111, 112, 181, -194, -194, 129, 130, 131, 132, 133, - 261, 266, 136, 285, 285, 137, 274, 237, 267, 269, - 238, 259, 270, 271, 238, 246, 272, 277, 387, 246, - 389, 278, 282, 283, 139, 281, 276, 329, 139, 286, - 286, 284, 179, 238, 246, 246, 291, 316, 246, 292, - 293, 294, 295, 139, 139, 319, 322, 139, 136, 136, - 344, 137, 137, 57, 129, 130, 131, 132, 133, 423, - 112, 345, 426, 237, 338, 324, 339, 346, 347, 285, - 359, 138, 102, 365, 361, 109, 110, 363, 368, 380, - 139, 370, 436, 437, 382, 384, 341, 342, 408, 238, - 395, 396, 410, 413, 246, 286, 136, 412, 414, 137, - 246, 336, 416, 139, 418, 424, 428, 116, 117, 139, - 429, 430, 394, 122, 123, 124, 125, 138, 138, 431, - 360, 433, 434, 362, 435, 23, 139, 139, 24, 155, - 25, 290, 425, 129, 130, 131, 132, 133, 275, 0, - 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 0, 0, 0, 0, 138, 237, 0, 237, 386, - 0, 0, 247, 0, 139, 250, 0, 0, 253, 0, - 254, 239, 256, 415, 404, 417, 405, 419, 406, 0, - 0, 0, 238, 0, 238, 0, 0, 246, 0, 246, - 0, 0, 393, 0, 0, 0, 139, 237, 139, 285, - 237, 0, 265, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 239, 280, 0, 0, 239, 0, 0, - 237, 237, 0, 238, 0, 286, 238, 0, 246, 240, - 246, 246, 239, 239, 0, 0, 239, 139, 0, 139, - 139, 0, 0, 0, 0, 0, 238, 238, 0, 0, - 0, 246, 246, 0, 0, 0, 35, 36, 0, 38, - 139, 139, 0, 6, 42, 43, 44, 45, 0, 241, - 0, 240, 203, 323, 0, 240, 0, 0, 0, 0, - 204, 205, 0, 328, 0, 330, 0, 0, 337, 0, - 240, 240, 239, 0, 240, 0, 0, 0, 239, 0, - 343, 0, 0, 242, 0, 0, 0, 0, 0, 0, - 0, 241, 0, 17, 53, 241, 0, 0, 0, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 287, 288, 0, 0, 241, -186, -186, 364, -186, 0, - 0, 0, -186, 243, 0, 242, 0, 0, 0, 242, - 240, -186, 244, 0, -186, 0, 240, 245, 0, 0, - 376, 377, 378, 379, 242, 242, 0, 0, 242, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 388, 243, 390, 392, 0, 243, - 241, 0, -186, -186, 244, 239, 335, 239, 244, 245, - 0, 0, 0, 245, 243, 243, 0, 0, 243, 0, - 0, 0, 0, 244, 244, 0, 0, 244, 245, 245, - 0, 0, 245, 0, 242, 0, 0, 0, 427, 0, - 242, 0, 0, 0, 0, 0, 239, 0, 239, 239, - 0, 0, -187, -187, 0, -187, 0, 0, 0, -187, - 0, 0, 0, 240, 0, 240, 0, 0, -187, 239, - 239, -187, 0, 0, 243, 0, 0, 0, 0, 0, - 243, 0, 0, 244, 0, 0, 0, 0, 245, 244, - 34, 0, 0, 0, 245, 0, 0, 0, 0, 0, - 0, 0, 0, 241, 240, 241, 240, 240, 0, -187, - -187, 0, 0, 35, 36, 37, 38, 39, 40, 41, - 6, 42, 43, 44, 45, 46, 0, 240, 240, 103, - 104, 0, 0, 48, 0, 0, 0, 242, 0, 242, - 0, 0, 0, 0, 241, 0, 335, 241, 0, 49, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 51, 241, 241, 52, - 17, 53, 30, 54, 55, 56, 0, 243, 242, 243, - 242, 242, 0, 0, 0, 0, 244, 0, 244, 0, - 0, 245, 0, 245, 0, 0, 0, 0, 0, 0, - 0, 242, 242, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 243, 0, - 243, 243, 0, 0, 0, 0, 0, 244, 0, 244, - 244, 0, 245, 0, 245, 245, 0, 0, 0, 0, - 0, 243, 243, 0, 0, 0, 185, 0, 0, 0, - 244, 244, 0, 0, 186, 245, 245, 187, 188, 0, - 189, 190, 191, 192, 0, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 35, 36, 0, 38, 0, 0, - 0, 6, 42, 43, 44, 45, 0, 0, 143, 202, - 203, 0, 0, 0, 0, 0, 0, 0, 204, 205, - 0, 0, 0, 0, 0, -188, -188, 0, -188, 0, - -189, -189, -188, -189, 0, 0, 0, -189, 0, 0, - 0, -188, 185, 0, -188, 0, -189, 0, 0, -189, - 186, 17, 53, 187, 188, 0, 189, 190, 191, 192, - 0, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 35, 36, 0, 38, 0, 0, 0, 6, 42, 43, - 44, 45, -188, -188, 143, 289, 203, -189, -189, 0, - 0, 0, 0, 0, 204, 205, 262, 0, 0, 0, - 0, 0, 0, 186, 0, 0, 187, 188, 0, 189, - 190, 191, 192, 0, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 35, 36, 0, 38, 17, 53, 0, - 6, 42, 43, 44, 45, 0, 0, 143, 0, 203, - 0, 0, 0, 0, 0, 0, 0, 204, 205, 325, - 0, 0, 0, 0, 0, 0, 186, 0, 0, 187, - 188, 0, 189, 190, 191, 192, 0, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 35, 36, 0, 38, - 17, 53, 34, 6, 42, 43, 44, 45, 0, 0, - 143, 0, 203, 0, 0, 0, 0, 0, 0, 0, - 204, 205, 0, 0, 0, 35, 36, 37, 38, 39, + 16, 108, 31, 146, 138, 94, 139, 334, 335, 16, + 95, 336, 19, 20, 1, 2, 3, 4, 5, 6, + 21, 180, 35, 36, 22, 38, 33, 373, 26, 6, + 42, 43, 44, 45, 275, 97, 100, 262, 205, 28, + 30, 29, 158, 56, 98, 101, 206, 207, 109, 6, + 30, 93, 6, 115, 27, 374, 265, 317, 108, 239, + 270, 96, 158, 133, 134, 135, 102, 6, 35, 36, + 7, 38, 181, 140, -209, 6, 99, 143, 320, 17, + 53, 144, 141, 158, 136, 368, 376, 302, 145, 377, + 158, 158, 303, 304, 158, 147, 148, 17, 18, 383, + 7, 239, 17, 53, 158, 239, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 17, 53, 149, + 287, 287, 150, 385, 239, 17, 53, 240, 158, 409, + 151, 153, 422, 423, 158, 328, 241, 158, 158, 424, + 152, 154, 158, 186, 158, 248, 159, 334, 335, 142, + 251, 336, 183, 254, 141, 35, 36, 112, 38, 263, + 113, 114, 6, 42, 43, 44, 45, 268, 269, 240, + 271, 205, 272, 240, 138, 273, 139, 276, 241, 274, + 239, 279, 241, 261, 280, 278, 287, 248, 288, 288, + 283, 248, 240, 284, 285, 286, 141, 241, 241, 293, + 141, 241, 118, 119, 318, 294, 248, 248, 295, 296, + 248, 297, 17, 53, 57, 141, 141, 321, 324, 141, + 138, 138, 139, 139, 331, 340, 346, 114, 131, 132, + 133, 134, 135, 103, 341, 347, 110, 111, 389, 348, + 391, 349, 181, 140, 372, 361, 367, 363, 240, 365, + 410, 370, 141, 382, 288, 384, 386, 241, 131, 132, + 133, 134, 135, 241, 397, 414, 248, 398, 138, 412, + 139, 415, 248, 338, 416, 141, 418, 420, 426, 425, + 430, 141, 428, 239, 396, 239, 431, 432, 435, 140, + 140, 157, 433, 436, 437, 23, 24, 25, 141, 141, + 427, 292, 438, 439, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 239, 0, 287, 239, 277, 0, + 0, 0, 0, 0, 0, 249, 0, 140, 252, 0, + 0, 255, 0, 256, 242, 258, 141, 239, 239, 0, + 0, 240, 0, 240, 0, 417, 0, 419, 0, 421, + 241, 0, 241, 0, 0, 0, 0, 0, 0, 248, + 0, 248, 0, 0, 395, 267, 0, 0, 141, 0, + 141, 0, 0, 0, 0, 0, 242, 282, 0, 0, + 242, 0, 240, 0, 288, 240, 0, 0, 243, 0, + 0, 241, 0, 241, 241, 242, 242, 0, 0, 242, + 248, 0, 248, 248, 0, 240, 240, 0, 0, 141, + 0, 141, 141, 0, 241, 241, 244, 0, 0, 0, + 0, 184, 0, 248, 248, 0, 0, 0, 250, 0, + 243, 253, 141, 141, 243, 0, 325, 0, -187, -187, + 0, -187, 0, 0, 0, -187, 330, 0, 332, 289, + 290, 339, 0, 243, -187, 242, 245, -187, 244, 0, + 0, 242, 244, 345, 0, 0, 246, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 244, 244, 0, + 0, 244, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 0, 247, -187, -187, 0, 245, 0, + 366, 0, 245, 0, 0, 0, 0, 0, 246, 243, + 0, 0, 246, 0, 0, 337, 0, 245, 245, 0, + 0, 245, 0, 378, 379, 380, 381, 246, 246, 0, + 0, 246, -195, -195, 0, -195, 247, 244, 0, -195, + 247, 0, 326, 244, 142, 0, 0, 390, -195, 392, + 394, -195, 0, 0, 0, 247, 247, 0, 242, 247, + 242, 0, 0, 343, 344, 0, 0, 0, 0, -188, + -188, 0, -188, 0, 0, 0, -188, 245, 0, -189, + -189, 0, -189, 245, 0, -188, -189, 246, -188, -195, + -195, 429, 0, 246, 0, -189, 0, 362, -189, 242, + 364, 242, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 243, 0, 243, 247, 0, 0, 0, 0, + 0, 247, 242, 242, 0, 0, -188, -188, -190, -190, + 0, -190, 0, 0, 0, -190, -189, -189, 35, 36, + 244, 38, 244, 0, -190, 6, 388, -190, 0, 0, + 0, 0, 0, 243, 136, 337, 243, 137, 0, -191, + -191, 406, -191, 407, 0, 408, -191, 0, 0, 0, + 0, 0, 0, 0, 0, -191, 243, 243, -191, 0, + 245, 244, 245, 244, 244, -190, -190, 0, 0, 0, + 246, 0, 246, 0, 0, 17, 53, 0, 0, 0, + 0, 0, 0, 0, 244, 244, -192, -192, 0, -192, + 0, 0, 0, -192, 0, 0, -191, -191, 247, 0, + 247, 245, -192, 245, 245, -192, 0, 0, 0, 0, + 0, 246, 0, 246, 246, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 245, 0, 0, 0, -193, + -193, 0, -193, 0, 246, 246, -193, 0, 0, 247, + 0, 247, 247, -192, -192, -193, 0, 0, -193, 0, + 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, + 0, 188, 247, 247, 189, 190, 0, 191, 192, 193, + 194, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 35, 36, 0, 38, 0, -193, -193, 6, 42, + 43, 44, 45, 0, 0, 145, 204, 205, 0, 0, + 0, 0, 0, 0, 0, 206, 207, 0, 0, 0, + 0, 0, -194, -194, 0, -194, 0, 35, 36, -194, + 38, 0, 0, 0, 6, 0, 0, 0, -194, 187, + 0, -194, 0, 136, 0, 0, 302, 188, 17, 53, + 189, 190, 0, 191, 192, 193, 194, 0, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 35, 36, 0, + 38, 0, 0, 0, 6, 42, 43, 44, 45, -194, + -194, 145, 291, 205, 17, 53, 0, 0, 0, 0, + 0, 206, 207, 264, 0, 0, 0, 0, 0, 0, + 188, 0, 0, 189, 190, 0, 191, 192, 193, 194, + 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 35, 36, 0, 38, 17, 53, 0, 6, 42, 43, + 44, 45, 0, 0, 145, 0, 205, 0, 0, 0, + 0, 0, 0, 0, 206, 207, 327, 0, 0, 0, + 0, 0, 0, 188, 0, 0, 189, 190, 0, 191, + 192, 193, 194, 0, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 35, 36, 0, 38, 17, 53, 34, + 6, 42, 43, 44, 45, 0, 0, 145, 0, 205, + 0, 0, 0, 0, 0, 0, 0, 206, 207, 0, + 0, 0, 35, 36, 37, 38, 39, 40, 41, 6, + 42, 43, 44, 45, 46, 0, 0, 0, 104, 105, + 118, 119, 48, 121, 122, 123, 124, 125, 126, 127, + 17, 53, 0, 0, 0, 0, 0, 0, 49, 50, + 0, 0, 34, 128, 129, 130, 131, 132, 133, 134, + 135, 0, 0, 0, 0, 51, 0, 0, 52, 17, + 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, 45, 46, 0, 0, - 0, 47, 0, 0, 0, 48, 0, 279, 35, 36, - 0, 38, 0, 17, 53, 6, -190, -190, 0, -190, - 0, 49, 50, -190, 134, 34, 0, 135, 0, 0, - 0, 0, -190, 0, 0, -190, 0, 0, 51, 0, + 0, 47, 118, 119, 0, 48, 0, 281, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 50, 0, 0, 34, 0, 0, 131, 132, + 133, 134, 135, 0, 0, 0, 0, 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, 45, - 46, 0, 0, 0, 47, 17, 53, 0, 48, 0, - 0, 0, 0, -190, -190, -191, -191, 0, -191, 0, - 0, 0, -191, 0, 49, 50, 0, 0, 34, 0, - 0, -191, 0, 0, -191, 0, 0, 0, 0, 0, - 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, + 46, 257, 0, 0, 47, 0, 0, 117, 48, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 0, 0, 0, 0, 49, 50, 0, 0, 34, 0, + 0, 0, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, - 43, 44, 45, 46, 0, 0, 0, 103, 0, 0, - 0, 48, -191, -191, 0, 0, 296, 297, 0, 298, - 299, 0, 0, 0, 0, 0, 0, 49, 50, 0, + 43, 44, 45, 46, 0, 0, 0, 104, 0, 0, + 0, 48, 0, 0, 0, 0, 298, 299, 0, 300, + 301, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 36, 0, 38, 0, 0, 51, 6, 0, 52, 17, 53, - 30, 54, 55, 56, 134, 0, 0, 300, 0, 0, - 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 0, 0, 0, - 0, 0, 0, 0, 186, 17, 53, 187, 188, 0, - 189, 190, 191, 192, 0, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 35, 36, 0, 38, 0, 0, - 0, 6, 42, 43, 44, 45, -192, -192, 143, -192, - 203, 0, 0, -192, -193, -193, 0, -193, 204, 205, - 0, -193, -192, 0, 0, -192, 0, 0, 35, 36, - -193, 38, 0, -193, 0, 6, 0, 0, 0, 0, - 153, 0, 0, 0, 134, 154, 0, 300, 0, 0, - 115, 17, 53, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -192, -192, 0, 0, 0, 0, 0, - 0, -193, -193, 0, 0, 0, 126, 127, 128, 129, - 130, 131, 132, 133, 398, 17, 53, 0, 0, 399, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, + 30, 54, 55, 56, 136, 0, 0, 302, 0, 0, + 0, 0, 303, 304, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 0, 0, 0, + 0, 0, 0, 0, 188, 17, 53, 189, 190, 0, + 191, 192, 193, 194, 0, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 35, 36, 0, 38, 0, 0, + 0, 6, 42, 43, 44, 45, 0, 0, 145, 0, + 205, 0, 0, 0, 0, 0, 0, 155, 206, 207, + 0, 0, 156, 0, 0, 0, 0, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 400, 0, - 0, 0, 0, 401, 0, 0, 0, 0, 115, 0, - 0, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 126, 127, 128, 129, 130, 131, - 132, 133, 402, 0, 0, 0, 0, 403, 0, 0, - 0, 0, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 367, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 115, 0, 0, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 0, + 0, 17, 53, 128, 129, 130, 131, 132, 133, 134, + 135, 400, 0, 0, 0, 0, 401, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 402, 0, 0, 0, 0, + 403, 0, 0, 0, 0, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 369, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 115, 0, 0, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 373, 0, 126, 127, 128, 129, - 130, 131, 132, 133, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 385, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 115, 0, - 0, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 397, 0, 126, 127, 128, 129, 130, 131, - 132, 133, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 409, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 115, 0, 0, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 404, + 0, 0, 0, 0, 405, 0, 0, 0, 0, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 369, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 371, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 411, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 115, 0, 0, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 432, 0, 126, 127, 128, 129, - 130, 131, 132, 133, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, + 0, 375, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 387, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 411, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 413, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 255, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, + 0, 434, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 260, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 316, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 319, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 322, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 323, 0, 0, 0, 0, + 117, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 259, 0, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 258, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 116, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 329, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 314, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 317, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 320, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 321, 0, - 0, 0, 0, 115, 0, 0, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, - 127, 128, 129, 130, 131, 132, 133, 257, 0, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 114, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 327, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 340, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 0, 0, - 0, 0, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 116, 117, 0, 119, 120, 121, 122, 123, 124, - 125, 116, 117, 0, 0, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 126, 127, 128, 129, 130, 131, - 132, 133, 0, 0, 126, 127, 128, 129, 130, 131, - 132, 133, 116, 117, 0, 0, 120, 121, 122, 123, - 124, 125, 116, 117, 0, 0, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 127, 128, 129, 130, - 131, 132, 133, 0, 0, 0, 127, 0, 129, 130, - 131, 132, 133, 116, 117, 0, 0, 120, 121, 122, - 123, 124, 125, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, - 130, 131, 132, 133 + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 342, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 117, 0, 0, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 0, 0, 0, 0, 0, + 128, 129, 130, 131, 132, 133, 134, 135, 118, 119, + 0, 0, 122, 123, 124, 125, 126, 127, 118, 119, + 0, 0, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 0, + 0, 0, 129, 130, 131, 132, 133, 134, 135, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 129, 0, 131, 132, 133, 134, 135, + 0, 0, 0, 0, 0, 131, 132, 133, 134, 135 }; const short parser::yycheck_[] = { - 0, 47, 93, 21, 73, 270, 185, 73, 46, 9, - 189, 51, 3, 4, 29, 270, 270, 11, 12, 13, - 14, 15, 39, 40, 46, 42, 26, 46, 51, 46, - 93, 94, 95, 55, 92, 35, 36, 77, 55, 0, - 98, 58, 57, 101, 35, 36, 63, 64, 48, 52, - 52, 52, 46, 52, 57, 57, 57, 103, 57, 97, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 52, 61, 73, 96, 97, 57, 46, 97, 96, - 97, 61, 73, 96, 97, 264, 55, 98, 52, 39, - 40, 97, 42, 57, 94, 52, 46, 47, 48, 49, - 50, 55, 61, 97, 59, 55, 39, 40, 59, 42, - 52, 52, 143, 46, 140, 57, 57, 53, 51, 51, - 55, 147, 55, 51, 150, 58, 55, 96, 97, 52, - 52, 52, 52, 57, 57, 57, 57, 57, 143, 65, - 66, 141, 59, 143, 52, 410, 96, 97, 148, 57, - 59, 151, 143, 55, 185, 410, 410, 56, 189, 51, - 100, 101, 59, 96, 97, 91, 92, 93, 94, 95, - 51, 61, 241, 204, 205, 241, 194, 208, 51, 51, - 185, 181, 51, 51, 189, 185, 51, 61, 367, 189, - 369, 61, 51, 51, 185, 61, 60, 26, 189, 204, - 205, 55, 97, 208, 204, 205, 61, 51, 208, 61, - 61, 61, 61, 204, 205, 51, 56, 208, 287, 288, - 51, 287, 288, 27, 91, 92, 93, 94, 95, 408, - 101, 51, 411, 264, 60, 261, 60, 51, 51, 270, - 56, 241, 46, 51, 56, 49, 50, 56, 51, 51, - 241, 61, 431, 432, 51, 51, 282, 283, 24, 264, - 61, 61, 61, 61, 264, 270, 335, 29, 61, 335, - 270, 271, 61, 264, 61, 61, 52, 65, 66, 270, - 52, 52, 373, 71, 72, 73, 74, 287, 288, 52, - 316, 61, 61, 319, 61, 9, 287, 288, 9, 103, - 9, 208, 410, 91, 92, 93, 94, 95, 194, -1, - -1, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 335, 367, -1, 369, 365, - -1, -1, 146, -1, 335, 149, -1, -1, 152, -1, - 154, 143, 156, 399, 380, 401, 382, 403, 384, -1, - -1, -1, 367, -1, 369, -1, -1, 367, -1, 369, - -1, -1, 372, -1, -1, -1, 367, 408, 369, 410, - 411, -1, 186, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 185, 198, -1, -1, 189, -1, -1, - 431, 432, -1, 408, -1, 410, 411, -1, 408, 143, - 410, 411, 204, 205, -1, -1, 208, 408, -1, 410, - 411, -1, -1, -1, -1, -1, 431, 432, -1, -1, - -1, 431, 432, -1, -1, -1, 39, 40, -1, 42, - 431, 432, -1, 46, 47, 48, 49, 50, -1, 143, - -1, 185, 55, 257, -1, 189, -1, -1, -1, -1, - 63, 64, -1, 267, -1, 269, -1, -1, 272, -1, - 204, 205, 264, -1, 208, -1, -1, -1, 270, -1, - 284, -1, -1, 143, -1, -1, -1, -1, -1, -1, - -1, 185, -1, 96, 97, 189, -1, -1, -1, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 204, 205, -1, -1, 208, 39, 40, 321, 42, -1, - -1, -1, 46, 143, -1, 185, -1, -1, -1, 189, - 264, 55, 143, -1, 58, -1, 270, 143, -1, -1, - 344, 345, 346, 347, 204, 205, -1, -1, 208, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 368, 185, 370, 371, -1, 189, - 264, -1, 96, 97, 185, 367, 270, 369, 189, 185, - -1, -1, -1, 189, 204, 205, -1, -1, 208, -1, - -1, -1, -1, 204, 205, -1, -1, 208, 204, 205, - -1, -1, 208, -1, 264, -1, -1, -1, 412, -1, - 270, -1, -1, -1, -1, -1, 408, -1, 410, 411, - -1, -1, 39, 40, -1, 42, -1, -1, -1, 46, - -1, -1, -1, 367, -1, 369, -1, -1, 55, 431, - 432, 58, -1, -1, 264, -1, -1, -1, -1, -1, - 270, -1, -1, 264, -1, -1, -1, -1, 264, 270, - 16, -1, -1, -1, 270, -1, -1, -1, -1, -1, - -1, -1, -1, 367, 408, 369, 410, 411, -1, 96, - 97, -1, -1, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, -1, 431, 432, 55, - 56, -1, -1, 59, -1, -1, -1, 367, -1, 369, - -1, -1, -1, -1, 408, -1, 410, 411, -1, 75, - 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 92, 431, 432, 95, - 96, 97, 98, 99, 100, 101, -1, 367, 408, 369, - 410, 411, -1, -1, -1, -1, 367, -1, 369, -1, - -1, 367, -1, 369, -1, -1, -1, -1, -1, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, - 410, 411, -1, -1, -1, -1, -1, 408, -1, 410, - 411, -1, 408, -1, 410, 411, -1, -1, -1, -1, - -1, 431, 432, -1, -1, -1, 11, -1, -1, -1, - 431, 432, -1, -1, 19, 431, 432, 22, 23, -1, - 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, -1, 42, -1, -1, - -1, 46, 47, 48, 49, 50, -1, -1, 53, 54, - 55, -1, -1, -1, -1, -1, -1, -1, 63, 64, - -1, -1, -1, -1, -1, 39, 40, -1, 42, -1, - 39, 40, 46, 42, -1, -1, -1, 46, -1, -1, - -1, 55, 11, -1, 58, -1, 55, -1, -1, 58, - 19, 96, 97, 22, 23, -1, 25, 26, 27, 28, + 0, 47, 21, 94, 73, 52, 73, 272, 272, 9, + 57, 272, 3, 4, 11, 12, 13, 14, 15, 46, + 51, 46, 39, 40, 0, 42, 26, 29, 51, 46, + 47, 48, 49, 50, 92, 35, 36, 52, 55, 61, + 98, 61, 57, 101, 35, 36, 63, 64, 48, 46, + 98, 52, 46, 97, 77, 57, 187, 52, 104, 145, + 191, 55, 57, 93, 94, 95, 55, 46, 39, 40, + 97, 42, 97, 73, 59, 46, 55, 59, 52, 96, + 97, 61, 73, 57, 55, 52, 52, 58, 53, 52, + 57, 57, 63, 64, 57, 95, 55, 96, 97, 52, + 97, 187, 96, 97, 57, 191, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 96, 97, 51, + 206, 207, 59, 52, 210, 96, 97, 145, 57, 52, + 55, 59, 52, 52, 57, 266, 145, 57, 57, 52, + 51, 55, 57, 143, 57, 145, 56, 412, 412, 51, + 150, 412, 59, 153, 145, 39, 40, 97, 42, 51, + 100, 101, 46, 47, 48, 49, 50, 61, 51, 187, + 51, 55, 51, 191, 243, 51, 243, 196, 187, 51, + 266, 61, 191, 183, 61, 60, 272, 187, 206, 207, + 61, 191, 210, 51, 51, 55, 187, 206, 207, 61, + 191, 210, 65, 66, 51, 61, 206, 207, 61, 61, + 210, 61, 96, 97, 27, 206, 207, 51, 56, 210, + 289, 290, 289, 290, 26, 60, 51, 101, 91, 92, + 93, 94, 95, 46, 60, 51, 49, 50, 369, 51, + 371, 51, 97, 243, 61, 56, 51, 56, 266, 56, + 24, 51, 243, 51, 272, 51, 51, 266, 91, 92, + 93, 94, 95, 272, 61, 29, 266, 61, 337, 61, + 337, 61, 272, 273, 61, 266, 61, 61, 61, 410, + 52, 272, 413, 369, 375, 371, 52, 52, 61, 289, + 290, 104, 52, 61, 61, 9, 9, 9, 289, 290, + 412, 210, 433, 434, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 410, -1, 412, 413, 196, -1, + -1, -1, -1, -1, -1, 148, -1, 337, 151, -1, + -1, 154, -1, 156, 145, 158, 337, 433, 434, -1, + -1, 369, -1, 371, -1, 401, -1, 403, -1, 405, + 369, -1, 371, -1, -1, -1, -1, -1, -1, 369, + -1, 371, -1, -1, 374, 188, -1, -1, 369, -1, + 371, -1, -1, -1, -1, -1, 187, 200, -1, -1, + 191, -1, 410, -1, 412, 413, -1, -1, 145, -1, + -1, 410, -1, 412, 413, 206, 207, -1, -1, 210, + 410, -1, 412, 413, -1, 433, 434, -1, -1, 410, + -1, 412, 413, -1, 433, 434, 145, -1, -1, -1, + -1, 142, -1, 433, 434, -1, -1, -1, 149, -1, + 187, 152, 433, 434, 191, -1, 259, -1, 39, 40, + -1, 42, -1, -1, -1, 46, 269, -1, 271, 206, + 207, 274, -1, 210, 55, 266, 145, 58, 187, -1, + -1, 272, 191, 286, -1, -1, 145, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 206, 207, -1, + -1, 210, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, -1, 145, 96, 97, -1, 187, -1, + 323, -1, 191, -1, -1, -1, -1, -1, 187, 266, + -1, -1, 191, -1, -1, 272, -1, 206, 207, -1, + -1, 210, -1, 346, 347, 348, 349, 206, 207, -1, + -1, 210, 39, 40, -1, 42, 187, 266, -1, 46, + 191, -1, 263, 272, 51, -1, -1, 370, 55, 372, + 373, 58, -1, -1, -1, 206, 207, -1, 369, 210, + 371, -1, -1, 284, 285, -1, -1, -1, -1, 39, + 40, -1, 42, -1, -1, -1, 46, 266, -1, 39, + 40, -1, 42, 272, -1, 55, 46, 266, 58, 96, + 97, 414, -1, 272, -1, 55, -1, 318, 58, 410, + 321, 412, 413, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 369, -1, 371, 266, -1, -1, -1, -1, + -1, 272, 433, 434, -1, -1, 96, 97, 39, 40, + -1, 42, -1, -1, -1, 46, 96, 97, 39, 40, + 369, 42, 371, -1, 55, 46, 367, 58, -1, -1, + -1, -1, -1, 410, 55, 412, 413, 58, -1, 39, + 40, 382, 42, 384, -1, 386, 46, -1, -1, -1, + -1, -1, -1, -1, -1, 55, 433, 434, 58, -1, + 369, 410, 371, 412, 413, 96, 97, -1, -1, -1, + 369, -1, 371, -1, -1, 96, 97, -1, -1, -1, + -1, -1, -1, -1, 433, 434, 39, 40, -1, 42, + -1, -1, -1, 46, -1, -1, 96, 97, 369, -1, + 371, 410, 55, 412, 413, 58, -1, -1, -1, -1, + -1, 410, -1, 412, 413, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 433, 434, -1, -1, -1, 39, + 40, -1, 42, -1, 433, 434, 46, -1, -1, 410, + -1, 412, 413, 96, 97, 55, -1, -1, 58, -1, + -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, + -1, 19, 433, 434, 22, 23, -1, 25, 26, 27, + 28, -1, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, -1, 42, -1, 96, 97, 46, 47, + 48, 49, 50, -1, -1, 53, 54, 55, -1, -1, + -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, + -1, -1, 39, 40, -1, 42, -1, 39, 40, 46, + 42, -1, -1, -1, 46, -1, -1, -1, 55, 11, + -1, 58, -1, 55, -1, -1, 58, 19, 96, 97, + 22, 23, -1, 25, 26, 27, 28, -1, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, + 42, -1, -1, -1, 46, 47, 48, 49, 50, 96, + 97, 53, 54, 55, 96, 97, -1, -1, -1, -1, + -1, 63, 64, 12, -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, - 39, 40, -1, 42, -1, -1, -1, 46, 47, 48, - 49, 50, 96, 97, 53, 54, 55, 96, 97, -1, + 39, 40, -1, 42, 96, 97, -1, 46, 47, 48, + 49, 50, -1, -1, 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, 63, 64, 12, -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, 39, 40, -1, 42, 96, 97, -1, + 36, 37, 38, 39, 40, -1, 42, 96, 97, 16, 46, 47, 48, 49, 50, -1, -1, 53, -1, 55, - -1, -1, -1, -1, -1, -1, -1, 63, 64, 12, - -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, 39, 40, -1, 42, - 96, 97, 16, 46, 47, 48, 49, 50, -1, -1, - 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, - 63, 64, -1, -1, -1, 39, 40, 41, 42, 43, + -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, + -1, -1, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, -1, -1, -1, 55, 56, + 65, 66, 59, 68, 69, 70, 71, 72, 73, 74, + 96, 97, -1, -1, -1, -1, -1, -1, 75, 76, + -1, -1, 16, 88, 89, 90, 91, 92, 93, 94, + 95, -1, -1, -1, -1, 92, -1, -1, 95, 96, + 97, 98, 99, 100, 101, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, - -1, 55, -1, -1, -1, 59, -1, 61, 39, 40, - -1, 42, -1, 96, 97, 46, 39, 40, -1, 42, - -1, 75, 76, 46, 55, 16, -1, 58, -1, -1, - -1, -1, 55, -1, -1, 58, -1, -1, 92, -1, + -1, 55, 65, 66, -1, 59, -1, 61, 71, 72, + 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 75, 76, -1, -1, 16, -1, -1, 91, 92, + 93, 94, 95, -1, -1, -1, -1, -1, 92, -1, -1, 95, 96, 97, 98, 99, 100, 101, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, -1, -1, -1, 55, 96, 97, -1, 59, -1, - -1, -1, -1, 96, 97, 39, 40, -1, 42, -1, - -1, -1, 46, -1, 75, 76, -1, -1, 16, -1, - -1, 55, -1, -1, 58, -1, -1, -1, -1, -1, - -1, 92, -1, -1, 95, 96, 97, 98, 99, 100, + 51, 56, -1, -1, 55, -1, -1, 62, 59, -1, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + -1, -1, -1, -1, 75, 76, -1, -1, 16, -1, + -1, -1, -1, 88, 89, 90, 91, 92, 93, 94, + 95, 92, -1, -1, 95, 96, 97, 98, 99, 100, 101, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, 55, -1, -1, - -1, 59, 96, 97, -1, -1, 17, 18, -1, 20, + -1, 59, -1, -1, -1, -1, 17, 18, -1, 20, 21, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, -1, -1, 92, 46, -1, 95, 96, 97, @@ -4245,155 +4258,145 @@ namespace xsk { namespace gsc { namespace iw6 { -1, -1, -1, -1, 19, 96, 97, 22, 23, -1, 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, 42, -1, -1, - -1, 46, 47, 48, 49, 50, 39, 40, 53, 42, - 55, -1, -1, 46, 39, 40, -1, 42, 63, 64, - -1, 46, 55, -1, -1, 58, -1, -1, 39, 40, - 55, 42, -1, 58, -1, 46, -1, -1, -1, -1, - 52, -1, -1, -1, 55, 57, -1, 58, -1, -1, - 62, 96, 97, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 96, 97, -1, -1, -1, -1, -1, - -1, 96, 97, -1, -1, -1, 88, 89, 90, 91, - 92, 93, 94, 95, 52, 96, 97, -1, -1, 57, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 52, -1, - -1, -1, -1, 57, -1, -1, -1, -1, 62, -1, - -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 88, 89, 90, 91, 92, 93, - 94, 95, 52, -1, -1, -1, -1, 57, -1, -1, - -1, -1, 62, -1, -1, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 52, -1, 88, 89, - 90, 91, 92, 93, 94, 95, 62, -1, -1, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 52, -1, 88, 89, 90, 91, 92, 93, 94, 95, - 62, -1, -1, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 52, -1, 88, 89, 90, 91, - 92, 93, 94, 95, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 62, -1, - -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 52, -1, 88, 89, 90, 91, 92, 93, - 94, 95, 62, -1, -1, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 52, -1, 88, 89, - 90, 91, 92, 93, 94, 95, 62, -1, -1, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 52, -1, 88, 89, 90, 91, 92, 93, 94, 95, - 62, -1, -1, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 52, -1, 88, 89, 90, 91, - 92, 93, 94, 95, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 57, -1, - -1, -1, -1, 62, -1, -1, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, - 89, 90, 91, 92, 93, 94, 95, 60, -1, 62, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, - 93, 94, 95, 61, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 61, 62, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, - 93, 94, 95, 61, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 62, -1, -1, + -1, 46, 47, 48, 49, 50, -1, -1, 53, -1, + 55, -1, -1, -1, -1, -1, -1, 52, 63, 64, + -1, -1, 57, -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 88, 89, 90, 91, 92, 93, 94, 95, -1, -1, - -1, -1, -1, 88, 89, 90, 91, 92, 93, 94, - 95, 65, 66, -1, 68, 69, 70, 71, 72, 73, - 74, 65, 66, -1, -1, 69, 70, 71, 72, 73, - 74, -1, -1, -1, 88, 89, 90, 91, 92, 93, - 94, 95, -1, -1, 88, 89, 90, 91, 92, 93, - 94, 95, 65, 66, -1, -1, 69, 70, 71, 72, - 73, 74, 65, 66, -1, -1, 69, 70, 71, 72, - 73, 74, -1, -1, -1, -1, 89, 90, 91, 92, - 93, 94, 95, -1, -1, -1, 89, -1, 91, 92, - 93, 94, 95, 65, 66, -1, -1, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 96, 97, 88, 89, 90, 91, 92, 93, 94, + 95, 52, -1, -1, -1, -1, 57, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 52, -1, -1, -1, -1, + 57, -1, -1, -1, -1, 62, -1, -1, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 88, 89, 90, 91, 92, 93, 94, 95, 52, + -1, -1, -1, -1, 57, -1, -1, -1, -1, 62, + -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 52, -1, 88, 89, 90, 91, 92, + 93, 94, 95, 62, -1, -1, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 52, -1, 88, + 89, 90, 91, 92, 93, 94, 95, 62, -1, -1, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 52, -1, 88, 89, 90, 91, 92, 93, 94, + 95, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 52, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 62, -1, -1, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, + -1, 88, 89, 90, 91, 92, 93, 94, 95, 62, + -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 52, -1, 88, 89, 90, 91, 92, + 93, 94, 95, 62, -1, -1, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 52, -1, 88, + 89, 90, 91, 92, 93, 94, 95, 62, -1, -1, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 52, -1, 88, 89, 90, 91, 92, 93, 94, + 95, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 57, -1, -1, -1, -1, + 62, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, - 92, 93, 94, 95 + -1, -1, -1, -1, -1, -1, 88, 89, 90, 91, + 92, 93, 94, 95, 60, -1, 62, -1, -1, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 88, 89, 90, 91, 92, 93, 94, 95, + 61, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 61, 62, -1, -1, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 88, 89, 90, 91, 92, 93, 94, 95, + 61, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 62, -1, -1, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 88, 89, 90, + 91, 92, 93, 94, 95, -1, -1, -1, -1, -1, + 88, 89, 90, 91, 92, 93, 94, 95, 65, 66, + -1, -1, 69, 70, 71, 72, 73, 74, 65, 66, + -1, -1, 69, 70, 71, 72, 73, 74, -1, -1, + -1, 88, 89, 90, 91, 92, 93, 94, 95, -1, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 65, + 66, -1, -1, 69, 70, 71, 72, 73, 74, 65, + 66, -1, -1, 69, 70, 71, 72, 73, 74, -1, + -1, -1, -1, 89, -1, 91, 92, 93, 94, 95, + -1, -1, -1, -1, -1, 91, 92, 93, 94, 95 }; const unsigned char parser::yystos_[] = { 0, 11, 12, 13, 14, 15, 46, 97, 113, 114, - 115, 116, 117, 118, 119, 120, 185, 96, 97, 186, - 186, 51, 0, 115, 116, 117, 51, 77, 61, 61, - 98, 188, 166, 185, 16, 39, 40, 41, 42, 43, + 115, 116, 117, 118, 119, 120, 186, 96, 97, 187, + 187, 51, 0, 115, 116, 117, 51, 77, 61, 61, + 98, 189, 166, 186, 16, 39, 40, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 55, 59, 75, 76, 92, 95, 97, 99, 100, 101, 151, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 52, 52, 57, 55, 185, 186, 55, 185, - 186, 55, 151, 55, 56, 151, 167, 168, 185, 151, - 151, 100, 101, 97, 61, 62, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 88, 89, 90, 91, - 92, 93, 94, 95, 55, 58, 163, 164, 185, 186, - 51, 59, 61, 53, 126, 185, 55, 51, 59, 55, - 51, 59, 55, 52, 57, 151, 57, 56, 151, 151, + 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 52, 52, 57, 55, 186, 187, 55, + 186, 187, 55, 151, 55, 56, 151, 167, 168, 186, + 151, 151, 97, 100, 101, 97, 61, 62, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 88, 89, + 90, 91, 92, 93, 94, 95, 55, 58, 163, 164, + 186, 187, 51, 59, 61, 53, 126, 186, 55, 51, + 59, 55, 51, 59, 55, 52, 57, 151, 57, 56, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 46, 97, - 184, 59, 167, 168, 185, 11, 19, 22, 23, 25, - 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 54, 55, 63, 64, 121, 122, 124, 125, - 126, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 153, 154, 155, 161, 162, 170, - 171, 174, 178, 179, 180, 181, 185, 151, 167, 185, - 151, 167, 185, 151, 151, 56, 151, 60, 56, 185, - 52, 51, 12, 121, 123, 151, 61, 51, 121, 51, - 51, 51, 51, 92, 188, 191, 60, 61, 61, 61, - 151, 61, 51, 51, 55, 161, 162, 174, 174, 54, - 122, 61, 61, 61, 61, 61, 17, 18, 20, 21, - 58, 63, 64, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 56, 52, 51, 56, 52, 51, - 56, 57, 56, 151, 167, 12, 121, 61, 151, 26, - 151, 127, 153, 154, 155, 174, 185, 151, 60, 60, - 61, 167, 167, 151, 51, 51, 51, 51, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 56, - 167, 56, 167, 56, 151, 51, 52, 52, 51, 52, - 61, 29, 57, 52, 52, 52, 151, 151, 151, 151, - 51, 52, 51, 52, 51, 52, 167, 121, 151, 121, - 151, 152, 151, 185, 126, 61, 61, 52, 52, 57, - 52, 57, 52, 57, 167, 167, 167, 52, 24, 52, - 61, 52, 29, 61, 61, 168, 61, 168, 61, 168, - 52, 52, 52, 121, 61, 127, 121, 151, 52, 52, - 52, 52, 52, 61, 61, 61, 121, 121 + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 46, 97, 185, 59, 167, 168, 186, 11, 19, 22, + 23, 25, 26, 27, 28, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 54, 55, 63, 64, 121, 122, + 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 153, 154, 155, 161, + 162, 170, 171, 174, 178, 179, 180, 181, 186, 151, + 167, 186, 151, 167, 186, 151, 151, 56, 151, 60, + 56, 186, 52, 51, 12, 121, 123, 151, 61, 51, + 121, 51, 51, 51, 51, 92, 189, 192, 60, 61, + 61, 61, 151, 61, 51, 51, 55, 161, 162, 174, + 174, 54, 122, 61, 61, 61, 61, 61, 17, 18, + 20, 21, 58, 63, 64, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 56, 52, 51, 56, + 52, 51, 56, 57, 56, 151, 167, 12, 121, 61, + 151, 26, 151, 127, 153, 154, 155, 174, 186, 151, + 60, 60, 61, 167, 167, 151, 51, 51, 51, 51, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 56, 167, 56, 167, 56, 151, 51, 52, 52, + 51, 52, 61, 29, 57, 52, 52, 52, 151, 151, + 151, 151, 51, 52, 51, 52, 51, 52, 167, 121, + 151, 121, 151, 152, 151, 186, 126, 61, 61, 52, + 52, 57, 52, 57, 52, 57, 167, 167, 167, 52, + 24, 52, 61, 52, 29, 61, 61, 168, 61, 168, + 61, 168, 52, 52, 52, 121, 61, 127, 121, 151, + 52, 52, 52, 52, 52, 61, 61, 61, 121, 121 }; const unsigned char @@ -4414,13 +4417,13 @@ namespace xsk { namespace gsc { namespace iw6 { 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 159, 160, 161, 161, - 162, 162, 163, 163, 163, 163, 163, 163, 164, 164, - 164, 164, 165, 166, 166, 166, 167, 167, 168, 168, - 169, 169, 170, 171, 172, 173, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 185, 186, 186, 187, - 188, 189, 190, 190, 191, 191, 192, 193 + 158, 158, 158, 158, 158, 158, 158, 159, 160, 161, + 161, 162, 162, 163, 163, 163, 163, 163, 163, 164, + 164, 164, 164, 165, 166, 166, 166, 167, 167, 168, + 168, 169, 169, 170, 171, 172, 173, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 186, 187, + 187, 188, 189, 190, 191, 191, 192, 192, 193, 194 }; const signed char @@ -4441,13 +4444,13 @@ namespace xsk { namespace gsc { namespace iw6 { 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, - 2, 2, 4, 6, 5, 7, 5, 7, 8, 9, - 9, 9, 3, 3, 1, 0, 1, 0, 3, 1, - 2, 3, 4, 3, 3, 3, 1, 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, 2, 1, 2, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, + 1, 2, 2, 4, 6, 5, 7, 5, 7, 8, + 9, 9, 9, 3, 3, 1, 0, 1, 0, 3, + 1, 2, 3, 4, 3, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, + 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 7, 2, 1, 2, 1, 1, 1 }; @@ -4457,28 +4460,28 @@ namespace xsk { namespace gsc { namespace iw6 { const short parser::yyrline_[] = { - 0, 257, 257, 258, 262, 264, 266, 268, 270, 272, - 277, 281, 286, 287, 288, 289, 290, 294, 299, 304, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 336, 337, 341, 343, 348, 350, - 355, 356, 360, 361, 365, 367, 369, 372, 376, 378, - 383, 385, 387, 392, 397, 399, 404, 409, 411, 416, - 418, 423, 428, 433, 438, 443, 448, 453, 455, 460, - 465, 467, 472, 477, 482, 487, 489, 494, 499, 504, - 509, 510, 511, 515, 516, 520, 522, 524, 526, 528, - 530, 532, 534, 536, 538, 540, 545, 547, 552, 554, - 559, 564, 566, 568, 570, 572, 574, 576, 578, 580, - 582, 584, 586, 588, 590, 592, 594, 596, 598, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 633, 638, 643, 644, - 647, 648, 652, 654, 656, 658, 660, 662, 667, 669, - 671, 673, 678, 683, 685, 688, 692, 695, 699, 701, - 706, 708, 713, 718, 723, 728, 733, 734, 735, 736, - 737, 738, 739, 740, 741, 745, 750, 755, 760, 765, - 770, 775, 780, 785, 790, 795, 797, 802, 804, 809, - 814, 819, 824, 826, 831, 833, 838, 843 + 0, 258, 258, 259, 263, 265, 267, 269, 271, 273, + 278, 282, 287, 288, 289, 290, 291, 295, 300, 305, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 337, 338, 342, 344, 349, 351, + 356, 357, 361, 362, 366, 368, 370, 373, 377, 379, + 384, 386, 388, 393, 398, 400, 405, 410, 412, 417, + 419, 424, 429, 434, 439, 444, 449, 454, 456, 461, + 466, 468, 473, 478, 483, 488, 490, 495, 500, 505, + 510, 511, 512, 516, 517, 521, 523, 525, 527, 529, + 531, 533, 535, 537, 539, 541, 546, 548, 553, 555, + 560, 565, 567, 569, 571, 573, 575, 577, 579, 581, + 583, 585, 587, 589, 591, 593, 595, 597, 599, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 635, 640, 645, + 646, 649, 650, 654, 656, 658, 660, 662, 664, 669, + 671, 673, 675, 680, 685, 687, 690, 694, 697, 701, + 703, 708, 710, 715, 720, 725, 730, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 747, 752, 757, 762, + 767, 772, 777, 782, 787, 792, 797, 802, 804, 809, + 811, 816, 821, 826, 831, 833, 838, 840, 845, 850 }; void @@ -4511,9 +4514,9 @@ namespace xsk { namespace gsc { namespace iw6 { #line 13 "parser.ypp" } } } // xsk::gsc::iw6 -#line 4515 "parser.cpp" +#line 4518 "parser.cpp" -#line 847 "parser.ypp" +#line 854 "parser.ypp" void xsk::gsc::iw6::parser::error(const xsk::gsc::location& loc, const std::string& msg) diff --git a/src/iw6/xsk/parser.hpp b/src/iw6/xsk/parser.hpp index 641054ba..003a6e11 100644 --- a/src/iw6/xsk/parser.hpp +++ b/src/iw6/xsk/parser.hpp @@ -447,6 +447,7 @@ namespace xsk { namespace gsc { namespace iw6 { // expr_binary // expr_primitive // expr_object + // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -1001,16 +1002,17 @@ namespace xsk { namespace gsc { namespace iw6 { S_expr_level = 181, // expr_level S_expr_animation = 182, // expr_animation S_expr_animtree = 183, // expr_animtree - S_expr_identifier_nosize = 184, // expr_identifier_nosize - S_expr_identifier = 185, // expr_identifier - S_expr_path = 186, // expr_path - S_expr_istring = 187, // expr_istring - S_expr_string = 188, // expr_string - S_expr_vector = 189, // expr_vector - S_expr_float = 190, // expr_float - S_expr_integer = 191, // expr_integer - S_expr_false = 192, // expr_false - S_expr_true = 193 // expr_true + S_expr_identifier_neg = 184, // expr_identifier_neg + S_expr_identifier_nosize = 185, // expr_identifier_nosize + S_expr_identifier = 186, // expr_identifier + S_expr_path = 187, // expr_path + S_expr_istring = 188, // expr_istring + S_expr_string = 189, // expr_string + S_expr_vector = 190, // expr_vector + S_expr_float = 191, // expr_float + S_expr_integer = 192, // expr_integer + S_expr_false = 193, // expr_false + S_expr_true = 194 // expr_true }; }; @@ -1077,6 +1079,7 @@ namespace xsk { namespace gsc { namespace iw6 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (std::move (that.value)); break; @@ -2331,6 +2334,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.template destroy< ast::expr > (); break; @@ -4770,8 +4774,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 2303, ///< Last index in yytable_. - yynnts_ = 82, ///< Number of nonterminal symbols. + yylast_ = 2239, ///< Last index in yytable_. + yynnts_ = 83, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4828,6 +4832,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (YY_MOVE (that.value)); break; @@ -5142,6 +5147,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (s.value)); break; @@ -5462,7 +5468,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::iw6 -#line 5466 "parser.hpp" +#line 5472 "parser.hpp" diff --git a/src/iw7/xsk/parser.cpp b/src/iw7/xsk/parser.cpp index e6be8d5c..b94850c3 100644 --- a/src/iw7/xsk/parser.cpp +++ b/src/iw7/xsk/parser.cpp @@ -245,6 +245,7 @@ namespace xsk { namespace gsc { namespace iw7 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.YY_MOVE_OR_COPY< ast::expr > (YY_MOVE (that.value)); break; @@ -543,6 +544,7 @@ namespace xsk { namespace gsc { namespace iw7 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (that.value)); break; @@ -841,6 +843,7 @@ namespace xsk { namespace gsc { namespace iw7 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (that.value); break; @@ -1138,6 +1141,7 @@ namespace xsk { namespace gsc { namespace iw7 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (that.value); break; @@ -1690,6 +1694,7 @@ namespace xsk { namespace gsc { namespace iw7 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg yylhs.value.emplace< ast::expr > (); break; @@ -1964,1303 +1969,1315 @@ namespace xsk { namespace gsc { namespace iw7 { switch (yyn) { case 2: // root: program -#line 257 "parser.ypp" +#line 258 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1970 "parser.cpp" +#line 1975 "parser.cpp" break; case 3: // root: %empty -#line 258 "parser.ypp" +#line 259 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 1976 "parser.cpp" +#line 1981 "parser.cpp" break; case 4: // program: program inline -#line 263 "parser.ypp" +#line 264 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 1982 "parser.cpp" +#line 1987 "parser.cpp" break; case 5: // program: program include -#line 265 "parser.ypp" +#line 266 "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 1988 "parser.cpp" +#line 1993 "parser.cpp" break; case 6: // program: program declaration -#line 267 "parser.ypp" +#line 268 "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 1994 "parser.cpp" +#line 1999 "parser.cpp" break; case 7: // program: inline -#line 269 "parser.ypp" +#line 270 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2000 "parser.cpp" +#line 2005 "parser.cpp" break; case 8: // program: include -#line 271 "parser.ypp" +#line 272 "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 2006 "parser.cpp" +#line 2011 "parser.cpp" break; case 9: // program: declaration -#line 273 "parser.ypp" +#line 274 "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 2012 "parser.cpp" +#line 2017 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" -#line 277 "parser.ypp" +#line 278 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2018 "parser.cpp" +#line 2023 "parser.cpp" break; case 11: // include: "#include" expr_path ";" -#line 282 "parser.ypp" +#line 283 "parser.ypp" { yylhs.value.as < ast::include::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_path::ptr > ())); } -#line 2024 "parser.cpp" +#line 2029 "parser.cpp" break; case 12: // declaration: "/#" -#line 286 "parser.ypp" +#line 287 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2030 "parser.cpp" +#line 2035 "parser.cpp" break; case 13: // declaration: "#/" -#line 287 "parser.ypp" +#line 288 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2036 "parser.cpp" +#line 2041 "parser.cpp" break; case 14: // declaration: decl_usingtree -#line 288 "parser.ypp" +#line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2042 "parser.cpp" +#line 2047 "parser.cpp" break; case 15: // declaration: decl_constant -#line 289 "parser.ypp" +#line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2048 "parser.cpp" +#line 2053 "parser.cpp" break; case 16: // declaration: decl_thread -#line 290 "parser.ypp" +#line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2054 "parser.cpp" +#line 2059 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" -#line 295 "parser.ypp" +#line 296 "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 2060 "parser.cpp" +#line 2065 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" -#line 300 "parser.ypp" +#line 301 "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 2066 "parser.cpp" +#line 2071 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block -#line 305 "parser.ypp" +#line 306 "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 2072 "parser.cpp" +#line 2077 "parser.cpp" break; case 20: // stmt: stmt_block -#line 309 "parser.ypp" +#line 310 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2078 "parser.cpp" +#line 2083 "parser.cpp" break; case 21: // stmt: stmt_call -#line 310 "parser.ypp" +#line 311 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2084 "parser.cpp" +#line 2089 "parser.cpp" break; case 22: // stmt: stmt_assign -#line 311 "parser.ypp" +#line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2090 "parser.cpp" +#line 2095 "parser.cpp" break; case 23: // stmt: stmt_endon -#line 312 "parser.ypp" +#line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2096 "parser.cpp" +#line 2101 "parser.cpp" break; case 24: // stmt: stmt_notify -#line 313 "parser.ypp" +#line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2102 "parser.cpp" +#line 2107 "parser.cpp" break; case 25: // stmt: stmt_wait -#line 314 "parser.ypp" +#line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2108 "parser.cpp" +#line 2113 "parser.cpp" break; case 26: // stmt: stmt_waittill -#line 315 "parser.ypp" +#line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2114 "parser.cpp" +#line 2119 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch -#line 316 "parser.ypp" +#line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2120 "parser.cpp" +#line 2125 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend -#line 317 "parser.ypp" +#line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2126 "parser.cpp" +#line 2131 "parser.cpp" break; case 29: // stmt: stmt_if -#line 318 "parser.ypp" +#line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2132 "parser.cpp" +#line 2137 "parser.cpp" break; case 30: // stmt: stmt_ifelse -#line 319 "parser.ypp" +#line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2138 "parser.cpp" +#line 2143 "parser.cpp" break; case 31: // stmt: stmt_while -#line 320 "parser.ypp" +#line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2144 "parser.cpp" +#line 2149 "parser.cpp" break; case 32: // stmt: stmt_dowhile -#line 321 "parser.ypp" +#line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2150 "parser.cpp" +#line 2155 "parser.cpp" break; case 33: // stmt: stmt_for -#line 322 "parser.ypp" +#line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2156 "parser.cpp" +#line 2161 "parser.cpp" break; case 34: // stmt: stmt_foreach -#line 323 "parser.ypp" +#line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2162 "parser.cpp" +#line 2167 "parser.cpp" break; case 35: // stmt: stmt_switch -#line 324 "parser.ypp" +#line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2168 "parser.cpp" +#line 2173 "parser.cpp" break; case 36: // stmt: stmt_case -#line 325 "parser.ypp" +#line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2174 "parser.cpp" +#line 2179 "parser.cpp" break; case 37: // stmt: stmt_default -#line 326 "parser.ypp" +#line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2180 "parser.cpp" +#line 2185 "parser.cpp" break; case 38: // stmt: stmt_break -#line 327 "parser.ypp" +#line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2186 "parser.cpp" +#line 2191 "parser.cpp" break; case 39: // stmt: stmt_continue -#line 328 "parser.ypp" +#line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2192 "parser.cpp" +#line 2197 "parser.cpp" break; case 40: // stmt: stmt_return -#line 329 "parser.ypp" +#line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2198 "parser.cpp" +#line 2203 "parser.cpp" break; case 41: // stmt: stmt_breakpoint -#line 330 "parser.ypp" +#line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2204 "parser.cpp" +#line 2209 "parser.cpp" break; case 42: // stmt: stmt_prof_begin -#line 331 "parser.ypp" +#line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2210 "parser.cpp" +#line 2215 "parser.cpp" break; case 43: // stmt: stmt_prof_end -#line 332 "parser.ypp" +#line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2216 "parser.cpp" +#line 2221 "parser.cpp" break; case 44: // stmt_or_dev: stmt -#line 336 "parser.ypp" +#line 337 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2222 "parser.cpp" +#line 2227 "parser.cpp" break; case 45: // stmt_or_dev: stmt_dev -#line 337 "parser.ypp" +#line 338 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2228 "parser.cpp" +#line 2233 "parser.cpp" break; case 46: // stmt_list: stmt_list stmt -#line 342 "parser.ypp" +#line 343 "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 2234 "parser.cpp" +#line 2239 "parser.cpp" break; case 47: // stmt_list: stmt -#line 344 "parser.ypp" +#line 345 "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 2240 "parser.cpp" +#line 2245 "parser.cpp" break; case 48: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev -#line 349 "parser.ypp" +#line 350 "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 2246 "parser.cpp" +#line 2251 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev -#line 351 "parser.ypp" +#line 352 "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 2252 "parser.cpp" +#line 2257 "parser.cpp" break; case 50: // stmt_dev: "/#" stmt_list "#/" -#line 355 "parser.ypp" +#line 356 "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 2258 "parser.cpp" +#line 2263 "parser.cpp" break; case 51: // stmt_dev: "/#" "#/" -#line 356 "parser.ypp" +#line 357 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2264 "parser.cpp" +#line 2269 "parser.cpp" break; case 52: // stmt_block: "{" stmt_or_dev_list "}" -#line 360 "parser.ypp" +#line 361 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2270 "parser.cpp" +#line 2275 "parser.cpp" break; case 53: // stmt_block: "{" "}" -#line 361 "parser.ypp" +#line 362 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2276 "parser.cpp" +#line 2281 "parser.cpp" break; case 54: // stmt_expr: expr_assign -#line 366 "parser.ypp" +#line 367 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2282 "parser.cpp" +#line 2287 "parser.cpp" break; case 55: // stmt_expr: expr_increment -#line 368 "parser.ypp" +#line 369 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2288 "parser.cpp" +#line 2293 "parser.cpp" break; case 56: // stmt_expr: expr_decrement -#line 370 "parser.ypp" +#line 371 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2294 "parser.cpp" +#line 2299 "parser.cpp" break; case 57: // stmt_expr: %empty -#line 372 "parser.ypp" +#line 373 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2300 "parser.cpp" +#line 2305 "parser.cpp" break; case 58: // stmt_call: expr_call ";" -#line 377 "parser.ypp" +#line 378 "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 2306 "parser.cpp" +#line 2311 "parser.cpp" break; case 59: // stmt_call: expr_method ";" -#line 379 "parser.ypp" +#line 380 "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 2312 "parser.cpp" +#line 2317 "parser.cpp" break; case 60: // stmt_assign: expr_assign ";" -#line 384 "parser.ypp" +#line 385 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2318 "parser.cpp" +#line 2323 "parser.cpp" break; case 61: // stmt_assign: expr_increment ";" -#line 386 "parser.ypp" +#line 387 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2324 "parser.cpp" +#line 2329 "parser.cpp" break; case 62: // stmt_assign: expr_decrement ";" -#line 388 "parser.ypp" +#line 389 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2330 "parser.cpp" +#line 2335 "parser.cpp" break; case 63: // stmt_endon: expr_object "endon" "(" expr ")" ";" -#line 393 "parser.ypp" +#line 394 "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 2336 "parser.cpp" +#line 2341 "parser.cpp" break; case 64: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" -#line 398 "parser.ypp" +#line 399 "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 2342 "parser.cpp" +#line 2347 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr ")" ";" -#line 400 "parser.ypp" +#line 401 "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 2348 "parser.cpp" +#line 2353 "parser.cpp" break; case 66: // stmt_wait: "wait" expr ";" -#line 405 "parser.ypp" +#line 406 "parser.ypp" { yylhs.value.as < ast::stmt_wait::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2354 "parser.cpp" +#line 2359 "parser.cpp" break; case 67: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" -#line 410 "parser.ypp" +#line 411 "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 2360 "parser.cpp" +#line 2365 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" -#line 412 "parser.ypp" +#line 413 "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 2366 "parser.cpp" +#line 2371 "parser.cpp" break; case 69: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" -#line 417 "parser.ypp" +#line 418 "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 2372 "parser.cpp" +#line 2377 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" -#line 419 "parser.ypp" +#line 420 "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 2378 "parser.cpp" +#line 2383 "parser.cpp" break; case 71: // stmt_waittillframeend: "waittillframeend" ";" -#line 424 "parser.ypp" +#line 425 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2384 "parser.cpp" +#line 2389 "parser.cpp" break; case 72: // stmt_if: "if" "(" expr ")" stmt -#line 429 "parser.ypp" +#line 430 "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 2390 "parser.cpp" +#line 2395 "parser.cpp" break; case 73: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt -#line 434 "parser.ypp" +#line 435 "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 2396 "parser.cpp" +#line 2401 "parser.cpp" break; case 74: // stmt_while: "while" "(" expr ")" stmt -#line 439 "parser.ypp" +#line 440 "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 2402 "parser.cpp" +#line 2407 "parser.cpp" break; case 75: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" -#line 444 "parser.ypp" +#line 445 "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 2408 "parser.cpp" +#line 2413 "parser.cpp" break; case 76: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt -#line 449 "parser.ypp" +#line 450 "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 2414 "parser.cpp" +#line 2419 "parser.cpp" break; case 77: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt -#line 454 "parser.ypp" +#line 455 "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 2420 "parser.cpp" +#line 2425 "parser.cpp" break; case 78: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt -#line 456 "parser.ypp" +#line 457 "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 2426 "parser.cpp" +#line 2431 "parser.cpp" break; case 79: // stmt_switch: "switch" "(" expr ")" stmt_block -#line 461 "parser.ypp" +#line 462 "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 2432 "parser.cpp" +#line 2437 "parser.cpp" break; case 80: // stmt_case: "case" expr_integer ":" -#line 466 "parser.ypp" +#line 467 "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 2438 "parser.cpp" +#line 2443 "parser.cpp" break; case 81: // stmt_case: "case" expr_string ":" -#line 468 "parser.ypp" +#line 469 "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 2444 "parser.cpp" +#line 2449 "parser.cpp" break; case 82: // stmt_default: "default" ":" -#line 473 "parser.ypp" +#line 474 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2450 "parser.cpp" +#line 2455 "parser.cpp" break; case 83: // stmt_break: "break" ";" -#line 478 "parser.ypp" +#line 479 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2456 "parser.cpp" +#line 2461 "parser.cpp" break; case 84: // stmt_continue: "continue" ";" -#line 483 "parser.ypp" +#line 484 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2462 "parser.cpp" +#line 2467 "parser.cpp" break; case 85: // stmt_return: "return" expr ";" -#line 488 "parser.ypp" +#line 489 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2468 "parser.cpp" +#line 2473 "parser.cpp" break; case 86: // stmt_return: "return" ";" -#line 490 "parser.ypp" +#line 491 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2474 "parser.cpp" +#line 2479 "parser.cpp" break; case 87: // stmt_breakpoint: "breakpoint" ";" -#line 495 "parser.ypp" +#line 496 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2480 "parser.cpp" +#line 2485 "parser.cpp" break; case 88: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" -#line 500 "parser.ypp" +#line 501 "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 2486 "parser.cpp" +#line 2491 "parser.cpp" break; case 89: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" -#line 505 "parser.ypp" +#line 506 "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 2492 "parser.cpp" +#line 2497 "parser.cpp" break; case 90: // expr: expr_ternary -#line 509 "parser.ypp" +#line 510 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2498 "parser.cpp" +#line 2503 "parser.cpp" break; case 91: // expr: expr_binary -#line 510 "parser.ypp" +#line 511 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2504 "parser.cpp" +#line 2509 "parser.cpp" break; case 92: // expr: expr_primitive -#line 511 "parser.ypp" +#line 512 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2510 "parser.cpp" +#line 2515 "parser.cpp" break; case 93: // expr_or_empty: expr -#line 515 "parser.ypp" +#line 516 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2516 "parser.cpp" +#line 2521 "parser.cpp" break; case 94: // expr_or_empty: %empty -#line 516 "parser.ypp" +#line 517 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2522 "parser.cpp" +#line 2527 "parser.cpp" break; case 95: // expr_assign: expr_object "=" expr -#line 521 "parser.ypp" +#line 522 "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 2528 "parser.cpp" +#line 2533 "parser.cpp" break; case 96: // expr_assign: expr_object "|=" expr -#line 523 "parser.ypp" +#line 524 "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 2534 "parser.cpp" +#line 2539 "parser.cpp" break; case 97: // expr_assign: expr_object "&=" expr -#line 525 "parser.ypp" +#line 526 "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 2540 "parser.cpp" +#line 2545 "parser.cpp" break; case 98: // expr_assign: expr_object "^=" expr -#line 527 "parser.ypp" +#line 528 "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 2546 "parser.cpp" +#line 2551 "parser.cpp" break; case 99: // expr_assign: expr_object "<<=" expr -#line 529 "parser.ypp" +#line 530 "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 2552 "parser.cpp" +#line 2557 "parser.cpp" break; case 100: // expr_assign: expr_object ">>=" expr -#line 531 "parser.ypp" +#line 532 "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 2558 "parser.cpp" +#line 2563 "parser.cpp" break; case 101: // expr_assign: expr_object "+=" expr -#line 533 "parser.ypp" +#line 534 "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 2564 "parser.cpp" +#line 2569 "parser.cpp" break; case 102: // expr_assign: expr_object "-=" expr -#line 535 "parser.ypp" +#line 536 "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 2570 "parser.cpp" +#line 2575 "parser.cpp" break; case 103: // expr_assign: expr_object "*=" expr -#line 537 "parser.ypp" +#line 538 "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 2576 "parser.cpp" +#line 2581 "parser.cpp" break; case 104: // expr_assign: expr_object "/=" expr -#line 539 "parser.ypp" +#line 540 "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 2582 "parser.cpp" +#line 2587 "parser.cpp" break; case 105: // expr_assign: expr_object "%=" expr -#line 541 "parser.ypp" +#line 542 "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 2588 "parser.cpp" +#line 2593 "parser.cpp" break; case 106: // expr_increment: "++" expr_object -#line 546 "parser.ypp" +#line 547 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2594 "parser.cpp" +#line 2599 "parser.cpp" break; case 107: // expr_increment: expr_object "++" -#line 548 "parser.ypp" +#line 549 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2600 "parser.cpp" +#line 2605 "parser.cpp" break; case 108: // expr_decrement: "--" expr_object -#line 553 "parser.ypp" +#line 554 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2606 "parser.cpp" +#line 2611 "parser.cpp" break; case 109: // expr_decrement: expr_object "--" -#line 555 "parser.ypp" +#line 556 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2612 "parser.cpp" +#line 2617 "parser.cpp" break; case 110: // expr_ternary: expr "?" expr ":" expr -#line 560 "parser.ypp" +#line 561 "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 2618 "parser.cpp" +#line 2623 "parser.cpp" break; case 111: // expr_binary: expr "||" expr -#line 565 "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 2624 "parser.cpp" +#line 2629 "parser.cpp" break; case 112: // expr_binary: expr "&&" expr -#line 567 "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 2630 "parser.cpp" +#line 2635 "parser.cpp" break; case 113: // expr_binary: expr "==" expr -#line 569 "parser.ypp" +#line 570 "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 2636 "parser.cpp" +#line 2641 "parser.cpp" break; case 114: // expr_binary: expr "!=" expr -#line 571 "parser.ypp" +#line 572 "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 2642 "parser.cpp" +#line 2647 "parser.cpp" break; case 115: // expr_binary: expr "<=" expr -#line 573 "parser.ypp" +#line 574 "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 2648 "parser.cpp" +#line 2653 "parser.cpp" break; case 116: // expr_binary: expr ">=" expr -#line 575 "parser.ypp" +#line 576 "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 2654 "parser.cpp" +#line 2659 "parser.cpp" break; case 117: // expr_binary: expr "<" expr -#line 577 "parser.ypp" +#line 578 "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 2660 "parser.cpp" +#line 2665 "parser.cpp" break; case 118: // expr_binary: expr ">" expr -#line 579 "parser.ypp" +#line 580 "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 2666 "parser.cpp" +#line 2671 "parser.cpp" break; case 119: // expr_binary: expr "|" expr -#line 581 "parser.ypp" +#line 582 "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 2672 "parser.cpp" +#line 2677 "parser.cpp" break; case 120: // expr_binary: expr "&" expr -#line 583 "parser.ypp" +#line 584 "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 2678 "parser.cpp" +#line 2683 "parser.cpp" break; case 121: // expr_binary: expr "^" expr -#line 585 "parser.ypp" +#line 586 "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 2684 "parser.cpp" +#line 2689 "parser.cpp" break; case 122: // expr_binary: expr "<<" expr -#line 587 "parser.ypp" +#line 588 "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 2690 "parser.cpp" +#line 2695 "parser.cpp" break; case 123: // expr_binary: expr ">>" expr -#line 589 "parser.ypp" +#line 590 "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 2696 "parser.cpp" +#line 2701 "parser.cpp" break; case 124: // expr_binary: expr "+" expr -#line 591 "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 2702 "parser.cpp" +#line 2707 "parser.cpp" break; case 125: // expr_binary: expr "-" expr -#line 593 "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 2708 "parser.cpp" +#line 2713 "parser.cpp" break; case 126: // expr_binary: expr "*" expr -#line 595 "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 2714 "parser.cpp" +#line 2719 "parser.cpp" break; case 127: // expr_binary: expr "/" expr -#line 597 "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 2720 "parser.cpp" +#line 2725 "parser.cpp" break; case 128: // expr_binary: expr "%" expr -#line 599 "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 2726 "parser.cpp" +#line 2731 "parser.cpp" break; case 129: // expr_primitive: expr_complement -#line 603 "parser.ypp" +#line 604 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2732 "parser.cpp" +#line 2737 "parser.cpp" break; case 130: // expr_primitive: expr_not -#line 604 "parser.ypp" +#line 605 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2738 "parser.cpp" +#line 2743 "parser.cpp" break; case 131: // expr_primitive: expr_call -#line 605 "parser.ypp" +#line 606 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2744 "parser.cpp" +#line 2749 "parser.cpp" break; case 132: // expr_primitive: expr_method -#line 606 "parser.ypp" +#line 607 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2750 "parser.cpp" +#line 2755 "parser.cpp" break; case 133: // expr_primitive: expr_add_array -#line 607 "parser.ypp" +#line 608 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2756 "parser.cpp" +#line 2761 "parser.cpp" break; case 134: // expr_primitive: expr_reference -#line 608 "parser.ypp" +#line 609 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2762 "parser.cpp" +#line 2767 "parser.cpp" break; case 135: // expr_primitive: expr_array -#line 609 "parser.ypp" +#line 610 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2768 "parser.cpp" +#line 2773 "parser.cpp" break; case 136: // expr_primitive: expr_field -#line 610 "parser.ypp" +#line 611 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2774 "parser.cpp" +#line 2779 "parser.cpp" break; case 137: // expr_primitive: expr_size -#line 611 "parser.ypp" +#line 612 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2780 "parser.cpp" +#line 2785 "parser.cpp" break; case 138: // expr_primitive: expr_paren -#line 612 "parser.ypp" +#line 613 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2786 "parser.cpp" +#line 2791 "parser.cpp" break; case 139: // expr_primitive: expr_thisthread -#line 613 "parser.ypp" +#line 614 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2792 "parser.cpp" +#line 2797 "parser.cpp" break; case 140: // expr_primitive: expr_empty_array -#line 614 "parser.ypp" +#line 615 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2798 "parser.cpp" +#line 2803 "parser.cpp" break; case 141: // expr_primitive: expr_undefined -#line 615 "parser.ypp" +#line 616 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2804 "parser.cpp" +#line 2809 "parser.cpp" break; case 142: // expr_primitive: expr_game -#line 616 "parser.ypp" +#line 617 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2810 "parser.cpp" +#line 2815 "parser.cpp" break; case 143: // expr_primitive: expr_self -#line 617 "parser.ypp" +#line 618 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2816 "parser.cpp" +#line 2821 "parser.cpp" break; case 144: // expr_primitive: expr_anim -#line 618 "parser.ypp" +#line 619 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2822 "parser.cpp" +#line 2827 "parser.cpp" break; case 145: // expr_primitive: expr_level -#line 619 "parser.ypp" +#line 620 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2828 "parser.cpp" +#line 2833 "parser.cpp" break; case 146: // expr_primitive: expr_animation -#line 620 "parser.ypp" +#line 621 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2834 "parser.cpp" +#line 2839 "parser.cpp" break; case 147: // expr_primitive: expr_animtree -#line 621 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2840 "parser.cpp" - break; - - case 148: // expr_primitive: expr_identifier #line 622 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 2846 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2845 "parser.cpp" break; - case 149: // expr_primitive: expr_istring + case 148: // expr_primitive: expr_identifier_neg #line 623 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } -#line 2852 "parser.cpp" + { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } +#line 2851 "parser.cpp" break; - case 150: // expr_primitive: expr_string + case 149: // expr_primitive: expr_identifier #line 624 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } -#line 2858 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 2857 "parser.cpp" break; - case 151: // expr_primitive: expr_vector + case 150: // expr_primitive: expr_istring #line 625 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } -#line 2864 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } +#line 2863 "parser.cpp" break; - case 152: // expr_primitive: expr_float + case 151: // expr_primitive: expr_string #line 626 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } -#line 2870 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } +#line 2869 "parser.cpp" break; - case 153: // expr_primitive: expr_integer + case 152: // expr_primitive: expr_vector #line 627 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } -#line 2876 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } +#line 2875 "parser.cpp" break; - case 154: // expr_primitive: expr_false + case 153: // expr_primitive: expr_float #line 628 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } -#line 2882 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } +#line 2881 "parser.cpp" break; - case 155: // expr_primitive: expr_true + case 154: // expr_primitive: expr_integer #line 629 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } +#line 2887 "parser.cpp" + break; + + case 155: // expr_primitive: expr_false +#line 630 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } +#line 2893 "parser.cpp" + break; + + case 156: // expr_primitive: expr_true +#line 631 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_true::ptr > ()); } -#line 2888 "parser.cpp" +#line 2899 "parser.cpp" break; - case 156: // expr_complement: "~" expr -#line 634 "parser.ypp" + case 157: // expr_complement: "~" expr +#line 636 "parser.ypp" { yylhs.value.as < ast::expr_complement::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2894 "parser.cpp" +#line 2905 "parser.cpp" break; - case 157: // expr_not: "!" expr -#line 639 "parser.ypp" + case 158: // expr_not: "!" expr +#line 641 "parser.ypp" { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2900 "parser.cpp" +#line 2911 "parser.cpp" break; - case 158: // expr_call: expr_function -#line 643 "parser.ypp" + case 159: // expr_call: expr_function +#line 645 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2906 "parser.cpp" +#line 2917 "parser.cpp" break; - case 159: // expr_call: expr_pointer -#line 644 "parser.ypp" + case 160: // expr_call: expr_pointer +#line 646 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2912 "parser.cpp" +#line 2923 "parser.cpp" break; - case 160: // expr_method: expr_object expr_function -#line 647 "parser.ypp" + case 161: // expr_method: expr_object expr_function +#line 649 "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 2918 "parser.cpp" +#line 2929 "parser.cpp" break; - case 161: // expr_method: expr_object expr_pointer -#line 648 "parser.ypp" + case 162: // expr_method: expr_object expr_pointer +#line 650 "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 2924 "parser.cpp" +#line 2935 "parser.cpp" break; - case 162: // expr_function: expr_identifier "(" expr_arguments ")" -#line 653 "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 2930 "parser.cpp" - break; - - case 163: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" + case 163: // expr_function: expr_identifier "(" expr_arguments ")" #line 655 "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 2936 "parser.cpp" + { 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 2941 "parser.cpp" break; - case 164: // expr_function: "thread" expr_identifier "(" expr_arguments ")" + case 164: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" #line 657 "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 2942 "parser.cpp" + { 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 2947 "parser.cpp" break; - case 165: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 165: // expr_function: "thread" expr_identifier "(" expr_arguments ")" #line 659 "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 2948 "parser.cpp" + { 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 2953 "parser.cpp" break; - case 166: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" + case 166: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" #line 661 "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::childthread); } -#line 2954 "parser.cpp" + { 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 2959 "parser.cpp" break; - case 167: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 167: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" #line 663 "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::childthread); } +#line 2965 "parser.cpp" + break; + + case 168: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" +#line 665 "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::childthread); } -#line 2960 "parser.cpp" +#line 2971 "parser.cpp" break; - case 168: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" -#line 668 "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 2966 "parser.cpp" - break; - - case 169: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 169: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 670 "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 2972 "parser.cpp" + { 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 2977 "parser.cpp" break; - case 170: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 170: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 672 "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::childthread); } -#line 2978 "parser.cpp" + { 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 2983 "parser.cpp" break; - case 171: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 171: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 674 "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::childthread); } +#line 2989 "parser.cpp" + break; + + case 172: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 676 "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::builtin); } -#line 2984 "parser.cpp" +#line 2995 "parser.cpp" break; - case 172: // expr_add_array: "[" expr_arguments_no_empty "]" -#line 679 "parser.ypp" + case 173: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 681 "parser.ypp" { yylhs.value.as < ast::expr_add_array::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ())); } -#line 2990 "parser.cpp" +#line 3001 "parser.cpp" break; - case 173: // expr_parameters: expr_parameters "," expr_identifier -#line 684 "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 2996 "parser.cpp" - break; - - case 174: // expr_parameters: expr_identifier + case 174: // expr_parameters: expr_parameters "," expr_identifier #line 686 "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 3002 "parser.cpp" + { 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 3007 "parser.cpp" break; - case 175: // expr_parameters: %empty + case 175: // expr_parameters: expr_identifier #line 688 "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 3013 "parser.cpp" + break; + + case 176: // expr_parameters: %empty +#line 690 "parser.ypp" { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } -#line 3008 "parser.cpp" +#line 3019 "parser.cpp" break; - case 176: // expr_arguments: expr_arguments_no_empty -#line 693 "parser.ypp" - { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } -#line 3014 "parser.cpp" - break; - - case 177: // expr_arguments: %empty + case 177: // expr_arguments: expr_arguments_no_empty #line 695 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3025 "parser.cpp" + break; + + case 178: // expr_arguments: %empty +#line 697 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3020 "parser.cpp" +#line 3031 "parser.cpp" break; - case 178: // expr_arguments_no_empty: expr_arguments "," expr -#line 700 "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 3026 "parser.cpp" - break; - - case 179: // expr_arguments_no_empty: expr + case 179: // expr_arguments_no_empty: expr_arguments "," expr #line 702 "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 3037 "parser.cpp" + break; + + case 180: // expr_arguments_no_empty: expr +#line 704 "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 3032 "parser.cpp" +#line 3043 "parser.cpp" break; - case 180: // expr_reference: "::" expr_identifier -#line 707 "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 3038 "parser.cpp" - break; - - case 181: // expr_reference: expr_path "::" expr_identifier + case 181: // expr_reference: "::" expr_identifier #line 709 "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 3049 "parser.cpp" + break; + + case 182: // expr_reference: expr_path "::" expr_identifier +#line 711 "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 3044 "parser.cpp" +#line 3055 "parser.cpp" break; - case 182: // expr_array: expr_object "[" expr "]" -#line 714 "parser.ypp" + case 183: // expr_array: expr_object "[" expr "]" +#line 716 "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 3050 "parser.cpp" +#line 3061 "parser.cpp" break; - case 183: // expr_field: expr_object "." expr_identifier_nosize -#line 719 "parser.ypp" + case 184: // expr_field: expr_object "." expr_identifier_nosize +#line 721 "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 3056 "parser.cpp" +#line 3067 "parser.cpp" break; - case 184: // expr_size: expr_object "." "size" -#line 724 "parser.ypp" + case 185: // expr_size: expr_object "." "size" +#line 726 "parser.ypp" { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } -#line 3062 "parser.cpp" +#line 3073 "parser.cpp" break; - case 185: // expr_paren: "(" expr ")" -#line 729 "parser.ypp" + case 186: // expr_paren: "(" expr ")" +#line 731 "parser.ypp" { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3068 "parser.cpp" +#line 3079 "parser.cpp" break; - case 186: // expr_object: expr_call -#line 733 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 3074 "parser.cpp" - break; - - case 187: // expr_object: expr_method -#line 734 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 3080 "parser.cpp" - break; - - case 188: // expr_object: expr_array + case 187: // expr_object: expr_call #line 735 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3086 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3085 "parser.cpp" break; - case 189: // expr_object: expr_field + case 188: // expr_object: expr_method #line 736 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 3092 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3091 "parser.cpp" break; - case 190: // expr_object: expr_game + case 189: // expr_object: expr_array #line 737 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 3098 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3097 "parser.cpp" break; - case 191: // expr_object: expr_self + case 190: // expr_object: expr_field #line 738 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 3104 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3103 "parser.cpp" break; - case 192: // expr_object: expr_anim + case 191: // expr_object: expr_game #line 739 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 3110 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3109 "parser.cpp" break; - case 193: // expr_object: expr_level + case 192: // expr_object: expr_self #line 740 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 3116 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3115 "parser.cpp" break; - case 194: // expr_object: expr_identifier + case 193: // expr_object: expr_anim #line 741 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3121 "parser.cpp" + break; + + case 194: // expr_object: expr_level +#line 742 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3127 "parser.cpp" + break; + + case 195: // expr_object: expr_identifier +#line 743 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 3122 "parser.cpp" +#line 3133 "parser.cpp" break; - case 195: // expr_thisthread: "thisthread" -#line 746 "parser.ypp" + case 196: // expr_thisthread: "thisthread" +#line 748 "parser.ypp" { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3128 "parser.cpp" +#line 3139 "parser.cpp" break; - case 196: // expr_empty_array: "[" "]" -#line 751 "parser.ypp" + case 197: // expr_empty_array: "[" "]" +#line 753 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3134 "parser.cpp" +#line 3145 "parser.cpp" break; - case 197: // expr_undefined: "undefined" -#line 756 "parser.ypp" + case 198: // expr_undefined: "undefined" +#line 758 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3140 "parser.cpp" +#line 3151 "parser.cpp" break; - case 198: // expr_game: "game" -#line 761 "parser.ypp" + case 199: // expr_game: "game" +#line 763 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3146 "parser.cpp" +#line 3157 "parser.cpp" break; - case 199: // expr_self: "self" -#line 766 "parser.ypp" + case 200: // expr_self: "self" +#line 768 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3152 "parser.cpp" +#line 3163 "parser.cpp" break; - case 200: // expr_anim: "anim" -#line 771 "parser.ypp" + case 201: // expr_anim: "anim" +#line 773 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3158 "parser.cpp" +#line 3169 "parser.cpp" break; - case 201: // expr_level: "level" -#line 776 "parser.ypp" + case 202: // expr_level: "level" +#line 778 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3164 "parser.cpp" +#line 3175 "parser.cpp" break; - case 202: // expr_animation: "%" "identifier" -#line 781 "parser.ypp" + case 203: // expr_animation: "%" "identifier" +#line 783 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3170 "parser.cpp" +#line 3181 "parser.cpp" break; - case 203: // expr_animtree: "#animtree" -#line 786 "parser.ypp" + case 204: // expr_animtree: "#animtree" +#line 788 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3176 "parser.cpp" +#line 3187 "parser.cpp" break; - case 204: // expr_identifier_nosize: "identifier" -#line 791 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3182 "parser.cpp" + case 205: // expr_identifier_neg: "-" "identifier" +#line 793 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, ast::expr(std::make_unique(yylhs.location, "0")), ast::expr(std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()))); } +#line 3193 "parser.cpp" break; - case 205: // expr_identifier: "identifier" -#line 796 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3188 "parser.cpp" - break; - - case 206: // expr_identifier: "size" + case 206: // expr_identifier_nosize: "identifier" #line 798 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3194 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3199 "parser.cpp" break; - case 207: // expr_path: "identifier" + case 207: // expr_identifier: "identifier" #line 803 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3200 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3205 "parser.cpp" break; - case 208: // expr_path: "path" + case 208: // expr_identifier: "size" #line 805 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3206 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } +#line 3211 "parser.cpp" break; - case 209: // expr_istring: "localized string" + case 209: // expr_path: "identifier" #line 810 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3217 "parser.cpp" + break; + + case 210: // expr_path: "path" +#line 812 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3223 "parser.cpp" + break; + + case 211: // expr_istring: "localized string" +#line 817 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3212 "parser.cpp" +#line 3229 "parser.cpp" break; - case 210: // expr_string: "string literal" -#line 815 "parser.ypp" + case 212: // expr_string: "string literal" +#line 822 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3218 "parser.cpp" +#line 3235 "parser.cpp" break; - case 211: // expr_vector: "(" expr "," expr "," expr ")" -#line 820 "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 3224 "parser.cpp" - break; - - case 212: // expr_float: "-" "float" -#line 825 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3230 "parser.cpp" - break; - - case 213: // expr_float: "float" + case 213: // expr_vector: "(" expr "," expr "," expr ")" #line 827 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3236 "parser.cpp" + { 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 3241 "parser.cpp" break; - case 214: // expr_integer: "-" "integer" + case 214: // expr_float: "-" "float" #line 832 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3242 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3247 "parser.cpp" break; - case 215: // expr_integer: "integer" + case 215: // expr_float: "float" #line 834 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3248 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3253 "parser.cpp" break; - case 216: // expr_false: "false" + case 216: // expr_integer: "-" "integer" #line 839 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3259 "parser.cpp" + break; + + case 217: // expr_integer: "integer" +#line 841 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3265 "parser.cpp" + break; + + case 218: // expr_false: "false" +#line 846 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3254 "parser.cpp" +#line 3271 "parser.cpp" break; - case 217: // expr_true: "true" -#line 844 "parser.ypp" + case 219: // expr_true: "true" +#line 851 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3260 "parser.cpp" +#line 3277 "parser.cpp" break; -#line 3264 "parser.cpp" +#line 3281 "parser.cpp" default: break; @@ -3474,9 +3491,9 @@ namespace xsk { namespace gsc { namespace iw7 { "expr_array", "expr_field", "expr_size", "expr_paren", "expr_object", "expr_thisthread", "expr_empty_array", "expr_undefined", "expr_game", "expr_self", "expr_anim", "expr_level", "expr_animation", - "expr_animtree", "expr_identifier_nosize", "expr_identifier", - "expr_path", "expr_istring", "expr_string", "expr_vector", "expr_float", - "expr_integer", "expr_false", "expr_true", YY_NULLPTR + "expr_animtree", "expr_identifier_neg", "expr_identifier_nosize", + "expr_identifier", "expr_path", "expr_istring", "expr_string", + "expr_vector", "expr_float", "expr_integer", "expr_false", "expr_true", YY_NULLPTR }; return yy_sname[yysymbol]; } @@ -3747,494 +3764,490 @@ namespace xsk { namespace gsc { namespace iw7 { const short parser::yypact_ninf_ = -266; - const short parser::yytable_ninf_ = -208; + const short parser::yytable_ninf_ = -210; const short parser::yypact_[] = { - 6, -266, -266, -13, -13, -23, -266, -266, 39, 6, - -266, -266, -266, -266, -266, -266, -40, -266, -266, 11, - 20, -11, -266, -266, -266, -266, -38, 1079, -266, -266, - -266, 43, -3, -266, -266, -22, 31, -266, 46, -266, - -266, -266, -266, -266, -266, -266, 1079, 644, -38, 1079, - 1079, 60, -6, 45, -266, -266, -266, 2012, -266, -266, - -266, -266, -266, 476, 583, -266, -266, -266, -266, 836, - 841, -266, -266, 1039, -266, -266, -266, 1047, 1106, 1277, - 1285, -266, -266, 67, 49, -266, -266, -266, -266, -266, - -266, -266, 41, 64, -38, 65, 68, 83, 71, 72, - 91, 98, 1298, 644, -266, 2095, 76, 101, -266, -266, - -266, -266, -266, -266, -266, 1079, 1079, 1079, 1079, 1079, - 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, - 1079, 1079, 1079, 1079, 1142, -19, -266, -266, 108, 103, - 1079, -38, -266, 805, -266, -266, 1079, 1079, -38, 1079, - 1079, -38, 1079, -266, 1079, 1742, 1079, -266, 1977, 133, - 133, 2126, 2136, 212, 212, 74, 74, 74, 74, 2167, - 2208, 2177, -63, -63, -266, -266, -266, 1782, -266, -266, - -266, -38, -2, -266, 119, 934, 1079, 110, 127, 1265, - 128, 131, 132, 135, -58, 136, 126, 130, 1016, 134, - 141, 142, -266, 146, 50, 50, -266, -266, 881, -266, + 3, -266, -266, 1, 1, -31, -266, -266, 24, 3, + -266, -266, -266, -266, -266, -266, -23, -266, -266, -22, + -20, -48, -266, -266, -266, -266, -27, 1109, -266, -266, + -266, -1, -47, -266, -266, 6, 21, -266, 11, -266, + -266, -266, -266, -266, -266, -266, 1109, 983, -27, 1109, + 1109, 60, -44, 15, -266, -266, -266, 1979, -266, -266, + -266, -266, -266, 409, 540, -266, -266, -266, -266, 550, + 599, -266, -266, 609, -266, -266, -266, 630, 677, 720, + 803, -266, -266, -266, 503, 18, -266, -266, -266, -266, + -266, -266, -266, 20, 35, -27, 41, 68, 63, 75, + 89, 72, 86, 1305, 983, -266, 2062, 85, 90, -266, + -266, -266, -266, -266, -266, -266, -266, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1172, -25, -266, -266, + 98, 93, 1109, -27, -266, 772, -266, -266, 1109, 1109, + -27, 1109, 1109, -27, 1109, -266, 1109, 1105, 1109, -266, + 1944, 167, 167, 975, 2093, 1037, 1037, 137, 137, 137, + 137, 2103, 2144, 2134, -30, -30, -266, -266, -266, 1749, + -266, -266, -266, -27, -15, -266, 108, 901, 1109, 106, + 117, 1295, 119, 121, 124, 128, -58, 125, 120, 123, + 1046, 129, 142, 143, -266, 140, 116, 116, -266, -266, + 848, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, - -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, - -266, -266, -266, -266, 145, 148, 149, 150, 151, -266, - -266, 1189, -266, -266, -266, -266, 108, 1822, -1, 156, - 1862, 1, 164, 1902, 1941, 160, 2095, 1079, -266, 119, - -266, 1079, -266, -266, 987, 2047, -266, 1079, 171, 1079, - 397, -38, 1079, 129, 174, 176, -266, -266, -266, -266, - 2082, -266, 1079, 1079, 1079, -266, -266, 1299, 1299, -266, - -266, -266, -266, -266, -266, -266, 169, 180, 186, 187, - 105, -266, -266, 1079, 1079, 1079, 1079, 1079, 1079, 1079, - 1079, 1079, 1079, 1079, 184, -266, 1079, 188, -266, 1079, - 191, 1079, 192, 2095, 19, -266, -266, -266, 1464, 197, - 1498, 190, -266, -266, -266, -17, -15, 1532, -266, -266, - -266, 36, 58, 1742, 1079, 1079, 1079, 1079, 2095, 2095, - 2095, 2095, 2095, 2095, 2095, 2095, 2095, 2095, 2095, 198, - 59, 203, 77, 204, 1566, 1079, -266, 1265, 1079, 1265, - 1079, 1079, -38, 64, 199, 200, 1600, 1342, 1386, 1430, - 1079, -266, 1079, -266, 1079, -266, 78, 234, 1634, -266, - 2095, 201, 1668, 238, -266, -266, -266, 202, 207, 1079, - 211, 1079, 213, 1079, 79, 80, 92, -266, 1265, 214, - 397, 1265, 1079, -266, -266, 224, -266, 228, -266, 229, - -266, -266, -266, -266, -266, 237, -266, 1702, 230, 231, - 233, 1265, 1265, -266, -266, -266, -266, -266 + -266, -266, -266, -266, -266, -266, 138, 144, 147, 148, + 150, -266, -266, 1219, -266, -266, -266, -266, 98, 1789, + 5, 153, 1829, 26, 166, 1869, 1908, 162, 2062, 1109, + -266, 108, -266, 1109, -266, -266, 954, 2014, -266, 1109, + 198, 1109, -17, -27, 1109, 126, 165, 174, -266, -266, + -266, -266, 2049, -266, 1109, 1109, 1109, -266, -266, 808, + 808, -266, -266, -266, -266, -266, -266, -266, 175, 184, + 188, 190, 145, -266, -266, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 189, -266, 1109, 191, + -266, 1109, 193, 1109, 195, 2062, 33, -266, -266, -266, + 1471, 200, 1505, 183, -266, -266, -266, 29, -2, 1539, + -266, -266, -266, 34, 37, 1105, 1109, 1109, 1109, 1109, + 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, + 2062, 202, 47, 204, 71, 205, 1573, 1109, -266, 1295, + 1109, 1295, 1109, 1109, -27, 35, 203, 206, 1607, 1349, + 1393, 1437, 1109, -266, 1109, -266, 1109, -266, 77, 226, + 1641, -266, 2062, 208, 1675, 236, -266, -266, -266, 210, + 213, 1109, 215, 1109, 216, 1109, 80, 81, 87, -266, + 1295, 217, -17, 1295, 1109, -266, -266, 228, -266, 234, + -266, 235, -266, -266, -266, -266, -266, 240, -266, 1709, + 227, 232, 233, 1295, 1295, -266, -266, -266, -266, -266 }; const unsigned char parser::yydefact_[] = { - 3, 12, 13, 0, 0, 0, 206, 205, 0, 2, - 7, 8, 9, 14, 15, 16, 0, 208, 207, 0, - 0, 0, 1, 4, 5, 6, 175, 0, 10, 11, - 210, 0, 0, 174, 203, 0, 0, 195, 0, 217, - 216, 197, 198, 199, 200, 201, 0, 177, 0, 0, - 0, 0, 0, 205, 209, 213, 215, 0, 90, 91, - 92, 129, 130, 131, 132, 158, 159, 133, 134, 135, + 3, 12, 13, 0, 0, 0, 208, 207, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 210, 209, 0, + 0, 0, 1, 4, 5, 6, 176, 0, 10, 11, + 212, 0, 0, 175, 204, 0, 0, 196, 0, 219, + 218, 198, 199, 200, 201, 202, 0, 178, 0, 0, + 0, 0, 0, 207, 211, 215, 217, 0, 90, 91, + 92, 129, 130, 131, 132, 159, 160, 133, 134, 135, 136, 137, 138, 0, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 0, 149, 150, 151, 152, 153, - 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 177, 196, 179, 0, 176, 180, 157, - 156, 212, 214, 202, 18, 0, 0, 0, 0, 0, + 145, 146, 147, 148, 149, 0, 150, 151, 152, 153, + 154, 155, 156, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 178, 197, 180, 0, 177, 181, + 158, 157, 205, 214, 216, 203, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 160, 161, 0, 0, - 177, 0, 17, 0, 19, 173, 0, 177, 0, 0, - 177, 0, 0, 185, 0, 179, 0, 172, 0, 122, - 123, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 124, 125, 126, 127, 128, 0, 184, 204, - 183, 0, 0, 176, 181, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, + 0, 0, 178, 0, 17, 0, 19, 174, 0, 178, + 0, 0, 178, 0, 0, 186, 0, 180, 0, 173, + 0, 122, 123, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 124, 125, 126, 127, 128, 0, + 185, 206, 184, 0, 0, 177, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 0, 44, 49, 0, 45, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 0, 0, 0, 186, 187, 188, - 189, 0, 190, 191, 192, 193, 194, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 178, 0, 182, 0, - 162, 177, 51, 47, 0, 0, 71, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 82, 83, 84, 86, - 0, 87, 177, 177, 0, 186, 187, 106, 108, 52, - 48, 60, 61, 62, 58, 59, 0, 0, 0, 0, - 0, 107, 109, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 164, 177, 0, 166, 177, - 0, 0, 0, 110, 0, 50, 46, 66, 0, 0, - 0, 0, 54, 55, 56, 0, 0, 0, 81, 80, - 85, 0, 0, 0, 0, 0, 0, 0, 95, 101, - 102, 103, 104, 105, 96, 97, 98, 100, 99, 0, - 0, 0, 0, 0, 0, 177, 163, 0, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 177, 165, 177, 167, 177, 211, 0, 72, 0, 74, - 93, 0, 0, 0, 79, 88, 89, 0, 0, 177, - 0, 177, 0, 177, 0, 0, 0, 168, 0, 0, - 57, 0, 0, 63, 65, 176, 68, 176, 70, 176, - 169, 170, 171, 73, 75, 0, 77, 0, 0, 0, - 0, 0, 0, 64, 67, 69, 76, 78 + 0, 0, 0, 0, 53, 0, 0, 0, 44, 49, + 0, 45, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 0, 0, 0, 187, + 188, 189, 190, 0, 191, 192, 193, 194, 195, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, + 183, 0, 163, 178, 51, 47, 0, 0, 71, 0, + 0, 0, 57, 0, 0, 0, 0, 0, 82, 83, + 84, 86, 0, 87, 178, 178, 0, 187, 188, 106, + 108, 52, 48, 60, 61, 62, 58, 59, 0, 0, + 0, 0, 0, 107, 109, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 165, 178, 0, + 167, 178, 0, 0, 0, 110, 0, 50, 46, 66, + 0, 0, 0, 0, 54, 55, 56, 0, 0, 0, + 81, 80, 85, 0, 0, 0, 0, 0, 0, 0, + 95, 101, 102, 103, 104, 105, 96, 97, 98, 100, + 99, 0, 0, 0, 0, 0, 0, 178, 164, 0, + 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 178, 166, 178, 168, 178, 213, 0, 72, + 0, 74, 93, 0, 0, 0, 79, 88, 89, 0, + 0, 178, 0, 178, 0, 178, 0, 0, 0, 169, + 0, 0, 57, 0, 0, 63, 65, 177, 68, 177, + 70, 177, 170, 171, 172, 73, 75, 0, 77, 0, + 0, 0, 0, 0, 0, 64, 67, 69, 76, 78 }; const short parser::yypgoto_[] = { - -266, -266, -266, 286, 289, 291, -266, -266, -266, -179, - 93, -266, -266, -266, -91, -108, -266, -266, -266, -266, + -266, -266, -266, 286, 287, 288, -266, -266, -266, -131, + 91, -266, -266, -266, -91, -112, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, - -266, -266, -266, -266, -266, -266, -266, -266, -266, 196, - -266, -265, -255, -254, -266, -266, -266, -266, -266, -31, - -5, -69, -66, -266, -266, -26, -46, -266, 208, 266, - -266, -266, 306, -266, -266, -266, 340, 380, 389, 394, - -266, -266, -266, 0, 9, -266, -18, -266, -266, 114, - -266, -266 + -266, -266, -266, -266, -266, -266, -266, -266, -266, 187, + -266, -265, -264, -261, -266, -266, -266, -266, -266, -86, + -18, -69, -67, -266, -266, 289, -46, -266, -9, 199, + -266, -266, 253, -266, -266, -266, 281, 321, 331, 359, + -266, -266, -266, -266, 0, 9, -266, -19, -266, -266, + 132, -266, -266 }; const short parser::yydefgoto_[] = { - 0, 8, 9, 10, 11, 12, 13, 14, 15, 206, - 207, 264, 208, 209, 210, 331, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 105, - 391, 234, 235, 236, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 32, 106, 183, 68, 69, 70, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 208, + 209, 266, 210, 211, 212, 333, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 106, + 393, 236, 237, 238, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 32, 107, 185, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 180, 83, 84, 85, 86, 87, 88, 89, - 90, 91 + 81, 82, 83, 182, 84, 85, 86, 87, 88, 89, + 90, 91, 92 }; const short parser::yytable_[] = { - 16, 107, 144, 31, 136, 332, 263, 137, 6, 16, - 268, 26, 19, 20, 371, 333, 334, 1, 2, 3, - 4, 5, 35, 36, 6, 38, 33, 178, 21, 6, - 131, 132, 133, 95, 273, 96, 99, 27, 134, 22, - 30, 300, 372, 56, 97, 100, 301, 302, 108, 93, - 260, 315, 6, 318, 94, 156, 156, 107, 156, 7, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 366, 28, 138, 17, 53, 156, 6, 179, 17, - 53, 29, 139, 17, 18, 326, 98, 30, 374, 35, - 36, 113, 38, 156, 145, 92, 6, 42, 43, 44, - 45, 101, 142, 7, -207, 203, -194, -194, 141, -194, - 375, 381, 237, -194, 182, 156, 156, 143, 140, 147, - 146, 248, -194, 150, 251, -194, 149, 17, 53, 383, - 407, 420, 421, 156, 156, 156, 156, 156, 238, 116, - 117, 184, 148, 246, 422, 332, 17, 53, 249, 156, - 151, 252, 139, 152, 237, 333, 334, 157, 237, 140, - 111, 112, 181, -194, -194, 129, 130, 131, 132, 133, - 261, 266, 136, 285, 285, 137, 274, 237, 267, 269, - 238, 259, 270, 271, 238, 246, 272, 277, 387, 246, - 389, 278, 282, 283, 139, 281, 276, 329, 139, 286, - 286, 284, 179, 238, 246, 246, 291, 316, 246, 292, - 293, 294, 295, 139, 139, 319, 322, 139, 136, 136, - 344, 137, 137, 57, 129, 130, 131, 132, 133, 423, - 112, 345, 426, 237, 338, 324, 339, 346, 347, 285, - 359, 138, 102, 365, 361, 109, 110, 363, 368, 380, - 139, 370, 436, 437, 382, 384, 341, 342, 408, 238, - 395, 396, 410, 413, 246, 286, 136, 412, 414, 137, - 246, 336, 416, 139, 418, 424, 428, 116, 117, 139, - 429, 430, 394, 122, 123, 124, 125, 138, 138, 431, - 360, 433, 434, 362, 435, 23, 139, 139, 24, 155, - 25, 290, 425, 129, 130, 131, 132, 133, 275, 0, - 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 0, 0, 0, 0, 138, 237, 0, 237, 386, - 0, 0, 247, 0, 139, 250, 0, 0, 253, 0, - 254, 239, 256, 415, 404, 417, 405, 419, 406, 0, - 0, 0, 238, 0, 238, 0, 0, 246, 0, 246, - 0, 0, 393, 0, 0, 0, 139, 237, 139, 285, - 237, 0, 265, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 239, 280, 0, 0, 239, 0, 0, - 237, 237, 0, 238, 0, 286, 238, 0, 246, 240, - 246, 246, 239, 239, 0, 0, 239, 139, 0, 139, - 139, 0, 0, 0, 0, 0, 238, 238, 0, 0, - 0, 246, 246, 0, 0, 0, 35, 36, 0, 38, - 139, 139, 0, 6, 42, 43, 44, 45, 0, 241, - 0, 240, 203, 323, 0, 240, 0, 0, 0, 0, - 204, 205, 0, 328, 0, 330, 0, 0, 337, 0, - 240, 240, 239, 0, 240, 0, 0, 0, 239, 0, - 343, 0, 0, 242, 0, 0, 0, 0, 0, 0, - 0, 241, 0, 17, 53, 241, 0, 0, 0, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 287, 288, 0, 0, 241, -186, -186, 364, -186, 0, - 0, 0, -186, 243, 0, 242, 0, 0, 0, 242, - 240, -186, 244, 0, -186, 0, 240, 245, 0, 0, - 376, 377, 378, 379, 242, 242, 0, 0, 242, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 388, 243, 390, 392, 0, 243, - 241, 0, -186, -186, 244, 239, 335, 239, 244, 245, - 0, 0, 0, 245, 243, 243, 0, 0, 243, 0, - 0, 0, 0, 244, 244, 0, 0, 244, 245, 245, - 0, 0, 245, 0, 242, 0, 0, 0, 427, 0, - 242, 0, 0, 0, 0, 0, 239, 0, 239, 239, - 0, 0, -187, -187, 0, -187, 0, 0, 0, -187, - 0, 0, 0, 240, 0, 240, 0, 0, -187, 239, - 239, -187, 0, 0, 243, 0, 0, 0, 0, 0, - 243, 0, 0, 244, 0, 0, 0, 0, 245, 244, - 34, 0, 0, 0, 245, 0, 0, 0, 0, 0, - 0, 0, 0, 241, 240, 241, 240, 240, 0, -187, - -187, 0, 0, 35, 36, 37, 38, 39, 40, 41, - 6, 42, 43, 44, 45, 46, 0, 240, 240, 103, - 104, 0, 0, 48, 0, 0, 0, 242, 0, 242, - 0, 0, 0, 0, 241, 0, 335, 241, 0, 49, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 51, 241, 241, 52, - 17, 53, 30, 54, 55, 56, 0, 243, 242, 243, - 242, 242, 0, 0, 0, 0, 244, 0, 244, 0, - 0, 245, 0, 245, 0, 0, 0, 0, 0, 0, - 0, 242, 242, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 243, 0, - 243, 243, 0, 0, 0, 0, 0, 244, 0, 244, - 244, 0, 245, 0, 245, 245, 0, 0, 0, 0, - 0, 243, 243, 0, 0, 0, 185, 0, 0, 0, - 244, 244, 0, 0, 186, 245, 245, 187, 188, 0, - 189, 190, 191, 192, 0, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 35, 36, 0, 38, 0, 0, - 0, 6, 42, 43, 44, 45, 0, 0, 143, 202, - 203, 0, 0, 0, 0, 0, 0, 0, 204, 205, - 0, 0, 0, 0, 0, -188, -188, 0, -188, 0, - -189, -189, -188, -189, 0, 0, 0, -189, 0, 0, - 0, -188, 185, 0, -188, 0, -189, 0, 0, -189, - 186, 17, 53, 187, 188, 0, 189, 190, 191, 192, - 0, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 35, 36, 0, 38, 0, 0, 0, 6, 42, 43, - 44, 45, -188, -188, 143, 289, 203, -189, -189, 0, - 0, 0, 0, 0, 204, 205, 262, 0, 0, 0, - 0, 0, 0, 186, 0, 0, 187, 188, 0, 189, - 190, 191, 192, 0, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 35, 36, 0, 38, 17, 53, 0, - 6, 42, 43, 44, 45, 0, 0, 143, 0, 203, - 0, 0, 0, 0, 0, 0, 0, 204, 205, 325, - 0, 0, 0, 0, 0, 0, 186, 0, 0, 187, - 188, 0, 189, 190, 191, 192, 0, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 35, 36, 0, 38, - 17, 53, 34, 6, 42, 43, 44, 45, 0, 0, - 143, 0, 203, 0, 0, 0, 0, 0, 0, 0, - 204, 205, 0, 0, 0, 35, 36, 37, 38, 39, + 16, 108, 31, 146, 138, 94, 139, 334, 335, 16, + 95, 336, 19, 20, 1, 2, 3, 4, 5, 6, + 21, 180, 35, 36, 22, 38, 33, 373, 26, 6, + 42, 43, 44, 45, 275, 97, 100, 262, 205, 28, + 30, 29, 158, 56, 98, 101, 206, 207, 109, 6, + 30, 93, 6, 115, 27, 374, 265, 317, 108, 239, + 270, 96, 158, 133, 134, 135, 102, 6, 35, 36, + 7, 38, 181, 140, -209, 6, 99, 143, 320, 17, + 53, 144, 141, 158, 136, 368, 376, 302, 145, 377, + 158, 158, 303, 304, 158, 147, 148, 17, 18, 383, + 7, 239, 17, 53, 158, 239, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 17, 53, 149, + 287, 287, 150, 385, 239, 17, 53, 240, 158, 409, + 151, 153, 422, 423, 158, 328, 241, 158, 158, 424, + 152, 154, 158, 186, 158, 248, 159, 334, 335, 142, + 251, 336, 183, 254, 141, 35, 36, 112, 38, 263, + 113, 114, 6, 42, 43, 44, 45, 268, 269, 240, + 271, 205, 272, 240, 138, 273, 139, 276, 241, 274, + 239, 279, 241, 261, 280, 278, 287, 248, 288, 288, + 283, 248, 240, 284, 285, 286, 141, 241, 241, 293, + 141, 241, 118, 119, 318, 294, 248, 248, 295, 296, + 248, 297, 17, 53, 57, 141, 141, 321, 324, 141, + 138, 138, 139, 139, 331, 340, 346, 114, 131, 132, + 133, 134, 135, 103, 341, 347, 110, 111, 389, 348, + 391, 349, 181, 140, 372, 361, 367, 363, 240, 365, + 410, 370, 141, 382, 288, 384, 386, 241, 131, 132, + 133, 134, 135, 241, 397, 414, 248, 398, 138, 412, + 139, 415, 248, 338, 416, 141, 418, 420, 426, 425, + 430, 141, 428, 239, 396, 239, 431, 432, 435, 140, + 140, 157, 433, 436, 437, 23, 24, 25, 141, 141, + 427, 292, 438, 439, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 239, 0, 287, 239, 277, 0, + 0, 0, 0, 0, 0, 249, 0, 140, 252, 0, + 0, 255, 0, 256, 242, 258, 141, 239, 239, 0, + 0, 240, 0, 240, 0, 417, 0, 419, 0, 421, + 241, 0, 241, 0, 0, 0, 0, 0, 0, 248, + 0, 248, 0, 0, 395, 267, 0, 0, 141, 0, + 141, 0, 0, 0, 0, 0, 242, 282, 0, 0, + 242, 0, 240, 0, 288, 240, 0, 0, 243, 0, + 0, 241, 0, 241, 241, 242, 242, 0, 0, 242, + 248, 0, 248, 248, 0, 240, 240, 0, 0, 141, + 0, 141, 141, 0, 241, 241, 244, 0, 0, 0, + 0, 184, 0, 248, 248, 0, 0, 0, 250, 0, + 243, 253, 141, 141, 243, 0, 325, 0, -187, -187, + 0, -187, 0, 0, 0, -187, 330, 0, 332, 289, + 290, 339, 0, 243, -187, 242, 245, -187, 244, 0, + 0, 242, 244, 345, 0, 0, 246, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 244, 244, 0, + 0, 244, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 0, 247, -187, -187, 0, 245, 0, + 366, 0, 245, 0, 0, 0, 0, 0, 246, 243, + 0, 0, 246, 0, 0, 337, 0, 245, 245, 0, + 0, 245, 0, 378, 379, 380, 381, 246, 246, 0, + 0, 246, -195, -195, 0, -195, 247, 244, 0, -195, + 247, 0, 326, 244, 142, 0, 0, 390, -195, 392, + 394, -195, 0, 0, 0, 247, 247, 0, 242, 247, + 242, 0, 0, 343, 344, 0, 0, 0, 0, -188, + -188, 0, -188, 0, 0, 0, -188, 245, 0, -189, + -189, 0, -189, 245, 0, -188, -189, 246, -188, -195, + -195, 429, 0, 246, 0, -189, 0, 362, -189, 242, + 364, 242, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 243, 0, 243, 247, 0, 0, 0, 0, + 0, 247, 242, 242, 0, 0, -188, -188, -190, -190, + 0, -190, 0, 0, 0, -190, -189, -189, 35, 36, + 244, 38, 244, 0, -190, 6, 388, -190, 0, 0, + 0, 0, 0, 243, 136, 337, 243, 137, 0, -191, + -191, 406, -191, 407, 0, 408, -191, 0, 0, 0, + 0, 0, 0, 0, 0, -191, 243, 243, -191, 0, + 245, 244, 245, 244, 244, -190, -190, 0, 0, 0, + 246, 0, 246, 0, 0, 17, 53, 0, 0, 0, + 0, 0, 0, 0, 244, 244, -192, -192, 0, -192, + 0, 0, 0, -192, 0, 0, -191, -191, 247, 0, + 247, 245, -192, 245, 245, -192, 0, 0, 0, 0, + 0, 246, 0, 246, 246, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 245, 0, 0, 0, -193, + -193, 0, -193, 0, 246, 246, -193, 0, 0, 247, + 0, 247, 247, -192, -192, -193, 0, 0, -193, 0, + 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, + 0, 188, 247, 247, 189, 190, 0, 191, 192, 193, + 194, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 35, 36, 0, 38, 0, -193, -193, 6, 42, + 43, 44, 45, 0, 0, 145, 204, 205, 0, 0, + 0, 0, 0, 0, 0, 206, 207, 0, 0, 0, + 0, 0, -194, -194, 0, -194, 0, 35, 36, -194, + 38, 0, 0, 0, 6, 0, 0, 0, -194, 187, + 0, -194, 0, 136, 0, 0, 302, 188, 17, 53, + 189, 190, 0, 191, 192, 193, 194, 0, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 35, 36, 0, + 38, 0, 0, 0, 6, 42, 43, 44, 45, -194, + -194, 145, 291, 205, 17, 53, 0, 0, 0, 0, + 0, 206, 207, 264, 0, 0, 0, 0, 0, 0, + 188, 0, 0, 189, 190, 0, 191, 192, 193, 194, + 0, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 35, 36, 0, 38, 17, 53, 0, 6, 42, 43, + 44, 45, 0, 0, 145, 0, 205, 0, 0, 0, + 0, 0, 0, 0, 206, 207, 327, 0, 0, 0, + 0, 0, 0, 188, 0, 0, 189, 190, 0, 191, + 192, 193, 194, 0, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 35, 36, 0, 38, 17, 53, 34, + 6, 42, 43, 44, 45, 0, 0, 145, 0, 205, + 0, 0, 0, 0, 0, 0, 0, 206, 207, 0, + 0, 0, 35, 36, 37, 38, 39, 40, 41, 6, + 42, 43, 44, 45, 46, 0, 0, 0, 104, 105, + 118, 119, 48, 121, 122, 123, 124, 125, 126, 127, + 17, 53, 0, 0, 0, 0, 0, 0, 49, 50, + 0, 0, 34, 128, 129, 130, 131, 132, 133, 134, + 135, 0, 0, 0, 0, 51, 0, 0, 52, 17, + 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, 45, 46, 0, 0, - 0, 47, 0, 0, 0, 48, 0, 279, 35, 36, - 0, 38, 0, 17, 53, 6, -190, -190, 0, -190, - 0, 49, 50, -190, 134, 34, 0, 135, 0, 0, - 0, 0, -190, 0, 0, -190, 0, 0, 51, 0, + 0, 47, 118, 119, 0, 48, 0, 281, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 50, 0, 0, 34, 0, 0, 131, 132, + 133, 134, 135, 0, 0, 0, 0, 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, 45, - 46, 0, 0, 0, 47, 17, 53, 0, 48, 0, - 0, 0, 0, -190, -190, -191, -191, 0, -191, 0, - 0, 0, -191, 0, 49, 50, 0, 0, 34, 0, - 0, -191, 0, 0, -191, 0, 0, 0, 0, 0, - 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, + 46, 257, 0, 0, 47, 0, 0, 117, 48, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 0, 0, 0, 0, 49, 50, 0, 0, 34, 0, + 0, 0, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, - 43, 44, 45, 46, 0, 0, 0, 103, 0, 0, - 0, 48, -191, -191, 0, 0, 296, 297, 0, 298, - 299, 0, 0, 0, 0, 0, 0, 49, 50, 0, + 43, 44, 45, 46, 0, 0, 0, 104, 0, 0, + 0, 48, 0, 0, 0, 0, 298, 299, 0, 300, + 301, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 36, 0, 38, 0, 0, 51, 6, 0, 52, 17, 53, - 30, 54, 55, 56, 134, 0, 0, 300, 0, 0, - 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 0, 0, 0, - 0, 0, 0, 0, 186, 17, 53, 187, 188, 0, - 189, 190, 191, 192, 0, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 35, 36, 0, 38, 0, 0, - 0, 6, 42, 43, 44, 45, -192, -192, 143, -192, - 203, 0, 0, -192, -193, -193, 0, -193, 204, 205, - 0, -193, -192, 0, 0, -192, 0, 0, 35, 36, - -193, 38, 0, -193, 0, 6, 0, 0, 0, 0, - 153, 0, 0, 0, 134, 154, 0, 300, 0, 0, - 115, 17, 53, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -192, -192, 0, 0, 0, 0, 0, - 0, -193, -193, 0, 0, 0, 126, 127, 128, 129, - 130, 131, 132, 133, 398, 17, 53, 0, 0, 399, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, + 30, 54, 55, 56, 136, 0, 0, 302, 0, 0, + 0, 0, 303, 304, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 0, 0, 0, + 0, 0, 0, 0, 188, 17, 53, 189, 190, 0, + 191, 192, 193, 194, 0, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 35, 36, 0, 38, 0, 0, + 0, 6, 42, 43, 44, 45, 0, 0, 145, 0, + 205, 0, 0, 0, 0, 0, 0, 155, 206, 207, + 0, 0, 156, 0, 0, 0, 0, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 400, 0, - 0, 0, 0, 401, 0, 0, 0, 0, 115, 0, - 0, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 126, 127, 128, 129, 130, 131, - 132, 133, 402, 0, 0, 0, 0, 403, 0, 0, - 0, 0, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 367, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 115, 0, 0, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 0, + 0, 17, 53, 128, 129, 130, 131, 132, 133, 134, + 135, 400, 0, 0, 0, 0, 401, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 402, 0, 0, 0, 0, + 403, 0, 0, 0, 0, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 369, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 115, 0, 0, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 373, 0, 126, 127, 128, 129, - 130, 131, 132, 133, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 385, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 115, 0, - 0, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 397, 0, 126, 127, 128, 129, 130, 131, - 132, 133, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 409, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 115, 0, 0, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 404, + 0, 0, 0, 0, 405, 0, 0, 0, 0, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 369, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 371, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 411, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 115, 0, 0, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 432, 0, 126, 127, 128, 129, - 130, 131, 132, 133, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, + 0, 375, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 387, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 411, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 413, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 255, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, + 0, 434, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 260, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 316, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 319, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 322, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 323, 0, 0, 0, 0, + 117, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 259, 0, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 258, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 116, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 329, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 314, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 317, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 320, 0, - 0, 0, 0, 0, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 321, 0, - 0, 0, 0, 115, 0, 0, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, - 127, 128, 129, 130, 131, 132, 133, 257, 0, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 114, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, 327, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 340, 115, 0, 0, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 0, 0, - 0, 0, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 116, 117, 0, 119, 120, 121, 122, 123, 124, - 125, 116, 117, 0, 0, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 126, 127, 128, 129, 130, 131, - 132, 133, 0, 0, 126, 127, 128, 129, 130, 131, - 132, 133, 116, 117, 0, 0, 120, 121, 122, 123, - 124, 125, 116, 117, 0, 0, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 127, 128, 129, 130, - 131, 132, 133, 0, 0, 0, 127, 0, 129, 130, - 131, 132, 133, 116, 117, 0, 0, 120, 121, 122, - 123, 124, 125, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, - 130, 131, 132, 133 + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 342, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 117, 0, 0, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 0, 0, 0, 0, 0, + 128, 129, 130, 131, 132, 133, 134, 135, 118, 119, + 0, 0, 122, 123, 124, 125, 126, 127, 118, 119, + 0, 0, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 0, + 0, 0, 129, 130, 131, 132, 133, 134, 135, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 129, 0, 131, 132, 133, 134, 135, + 0, 0, 0, 0, 0, 131, 132, 133, 134, 135 }; const short parser::yycheck_[] = { - 0, 47, 93, 21, 73, 270, 185, 73, 46, 9, - 189, 51, 3, 4, 29, 270, 270, 11, 12, 13, - 14, 15, 39, 40, 46, 42, 26, 46, 51, 46, - 93, 94, 95, 55, 92, 35, 36, 77, 55, 0, - 98, 58, 57, 101, 35, 36, 63, 64, 48, 52, - 52, 52, 46, 52, 57, 57, 57, 103, 57, 97, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 52, 61, 73, 96, 97, 57, 46, 97, 96, - 97, 61, 73, 96, 97, 264, 55, 98, 52, 39, - 40, 97, 42, 57, 94, 52, 46, 47, 48, 49, - 50, 55, 61, 97, 59, 55, 39, 40, 59, 42, - 52, 52, 143, 46, 140, 57, 57, 53, 51, 51, - 55, 147, 55, 51, 150, 58, 55, 96, 97, 52, - 52, 52, 52, 57, 57, 57, 57, 57, 143, 65, - 66, 141, 59, 143, 52, 410, 96, 97, 148, 57, - 59, 151, 143, 55, 185, 410, 410, 56, 189, 51, - 100, 101, 59, 96, 97, 91, 92, 93, 94, 95, - 51, 61, 241, 204, 205, 241, 194, 208, 51, 51, - 185, 181, 51, 51, 189, 185, 51, 61, 367, 189, - 369, 61, 51, 51, 185, 61, 60, 26, 189, 204, - 205, 55, 97, 208, 204, 205, 61, 51, 208, 61, - 61, 61, 61, 204, 205, 51, 56, 208, 287, 288, - 51, 287, 288, 27, 91, 92, 93, 94, 95, 408, - 101, 51, 411, 264, 60, 261, 60, 51, 51, 270, - 56, 241, 46, 51, 56, 49, 50, 56, 51, 51, - 241, 61, 431, 432, 51, 51, 282, 283, 24, 264, - 61, 61, 61, 61, 264, 270, 335, 29, 61, 335, - 270, 271, 61, 264, 61, 61, 52, 65, 66, 270, - 52, 52, 373, 71, 72, 73, 74, 287, 288, 52, - 316, 61, 61, 319, 61, 9, 287, 288, 9, 103, - 9, 208, 410, 91, 92, 93, 94, 95, 194, -1, - -1, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 335, 367, -1, 369, 365, - -1, -1, 146, -1, 335, 149, -1, -1, 152, -1, - 154, 143, 156, 399, 380, 401, 382, 403, 384, -1, - -1, -1, 367, -1, 369, -1, -1, 367, -1, 369, - -1, -1, 372, -1, -1, -1, 367, 408, 369, 410, - 411, -1, 186, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 185, 198, -1, -1, 189, -1, -1, - 431, 432, -1, 408, -1, 410, 411, -1, 408, 143, - 410, 411, 204, 205, -1, -1, 208, 408, -1, 410, - 411, -1, -1, -1, -1, -1, 431, 432, -1, -1, - -1, 431, 432, -1, -1, -1, 39, 40, -1, 42, - 431, 432, -1, 46, 47, 48, 49, 50, -1, 143, - -1, 185, 55, 257, -1, 189, -1, -1, -1, -1, - 63, 64, -1, 267, -1, 269, -1, -1, 272, -1, - 204, 205, 264, -1, 208, -1, -1, -1, 270, -1, - 284, -1, -1, 143, -1, -1, -1, -1, -1, -1, - -1, 185, -1, 96, 97, 189, -1, -1, -1, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 204, 205, -1, -1, 208, 39, 40, 321, 42, -1, - -1, -1, 46, 143, -1, 185, -1, -1, -1, 189, - 264, 55, 143, -1, 58, -1, 270, 143, -1, -1, - 344, 345, 346, 347, 204, 205, -1, -1, 208, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 368, 185, 370, 371, -1, 189, - 264, -1, 96, 97, 185, 367, 270, 369, 189, 185, - -1, -1, -1, 189, 204, 205, -1, -1, 208, -1, - -1, -1, -1, 204, 205, -1, -1, 208, 204, 205, - -1, -1, 208, -1, 264, -1, -1, -1, 412, -1, - 270, -1, -1, -1, -1, -1, 408, -1, 410, 411, - -1, -1, 39, 40, -1, 42, -1, -1, -1, 46, - -1, -1, -1, 367, -1, 369, -1, -1, 55, 431, - 432, 58, -1, -1, 264, -1, -1, -1, -1, -1, - 270, -1, -1, 264, -1, -1, -1, -1, 264, 270, - 16, -1, -1, -1, 270, -1, -1, -1, -1, -1, - -1, -1, -1, 367, 408, 369, 410, 411, -1, 96, - 97, -1, -1, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, -1, 431, 432, 55, - 56, -1, -1, 59, -1, -1, -1, 367, -1, 369, - -1, -1, -1, -1, 408, -1, 410, 411, -1, 75, - 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 92, 431, 432, 95, - 96, 97, 98, 99, 100, 101, -1, 367, 408, 369, - 410, 411, -1, -1, -1, -1, 367, -1, 369, -1, - -1, 367, -1, 369, -1, -1, -1, -1, -1, -1, - -1, 431, 432, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 408, -1, - 410, 411, -1, -1, -1, -1, -1, 408, -1, 410, - 411, -1, 408, -1, 410, 411, -1, -1, -1, -1, - -1, 431, 432, -1, -1, -1, 11, -1, -1, -1, - 431, 432, -1, -1, 19, 431, 432, 22, 23, -1, - 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, -1, 42, -1, -1, - -1, 46, 47, 48, 49, 50, -1, -1, 53, 54, - 55, -1, -1, -1, -1, -1, -1, -1, 63, 64, - -1, -1, -1, -1, -1, 39, 40, -1, 42, -1, - 39, 40, 46, 42, -1, -1, -1, 46, -1, -1, - -1, 55, 11, -1, 58, -1, 55, -1, -1, 58, - 19, 96, 97, 22, 23, -1, 25, 26, 27, 28, + 0, 47, 21, 94, 73, 52, 73, 272, 272, 9, + 57, 272, 3, 4, 11, 12, 13, 14, 15, 46, + 51, 46, 39, 40, 0, 42, 26, 29, 51, 46, + 47, 48, 49, 50, 92, 35, 36, 52, 55, 61, + 98, 61, 57, 101, 35, 36, 63, 64, 48, 46, + 98, 52, 46, 97, 77, 57, 187, 52, 104, 145, + 191, 55, 57, 93, 94, 95, 55, 46, 39, 40, + 97, 42, 97, 73, 59, 46, 55, 59, 52, 96, + 97, 61, 73, 57, 55, 52, 52, 58, 53, 52, + 57, 57, 63, 64, 57, 95, 55, 96, 97, 52, + 97, 187, 96, 97, 57, 191, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 96, 97, 51, + 206, 207, 59, 52, 210, 96, 97, 145, 57, 52, + 55, 59, 52, 52, 57, 266, 145, 57, 57, 52, + 51, 55, 57, 143, 57, 145, 56, 412, 412, 51, + 150, 412, 59, 153, 145, 39, 40, 97, 42, 51, + 100, 101, 46, 47, 48, 49, 50, 61, 51, 187, + 51, 55, 51, 191, 243, 51, 243, 196, 187, 51, + 266, 61, 191, 183, 61, 60, 272, 187, 206, 207, + 61, 191, 210, 51, 51, 55, 187, 206, 207, 61, + 191, 210, 65, 66, 51, 61, 206, 207, 61, 61, + 210, 61, 96, 97, 27, 206, 207, 51, 56, 210, + 289, 290, 289, 290, 26, 60, 51, 101, 91, 92, + 93, 94, 95, 46, 60, 51, 49, 50, 369, 51, + 371, 51, 97, 243, 61, 56, 51, 56, 266, 56, + 24, 51, 243, 51, 272, 51, 51, 266, 91, 92, + 93, 94, 95, 272, 61, 29, 266, 61, 337, 61, + 337, 61, 272, 273, 61, 266, 61, 61, 61, 410, + 52, 272, 413, 369, 375, 371, 52, 52, 61, 289, + 290, 104, 52, 61, 61, 9, 9, 9, 289, 290, + 412, 210, 433, 434, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 410, -1, 412, 413, 196, -1, + -1, -1, -1, -1, -1, 148, -1, 337, 151, -1, + -1, 154, -1, 156, 145, 158, 337, 433, 434, -1, + -1, 369, -1, 371, -1, 401, -1, 403, -1, 405, + 369, -1, 371, -1, -1, -1, -1, -1, -1, 369, + -1, 371, -1, -1, 374, 188, -1, -1, 369, -1, + 371, -1, -1, -1, -1, -1, 187, 200, -1, -1, + 191, -1, 410, -1, 412, 413, -1, -1, 145, -1, + -1, 410, -1, 412, 413, 206, 207, -1, -1, 210, + 410, -1, 412, 413, -1, 433, 434, -1, -1, 410, + -1, 412, 413, -1, 433, 434, 145, -1, -1, -1, + -1, 142, -1, 433, 434, -1, -1, -1, 149, -1, + 187, 152, 433, 434, 191, -1, 259, -1, 39, 40, + -1, 42, -1, -1, -1, 46, 269, -1, 271, 206, + 207, 274, -1, 210, 55, 266, 145, 58, 187, -1, + -1, 272, 191, 286, -1, -1, 145, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 206, 207, -1, + -1, 210, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, -1, 145, 96, 97, -1, 187, -1, + 323, -1, 191, -1, -1, -1, -1, -1, 187, 266, + -1, -1, 191, -1, -1, 272, -1, 206, 207, -1, + -1, 210, -1, 346, 347, 348, 349, 206, 207, -1, + -1, 210, 39, 40, -1, 42, 187, 266, -1, 46, + 191, -1, 263, 272, 51, -1, -1, 370, 55, 372, + 373, 58, -1, -1, -1, 206, 207, -1, 369, 210, + 371, -1, -1, 284, 285, -1, -1, -1, -1, 39, + 40, -1, 42, -1, -1, -1, 46, 266, -1, 39, + 40, -1, 42, 272, -1, 55, 46, 266, 58, 96, + 97, 414, -1, 272, -1, 55, -1, 318, 58, 410, + 321, 412, 413, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 369, -1, 371, 266, -1, -1, -1, -1, + -1, 272, 433, 434, -1, -1, 96, 97, 39, 40, + -1, 42, -1, -1, -1, 46, 96, 97, 39, 40, + 369, 42, 371, -1, 55, 46, 367, 58, -1, -1, + -1, -1, -1, 410, 55, 412, 413, 58, -1, 39, + 40, 382, 42, 384, -1, 386, 46, -1, -1, -1, + -1, -1, -1, -1, -1, 55, 433, 434, 58, -1, + 369, 410, 371, 412, 413, 96, 97, -1, -1, -1, + 369, -1, 371, -1, -1, 96, 97, -1, -1, -1, + -1, -1, -1, -1, 433, 434, 39, 40, -1, 42, + -1, -1, -1, 46, -1, -1, 96, 97, 369, -1, + 371, 410, 55, 412, 413, 58, -1, -1, -1, -1, + -1, 410, -1, 412, 413, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 433, 434, -1, -1, -1, 39, + 40, -1, 42, -1, 433, 434, 46, -1, -1, 410, + -1, 412, 413, 96, 97, 55, -1, -1, 58, -1, + -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, + -1, 19, 433, 434, 22, 23, -1, 25, 26, 27, + 28, -1, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, -1, 42, -1, 96, 97, 46, 47, + 48, 49, 50, -1, -1, 53, 54, 55, -1, -1, + -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, + -1, -1, 39, 40, -1, 42, -1, 39, 40, 46, + 42, -1, -1, -1, 46, -1, -1, -1, 55, 11, + -1, 58, -1, 55, -1, -1, 58, 19, 96, 97, + 22, 23, -1, 25, 26, 27, 28, -1, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, + 42, -1, -1, -1, 46, 47, 48, 49, 50, 96, + 97, 53, 54, 55, 96, 97, -1, -1, -1, -1, + -1, 63, 64, 12, -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, - 39, 40, -1, 42, -1, -1, -1, 46, 47, 48, - 49, 50, 96, 97, 53, 54, 55, 96, 97, -1, + 39, 40, -1, 42, 96, 97, -1, 46, 47, 48, + 49, 50, -1, -1, 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, 63, 64, 12, -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, 39, 40, -1, 42, 96, 97, -1, + 36, 37, 38, 39, 40, -1, 42, 96, 97, 16, 46, 47, 48, 49, 50, -1, -1, 53, -1, 55, - -1, -1, -1, -1, -1, -1, -1, 63, 64, 12, - -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, 39, 40, -1, 42, - 96, 97, 16, 46, 47, 48, 49, 50, -1, -1, - 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, - 63, 64, -1, -1, -1, 39, 40, 41, 42, 43, + -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, + -1, -1, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, -1, -1, -1, 55, 56, + 65, 66, 59, 68, 69, 70, 71, 72, 73, 74, + 96, 97, -1, -1, -1, -1, -1, -1, 75, 76, + -1, -1, 16, 88, 89, 90, 91, 92, 93, 94, + 95, -1, -1, -1, -1, 92, -1, -1, 95, 96, + 97, 98, 99, 100, 101, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, - -1, 55, -1, -1, -1, 59, -1, 61, 39, 40, - -1, 42, -1, 96, 97, 46, 39, 40, -1, 42, - -1, 75, 76, 46, 55, 16, -1, 58, -1, -1, - -1, -1, 55, -1, -1, 58, -1, -1, 92, -1, + -1, 55, 65, 66, -1, 59, -1, 61, 71, 72, + 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 75, 76, -1, -1, 16, -1, -1, 91, 92, + 93, 94, 95, -1, -1, -1, -1, -1, 92, -1, -1, 95, 96, 97, 98, 99, 100, 101, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, -1, -1, -1, 55, 96, 97, -1, 59, -1, - -1, -1, -1, 96, 97, 39, 40, -1, 42, -1, - -1, -1, 46, -1, 75, 76, -1, -1, 16, -1, - -1, 55, -1, -1, 58, -1, -1, -1, -1, -1, - -1, 92, -1, -1, 95, 96, 97, 98, 99, 100, + 51, 56, -1, -1, 55, -1, -1, 62, 59, -1, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + -1, -1, -1, -1, 75, 76, -1, -1, 16, -1, + -1, -1, -1, 88, 89, 90, 91, 92, 93, 94, + 95, 92, -1, -1, 95, 96, 97, 98, 99, 100, 101, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, 55, -1, -1, - -1, 59, 96, 97, -1, -1, 17, 18, -1, 20, + -1, 59, -1, -1, -1, -1, 17, 18, -1, 20, 21, -1, -1, -1, -1, -1, -1, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, -1, -1, 92, 46, -1, 95, 96, 97, @@ -4245,155 +4258,145 @@ namespace xsk { namespace gsc { namespace iw7 { -1, -1, -1, -1, 19, 96, 97, 22, 23, -1, 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, 42, -1, -1, - -1, 46, 47, 48, 49, 50, 39, 40, 53, 42, - 55, -1, -1, 46, 39, 40, -1, 42, 63, 64, - -1, 46, 55, -1, -1, 58, -1, -1, 39, 40, - 55, 42, -1, 58, -1, 46, -1, -1, -1, -1, - 52, -1, -1, -1, 55, 57, -1, 58, -1, -1, - 62, 96, 97, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 96, 97, -1, -1, -1, -1, -1, - -1, 96, 97, -1, -1, -1, 88, 89, 90, 91, - 92, 93, 94, 95, 52, 96, 97, -1, -1, 57, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 52, -1, - -1, -1, -1, 57, -1, -1, -1, -1, 62, -1, - -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 88, 89, 90, 91, 92, 93, - 94, 95, 52, -1, -1, -1, -1, 57, -1, -1, - -1, -1, 62, -1, -1, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 52, -1, 88, 89, - 90, 91, 92, 93, 94, 95, 62, -1, -1, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 52, -1, 88, 89, 90, 91, 92, 93, 94, 95, - 62, -1, -1, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 52, -1, 88, 89, 90, 91, - 92, 93, 94, 95, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 62, -1, - -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 52, -1, 88, 89, 90, 91, 92, 93, - 94, 95, 62, -1, -1, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 52, -1, 88, 89, - 90, 91, 92, 93, 94, 95, 62, -1, -1, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 52, -1, 88, 89, 90, 91, 92, 93, 94, 95, - 62, -1, -1, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 52, -1, 88, 89, 90, 91, - 92, 93, 94, 95, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 56, -1, - -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 57, -1, - -1, -1, -1, 62, -1, -1, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, - 89, 90, 91, 92, 93, 94, 95, 60, -1, 62, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, - 93, 94, 95, 61, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, 91, 92, 93, 94, 95, 61, 62, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, - 93, 94, 95, 61, 62, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 62, -1, -1, + -1, 46, 47, 48, 49, 50, -1, -1, 53, -1, + 55, -1, -1, -1, -1, -1, -1, 52, 63, 64, + -1, -1, 57, -1, -1, -1, -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 88, 89, 90, 91, 92, 93, 94, 95, -1, -1, - -1, -1, -1, 88, 89, 90, 91, 92, 93, 94, - 95, 65, 66, -1, 68, 69, 70, 71, 72, 73, - 74, 65, 66, -1, -1, 69, 70, 71, 72, 73, - 74, -1, -1, -1, 88, 89, 90, 91, 92, 93, - 94, 95, -1, -1, 88, 89, 90, 91, 92, 93, - 94, 95, 65, 66, -1, -1, 69, 70, 71, 72, - 73, 74, 65, 66, -1, -1, 69, 70, 71, 72, - 73, 74, -1, -1, -1, -1, 89, 90, 91, 92, - 93, 94, 95, -1, -1, -1, 89, -1, 91, 92, - 93, 94, 95, 65, 66, -1, -1, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 96, 97, 88, 89, 90, 91, 92, 93, 94, + 95, 52, -1, -1, -1, -1, 57, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 52, -1, -1, -1, -1, + 57, -1, -1, -1, -1, 62, -1, -1, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 88, 89, 90, 91, 92, 93, 94, 95, 52, + -1, -1, -1, -1, 57, -1, -1, -1, -1, 62, + -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 52, -1, 88, 89, 90, 91, 92, + 93, 94, 95, 62, -1, -1, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 52, -1, 88, + 89, 90, 91, 92, 93, 94, 95, 62, -1, -1, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 52, -1, 88, 89, 90, 91, 92, 93, 94, + 95, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 52, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 62, -1, -1, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, + -1, 88, 89, 90, 91, 92, 93, 94, 95, 62, + -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 52, -1, 88, 89, 90, 91, 92, + 93, 94, 95, 62, -1, -1, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 52, -1, 88, + 89, 90, 91, 92, 93, 94, 95, 62, -1, -1, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 52, -1, 88, 89, 90, 91, 92, 93, 94, + 95, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 56, -1, -1, -1, -1, + -1, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 57, -1, -1, -1, -1, + 62, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, - 92, 93, 94, 95 + -1, -1, -1, -1, -1, -1, 88, 89, 90, 91, + 92, 93, 94, 95, 60, -1, 62, -1, -1, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 88, 89, 90, 91, 92, 93, 94, 95, + 61, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, + 91, 92, 93, 94, 95, 61, 62, -1, -1, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 88, 89, 90, 91, 92, 93, 94, 95, + 61, 62, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 62, -1, -1, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 88, 89, 90, + 91, 92, 93, 94, 95, -1, -1, -1, -1, -1, + 88, 89, 90, 91, 92, 93, 94, 95, 65, 66, + -1, -1, 69, 70, 71, 72, 73, 74, 65, 66, + -1, -1, 69, 70, 71, 72, 73, 74, -1, -1, + -1, 88, 89, 90, 91, 92, 93, 94, 95, -1, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 65, + 66, -1, -1, 69, 70, 71, 72, 73, 74, 65, + 66, -1, -1, 69, 70, 71, 72, 73, 74, -1, + -1, -1, -1, 89, -1, 91, 92, 93, 94, 95, + -1, -1, -1, -1, -1, 91, 92, 93, 94, 95 }; const unsigned char parser::yystos_[] = { 0, 11, 12, 13, 14, 15, 46, 97, 113, 114, - 115, 116, 117, 118, 119, 120, 185, 96, 97, 186, - 186, 51, 0, 115, 116, 117, 51, 77, 61, 61, - 98, 188, 166, 185, 16, 39, 40, 41, 42, 43, + 115, 116, 117, 118, 119, 120, 186, 96, 97, 187, + 187, 51, 0, 115, 116, 117, 51, 77, 61, 61, + 98, 189, 166, 186, 16, 39, 40, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 55, 59, 75, 76, 92, 95, 97, 99, 100, 101, 151, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 52, 52, 57, 55, 185, 186, 55, 185, - 186, 55, 151, 55, 56, 151, 167, 168, 185, 151, - 151, 100, 101, 97, 61, 62, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 88, 89, 90, 91, - 92, 93, 94, 95, 55, 58, 163, 164, 185, 186, - 51, 59, 61, 53, 126, 185, 55, 51, 59, 55, - 51, 59, 55, 52, 57, 151, 57, 56, 151, 151, + 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 52, 52, 57, 55, 186, 187, 55, + 186, 187, 55, 151, 55, 56, 151, 167, 168, 186, + 151, 151, 97, 100, 101, 97, 61, 62, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 88, 89, + 90, 91, 92, 93, 94, 95, 55, 58, 163, 164, + 186, 187, 51, 59, 61, 53, 126, 186, 55, 51, + 59, 55, 51, 59, 55, 52, 57, 151, 57, 56, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 46, 97, - 184, 59, 167, 168, 185, 11, 19, 22, 23, 25, - 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 54, 55, 63, 64, 121, 122, 124, 125, - 126, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 153, 154, 155, 161, 162, 170, - 171, 174, 178, 179, 180, 181, 185, 151, 167, 185, - 151, 167, 185, 151, 151, 56, 151, 60, 56, 185, - 52, 51, 12, 121, 123, 151, 61, 51, 121, 51, - 51, 51, 51, 92, 188, 191, 60, 61, 61, 61, - 151, 61, 51, 51, 55, 161, 162, 174, 174, 54, - 122, 61, 61, 61, 61, 61, 17, 18, 20, 21, - 58, 63, 64, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 56, 52, 51, 56, 52, 51, - 56, 57, 56, 151, 167, 12, 121, 61, 151, 26, - 151, 127, 153, 154, 155, 174, 185, 151, 60, 60, - 61, 167, 167, 151, 51, 51, 51, 51, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 56, - 167, 56, 167, 56, 151, 51, 52, 52, 51, 52, - 61, 29, 57, 52, 52, 52, 151, 151, 151, 151, - 51, 52, 51, 52, 51, 52, 167, 121, 151, 121, - 151, 152, 151, 185, 126, 61, 61, 52, 52, 57, - 52, 57, 52, 57, 167, 167, 167, 52, 24, 52, - 61, 52, 29, 61, 61, 168, 61, 168, 61, 168, - 52, 52, 52, 121, 61, 127, 121, 151, 52, 52, - 52, 52, 52, 61, 61, 61, 121, 121 + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 46, 97, 185, 59, 167, 168, 186, 11, 19, 22, + 23, 25, 26, 27, 28, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 54, 55, 63, 64, 121, 122, + 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 153, 154, 155, 161, + 162, 170, 171, 174, 178, 179, 180, 181, 186, 151, + 167, 186, 151, 167, 186, 151, 151, 56, 151, 60, + 56, 186, 52, 51, 12, 121, 123, 151, 61, 51, + 121, 51, 51, 51, 51, 92, 189, 192, 60, 61, + 61, 61, 151, 61, 51, 51, 55, 161, 162, 174, + 174, 54, 122, 61, 61, 61, 61, 61, 17, 18, + 20, 21, 58, 63, 64, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 56, 52, 51, 56, + 52, 51, 56, 57, 56, 151, 167, 12, 121, 61, + 151, 26, 151, 127, 153, 154, 155, 174, 186, 151, + 60, 60, 61, 167, 167, 151, 51, 51, 51, 51, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 56, 167, 56, 167, 56, 151, 51, 52, 52, + 51, 52, 61, 29, 57, 52, 52, 52, 151, 151, + 151, 151, 51, 52, 51, 52, 51, 52, 167, 121, + 151, 121, 151, 152, 151, 186, 126, 61, 61, 52, + 52, 57, 52, 57, 52, 57, 167, 167, 167, 52, + 24, 52, 61, 52, 29, 61, 61, 168, 61, 168, + 61, 168, 52, 52, 52, 121, 61, 127, 121, 151, + 52, 52, 52, 52, 52, 61, 61, 61, 121, 121 }; const unsigned char @@ -4414,13 +4417,13 @@ namespace xsk { namespace gsc { namespace iw7 { 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 159, 160, 161, 161, - 162, 162, 163, 163, 163, 163, 163, 163, 164, 164, - 164, 164, 165, 166, 166, 166, 167, 167, 168, 168, - 169, 169, 170, 171, 172, 173, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 185, 186, 186, 187, - 188, 189, 190, 190, 191, 191, 192, 193 + 158, 158, 158, 158, 158, 158, 158, 159, 160, 161, + 161, 162, 162, 163, 163, 163, 163, 163, 163, 164, + 164, 164, 164, 165, 166, 166, 166, 167, 167, 168, + 168, 169, 169, 170, 171, 172, 173, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 186, 187, + 187, 188, 189, 190, 191, 191, 192, 192, 193, 194 }; const signed char @@ -4441,13 +4444,13 @@ namespace xsk { namespace gsc { namespace iw7 { 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, - 2, 2, 4, 6, 5, 7, 5, 7, 8, 9, - 9, 9, 3, 3, 1, 0, 1, 0, 3, 1, - 2, 3, 4, 3, 3, 3, 1, 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, 2, 1, 2, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, + 1, 2, 2, 4, 6, 5, 7, 5, 7, 8, + 9, 9, 9, 3, 3, 1, 0, 1, 0, 3, + 1, 2, 3, 4, 3, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, + 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 7, 2, 1, 2, 1, 1, 1 }; @@ -4457,28 +4460,28 @@ namespace xsk { namespace gsc { namespace iw7 { const short parser::yyrline_[] = { - 0, 257, 257, 258, 262, 264, 266, 268, 270, 272, - 277, 281, 286, 287, 288, 289, 290, 294, 299, 304, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 336, 337, 341, 343, 348, 350, - 355, 356, 360, 361, 365, 367, 369, 372, 376, 378, - 383, 385, 387, 392, 397, 399, 404, 409, 411, 416, - 418, 423, 428, 433, 438, 443, 448, 453, 455, 460, - 465, 467, 472, 477, 482, 487, 489, 494, 499, 504, - 509, 510, 511, 515, 516, 520, 522, 524, 526, 528, - 530, 532, 534, 536, 538, 540, 545, 547, 552, 554, - 559, 564, 566, 568, 570, 572, 574, 576, 578, 580, - 582, 584, 586, 588, 590, 592, 594, 596, 598, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 633, 638, 643, 644, - 647, 648, 652, 654, 656, 658, 660, 662, 667, 669, - 671, 673, 678, 683, 685, 688, 692, 695, 699, 701, - 706, 708, 713, 718, 723, 728, 733, 734, 735, 736, - 737, 738, 739, 740, 741, 745, 750, 755, 760, 765, - 770, 775, 780, 785, 790, 795, 797, 802, 804, 809, - 814, 819, 824, 826, 831, 833, 838, 843 + 0, 258, 258, 259, 263, 265, 267, 269, 271, 273, + 278, 282, 287, 288, 289, 290, 291, 295, 300, 305, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 337, 338, 342, 344, 349, 351, + 356, 357, 361, 362, 366, 368, 370, 373, 377, 379, + 384, 386, 388, 393, 398, 400, 405, 410, 412, 417, + 419, 424, 429, 434, 439, 444, 449, 454, 456, 461, + 466, 468, 473, 478, 483, 488, 490, 495, 500, 505, + 510, 511, 512, 516, 517, 521, 523, 525, 527, 529, + 531, 533, 535, 537, 539, 541, 546, 548, 553, 555, + 560, 565, 567, 569, 571, 573, 575, 577, 579, 581, + 583, 585, 587, 589, 591, 593, 595, 597, 599, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 635, 640, 645, + 646, 649, 650, 654, 656, 658, 660, 662, 664, 669, + 671, 673, 675, 680, 685, 687, 690, 694, 697, 701, + 703, 708, 710, 715, 720, 725, 730, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 747, 752, 757, 762, + 767, 772, 777, 782, 787, 792, 797, 802, 804, 809, + 811, 816, 821, 826, 831, 833, 838, 840, 845, 850 }; void @@ -4511,9 +4514,9 @@ namespace xsk { namespace gsc { namespace iw7 { #line 13 "parser.ypp" } } } // xsk::gsc::iw7 -#line 4515 "parser.cpp" +#line 4518 "parser.cpp" -#line 847 "parser.ypp" +#line 854 "parser.ypp" void xsk::gsc::iw7::parser::error(const xsk::gsc::location& loc, const std::string& msg) diff --git a/src/iw7/xsk/parser.hpp b/src/iw7/xsk/parser.hpp index 2044b21c..813607d5 100644 --- a/src/iw7/xsk/parser.hpp +++ b/src/iw7/xsk/parser.hpp @@ -447,6 +447,7 @@ namespace xsk { namespace gsc { namespace iw7 { // expr_binary // expr_primitive // expr_object + // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -1001,16 +1002,17 @@ namespace xsk { namespace gsc { namespace iw7 { S_expr_level = 181, // expr_level S_expr_animation = 182, // expr_animation S_expr_animtree = 183, // expr_animtree - S_expr_identifier_nosize = 184, // expr_identifier_nosize - S_expr_identifier = 185, // expr_identifier - S_expr_path = 186, // expr_path - S_expr_istring = 187, // expr_istring - S_expr_string = 188, // expr_string - S_expr_vector = 189, // expr_vector - S_expr_float = 190, // expr_float - S_expr_integer = 191, // expr_integer - S_expr_false = 192, // expr_false - S_expr_true = 193 // expr_true + S_expr_identifier_neg = 184, // expr_identifier_neg + S_expr_identifier_nosize = 185, // expr_identifier_nosize + S_expr_identifier = 186, // expr_identifier + S_expr_path = 187, // expr_path + S_expr_istring = 188, // expr_istring + S_expr_string = 189, // expr_string + S_expr_vector = 190, // expr_vector + S_expr_float = 191, // expr_float + S_expr_integer = 192, // expr_integer + S_expr_false = 193, // expr_false + S_expr_true = 194 // expr_true }; }; @@ -1077,6 +1079,7 @@ namespace xsk { namespace gsc { namespace iw7 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (std::move (that.value)); break; @@ -2331,6 +2334,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.template destroy< ast::expr > (); break; @@ -4770,8 +4774,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 2303, ///< Last index in yytable_. - yynnts_ = 82, ///< Number of nonterminal symbols. + yylast_ = 2239, ///< Last index in yytable_. + yynnts_ = 83, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4828,6 +4832,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (YY_MOVE (that.value)); break; @@ -5142,6 +5147,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (s.value)); break; @@ -5462,7 +5468,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::iw7 -#line 5466 "parser.hpp" +#line 5472 "parser.hpp" diff --git a/src/iw8/xsk/parser.cpp b/src/iw8/xsk/parser.cpp index 59d15c4b..43fe9f74 100644 --- a/src/iw8/xsk/parser.cpp +++ b/src/iw8/xsk/parser.cpp @@ -245,6 +245,7 @@ namespace xsk { namespace gsc { namespace iw8 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.YY_MOVE_OR_COPY< ast::expr > (YY_MOVE (that.value)); break; @@ -555,6 +556,7 @@ namespace xsk { namespace gsc { namespace iw8 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (that.value)); break; @@ -865,6 +867,7 @@ namespace xsk { namespace gsc { namespace iw8 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (that.value); break; @@ -1174,6 +1177,7 @@ namespace xsk { namespace gsc { namespace iw8 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (that.value); break; @@ -1738,6 +1742,7 @@ namespace xsk { namespace gsc { namespace iw8 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg yylhs.value.emplace< ast::expr > (); break; @@ -2024,1345 +2029,1357 @@ namespace xsk { namespace gsc { namespace iw8 { switch (yyn) { case 2: // root: program -#line 263 "parser.ypp" +#line 264 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 2030 "parser.cpp" +#line 2035 "parser.cpp" break; case 3: // root: %empty -#line 264 "parser.ypp" +#line 265 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 2036 "parser.cpp" +#line 2041 "parser.cpp" break; case 4: // program: program inline -#line 269 "parser.ypp" +#line 270 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2042 "parser.cpp" +#line 2047 "parser.cpp" break; case 5: // program: program include -#line 271 "parser.ypp" +#line 272 "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 2048 "parser.cpp" +#line 2053 "parser.cpp" break; case 6: // program: program declaration -#line 273 "parser.ypp" +#line 274 "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 2054 "parser.cpp" +#line 2059 "parser.cpp" break; case 7: // program: inline -#line 275 "parser.ypp" +#line 276 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2060 "parser.cpp" +#line 2065 "parser.cpp" break; case 8: // program: include -#line 277 "parser.ypp" +#line 278 "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 2066 "parser.cpp" +#line 2071 "parser.cpp" break; case 9: // program: declaration -#line 279 "parser.ypp" +#line 280 "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 2072 "parser.cpp" +#line 2077 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" -#line 283 "parser.ypp" +#line 284 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2078 "parser.cpp" +#line 2083 "parser.cpp" break; case 11: // include: "#include" expr_path ";" -#line 288 "parser.ypp" +#line 289 "parser.ypp" { yylhs.value.as < ast::include::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_path::ptr > ())); } -#line 2084 "parser.cpp" +#line 2089 "parser.cpp" break; case 12: // declaration: "/#" -#line 292 "parser.ypp" +#line 293 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2090 "parser.cpp" +#line 2095 "parser.cpp" break; case 13: // declaration: "#/" -#line 293 "parser.ypp" +#line 294 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2096 "parser.cpp" +#line 2101 "parser.cpp" break; case 14: // declaration: decl_usingtree -#line 294 "parser.ypp" +#line 295 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2102 "parser.cpp" +#line 2107 "parser.cpp" break; case 15: // declaration: decl_constant -#line 295 "parser.ypp" +#line 296 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2108 "parser.cpp" +#line 2113 "parser.cpp" break; case 16: // declaration: decl_thread -#line 296 "parser.ypp" +#line 297 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2114 "parser.cpp" +#line 2119 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" -#line 301 "parser.ypp" +#line 302 "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 2120 "parser.cpp" +#line 2125 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" -#line 306 "parser.ypp" +#line 307 "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 2126 "parser.cpp" +#line 2131 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block -#line 311 "parser.ypp" +#line 312 "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 2132 "parser.cpp" +#line 2137 "parser.cpp" break; case 20: // stmt: stmt_block -#line 315 "parser.ypp" +#line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2138 "parser.cpp" +#line 2143 "parser.cpp" break; case 21: // stmt: stmt_call -#line 316 "parser.ypp" +#line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2144 "parser.cpp" +#line 2149 "parser.cpp" break; case 22: // stmt: stmt_assign -#line 317 "parser.ypp" +#line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2150 "parser.cpp" +#line 2155 "parser.cpp" break; case 23: // stmt: stmt_endon -#line 318 "parser.ypp" +#line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2156 "parser.cpp" +#line 2161 "parser.cpp" break; case 24: // stmt: stmt_notify -#line 319 "parser.ypp" +#line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2162 "parser.cpp" +#line 2167 "parser.cpp" break; case 25: // stmt: stmt_wait -#line 320 "parser.ypp" +#line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2168 "parser.cpp" +#line 2173 "parser.cpp" break; case 26: // stmt: stmt_waittill -#line 321 "parser.ypp" +#line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2174 "parser.cpp" +#line 2179 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch -#line 322 "parser.ypp" +#line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2180 "parser.cpp" +#line 2185 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend -#line 323 "parser.ypp" +#line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2186 "parser.cpp" +#line 2191 "parser.cpp" break; case 29: // stmt: stmt_waitframe -#line 324 "parser.ypp" +#line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waitframe = std::move(yystack_[0].value.as < ast::stmt_waitframe::ptr > ()); } -#line 2192 "parser.cpp" +#line 2197 "parser.cpp" break; case 30: // stmt: stmt_if -#line 325 "parser.ypp" +#line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2198 "parser.cpp" +#line 2203 "parser.cpp" break; case 31: // stmt: stmt_ifelse -#line 326 "parser.ypp" +#line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2204 "parser.cpp" +#line 2209 "parser.cpp" break; case 32: // stmt: stmt_while -#line 327 "parser.ypp" +#line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2210 "parser.cpp" +#line 2215 "parser.cpp" break; case 33: // stmt: stmt_dowhile -#line 328 "parser.ypp" +#line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2216 "parser.cpp" +#line 2221 "parser.cpp" break; case 34: // stmt: stmt_for -#line 329 "parser.ypp" +#line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2222 "parser.cpp" +#line 2227 "parser.cpp" break; case 35: // stmt: stmt_foreach -#line 330 "parser.ypp" +#line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2228 "parser.cpp" +#line 2233 "parser.cpp" break; case 36: // stmt: stmt_switch -#line 331 "parser.ypp" +#line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2234 "parser.cpp" +#line 2239 "parser.cpp" break; case 37: // stmt: stmt_case -#line 332 "parser.ypp" +#line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2240 "parser.cpp" +#line 2245 "parser.cpp" break; case 38: // stmt: stmt_default -#line 333 "parser.ypp" +#line 334 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2246 "parser.cpp" +#line 2251 "parser.cpp" break; case 39: // stmt: stmt_break -#line 334 "parser.ypp" +#line 335 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2252 "parser.cpp" +#line 2257 "parser.cpp" break; case 40: // stmt: stmt_continue -#line 335 "parser.ypp" +#line 336 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2258 "parser.cpp" +#line 2263 "parser.cpp" break; case 41: // stmt: stmt_return -#line 336 "parser.ypp" +#line 337 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2264 "parser.cpp" +#line 2269 "parser.cpp" break; case 42: // stmt: stmt_breakpoint -#line 337 "parser.ypp" +#line 338 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2270 "parser.cpp" +#line 2275 "parser.cpp" break; case 43: // stmt: stmt_prof_begin -#line 338 "parser.ypp" +#line 339 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2276 "parser.cpp" +#line 2281 "parser.cpp" break; case 44: // stmt: stmt_prof_end -#line 339 "parser.ypp" +#line 340 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2282 "parser.cpp" +#line 2287 "parser.cpp" break; case 45: // stmt_or_dev: stmt -#line 343 "parser.ypp" +#line 344 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2288 "parser.cpp" +#line 2293 "parser.cpp" break; case 46: // stmt_or_dev: stmt_dev -#line 344 "parser.ypp" +#line 345 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2294 "parser.cpp" +#line 2299 "parser.cpp" break; case 47: // stmt_list: stmt_list stmt -#line 349 "parser.ypp" +#line 350 "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 2300 "parser.cpp" +#line 2305 "parser.cpp" break; case 48: // stmt_list: stmt -#line 351 "parser.ypp" +#line 352 "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 2306 "parser.cpp" +#line 2311 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev -#line 356 "parser.ypp" +#line 357 "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 2312 "parser.cpp" +#line 2317 "parser.cpp" break; case 50: // stmt_or_dev_list: stmt_or_dev -#line 358 "parser.ypp" +#line 359 "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 2318 "parser.cpp" +#line 2323 "parser.cpp" break; case 51: // stmt_dev: "/#" stmt_list "#/" -#line 362 "parser.ypp" +#line 363 "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 2324 "parser.cpp" +#line 2329 "parser.cpp" break; case 52: // stmt_dev: "/#" "#/" -#line 363 "parser.ypp" +#line 364 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2330 "parser.cpp" +#line 2335 "parser.cpp" break; case 53: // stmt_block: "{" stmt_or_dev_list "}" -#line 367 "parser.ypp" +#line 368 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2336 "parser.cpp" +#line 2341 "parser.cpp" break; case 54: // stmt_block: "{" "}" -#line 368 "parser.ypp" +#line 369 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2342 "parser.cpp" +#line 2347 "parser.cpp" break; case 55: // stmt_expr: expr_assign -#line 373 "parser.ypp" +#line 374 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2348 "parser.cpp" +#line 2353 "parser.cpp" break; case 56: // stmt_expr: expr_increment -#line 375 "parser.ypp" +#line 376 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2354 "parser.cpp" +#line 2359 "parser.cpp" break; case 57: // stmt_expr: expr_decrement -#line 377 "parser.ypp" +#line 378 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2360 "parser.cpp" +#line 2365 "parser.cpp" break; case 58: // stmt_expr: %empty -#line 379 "parser.ypp" +#line 380 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2366 "parser.cpp" +#line 2371 "parser.cpp" break; case 59: // stmt_call: expr_call ";" -#line 384 "parser.ypp" +#line 385 "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 2372 "parser.cpp" +#line 2377 "parser.cpp" break; case 60: // stmt_call: expr_method ";" -#line 386 "parser.ypp" +#line 387 "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 2378 "parser.cpp" +#line 2383 "parser.cpp" break; case 61: // stmt_assign: expr_assign ";" -#line 391 "parser.ypp" +#line 392 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2384 "parser.cpp" +#line 2389 "parser.cpp" break; case 62: // stmt_assign: expr_increment ";" -#line 393 "parser.ypp" +#line 394 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2390 "parser.cpp" +#line 2395 "parser.cpp" break; case 63: // stmt_assign: expr_decrement ";" -#line 395 "parser.ypp" +#line 396 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2396 "parser.cpp" +#line 2401 "parser.cpp" break; case 64: // stmt_endon: expr_object "endon" "(" expr ")" ";" -#line 400 "parser.ypp" +#line 401 "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 2402 "parser.cpp" +#line 2407 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" -#line 405 "parser.ypp" +#line 406 "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 2408 "parser.cpp" +#line 2413 "parser.cpp" break; case 66: // stmt_notify: expr_object "notify" "(" expr ")" ";" -#line 407 "parser.ypp" +#line 408 "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 2414 "parser.cpp" +#line 2419 "parser.cpp" break; case 67: // stmt_wait: "wait" expr ";" -#line 412 "parser.ypp" +#line 413 "parser.ypp" { yylhs.value.as < ast::stmt_wait::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2420 "parser.cpp" +#line 2425 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" -#line 417 "parser.ypp" +#line 418 "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 2426 "parser.cpp" +#line 2431 "parser.cpp" break; case 69: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" -#line 419 "parser.ypp" +#line 420 "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 2432 "parser.cpp" +#line 2437 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" -#line 424 "parser.ypp" +#line 425 "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 2438 "parser.cpp" +#line 2443 "parser.cpp" break; case 71: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" -#line 426 "parser.ypp" +#line 427 "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 2444 "parser.cpp" +#line 2449 "parser.cpp" break; case 72: // stmt_waittillframeend: "waittillframeend" ";" -#line 431 "parser.ypp" +#line 432 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2450 "parser.cpp" +#line 2455 "parser.cpp" break; case 73: // stmt_waitframe: "waitframe" ";" -#line 436 "parser.ypp" +#line 437 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2456 "parser.cpp" +#line 2461 "parser.cpp" break; case 74: // stmt_waitframe: "waitframe" "(" ")" ";" -#line 438 "parser.ypp" +#line 439 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2462 "parser.cpp" +#line 2467 "parser.cpp" break; case 75: // stmt_if: "if" "(" expr ")" stmt -#line 443 "parser.ypp" +#line 444 "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 2468 "parser.cpp" +#line 2473 "parser.cpp" break; case 76: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt -#line 448 "parser.ypp" +#line 449 "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 2474 "parser.cpp" +#line 2479 "parser.cpp" break; case 77: // stmt_while: "while" "(" expr ")" stmt -#line 453 "parser.ypp" +#line 454 "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 2480 "parser.cpp" +#line 2485 "parser.cpp" break; case 78: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" -#line 458 "parser.ypp" +#line 459 "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 2486 "parser.cpp" +#line 2491 "parser.cpp" break; case 79: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt -#line 463 "parser.ypp" +#line 464 "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 2492 "parser.cpp" +#line 2497 "parser.cpp" break; case 80: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt -#line 468 "parser.ypp" +#line 469 "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 2498 "parser.cpp" +#line 2503 "parser.cpp" break; case 81: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt -#line 470 "parser.ypp" +#line 471 "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 2504 "parser.cpp" +#line 2509 "parser.cpp" break; case 82: // stmt_switch: "switch" "(" expr ")" stmt_block -#line 475 "parser.ypp" +#line 476 "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 2510 "parser.cpp" +#line 2515 "parser.cpp" break; case 83: // stmt_case: "case" expr_integer ":" -#line 480 "parser.ypp" +#line 481 "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 2516 "parser.cpp" +#line 2521 "parser.cpp" break; case 84: // stmt_case: "case" expr_string ":" -#line 482 "parser.ypp" +#line 483 "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 2522 "parser.cpp" +#line 2527 "parser.cpp" break; case 85: // stmt_default: "default" ":" -#line 487 "parser.ypp" +#line 488 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2528 "parser.cpp" +#line 2533 "parser.cpp" break; case 86: // stmt_break: "break" ";" -#line 492 "parser.ypp" +#line 493 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2534 "parser.cpp" +#line 2539 "parser.cpp" break; case 87: // stmt_continue: "continue" ";" -#line 497 "parser.ypp" +#line 498 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2540 "parser.cpp" +#line 2545 "parser.cpp" break; case 88: // stmt_return: "return" expr ";" -#line 502 "parser.ypp" +#line 503 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2546 "parser.cpp" +#line 2551 "parser.cpp" break; case 89: // stmt_return: "return" ";" -#line 504 "parser.ypp" +#line 505 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2552 "parser.cpp" +#line 2557 "parser.cpp" break; case 90: // stmt_breakpoint: "breakpoint" ";" -#line 509 "parser.ypp" +#line 510 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2558 "parser.cpp" +#line 2563 "parser.cpp" break; case 91: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" -#line 514 "parser.ypp" +#line 515 "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 2564 "parser.cpp" +#line 2569 "parser.cpp" break; case 92: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" -#line 519 "parser.ypp" +#line 520 "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 2570 "parser.cpp" +#line 2575 "parser.cpp" break; case 93: // expr: expr_ternary -#line 523 "parser.ypp" +#line 524 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2576 "parser.cpp" +#line 2581 "parser.cpp" break; case 94: // expr: expr_binary -#line 524 "parser.ypp" +#line 525 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2582 "parser.cpp" +#line 2587 "parser.cpp" break; case 95: // expr: expr_primitive -#line 525 "parser.ypp" +#line 526 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2588 "parser.cpp" +#line 2593 "parser.cpp" break; case 96: // expr_or_empty: expr -#line 529 "parser.ypp" +#line 530 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2594 "parser.cpp" +#line 2599 "parser.cpp" break; case 97: // expr_or_empty: %empty -#line 530 "parser.ypp" +#line 531 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2600 "parser.cpp" +#line 2605 "parser.cpp" break; case 98: // expr_assign: expr_object "=" expr -#line 535 "parser.ypp" +#line 536 "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 2606 "parser.cpp" +#line 2611 "parser.cpp" break; case 99: // expr_assign: expr_object "|=" expr -#line 537 "parser.ypp" +#line 538 "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 2612 "parser.cpp" +#line 2617 "parser.cpp" break; case 100: // expr_assign: expr_object "&=" expr -#line 539 "parser.ypp" +#line 540 "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 2618 "parser.cpp" +#line 2623 "parser.cpp" break; case 101: // expr_assign: expr_object "^=" expr -#line 541 "parser.ypp" +#line 542 "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 2624 "parser.cpp" +#line 2629 "parser.cpp" break; case 102: // expr_assign: expr_object "<<=" expr -#line 543 "parser.ypp" +#line 544 "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 2630 "parser.cpp" +#line 2635 "parser.cpp" break; case 103: // expr_assign: expr_object ">>=" expr -#line 545 "parser.ypp" +#line 546 "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 2636 "parser.cpp" +#line 2641 "parser.cpp" break; case 104: // expr_assign: expr_object "+=" expr -#line 547 "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 2642 "parser.cpp" +#line 2647 "parser.cpp" break; case 105: // expr_assign: expr_object "-=" expr -#line 549 "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 2648 "parser.cpp" +#line 2653 "parser.cpp" break; case 106: // expr_assign: expr_object "*=" expr -#line 551 "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 2654 "parser.cpp" +#line 2659 "parser.cpp" break; case 107: // expr_assign: expr_object "/=" expr -#line 553 "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 2660 "parser.cpp" +#line 2665 "parser.cpp" break; case 108: // expr_assign: expr_object "%=" expr -#line 555 "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 2666 "parser.cpp" +#line 2671 "parser.cpp" break; case 109: // expr_increment: "++" expr_object -#line 560 "parser.ypp" +#line 561 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2672 "parser.cpp" +#line 2677 "parser.cpp" break; case 110: // expr_increment: expr_object "++" -#line 562 "parser.ypp" +#line 563 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2678 "parser.cpp" +#line 2683 "parser.cpp" break; case 111: // expr_decrement: "--" expr_object -#line 567 "parser.ypp" +#line 568 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2684 "parser.cpp" +#line 2689 "parser.cpp" break; case 112: // expr_decrement: expr_object "--" -#line 569 "parser.ypp" +#line 570 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2690 "parser.cpp" +#line 2695 "parser.cpp" break; case 113: // expr_ternary: expr "?" expr ":" expr -#line 574 "parser.ypp" +#line 575 "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 2696 "parser.cpp" +#line 2701 "parser.cpp" break; case 114: // expr_binary: expr "||" expr -#line 579 "parser.ypp" +#line 580 "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 2702 "parser.cpp" +#line 2707 "parser.cpp" break; case 115: // expr_binary: expr "&&" expr -#line 581 "parser.ypp" +#line 582 "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 2708 "parser.cpp" +#line 2713 "parser.cpp" break; case 116: // expr_binary: expr "==" expr -#line 583 "parser.ypp" +#line 584 "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 2714 "parser.cpp" +#line 2719 "parser.cpp" break; case 117: // expr_binary: expr "!=" expr -#line 585 "parser.ypp" +#line 586 "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 2720 "parser.cpp" +#line 2725 "parser.cpp" break; case 118: // expr_binary: expr "<=" expr -#line 587 "parser.ypp" +#line 588 "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 2726 "parser.cpp" +#line 2731 "parser.cpp" break; case 119: // expr_binary: expr ">=" expr -#line 589 "parser.ypp" +#line 590 "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 2732 "parser.cpp" +#line 2737 "parser.cpp" break; case 120: // expr_binary: expr "<" expr -#line 591 "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 2738 "parser.cpp" +#line 2743 "parser.cpp" break; case 121: // expr_binary: expr ">" expr -#line 593 "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 2744 "parser.cpp" +#line 2749 "parser.cpp" break; case 122: // expr_binary: expr "|" expr -#line 595 "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 2750 "parser.cpp" +#line 2755 "parser.cpp" break; case 123: // expr_binary: expr "&" expr -#line 597 "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 2756 "parser.cpp" +#line 2761 "parser.cpp" break; case 124: // expr_binary: expr "^" expr -#line 599 "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 2762 "parser.cpp" +#line 2767 "parser.cpp" break; case 125: // expr_binary: expr "<<" expr -#line 601 "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 2768 "parser.cpp" +#line 2773 "parser.cpp" break; case 126: // expr_binary: expr ">>" expr -#line 603 "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 2774 "parser.cpp" +#line 2779 "parser.cpp" break; case 127: // expr_binary: expr "+" expr -#line 605 "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 2780 "parser.cpp" +#line 2785 "parser.cpp" break; case 128: // expr_binary: expr "-" expr -#line 607 "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 2786 "parser.cpp" +#line 2791 "parser.cpp" break; case 129: // expr_binary: expr "*" expr -#line 609 "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 2792 "parser.cpp" +#line 2797 "parser.cpp" break; case 130: // expr_binary: expr "/" expr -#line 611 "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 2798 "parser.cpp" +#line 2803 "parser.cpp" break; case 131: // expr_binary: expr "%" expr -#line 613 "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 2804 "parser.cpp" +#line 2809 "parser.cpp" break; case 132: // expr_primitive: expr_complement -#line 617 "parser.ypp" +#line 618 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2810 "parser.cpp" +#line 2815 "parser.cpp" break; case 133: // expr_primitive: expr_not -#line 618 "parser.ypp" +#line 619 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2816 "parser.cpp" +#line 2821 "parser.cpp" break; case 134: // expr_primitive: expr_call -#line 619 "parser.ypp" +#line 620 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2822 "parser.cpp" +#line 2827 "parser.cpp" break; case 135: // expr_primitive: expr_method -#line 620 "parser.ypp" +#line 621 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2828 "parser.cpp" +#line 2833 "parser.cpp" break; case 136: // expr_primitive: expr_add_array -#line 621 "parser.ypp" +#line 622 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2834 "parser.cpp" +#line 2839 "parser.cpp" break; case 137: // expr_primitive: expr_isdefined -#line 622 "parser.ypp" +#line 623 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_isdefined::ptr > ()); } -#line 2840 "parser.cpp" +#line 2845 "parser.cpp" break; case 138: // expr_primitive: expr_istrue -#line 623 "parser.ypp" +#line 624 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istrue::ptr > ()); } -#line 2846 "parser.cpp" +#line 2851 "parser.cpp" break; case 139: // expr_primitive: expr_reference -#line 624 "parser.ypp" +#line 625 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2852 "parser.cpp" +#line 2857 "parser.cpp" break; case 140: // expr_primitive: expr_array -#line 625 "parser.ypp" +#line 626 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2858 "parser.cpp" +#line 2863 "parser.cpp" break; case 141: // expr_primitive: expr_field -#line 626 "parser.ypp" +#line 627 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2864 "parser.cpp" +#line 2869 "parser.cpp" break; case 142: // expr_primitive: expr_size -#line 627 "parser.ypp" +#line 628 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2870 "parser.cpp" +#line 2875 "parser.cpp" break; case 143: // expr_primitive: expr_paren -#line 628 "parser.ypp" +#line 629 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2876 "parser.cpp" +#line 2881 "parser.cpp" break; case 144: // expr_primitive: expr_thisthread -#line 629 "parser.ypp" +#line 630 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2882 "parser.cpp" +#line 2887 "parser.cpp" break; case 145: // expr_primitive: expr_empty_array -#line 630 "parser.ypp" +#line 631 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2888 "parser.cpp" +#line 2893 "parser.cpp" break; case 146: // expr_primitive: expr_undefined -#line 631 "parser.ypp" +#line 632 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2894 "parser.cpp" +#line 2899 "parser.cpp" break; case 147: // expr_primitive: expr_game -#line 632 "parser.ypp" +#line 633 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2900 "parser.cpp" +#line 2905 "parser.cpp" break; case 148: // expr_primitive: expr_self -#line 633 "parser.ypp" +#line 634 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2906 "parser.cpp" +#line 2911 "parser.cpp" break; case 149: // expr_primitive: expr_anim -#line 634 "parser.ypp" +#line 635 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2912 "parser.cpp" +#line 2917 "parser.cpp" break; case 150: // expr_primitive: expr_level -#line 635 "parser.ypp" +#line 636 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2918 "parser.cpp" +#line 2923 "parser.cpp" break; case 151: // expr_primitive: expr_animation -#line 636 "parser.ypp" +#line 637 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2924 "parser.cpp" +#line 2929 "parser.cpp" break; case 152: // expr_primitive: expr_animtree -#line 637 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2930 "parser.cpp" - break; - - case 153: // expr_primitive: expr_identifier #line 638 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 2936 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2935 "parser.cpp" break; - case 154: // expr_primitive: expr_istring + case 153: // expr_primitive: expr_identifier_neg #line 639 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } -#line 2942 "parser.cpp" + { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } +#line 2941 "parser.cpp" break; - case 155: // expr_primitive: expr_string + case 154: // expr_primitive: expr_identifier #line 640 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } -#line 2948 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 2947 "parser.cpp" break; - case 156: // expr_primitive: expr_vector + case 155: // expr_primitive: expr_istring #line 641 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } -#line 2954 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } +#line 2953 "parser.cpp" break; - case 157: // expr_primitive: expr_float + case 156: // expr_primitive: expr_string #line 642 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } -#line 2960 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } +#line 2959 "parser.cpp" break; - case 158: // expr_primitive: expr_integer + case 157: // expr_primitive: expr_vector #line 643 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } -#line 2966 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } +#line 2965 "parser.cpp" break; - case 159: // expr_primitive: expr_false + case 158: // expr_primitive: expr_float #line 644 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } -#line 2972 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } +#line 2971 "parser.cpp" break; - case 160: // expr_primitive: expr_true + case 159: // expr_primitive: expr_integer #line 645 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } +#line 2977 "parser.cpp" + break; + + case 160: // expr_primitive: expr_false +#line 646 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } +#line 2983 "parser.cpp" + break; + + case 161: // expr_primitive: expr_true +#line 647 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_true::ptr > ()); } -#line 2978 "parser.cpp" +#line 2989 "parser.cpp" break; - case 161: // expr_complement: "~" expr -#line 650 "parser.ypp" + case 162: // expr_complement: "~" expr +#line 652 "parser.ypp" { yylhs.value.as < ast::expr_complement::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2984 "parser.cpp" +#line 2995 "parser.cpp" break; - case 162: // expr_not: "!" expr -#line 655 "parser.ypp" + case 163: // expr_not: "!" expr +#line 657 "parser.ypp" { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2990 "parser.cpp" +#line 3001 "parser.cpp" break; - case 163: // expr_call: expr_function -#line 659 "parser.ypp" + case 164: // expr_call: expr_function +#line 661 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2996 "parser.cpp" +#line 3007 "parser.cpp" break; - case 164: // expr_call: expr_pointer -#line 660 "parser.ypp" + case 165: // expr_call: expr_pointer +#line 662 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 3002 "parser.cpp" +#line 3013 "parser.cpp" break; - case 165: // expr_method: expr_object expr_function -#line 663 "parser.ypp" + case 166: // expr_method: expr_object expr_function +#line 665 "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 3008 "parser.cpp" +#line 3019 "parser.cpp" break; - case 166: // expr_method: expr_object expr_pointer -#line 664 "parser.ypp" + case 167: // expr_method: expr_object expr_pointer +#line 666 "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 3014 "parser.cpp" +#line 3025 "parser.cpp" break; - case 167: // expr_function: expr_identifier "(" expr_arguments ")" -#line 669 "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 3020 "parser.cpp" - break; - - case 168: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" + case 168: // expr_function: expr_identifier "(" expr_arguments ")" #line 671 "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 3026 "parser.cpp" + { 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 3031 "parser.cpp" break; - case 169: // expr_function: "thread" expr_identifier "(" expr_arguments ")" + case 169: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" #line 673 "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 3032 "parser.cpp" + { 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 3037 "parser.cpp" break; - case 170: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 170: // expr_function: "thread" expr_identifier "(" expr_arguments ")" #line 675 "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 3038 "parser.cpp" + { 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 3043 "parser.cpp" break; - case 171: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" + case 171: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" #line 677 "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::childthread); } -#line 3044 "parser.cpp" + { 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 3049 "parser.cpp" break; - case 172: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 172: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" #line 679 "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::childthread); } +#line 3055 "parser.cpp" + break; + + case 173: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" +#line 681 "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::childthread); } -#line 3050 "parser.cpp" +#line 3061 "parser.cpp" break; - case 173: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" -#line 684 "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 3056 "parser.cpp" - break; - - case 174: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 174: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 686 "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 3062 "parser.cpp" + { 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 3067 "parser.cpp" break; - case 175: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 175: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 688 "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::childthread); } -#line 3068 "parser.cpp" + { 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 3073 "parser.cpp" break; - case 176: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 176: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 690 "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::childthread); } +#line 3079 "parser.cpp" + break; + + case 177: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 692 "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::builtin); } -#line 3074 "parser.cpp" +#line 3085 "parser.cpp" break; - case 177: // expr_add_array: "[" expr_arguments_no_empty "]" -#line 695 "parser.ypp" + case 178: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 697 "parser.ypp" { yylhs.value.as < ast::expr_add_array::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ())); } -#line 3080 "parser.cpp" +#line 3091 "parser.cpp" break; - case 178: // expr_parameters: expr_parameters "," expr_identifier -#line 700 "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 3086 "parser.cpp" - break; - - case 179: // expr_parameters: expr_identifier + case 179: // expr_parameters: expr_parameters "," expr_identifier #line 702 "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 3092 "parser.cpp" + { 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 3097 "parser.cpp" break; - case 180: // expr_parameters: %empty + case 180: // expr_parameters: expr_identifier #line 704 "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 3103 "parser.cpp" + break; + + case 181: // expr_parameters: %empty +#line 706 "parser.ypp" { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } -#line 3098 "parser.cpp" +#line 3109 "parser.cpp" break; - case 181: // expr_arguments: expr_arguments_no_empty -#line 709 "parser.ypp" - { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } -#line 3104 "parser.cpp" - break; - - case 182: // expr_arguments: %empty + case 182: // expr_arguments: expr_arguments_no_empty #line 711 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3115 "parser.cpp" + break; + + case 183: // expr_arguments: %empty +#line 713 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3110 "parser.cpp" +#line 3121 "parser.cpp" break; - case 183: // expr_arguments_no_empty: expr_arguments "," expr -#line 716 "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 3116 "parser.cpp" - break; - - case 184: // expr_arguments_no_empty: expr + case 184: // expr_arguments_no_empty: expr_arguments "," expr #line 718 "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 3127 "parser.cpp" + break; + + case 185: // expr_arguments_no_empty: expr +#line 720 "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 3122 "parser.cpp" +#line 3133 "parser.cpp" break; - case 185: // expr_isdefined: "isdefined" "(" expr ")" -#line 723 "parser.ypp" + case 186: // expr_isdefined: "isdefined" "(" expr ")" +#line 725 "parser.ypp" { yylhs.value.as < ast::expr_isdefined::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3128 "parser.cpp" +#line 3139 "parser.cpp" break; - case 186: // expr_istrue: "istrue" "(" expr ")" -#line 728 "parser.ypp" + case 187: // expr_istrue: "istrue" "(" expr ")" +#line 730 "parser.ypp" { yylhs.value.as < ast::expr_istrue::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3134 "parser.cpp" +#line 3145 "parser.cpp" break; - case 187: // expr_reference: "::" expr_identifier -#line 733 "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 3140 "parser.cpp" - break; - - case 188: // expr_reference: expr_path "::" expr_identifier + case 188: // expr_reference: "::" expr_identifier #line 735 "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 3151 "parser.cpp" + break; + + case 189: // expr_reference: expr_path "::" expr_identifier +#line 737 "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 3146 "parser.cpp" +#line 3157 "parser.cpp" break; - case 189: // expr_array: expr_object "[" expr "]" -#line 740 "parser.ypp" + case 190: // expr_array: expr_object "[" expr "]" +#line 742 "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 3152 "parser.cpp" +#line 3163 "parser.cpp" break; - case 190: // expr_field: expr_object "." expr_identifier_nosize -#line 745 "parser.ypp" + case 191: // expr_field: expr_object "." expr_identifier_nosize +#line 747 "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 3158 "parser.cpp" +#line 3169 "parser.cpp" break; - case 191: // expr_size: expr_object "." "size" -#line 750 "parser.ypp" + case 192: // expr_size: expr_object "." "size" +#line 752 "parser.ypp" { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } -#line 3164 "parser.cpp" +#line 3175 "parser.cpp" break; - case 192: // expr_paren: "(" expr ")" -#line 755 "parser.ypp" + case 193: // expr_paren: "(" expr ")" +#line 757 "parser.ypp" { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3170 "parser.cpp" +#line 3181 "parser.cpp" break; - case 193: // expr_object: expr_call -#line 759 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 3176 "parser.cpp" - break; - - case 194: // expr_object: expr_method -#line 760 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 3182 "parser.cpp" - break; - - case 195: // expr_object: expr_array + case 194: // expr_object: expr_call #line 761 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3188 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3187 "parser.cpp" break; - case 196: // expr_object: expr_field + case 195: // expr_object: expr_method #line 762 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 3194 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3193 "parser.cpp" break; - case 197: // expr_object: expr_game + case 196: // expr_object: expr_array #line 763 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 3200 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3199 "parser.cpp" break; - case 198: // expr_object: expr_self + case 197: // expr_object: expr_field #line 764 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 3206 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3205 "parser.cpp" break; - case 199: // expr_object: expr_anim + case 198: // expr_object: expr_game #line 765 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 3212 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3211 "parser.cpp" break; - case 200: // expr_object: expr_level + case 199: // expr_object: expr_self #line 766 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 3218 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3217 "parser.cpp" break; - case 201: // expr_object: expr_identifier + case 200: // expr_object: expr_anim #line 767 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3223 "parser.cpp" + break; + + case 201: // expr_object: expr_level +#line 768 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3229 "parser.cpp" + break; + + case 202: // expr_object: expr_identifier +#line 769 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 3224 "parser.cpp" +#line 3235 "parser.cpp" break; - case 202: // expr_thisthread: "thisthread" -#line 772 "parser.ypp" + case 203: // expr_thisthread: "thisthread" +#line 774 "parser.ypp" { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3230 "parser.cpp" +#line 3241 "parser.cpp" break; - case 203: // expr_empty_array: "[" "]" -#line 777 "parser.ypp" + case 204: // expr_empty_array: "[" "]" +#line 779 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3236 "parser.cpp" +#line 3247 "parser.cpp" break; - case 204: // expr_undefined: "undefined" -#line 782 "parser.ypp" + case 205: // expr_undefined: "undefined" +#line 784 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3242 "parser.cpp" +#line 3253 "parser.cpp" break; - case 205: // expr_game: "game" -#line 787 "parser.ypp" + case 206: // expr_game: "game" +#line 789 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3248 "parser.cpp" +#line 3259 "parser.cpp" break; - case 206: // expr_self: "self" -#line 792 "parser.ypp" + case 207: // expr_self: "self" +#line 794 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3254 "parser.cpp" +#line 3265 "parser.cpp" break; - case 207: // expr_anim: "anim" -#line 797 "parser.ypp" + case 208: // expr_anim: "anim" +#line 799 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3260 "parser.cpp" +#line 3271 "parser.cpp" break; - case 208: // expr_level: "level" -#line 802 "parser.ypp" + case 209: // expr_level: "level" +#line 804 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3266 "parser.cpp" +#line 3277 "parser.cpp" break; - case 209: // expr_animation: "%" "identifier" -#line 807 "parser.ypp" + case 210: // expr_animation: "%" "identifier" +#line 809 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3272 "parser.cpp" +#line 3283 "parser.cpp" break; - case 210: // expr_animtree: "#animtree" -#line 812 "parser.ypp" + case 211: // expr_animtree: "#animtree" +#line 814 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3278 "parser.cpp" +#line 3289 "parser.cpp" break; - case 211: // expr_identifier_nosize: "identifier" -#line 817 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3284 "parser.cpp" + case 212: // expr_identifier_neg: "-" "identifier" +#line 819 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, ast::expr(std::make_unique(yylhs.location, "0")), ast::expr(std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()))); } +#line 3295 "parser.cpp" break; - case 212: // expr_identifier: "identifier" -#line 822 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3290 "parser.cpp" - break; - - case 213: // expr_identifier: "size" + case 213: // expr_identifier_nosize: "identifier" #line 824 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3296 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3301 "parser.cpp" break; - case 214: // expr_path: "identifier" + case 214: // expr_identifier: "identifier" #line 829 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3302 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3307 "parser.cpp" break; - case 215: // expr_path: "path" + case 215: // expr_identifier: "size" #line 831 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3308 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } +#line 3313 "parser.cpp" break; - case 216: // expr_istring: "localized string" + case 216: // expr_path: "identifier" #line 836 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3319 "parser.cpp" + break; + + case 217: // expr_path: "path" +#line 838 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3325 "parser.cpp" + break; + + case 218: // expr_istring: "localized string" +#line 843 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3314 "parser.cpp" +#line 3331 "parser.cpp" break; - case 217: // expr_string: "string literal" -#line 841 "parser.ypp" + case 219: // expr_string: "string literal" +#line 848 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3320 "parser.cpp" +#line 3337 "parser.cpp" break; - case 218: // expr_vector: "(" expr "," expr "," expr ")" -#line 846 "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 3326 "parser.cpp" - break; - - case 219: // expr_float: "-" "float" -#line 851 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3332 "parser.cpp" - break; - - case 220: // expr_float: "float" + case 220: // expr_vector: "(" expr "," expr "," expr ")" #line 853 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3338 "parser.cpp" + { 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 3343 "parser.cpp" break; - case 221: // expr_integer: "-" "integer" + case 221: // expr_float: "-" "float" #line 858 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3344 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3349 "parser.cpp" break; - case 222: // expr_integer: "integer" + case 222: // expr_float: "float" #line 860 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3350 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3355 "parser.cpp" break; - case 223: // expr_false: "false" + case 223: // expr_integer: "-" "integer" #line 865 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3361 "parser.cpp" + break; + + case 224: // expr_integer: "integer" +#line 867 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3367 "parser.cpp" + break; + + case 225: // expr_false: "false" +#line 872 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3356 "parser.cpp" +#line 3373 "parser.cpp" break; - case 224: // expr_true: "true" -#line 870 "parser.ypp" + case 226: // expr_true: "true" +#line 877 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3362 "parser.cpp" +#line 3379 "parser.cpp" break; -#line 3366 "parser.cpp" +#line 3383 "parser.cpp" default: break; @@ -3578,9 +3595,9 @@ namespace xsk { namespace gsc { namespace iw8 { "expr_field", "expr_size", "expr_paren", "expr_object", "expr_thisthread", "expr_empty_array", "expr_undefined", "expr_game", "expr_self", "expr_anim", "expr_level", "expr_animation", - "expr_animtree", "expr_identifier_nosize", "expr_identifier", - "expr_path", "expr_istring", "expr_string", "expr_vector", "expr_float", - "expr_integer", "expr_false", "expr_true", YY_NULLPTR + "expr_animtree", "expr_identifier_neg", "expr_identifier_nosize", + "expr_identifier", "expr_path", "expr_istring", "expr_string", + "expr_vector", "expr_float", "expr_integer", "expr_false", "expr_true", YY_NULLPTR }; return yy_sname[yysymbol]; } @@ -3849,655 +3866,673 @@ namespace xsk { namespace gsc { namespace iw8 { } - const short parser::yypact_ninf_ = -279; + const short parser::yypact_ninf_ = -283; - const short parser::yytable_ninf_ = -215; + const short parser::yytable_ninf_ = -217; const short parser::yypact_[] = { - 8, -279, -279, -75, -75, -49, -279, -279, 16, 8, - -279, -279, -279, -279, -279, -279, -36, -279, -279, -57, - -35, -69, -279, -279, -279, -279, -20, 1152, -279, -279, - -279, -27, -8, -279, -279, 21, 23, -279, -7, -279, - -279, -279, -279, -279, -279, -279, 18, 46, 1152, 1022, - -20, 1152, 1152, -21, -46, 31, -279, -279, -279, 2015, - -279, -279, -279, -279, -279, 123, 207, -279, -279, -279, - -279, -279, -279, 361, 497, -279, -279, 594, -279, -279, - -279, 606, 737, 868, 947, -279, -279, 17, 51, -279, - -279, -279, -279, -279, -279, -279, 37, 68, -20, 57, - 53, 76, 94, 85, 97, 103, 1152, 1152, 1313, 1022, - -279, 2098, 80, 109, -279, -279, -279, -279, -279, -279, - -279, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1217, -13, -279, -279, 115, 110, 1152, -20, -279, 782, - -279, -279, 1152, 1152, -20, 1152, 1152, -20, 1152, 1479, - 1513, -279, 1152, 1148, 1152, -279, 1980, 177, 177, 2129, - 2139, 822, 822, 166, 166, 166, 166, 2170, 601, 2180, - 78, 78, -279, -279, -279, 1213, -279, -279, -279, -20, - 14, -279, 117, 915, 1152, 113, -5, 125, 1303, 126, - 136, 137, 140, -28, 132, 135, 139, 1087, 142, 147, - 155, -279, 152, -10, -10, -279, -279, 836, -279, -279, - -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, - -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, - -279, -279, -279, -279, 148, 151, 154, 161, 162, -279, - -279, 45, -279, -279, -279, -279, 115, 1825, 36, 165, - 1865, 39, 173, 1905, -279, -279, 1944, 157, 2098, 1152, - -279, 117, -279, 1152, -279, -279, 994, 2050, -279, 181, - -279, 1152, 205, 1152, 561, -20, 1152, 133, 178, 179, - -279, -279, -279, -279, 2085, -279, 1152, 1152, 1152, -279, - -279, 1048, 1048, -279, -279, -279, -279, -279, -279, -279, - 186, 190, 195, 203, 159, -279, -279, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 210, -279, - 1152, 220, -279, 1152, 222, 1152, 228, 2098, 42, -279, - -279, -279, 224, 1547, 235, 1581, 226, -279, -279, -279, - 675, -15, 1615, -279, -279, -279, 49, 50, 1148, 1152, - 1152, 1152, 1152, 2098, 2098, 2098, 2098, 2098, 2098, 2098, - 2098, 2098, 2098, 2098, 238, 59, 239, 81, 241, 1649, - 1152, -279, -279, 1303, 1152, 1303, 1152, 1152, -20, 68, - 233, 240, 1683, 1357, 1401, 1445, 1152, -279, 1152, -279, - 1152, -279, 82, 261, 1717, -279, 2098, 248, 1751, 269, - -279, -279, -279, 250, 251, 1152, 252, 1152, 253, 1152, - 91, 98, 105, -279, 1303, 254, 561, 1303, 1152, -279, - -279, 264, -279, 266, -279, 267, -279, -279, -279, -279, - -279, 268, -279, 1785, 256, 260, 282, 1303, 1303, -279, - -279, -279, -279, -279 + 26, -283, -283, -30, -30, -38, -283, -283, 22, 26, + -283, -283, -283, -283, -283, -283, -29, -283, -283, -10, + 15, -69, -283, -283, -283, -283, -34, 1154, -283, -283, + -283, 6, 3, -283, -283, -40, -35, -283, 13, -283, + -283, -283, -283, -283, -283, -283, 27, 43, 1154, 1024, + -34, 1154, 1154, -13, -2, 67, -283, -283, -283, 2097, + -283, -283, -283, -283, -283, 45, 648, -283, -283, -283, + -283, -283, -283, 691, 739, -283, -283, 870, -283, -283, + -283, 949, 1050, 1114, 1119, -283, -283, -283, 519, 68, + -283, -283, -283, -283, -283, -283, -283, 75, 96, -34, + 97, 100, 95, 102, 107, 101, 104, 1154, 1154, 1315, + 1024, -283, 2180, 106, 108, -283, -283, -283, -283, -283, + -283, -283, -283, 1154, 1154, 1154, 1154, 1154, 1154, 1154, + 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, + 1154, 1154, 1219, -32, -283, -283, 120, 113, 1154, -34, + -283, 784, -283, -283, 1154, 1154, -34, 1154, 1154, -34, + 1154, 1481, 1515, -283, 1154, 1827, 1154, -283, 2062, 115, + 115, 1214, 2211, 824, 824, -49, -49, -49, -49, 2221, + 2262, 2252, -67, -67, -283, -283, -283, 1867, -283, -283, + -283, -34, 12, -283, 122, 917, 1154, 119, -20, 131, + 1305, 132, 136, 138, 140, -21, 151, 135, 139, 1089, + 157, 170, 171, -283, 169, 547, 547, -283, -283, 838, + -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, + -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, + -283, -283, -283, -283, -283, -283, 164, 172, 173, 176, + 181, -283, -283, 35, -283, -283, -283, -283, 120, 1907, + 34, 180, 1947, 40, 192, 1987, -283, -283, 2026, 188, + 2180, 1154, -283, 122, -283, 1154, -283, -283, 996, 2132, + -283, 194, -283, 1154, 208, 1154, 130, -34, 1154, 147, + 189, 191, -283, -283, -283, -283, 2167, -283, 1154, 1154, + 1154, -283, -283, 1180, 1180, -283, -283, -283, -283, -283, + -283, -283, 202, 203, 204, 207, 163, -283, -283, 1154, + 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, + 206, -283, 1154, 210, -283, 1154, 213, 1154, 219, 2180, + 50, -283, -283, -283, 212, 1549, 223, 1583, 215, -283, + -283, -283, 587, -3, 1617, -283, -283, -283, 52, 53, + 1827, 1154, 1154, 1154, 1154, 2180, 2180, 2180, 2180, 2180, + 2180, 2180, 2180, 2180, 2180, 2180, 226, 54, 230, 72, + 234, 1651, 1154, -283, -283, 1305, 1154, 1305, 1154, 1154, + -34, 96, 225, 227, 1685, 1359, 1403, 1447, 1154, -283, + 1154, -283, 1154, -283, 73, 265, 1719, -283, 2180, 232, + 1753, 264, -283, -283, -283, 235, 237, 1154, 238, 1154, + 241, 1154, 76, 82, 83, -283, 1305, 242, 130, 1305, + 1154, -283, -283, 252, -283, 254, -283, 257, -283, -283, + -283, -283, -283, 280, -283, 1787, 244, 272, 273, 1305, + 1305, -283, -283, -283, -283, -283 }; const unsigned char parser::yydefact_[] = { - 3, 12, 13, 0, 0, 0, 213, 212, 0, 2, - 7, 8, 9, 14, 15, 16, 0, 215, 214, 0, - 0, 0, 1, 4, 5, 6, 180, 0, 10, 11, - 217, 0, 0, 179, 210, 0, 0, 202, 0, 224, - 223, 204, 205, 206, 207, 208, 0, 0, 0, 182, - 0, 0, 0, 0, 0, 212, 216, 220, 222, 0, - 93, 94, 95, 132, 133, 134, 135, 163, 164, 136, + 3, 12, 13, 0, 0, 0, 215, 214, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 217, 216, 0, + 0, 0, 1, 4, 5, 6, 181, 0, 10, 11, + 219, 0, 0, 180, 211, 0, 0, 203, 0, 226, + 225, 205, 206, 207, 208, 209, 0, 0, 0, 183, + 0, 0, 0, 0, 0, 214, 218, 222, 224, 0, + 93, 94, 95, 132, 133, 134, 135, 164, 165, 136, 137, 138, 139, 140, 141, 142, 143, 0, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 0, 154, - 155, 156, 157, 158, 159, 160, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, - 203, 184, 0, 181, 187, 162, 161, 219, 221, 209, - 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, + 155, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 165, 166, 0, 0, 182, 0, 17, 0, - 19, 178, 0, 182, 0, 0, 182, 0, 0, 0, - 0, 192, 0, 184, 0, 177, 0, 125, 126, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 127, 128, 129, 130, 131, 0, 191, 211, 190, 0, - 0, 181, 188, 0, 0, 0, 0, 0, 0, 0, + 183, 204, 185, 0, 182, 188, 163, 162, 212, 221, + 223, 210, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 54, 0, 0, 0, 45, 50, 0, 46, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 0, 0, 0, 193, 194, 195, - 196, 0, 197, 198, 199, 200, 201, 0, 0, 0, - 0, 0, 0, 0, 185, 186, 0, 0, 183, 0, - 189, 0, 167, 182, 52, 48, 0, 0, 72, 0, - 73, 0, 0, 0, 58, 0, 0, 0, 0, 0, - 85, 86, 87, 89, 0, 90, 182, 182, 0, 193, - 194, 109, 111, 53, 49, 61, 62, 63, 59, 60, - 0, 0, 0, 0, 0, 110, 112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, - 182, 0, 171, 182, 0, 0, 0, 113, 0, 51, - 47, 67, 0, 0, 0, 0, 0, 55, 56, 57, - 0, 0, 0, 84, 83, 88, 0, 0, 0, 0, - 0, 0, 0, 98, 104, 105, 106, 107, 108, 99, - 100, 101, 103, 102, 0, 0, 0, 0, 0, 0, - 182, 168, 74, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 170, 182, 172, - 182, 218, 0, 75, 0, 77, 96, 0, 0, 0, - 82, 91, 92, 0, 0, 182, 0, 182, 0, 182, - 0, 0, 0, 173, 0, 0, 58, 0, 0, 64, - 66, 181, 69, 181, 71, 181, 174, 175, 176, 76, - 78, 0, 80, 0, 0, 0, 0, 0, 0, 65, - 68, 70, 79, 81 + 0, 0, 0, 0, 166, 167, 0, 0, 183, 0, + 17, 0, 19, 179, 0, 183, 0, 0, 183, 0, + 0, 0, 0, 193, 0, 185, 0, 178, 0, 125, + 126, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 127, 128, 129, 130, 131, 0, 192, 213, + 191, 0, 0, 182, 189, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 54, 0, 0, 0, 45, 50, 0, + 46, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 0, 0, 0, 194, + 195, 196, 197, 0, 198, 199, 200, 201, 202, 0, + 0, 0, 0, 0, 0, 0, 186, 187, 0, 0, + 184, 0, 190, 0, 168, 183, 52, 48, 0, 0, + 72, 0, 73, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 85, 86, 87, 89, 0, 90, 183, 183, + 0, 194, 195, 109, 111, 53, 49, 61, 62, 63, + 59, 60, 0, 0, 0, 0, 0, 110, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 183, 0, 172, 183, 0, 0, 0, 113, + 0, 51, 47, 67, 0, 0, 0, 0, 0, 55, + 56, 57, 0, 0, 0, 84, 83, 88, 0, 0, + 0, 0, 0, 0, 0, 98, 104, 105, 106, 107, + 108, 99, 100, 101, 103, 102, 0, 0, 0, 0, + 0, 0, 183, 169, 74, 0, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 171, + 183, 173, 183, 220, 0, 75, 0, 77, 96, 0, + 0, 0, 82, 91, 92, 0, 0, 183, 0, 183, + 0, 183, 0, 0, 0, 174, 0, 0, 58, 0, + 0, 64, 66, 182, 69, 182, 71, 182, 175, 176, + 177, 76, 78, 0, 80, 0, 0, 0, 0, 0, + 0, 65, 68, 70, 79, 81 }; const short parser::yypgoto_[] = { - -279, -279, -279, 294, 296, 338, -279, -279, -279, -181, - 131, -279, -279, -279, -95, -77, -279, -279, -279, -279, - -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, - -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, - 204, -279, -278, -276, -271, -279, -279, -279, -279, -279, - -31, -6, -73, -63, -279, -279, -100, -48, -279, -279, - -279, 196, 232, -279, -279, 265, -279, -279, -279, 283, - 301, 319, 355, -279, -279, -279, 0, 7, -279, -18, - -279, -279, 150, -279, -279 + -283, -283, -283, 330, 333, 334, -283, -283, -283, -167, + 126, -283, -283, -283, -96, -94, -283, -283, -283, -283, + -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, + -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, + 190, -283, -282, -281, -278, -283, -283, -283, -283, -283, + -47, -11, -71, -60, -283, -283, -134, -48, -283, -283, + -283, 55, 253, -283, -283, 270, -283, -283, -283, 279, + 307, 325, 355, -283, -283, -283, -283, 0, 7, -283, + -18, -283, -283, 141, -283, -283 }; const short parser::yydefgoto_[] = { - 0, 8, 9, 10, 11, 12, 13, 14, 15, 215, - 216, 276, 217, 218, 219, 346, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 111, 407, 244, 245, 246, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 32, 112, 191, 70, 71, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 217, + 218, 278, 219, 220, 221, 348, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 112, 409, 246, 247, 248, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 32, 113, 193, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 188, 87, 88, 89, 90, - 91, 92, 93, 94, 95 + 82, 83, 84, 85, 86, 87, 190, 88, 89, 90, + 91, 92, 93, 94, 95, 96 }; const short parser::yytable_[] = { - 16, 113, 150, 31, 142, 21, 347, 28, 348, 16, - 19, 20, 275, 349, 143, 387, 22, 282, 26, 1, - 2, 3, 4, 5, 17, 18, 33, 6, 96, 29, - 35, 36, 30, 38, 186, 100, 103, 6, 42, 43, - 44, 45, 101, 104, 27, 388, 190, 97, 212, 279, - 114, 105, 98, 258, 119, 6, 261, -201, -201, 280, - -201, 113, 310, 311, -201, 312, 313, 287, 6, 272, - 6, 146, 106, 30, 164, -201, 58, 144, -201, 99, - 7, 102, 117, 118, 145, 35, 36, 187, 38, 17, - 55, 329, 6, -214, 332, 340, 164, 381, 151, 164, - 107, 148, 164, 140, 390, 391, 314, 153, 7, 164, - 164, 315, 316, 147, 397, 152, -201, -201, 247, 164, - 17, 55, 17, 55, 149, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 399, 423, 154, 156, - 164, 164, 164, 248, 17, 55, 436, 192, 347, 256, - 348, 164, 155, 437, 259, 349, 145, 262, 164, 157, - 438, 158, 247, -193, -193, 164, -193, 247, 165, 146, - -193, 273, 189, 338, 137, 138, 139, 278, 142, 281, - 283, -193, 299, 299, -193, 288, 247, 248, 143, 271, - 284, 285, 248, 256, 286, 290, 356, 357, 256, 291, - 145, 296, 403, 292, 405, 145, 295, 300, 300, 297, - 298, 248, 305, 256, 256, 306, 336, 256, 307, 330, - 145, 145, -193, -193, 145, 308, 309, 333, 142, 142, - 375, 59, 344, 377, 122, 123, 342, 118, 143, 143, - 359, 353, 354, 439, 360, 247, 442, -194, -194, 361, - -194, 144, 108, 299, -194, 115, 116, 362, 145, 187, - 135, 136, 137, 138, 139, -194, 452, 453, -194, 374, - 248, 135, 136, 137, 138, 139, 256, 142, 300, 376, - 402, 378, 380, 145, 256, 351, 424, 143, 382, 384, - 386, 145, 396, 398, 410, 400, 420, 411, 421, 428, - 422, 144, 144, 23, 412, 24, -194, -194, 145, 145, - 159, 160, 426, 163, 429, 430, 432, 434, 440, 444, - 449, 445, 446, 447, 450, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 249, 451, 25, 304, 441, - 144, 0, 247, 289, 247, 0, 257, 145, 0, 260, - 0, 0, 263, 0, 0, 0, 266, 431, 268, 433, - 0, 435, 0, 0, 0, 0, 0, 248, 0, 248, - 0, 250, 0, 256, 0, 256, 0, 0, 409, 249, - 145, 0, 145, 247, 249, 299, 247, 0, 277, 0, - 0, -195, -195, 0, -195, 0, 0, 0, -195, 249, - 249, 294, 0, 249, 251, 0, 247, 247, 248, -195, - 300, 248, -195, 0, 256, 250, 256, 256, 0, 0, - 250, 145, 252, 145, 145, 0, 0, 0, 0, 0, - 0, 248, 248, 0, 0, 250, 250, 256, 256, 250, - 253, 0, 0, 0, 145, 145, 0, 0, 251, 0, - -195, -195, 0, 251, 0, 0, 0, 0, 254, 0, - 0, 0, 249, 337, 0, 0, 252, 0, 301, 302, - 249, 252, 251, 0, 0, 343, 0, 345, 0, 0, - 352, 0, 0, 0, 253, 0, 252, 252, 0, 253, - 252, 0, 358, 0, 255, 0, 0, 0, 250, 0, - 0, 0, 254, 0, 253, 253, 250, 254, 253, 0, - 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 254, 254, 0, 0, 254, -196, -196, 379, - -196, 251, 0, 0, -196, 0, 0, 0, 255, 350, - 0, 0, 0, 255, 0, -196, 0, 0, -196, 252, - 0, 0, 0, 392, 393, 394, 395, 252, 255, 255, - 0, 0, 255, 0, 0, 0, 0, 253, 0, 249, - 0, 249, 0, 0, 0, 253, 0, 0, 404, 0, - 406, 408, 0, 0, 0, 254, -196, -196, 0, 0, - 0, 35, 36, 254, 38, 0, 0, 0, 6, 42, - 43, 44, 45, 0, 0, 250, 0, 250, 0, 212, - 249, 0, 249, 249, 0, 0, 0, 213, 214, 0, - 0, 255, 443, 0, 35, 36, 0, 38, 0, 255, - 0, 6, 0, 249, 249, 0, -197, -197, 251, -197, - 251, 0, 140, -197, 0, 141, 250, 0, 250, 250, - 17, 55, 0, 0, -197, 0, 252, -197, 252, 122, - 123, 0, 0, 126, 127, 128, 129, 130, 131, 250, - 250, 0, 0, 0, 253, 0, 253, 0, 0, 251, - 0, 350, 251, 17, 55, 135, 136, 137, 138, 139, - 0, 0, 254, 0, 254, -197, -197, 252, 0, 252, - 252, 0, 251, 251, 0, 35, 36, 0, 38, 0, - 0, 0, 6, 0, 0, 253, 0, 253, 253, 0, - 252, 252, 0, 140, 0, 0, 314, 0, 255, 0, - 255, 315, 316, 254, 0, 254, 254, 0, 253, 253, - 0, 0, 0, 0, 0, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 254, 254, 0, 0, - 0, 0, 0, 0, 17, 55, 0, -198, -198, 255, - -198, 255, 255, 0, -198, 0, 0, 0, 0, 0, - 0, 0, 0, 193, 0, -198, 0, 0, -198, 0, - 0, 194, 255, 255, 195, 196, 197, 0, 198, 199, - 200, 201, 0, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 35, 36, 0, 38, 0, 0, 0, 6, - 42, 43, 44, 45, 0, 0, -198, -198, 149, 211, - 212, 0, 0, 0, 0, 0, 0, 193, 213, 214, - 0, 0, 0, 0, 0, 194, 0, 0, 195, 196, - 197, 0, 198, 199, 200, 201, 0, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 35, 36, 0, 38, - 0, 17, 55, 6, 42, 43, 44, 45, 0, 0, - 122, 123, 149, 303, 212, 0, 128, 129, 130, 131, - 0, 0, 213, 214, 0, 0, 0, 0, -199, -199, - 0, -199, 0, 0, 0, -199, 135, 136, 137, 138, - 139, 0, 0, 0, 0, 0, -199, 274, 0, -199, - 0, 0, 0, 0, 194, 17, 55, 195, 196, 197, - 0, 198, 199, 200, 201, 0, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 35, 36, 0, 38, 0, - 0, 0, 6, 42, 43, 44, 45, -199, -199, 0, - 0, 149, 0, 212, 0, 0, 0, 0, 0, 0, - 0, 213, 214, 0, 0, 0, 0, -200, -200, 0, - -200, 0, 0, 0, -200, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -200, 339, 0, -200, 0, - 0, 0, 0, 194, 17, 55, 195, 196, 197, 0, - 198, 199, 200, 201, 0, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 35, 36, 0, 38, 34, 0, - 0, 6, 42, 43, 44, 45, -200, -200, 0, 0, - 149, 0, 212, 0, 0, 0, 0, 0, 0, 0, - 213, 214, 35, 36, 37, 38, 39, 40, 41, 6, - 42, 43, 44, 45, 46, 47, 48, 0, 0, 0, - 109, 110, 0, 0, 50, 0, 0, 0, 35, 36, - 0, 38, 0, 17, 55, 6, 0, 0, 0, 0, - 51, 52, 0, 34, 0, 0, 140, 0, 0, 314, - 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, - 54, 17, 55, 30, 56, 57, 58, 35, 36, 37, - 38, 39, 40, 41, 6, 42, 43, 44, 45, 46, - 47, 48, 0, 0, 0, 49, 0, 17, 55, 50, - 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 52, 0, 34, 0, + 16, 114, 152, 31, 349, 350, 144, 6, 351, 16, + 19, 20, 6, 6, 192, 188, 21, 145, 100, 124, + 125, 260, 22, 103, 263, 26, 33, 389, 277, 139, + 140, 141, 30, 284, 281, 101, 104, 1, 2, 3, + 4, 5, 102, 105, 282, 137, 138, 139, 140, 141, + 115, 27, 312, 313, 28, 314, 315, 390, 98, 17, + 55, 97, 114, 99, 17, 55, 7, 274, 189, 17, + 18, 106, 166, 6, 289, 35, 36, 146, 38, 29, + 30, 107, 6, 58, 147, -194, -194, 118, -194, 331, + 119, 120, -194, 142, 166, 334, 316, 108, 121, 153, + 166, 317, 318, -194, 249, 383, -194, 392, 393, 399, + 166, 342, 166, 166, 166, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 7, 401, 425, -216, + 149, 438, 166, 166, 17, 55, 166, 439, 440, 150, + 250, 340, 166, 166, -194, -194, 349, 350, 249, 194, + 351, 258, 151, 249, 155, 154, 261, 156, 147, 264, + 157, 158, 160, 159, 358, 359, 166, 167, 301, 301, + 35, 36, 249, 38, 148, 191, 275, 6, 42, 43, + 44, 45, 144, 280, 250, 283, 285, 290, 214, 250, + 286, 273, 287, 145, 288, 258, 215, 216, 377, 293, + 258, 379, 147, 294, 302, 302, 251, 147, 250, 137, + 138, 139, 140, 141, 292, 258, 258, 59, 405, 258, + 407, 297, 147, 147, 298, 299, 147, 300, 307, 17, + 55, 249, 144, 144, 332, 346, 308, 309, 109, 301, + 310, 116, 117, 145, 145, 311, 335, 338, 404, 344, + 251, 120, 355, 146, 356, 251, 361, 362, 363, 441, + 147, 364, 444, 189, 422, 376, 423, 250, 424, 378, + 251, 251, 380, 382, 251, 302, 384, 386, 258, 388, + 398, 144, 454, 455, 400, 147, 258, 353, 402, 413, + 426, 414, 145, 147, 430, 412, 428, 161, 162, 431, + 165, 432, 434, 146, 146, 436, 442, 446, 451, 447, + 147, 147, 448, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 251, 443, 449, 452, 453, 249, 23, + 249, 251, 24, 25, 259, 306, 291, 262, 0, 0, + 265, 0, 146, 0, 268, 0, 270, 0, 0, 147, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 433, + 0, 435, 0, 437, 250, 0, 250, 0, 0, 249, + 0, 301, 249, 0, 0, 258, 279, 258, 0, 0, + 411, 0, 147, 0, 147, 0, 0, 0, 0, 296, + 0, 0, 249, 249, 252, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 250, 0, 302, 250, 0, + 0, 253, 0, 0, 0, 0, 258, 0, 258, 258, + 254, 0, 0, 147, 0, 147, 147, 0, 250, 250, + 251, 0, 251, 0, 0, 0, 0, 0, 252, 258, + 258, 0, 0, 252, 0, 0, 147, 147, 255, 0, + 0, 339, 0, 0, 0, 253, 0, 0, 252, 252, + 253, 0, 252, 345, 254, 347, 256, 0, 354, 254, + 0, 251, 0, 251, 251, 303, 304, 0, 0, 253, + 360, 0, 0, 0, 254, 254, 0, 0, 254, 0, + 0, 0, 255, 0, 251, 251, 257, 255, 0, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 256, 0, 255, 255, 0, 256, 255, 381, 0, 0, + 0, 252, 0, 0, 0, 0, 0, 0, 0, 252, + 256, 256, 0, 0, 256, 0, 0, 0, 253, 0, + 257, 394, 395, 396, 397, 257, 352, 254, 0, -202, + -202, 0, -202, 0, 0, 254, -202, 0, 0, 0, + 257, 257, 0, 148, 257, 0, 406, -202, 408, 410, + -202, 0, 0, 0, 0, 255, 0, 35, 36, 0, + 38, 0, 0, 255, 6, 42, 43, 44, 45, 0, + 0, 0, 0, 256, 0, 214, 0, 0, 0, 0, + 0, 256, 0, 0, 0, 0, 0, 0, -202, -202, + 445, 0, 0, 0, 0, 0, 0, 35, 36, 0, + 38, 0, 0, 257, 6, 0, 0, 0, 252, 0, + 252, 257, 0, 0, 0, 142, 17, 55, 316, 0, + 0, 0, 0, 317, 318, 253, 0, 253, 0, 0, + 0, 0, 0, 0, 254, 0, 254, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 0, 252, + 0, 252, 252, 0, 0, 0, 17, 55, -195, -195, + 0, -195, 255, 0, 255, -195, 253, 0, 352, 253, + 0, 0, 252, 252, 0, 254, -195, 254, 254, -195, + 256, 0, 256, 0, 0, 0, 0, 0, 0, 253, + 253, 0, 0, 0, 0, 0, 0, 0, 254, 254, + 0, -196, -196, 255, -196, 255, 255, 0, -196, 0, + 257, 0, 257, 0, 0, 0, 0, -195, -195, -196, + 0, 256, -196, 256, 256, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 54, 17, 55, 30, 56, - 57, 58, 35, 36, 37, 38, 39, 40, 41, 6, - 42, 43, 44, 45, 46, 47, 48, 267, 0, 0, - 49, 0, 0, 121, 50, 0, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 0, 0, 0, 0, - 51, 52, 0, 34, 0, 0, 0, 0, 0, 132, - 133, 134, 135, 136, 137, 138, 139, 53, 0, 0, - 54, 17, 55, 30, 56, 57, 58, 35, 36, 37, - 38, 39, 40, 41, 6, 42, 43, 44, 45, 46, - 47, 48, 270, 0, 0, 109, 0, 0, 121, 50, - 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 0, 0, 0, 0, 51, 52, 0, 0, 0, - 0, 0, 0, 0, 132, 133, 134, 135, 136, 137, - 138, 139, 53, 0, 0, 54, 17, 55, 30, 56, - 57, 58, 194, 0, 0, 195, 196, 197, 0, 198, - 199, 200, 201, 0, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 35, 36, 0, 38, 0, 0, 0, - 6, 42, 43, 44, 45, 0, 0, 0, 0, 149, - 0, 212, 0, 0, 0, 0, 0, 0, 161, 213, - 214, 0, 0, 162, 0, 0, 0, 0, 121, 0, - 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 55, 132, 133, 134, 135, 136, 137, - 138, 139, 414, 0, 0, 0, 0, 415, 0, 0, - 0, 0, 121, 0, 0, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 132, 133, - 134, 135, 136, 137, 138, 139, 416, 0, 0, 0, - 0, 417, 0, 0, 0, 0, 121, 0, 0, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 0, + 0, 0, 0, 0, 256, 256, 0, 0, 0, -197, + -197, 257, -197, 257, 257, 0, -197, 0, 0, 0, + -196, -196, 0, 0, 0, 195, 0, -197, 0, 0, + -197, 0, 0, 196, 257, 257, 197, 198, 199, 0, + 200, 201, 202, 203, 0, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 35, 36, 0, 38, 0, 0, + 0, 6, 42, 43, 44, 45, 0, 0, -197, -197, + 151, 213, 214, 0, 0, 0, 0, 0, 0, 195, + 215, 216, 0, 0, 0, 0, 0, 196, 0, 0, + 197, 198, 199, 0, 200, 201, 202, 203, 0, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 35, 36, + 0, 38, 0, 17, 55, 6, 42, 43, 44, 45, + 0, 0, 124, 125, 151, 305, 214, 0, 130, 131, + 132, 133, 0, 0, 215, 216, 0, 0, 0, 0, + 35, 36, 0, 38, 0, 0, 0, 6, 137, 138, + 139, 140, 141, 0, 0, 0, 0, 0, 142, 276, + 0, 143, 0, 0, 0, 0, 196, 17, 55, 197, + 198, 199, 0, 200, 201, 202, 203, 0, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 35, 36, 0, + 38, 0, 0, 0, 6, 42, 43, 44, 45, 17, + 55, 0, 0, 151, 0, 214, 0, 0, 0, 0, + 0, 0, 0, 215, 216, 0, 0, 0, 0, -198, + -198, 0, -198, 0, 0, 0, -198, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -198, 341, 0, + -198, 0, 0, 0, 0, 196, 17, 55, 197, 198, + 199, 0, 200, 201, 202, 203, 0, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 35, 36, 0, 38, + 34, 0, 0, 6, 42, 43, 44, 45, -198, -198, + 0, 0, 151, 0, 214, 0, 0, 0, 0, 0, + 0, 0, 215, 216, 35, 36, 37, 38, 39, 40, + 41, 6, 42, 43, 44, 45, 46, 47, 48, 0, + 0, 0, 110, 111, 0, 0, 50, 0, 0, 0, + -199, -199, 0, -199, 0, 17, 55, -199, 0, 0, + 0, 0, 51, 52, 0, 34, 0, 0, -199, 0, + 0, -199, 0, 0, 0, 0, 0, 0, 0, 53, + 0, 0, 54, 17, 55, 30, 56, 57, 58, 35, + 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, + 45, 46, 47, 48, 0, 0, 0, 49, 0, -199, + -199, 50, 0, 295, -200, -200, 0, -200, 0, -201, + -201, -200, -201, 0, 0, 0, -201, 51, 52, 0, + 34, 0, -200, 0, 0, -200, 0, -201, 0, 0, + -201, 0, 0, 0, 53, 0, 0, 54, 17, 55, + 30, 56, 57, 58, 35, 36, 37, 38, 39, 40, + 41, 6, 42, 43, 44, 45, 46, 47, 48, 0, + 0, 0, 49, -200, -200, 0, 50, 0, -201, -201, + 35, 36, 0, 38, 0, 0, 0, 6, 0, 0, + 0, 0, 51, 52, 0, 34, 0, 0, 142, 0, + 0, 316, 0, 0, 0, 0, 0, 0, 0, 53, + 0, 0, 54, 17, 55, 30, 56, 57, 58, 35, + 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, + 45, 46, 47, 48, 0, 0, 0, 110, 0, 17, + 55, 50, 124, 125, 0, 127, 128, 129, 130, 131, + 132, 133, 0, 0, 0, 0, 0, 51, 52, 0, + 0, 0, 0, 0, 0, 134, 135, 136, 137, 138, + 139, 140, 141, 0, 53, 0, 0, 54, 17, 55, + 30, 56, 57, 58, 196, 0, 0, 197, 198, 199, + 0, 200, 201, 202, 203, 0, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 35, 36, 0, 38, 0, + 0, 0, 6, 42, 43, 44, 45, 0, 0, 0, + 0, 151, 0, 214, 0, 0, 0, 0, 0, 0, + 163, 215, 216, 0, 0, 164, 0, 0, 0, 0, + 123, 0, 0, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 55, 134, 135, 136, 137, + 138, 139, 140, 141, 416, 0, 0, 0, 0, 417, + 0, 0, 0, 0, 123, 0, 0, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 132, 133, 134, 135, 136, 137, 138, 139, - 418, 0, 0, 0, 0, 419, 0, 0, 0, 0, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 264, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 121, 0, 0, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 121, 0, - 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 383, 0, 132, 133, 134, 135, 136, 137, - 138, 139, 121, 0, 0, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 385, 0, 132, 133, - 134, 135, 136, 137, 138, 139, 121, 0, 0, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 0, + 134, 135, 136, 137, 138, 139, 140, 141, 418, 0, + 0, 0, 0, 419, 0, 0, 0, 0, 123, 0, + 0, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 134, 135, 136, 137, 138, 139, + 140, 141, 420, 0, 0, 0, 0, 421, 0, 0, + 0, 0, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 266, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 123, 0, 0, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 389, 0, 132, 133, 134, 135, 136, 137, 138, 139, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 401, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 121, 0, 0, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 121, 0, - 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 425, 0, 132, 133, 134, 135, 136, 137, - 138, 139, 121, 0, 0, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 427, 0, 132, 133, - 134, 135, 136, 137, 138, 139, 121, 0, 0, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 0, + 267, 0, 134, 135, 136, 137, 138, 139, 140, 141, + 123, 0, 0, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 385, 0, 134, 135, 136, 137, + 138, 139, 140, 141, 123, 0, 0, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 387, 0, + 134, 135, 136, 137, 138, 139, 140, 141, 123, 0, + 0, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 391, 0, 134, 135, 136, 137, 138, 139, + 140, 141, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 403, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 123, 0, 0, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 448, 0, 132, 133, 134, 135, 136, 137, 138, 139, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 328, 0, 0, 0, 0, 0, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 331, 0, 0, 0, 0, 0, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 334, 0, 0, 0, 0, 0, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 335, 0, 0, 0, 0, 121, - 0, 0, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 133, 134, 135, 136, - 137, 138, 139, 269, 0, 121, 0, 0, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 0, 0, + 415, 0, 134, 135, 136, 137, 138, 139, 140, 141, + 123, 0, 0, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 427, 0, 134, 135, 136, 137, + 138, 139, 140, 141, 123, 0, 0, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 429, 0, + 134, 135, 136, 137, 138, 139, 140, 141, 123, 0, + 0, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 450, 0, 134, 135, 136, 137, 138, 139, + 140, 141, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 269, 0, 0, 0, + 0, 0, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 272, 0, 0, 0, + 0, 0, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 330, 0, 0, 0, + 0, 0, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 333, 0, 0, 0, + 0, 0, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 336, 0, 0, 0, + 0, 0, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 337, 0, 0, 0, + 0, 123, 0, 0, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 134, 135, 136, + 137, 138, 139, 140, 141, 271, 0, 123, 0, 0, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 132, 133, 134, 135, 136, 137, 138, 139, 120, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 341, 121, 0, 0, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 0, 0, + 0, 0, 0, 134, 135, 136, 137, 138, 139, 140, + 141, 122, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 343, 123, 0, 0, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 132, 133, 134, 135, 136, 137, 138, 139, 355, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 121, 0, 0, 122, 123, 124, 125, + 0, 0, 0, 134, 135, 136, 137, 138, 139, 140, + 141, 357, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 123, 0, 0, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 0, 0, 0, 0, 0, 132, - 133, 134, 135, 136, 137, 138, 139, 122, 123, 0, - 125, 126, 127, 128, 129, 130, 131, 122, 123, 0, - 0, 126, 127, 128, 129, 130, 131, 0, 0, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 0, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 122, 123, - 0, 0, 126, 127, 128, 129, 130, 131, 122, 123, - 0, 0, 126, 127, 128, 129, 130, 131, 0, 0, - 0, 0, 133, 134, 135, 136, 137, 138, 139, 0, - 0, 0, 133, 0, 135, 136, 137, 138, 139 + 136, 137, 138, 139, 140, 141, 0, 0, 0, 0, + 0, 134, 135, 136, 137, 138, 139, 140, 141, 124, + 125, 0, 0, 128, 129, 130, 131, 132, 133, 124, + 125, 0, 0, 128, 129, 130, 131, 132, 133, 0, + 0, 0, 134, 135, 136, 137, 138, 139, 140, 141, + 0, 0, 0, 135, 136, 137, 138, 139, 140, 141, + 124, 125, 0, 0, 128, 129, 130, 131, 132, 133, + 124, 125, 0, 0, 128, 129, 130, 131, 132, 133, + 0, 0, 0, 0, 135, 0, 137, 138, 139, 140, + 141, 0, 0, 0, 0, 0, 137, 138, 139, 140, + 141 }; const short parser::yycheck_[] = { - 0, 49, 97, 21, 77, 54, 284, 64, 284, 9, - 3, 4, 193, 284, 77, 30, 0, 198, 54, 11, - 12, 13, 14, 15, 99, 100, 26, 47, 55, 64, - 40, 41, 101, 43, 47, 35, 36, 47, 48, 49, - 50, 51, 35, 36, 80, 60, 146, 55, 58, 54, - 50, 58, 60, 153, 100, 47, 156, 40, 41, 64, - 43, 109, 17, 18, 47, 20, 21, 95, 47, 55, - 47, 54, 54, 101, 60, 58, 104, 77, 61, 58, - 100, 58, 103, 104, 77, 40, 41, 100, 43, 99, - 100, 55, 47, 62, 55, 276, 60, 55, 98, 60, - 54, 64, 60, 58, 55, 55, 61, 54, 100, 60, - 60, 66, 67, 62, 55, 58, 99, 100, 149, 60, - 99, 100, 99, 100, 56, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 55, 55, 62, 54, - 60, 60, 60, 149, 99, 100, 55, 147, 426, 149, - 426, 60, 58, 55, 154, 426, 149, 157, 60, 62, - 55, 58, 193, 40, 41, 60, 43, 198, 59, 54, - 47, 54, 62, 273, 96, 97, 98, 64, 251, 54, - 54, 58, 213, 214, 61, 203, 217, 193, 251, 189, - 54, 54, 198, 193, 54, 63, 296, 297, 198, 64, - 193, 54, 383, 64, 385, 198, 64, 213, 214, 54, - 58, 217, 64, 213, 214, 64, 59, 217, 64, 54, - 213, 214, 99, 100, 217, 64, 64, 54, 301, 302, - 330, 27, 27, 333, 68, 69, 55, 104, 301, 302, - 54, 63, 63, 424, 54, 276, 427, 40, 41, 54, - 43, 251, 48, 284, 47, 51, 52, 54, 251, 100, - 94, 95, 96, 97, 98, 58, 447, 448, 61, 59, - 276, 94, 95, 96, 97, 98, 276, 350, 284, 59, - 380, 59, 54, 276, 284, 285, 25, 350, 64, 54, - 64, 284, 54, 54, 389, 54, 396, 64, 398, 30, - 400, 301, 302, 9, 64, 9, 99, 100, 301, 302, - 106, 107, 64, 109, 64, 64, 64, 64, 64, 55, - 64, 55, 55, 55, 64, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 149, 64, 9, 217, 426, - 350, -1, 383, 203, 385, -1, 152, 350, -1, 155, - -1, -1, 158, -1, -1, -1, 162, 415, 164, 417, - -1, 419, -1, -1, -1, -1, -1, 383, -1, 385, - -1, 149, -1, 383, -1, 385, -1, -1, 388, 193, - 383, -1, 385, 424, 198, 426, 427, -1, 194, -1, - -1, 40, 41, -1, 43, -1, -1, -1, 47, 213, - 214, 207, -1, 217, 149, -1, 447, 448, 424, 58, - 426, 427, 61, -1, 424, 193, 426, 427, -1, -1, - 198, 424, 149, 426, 427, -1, -1, -1, -1, -1, - -1, 447, 448, -1, -1, 213, 214, 447, 448, 217, - 149, -1, -1, -1, 447, 448, -1, -1, 193, -1, - 99, 100, -1, 198, -1, -1, -1, -1, 149, -1, - -1, -1, 276, 269, -1, -1, 193, -1, 213, 214, - 284, 198, 217, -1, -1, 281, -1, 283, -1, -1, - 286, -1, -1, -1, 193, -1, 213, 214, -1, 198, - 217, -1, 298, -1, 149, -1, -1, -1, 276, -1, - -1, -1, 193, -1, 213, 214, 284, 198, 217, -1, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 213, 214, -1, -1, 217, 40, 41, 335, - 43, 276, -1, -1, 47, -1, -1, -1, 193, 284, - -1, -1, -1, 198, -1, 58, -1, -1, 61, 276, - -1, -1, -1, 359, 360, 361, 362, 284, 213, 214, - -1, -1, 217, -1, -1, -1, -1, 276, -1, 383, - -1, 385, -1, -1, -1, 284, -1, -1, 384, -1, - 386, 387, -1, -1, -1, 276, 99, 100, -1, -1, - -1, 40, 41, 284, 43, -1, -1, -1, 47, 48, - 49, 50, 51, -1, -1, 383, -1, 385, -1, 58, - 424, -1, 426, 427, -1, -1, -1, 66, 67, -1, - -1, 276, 428, -1, 40, 41, -1, 43, -1, 284, - -1, 47, -1, 447, 448, -1, 40, 41, 383, 43, - 385, -1, 58, 47, -1, 61, 424, -1, 426, 427, - 99, 100, -1, -1, 58, -1, 383, 61, 385, 68, - 69, -1, -1, 72, 73, 74, 75, 76, 77, 447, - 448, -1, -1, -1, 383, -1, 385, -1, -1, 424, - -1, 426, 427, 99, 100, 94, 95, 96, 97, 98, - -1, -1, 383, -1, 385, 99, 100, 424, -1, 426, - 427, -1, 447, 448, -1, 40, 41, -1, 43, -1, - -1, -1, 47, -1, -1, 424, -1, 426, 427, -1, - 447, 448, -1, 58, -1, -1, 61, -1, 383, -1, - 385, 66, 67, 424, -1, 426, 427, -1, 447, 448, - -1, -1, -1, -1, -1, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 447, 448, -1, -1, - -1, -1, -1, -1, 99, 100, -1, 40, 41, 424, - 43, 426, 427, -1, 47, -1, -1, -1, -1, -1, - -1, -1, -1, 11, -1, 58, -1, -1, 61, -1, - -1, 19, 447, 448, 22, 23, 24, -1, 26, 27, - 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, -1, 43, -1, -1, -1, 47, - 48, 49, 50, 51, -1, -1, 99, 100, 56, 57, - 58, -1, -1, -1, -1, -1, -1, 11, 66, 67, - -1, -1, -1, -1, -1, 19, -1, -1, 22, 23, + 0, 49, 98, 21, 286, 286, 77, 47, 286, 9, + 3, 4, 47, 47, 148, 47, 54, 77, 58, 68, + 69, 155, 0, 58, 158, 54, 26, 30, 195, 96, + 97, 98, 101, 200, 54, 35, 36, 11, 12, 13, + 14, 15, 35, 36, 64, 94, 95, 96, 97, 98, + 50, 80, 17, 18, 64, 20, 21, 60, 55, 99, + 100, 55, 110, 60, 99, 100, 100, 55, 100, 99, + 100, 58, 60, 47, 95, 40, 41, 77, 43, 64, + 101, 54, 47, 104, 77, 40, 41, 100, 43, 55, + 103, 104, 47, 58, 60, 55, 61, 54, 100, 99, + 60, 66, 67, 58, 151, 55, 61, 55, 55, 55, + 60, 278, 60, 60, 60, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 100, 55, 55, 62, + 62, 55, 60, 60, 99, 100, 60, 55, 55, 64, + 151, 275, 60, 60, 99, 100, 428, 428, 195, 149, + 428, 151, 56, 200, 54, 58, 156, 62, 151, 159, + 58, 54, 58, 62, 298, 299, 60, 59, 215, 216, + 40, 41, 219, 43, 54, 62, 54, 47, 48, 49, + 50, 51, 253, 64, 195, 54, 54, 205, 58, 200, + 54, 191, 54, 253, 54, 195, 66, 67, 332, 64, + 200, 335, 195, 64, 215, 216, 151, 200, 219, 94, + 95, 96, 97, 98, 63, 215, 216, 27, 385, 219, + 387, 64, 215, 216, 54, 54, 219, 58, 64, 99, + 100, 278, 303, 304, 54, 27, 64, 64, 48, 286, + 64, 51, 52, 303, 304, 64, 54, 59, 382, 55, + 195, 104, 63, 253, 63, 200, 54, 54, 54, 426, + 253, 54, 429, 100, 398, 59, 400, 278, 402, 59, + 215, 216, 59, 54, 219, 286, 64, 54, 278, 64, + 54, 352, 449, 450, 54, 278, 286, 287, 54, 64, + 25, 64, 352, 286, 30, 391, 64, 107, 108, 64, + 110, 64, 64, 303, 304, 64, 64, 55, 64, 55, + 303, 304, 55, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 278, 428, 55, 64, 64, 385, 9, + 387, 286, 9, 9, 154, 219, 205, 157, -1, -1, + 160, -1, 352, -1, 164, -1, 166, -1, -1, 352, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 417, + -1, 419, -1, 421, 385, -1, 387, -1, -1, 426, + -1, 428, 429, -1, -1, 385, 196, 387, -1, -1, + 390, -1, 385, -1, 387, -1, -1, -1, -1, 209, + -1, -1, 449, 450, 151, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 426, -1, 428, 429, -1, + -1, 151, -1, -1, -1, -1, 426, -1, 428, 429, + 151, -1, -1, 426, -1, 428, 429, -1, 449, 450, + 385, -1, 387, -1, -1, -1, -1, -1, 195, 449, + 450, -1, -1, 200, -1, -1, 449, 450, 151, -1, + -1, 271, -1, -1, -1, 195, -1, -1, 215, 216, + 200, -1, 219, 283, 195, 285, 151, -1, 288, 200, + -1, 426, -1, 428, 429, 215, 216, -1, -1, 219, + 300, -1, -1, -1, 215, 216, -1, -1, 219, -1, + -1, -1, 195, -1, 449, 450, 151, 200, -1, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 195, -1, 215, 216, -1, 200, 219, 337, -1, -1, + -1, 278, -1, -1, -1, -1, -1, -1, -1, 286, + 215, 216, -1, -1, 219, -1, -1, -1, 278, -1, + 195, 361, 362, 363, 364, 200, 286, 278, -1, 40, + 41, -1, 43, -1, -1, 286, 47, -1, -1, -1, + 215, 216, -1, 54, 219, -1, 386, 58, 388, 389, + 61, -1, -1, -1, -1, 278, -1, 40, 41, -1, + 43, -1, -1, 286, 47, 48, 49, 50, 51, -1, + -1, -1, -1, 278, -1, 58, -1, -1, -1, -1, + -1, 286, -1, -1, -1, -1, -1, -1, 99, 100, + 430, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, -1, -1, 278, 47, -1, -1, -1, 385, -1, + 387, 286, -1, -1, -1, 58, 99, 100, 61, -1, + -1, -1, -1, 66, 67, 385, -1, 387, -1, -1, + -1, -1, -1, -1, 385, -1, 387, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, -1, 426, + -1, 428, 429, -1, -1, -1, 99, 100, 40, 41, + -1, 43, 385, -1, 387, 47, 426, -1, 428, 429, + -1, -1, 449, 450, -1, 426, 58, 428, 429, 61, + 385, -1, 387, -1, -1, -1, -1, -1, -1, 449, + 450, -1, -1, -1, -1, -1, -1, -1, 449, 450, + -1, 40, 41, 426, 43, 428, 429, -1, 47, -1, + 385, -1, 387, -1, -1, -1, -1, 99, 100, 58, + -1, 426, 61, 428, 429, -1, 449, 450, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, -1, -1, -1, 40, + 41, 426, 43, 428, 429, -1, 47, -1, -1, -1, + 99, 100, -1, -1, -1, 11, -1, 58, -1, -1, + 61, -1, -1, 19, 449, 450, 22, 23, 24, -1, + 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, -1, 43, -1, -1, + -1, 47, 48, 49, 50, 51, -1, -1, 99, 100, + 56, 57, 58, -1, -1, -1, -1, -1, -1, 11, + 66, 67, -1, -1, -1, -1, -1, 19, -1, -1, + 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + -1, 43, -1, 99, 100, 47, 48, 49, 50, 51, + -1, -1, 68, 69, 56, 57, 58, -1, 74, 75, + 76, 77, -1, -1, 66, 67, -1, -1, -1, -1, + 40, 41, -1, 43, -1, -1, -1, 47, 94, 95, + 96, 97, 98, -1, -1, -1, -1, -1, 58, 12, + -1, 61, -1, -1, -1, -1, 19, 99, 100, 22, + 23, 24, -1, 26, 27, 28, 29, -1, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, + 43, -1, -1, -1, 47, 48, 49, 50, 51, 99, + 100, -1, -1, 56, -1, 58, -1, -1, -1, -1, + -1, -1, -1, 66, 67, -1, -1, -1, -1, 40, + 41, -1, 43, -1, -1, -1, 47, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 58, 12, -1, + 61, -1, -1, -1, -1, 19, 99, 100, 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, - -1, 99, 100, 47, 48, 49, 50, 51, -1, -1, - 68, 69, 56, 57, 58, -1, 74, 75, 76, 77, - -1, -1, 66, 67, -1, -1, -1, -1, 40, 41, - -1, 43, -1, -1, -1, 47, 94, 95, 96, 97, - 98, -1, -1, -1, -1, -1, 58, 12, -1, 61, - -1, -1, -1, -1, 19, 99, 100, 22, 23, 24, + 16, -1, -1, 47, 48, 49, 50, 51, 99, 100, + -1, -1, 56, -1, 58, -1, -1, -1, -1, -1, + -1, -1, 66, 67, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, + -1, -1, 58, 59, -1, -1, 62, -1, -1, -1, + 40, 41, -1, 43, -1, 99, 100, 47, -1, -1, + -1, -1, 78, 79, -1, 16, -1, -1, 58, -1, + -1, 61, -1, -1, -1, -1, -1, -1, -1, 95, + -1, -1, 98, 99, 100, 101, 102, 103, 104, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, -1, -1, -1, 58, -1, 99, + 100, 62, -1, 64, 40, 41, -1, 43, -1, 40, + 41, 47, 43, -1, -1, -1, 47, 78, 79, -1, + 16, -1, 58, -1, -1, 61, -1, 58, -1, -1, + 61, -1, -1, -1, 95, -1, -1, 98, 99, 100, + 101, 102, 103, 104, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, + -1, -1, 58, 99, 100, -1, 62, -1, 99, 100, + 40, 41, -1, 43, -1, -1, -1, 47, -1, -1, + -1, -1, 78, 79, -1, 16, -1, -1, 58, -1, + -1, 61, -1, -1, -1, -1, -1, -1, -1, 95, + -1, -1, 98, 99, 100, 101, 102, 103, 104, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, -1, -1, -1, 58, -1, 99, + 100, 62, 68, 69, -1, 71, 72, 73, 74, 75, + 76, 77, -1, -1, -1, -1, -1, 78, 79, -1, + -1, -1, -1, -1, -1, 91, 92, 93, 94, 95, + 96, 97, 98, -1, 95, -1, -1, 98, 99, 100, + 101, 102, 103, 104, 19, -1, -1, 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, -1, - -1, -1, 47, 48, 49, 50, 51, 99, 100, -1, + -1, -1, 47, 48, 49, 50, 51, -1, -1, -1, -1, 56, -1, 58, -1, -1, -1, -1, -1, -1, - -1, 66, 67, -1, -1, -1, -1, 40, 41, -1, - 43, -1, -1, -1, 47, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 58, 12, -1, 61, -1, - -1, -1, -1, 19, 99, 100, 22, 23, 24, -1, - 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, -1, 43, 16, -1, - -1, 47, 48, 49, 50, 51, 99, 100, -1, -1, - 56, -1, 58, -1, -1, -1, -1, -1, -1, -1, - 66, 67, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, -1, -1, -1, - 58, 59, -1, -1, 62, -1, -1, -1, 40, 41, - -1, 43, -1, 99, 100, 47, -1, -1, -1, -1, - 78, 79, -1, 16, -1, -1, 58, -1, -1, 61, - -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, - 98, 99, 100, 101, 102, 103, 104, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, -1, -1, -1, 58, -1, 99, 100, 62, - -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 79, -1, 16, -1, + 55, 66, 67, -1, -1, 60, -1, -1, -1, -1, + 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 99, 100, 91, 92, 93, 94, + 95, 96, 97, 98, 55, -1, -1, -1, -1, 60, + -1, -1, -1, -1, 65, -1, -1, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 95, -1, -1, 98, 99, 100, 101, 102, - 103, 104, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 59, -1, -1, - 58, -1, -1, 65, 62, -1, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, -1, -1, -1, -1, - 78, 79, -1, 16, -1, -1, -1, -1, -1, 91, - 92, 93, 94, 95, 96, 97, 98, 95, -1, -1, - 98, 99, 100, 101, 102, 103, 104, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 59, -1, -1, 58, -1, -1, 65, 62, - -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, -1, -1, -1, -1, 78, 79, -1, -1, -1, - -1, -1, -1, -1, 91, 92, 93, 94, 95, 96, - 97, 98, 95, -1, -1, 98, 99, 100, 101, 102, - 103, 104, 19, -1, -1, 22, 23, 24, -1, 26, - 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, -1, 43, -1, -1, -1, - 47, 48, 49, 50, 51, -1, -1, -1, -1, 56, - -1, 58, -1, -1, -1, -1, -1, -1, 55, 66, - 67, -1, -1, 60, -1, -1, -1, -1, 65, -1, + 91, 92, 93, 94, 95, 96, 97, 98, 55, -1, + -1, -1, -1, 60, -1, -1, -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 99, 100, 91, 92, 93, 94, 95, 96, + -1, -1, -1, -1, 91, 92, 93, 94, 95, 96, 97, 98, 55, -1, -1, -1, -1, 60, -1, -1, -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 55, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 65, -1, -1, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 55, -1, 91, 92, 93, 94, 95, 96, 97, 98, + 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 55, -1, 91, 92, 93, 94, + 95, 96, 97, 98, 65, -1, -1, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, + 91, 92, 93, 94, 95, 96, 97, 98, 65, -1, + -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 55, -1, 91, 92, 93, 94, 95, 96, + 97, 98, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 55, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 65, -1, -1, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 55, -1, 91, 92, 93, 94, 95, 96, 97, 98, + 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 55, -1, 91, 92, 93, 94, + 95, 96, 97, 98, 65, -1, -1, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, + 91, 92, 93, 94, 95, 96, 97, 98, 65, -1, + -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 55, -1, 91, 92, 93, 94, 95, 96, + 97, 98, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, - 93, 94, 95, 96, 97, 98, 55, -1, -1, -1, - -1, 60, -1, -1, -1, -1, 65, -1, -1, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, + 93, 94, 95, 96, 97, 98, 59, -1, -1, -1, + -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 59, -1, -1, -1, + -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 59, -1, -1, -1, + -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 59, -1, -1, -1, + -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 59, -1, -1, -1, + -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 60, -1, -1, -1, + -1, 65, -1, -1, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 91, 92, 93, + 94, 95, 96, 97, 98, 63, -1, 65, -1, -1, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, 92, 93, 94, 95, 96, 97, + 98, 64, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 64, 65, -1, -1, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, 92, 93, 94, 95, 96, 97, + 98, 64, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 65, -1, -1, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 91, 92, + 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, + -1, 91, 92, 93, 94, 95, 96, 97, 98, 68, + 69, -1, -1, 72, 73, 74, 75, 76, 77, 68, + 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, -1, -1, 91, 92, 93, 94, 95, 96, 97, 98, - 55, -1, -1, -1, -1, 60, -1, -1, -1, -1, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 55, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 65, -1, -1, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, - 91, 92, 93, 94, 95, 96, 97, 98, 65, -1, - -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 55, -1, 91, 92, 93, 94, 95, 96, - 97, 98, 65, -1, -1, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 55, -1, 91, 92, - 93, 94, 95, 96, 97, 98, 65, -1, -1, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 55, -1, 91, 92, 93, 94, 95, 96, 97, 98, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 55, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 65, -1, -1, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, - 91, 92, 93, 94, 95, 96, 97, 98, 65, -1, - -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 55, -1, 91, 92, 93, 94, 95, 96, - 97, 98, 65, -1, -1, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 55, -1, 91, 92, - 93, 94, 95, 96, 97, 98, 65, -1, -1, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 55, -1, 91, 92, 93, 94, 95, 96, 97, 98, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 59, -1, -1, -1, -1, -1, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 59, -1, -1, -1, -1, -1, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 59, -1, -1, -1, -1, -1, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 60, -1, -1, -1, -1, 65, - -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 91, 92, 93, 94, 95, - 96, 97, 98, 63, -1, 65, -1, -1, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 91, 92, 93, 94, 95, 96, 97, 98, 64, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 64, 65, -1, -1, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 91, 92, 93, 94, 95, 96, 97, 98, 64, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 65, -1, -1, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 91, 92, 93, 94, - 95, 96, 97, 98, -1, -1, -1, -1, -1, 91, - 92, 93, 94, 95, 96, 97, 98, 68, 69, -1, - 71, 72, 73, 74, 75, 76, 77, 68, 69, -1, - -1, 72, 73, 74, 75, 76, 77, -1, -1, -1, - 91, 92, 93, 94, 95, 96, 97, 98, -1, -1, - 91, 92, 93, 94, 95, 96, 97, 98, 68, 69, - -1, -1, 72, 73, 74, 75, 76, 77, 68, 69, - -1, -1, 72, 73, 74, 75, 76, 77, -1, -1, - -1, -1, 92, 93, 94, 95, 96, 97, 98, -1, - -1, -1, 92, -1, 94, 95, 96, 97, 98 + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 68, 69, -1, -1, 72, 73, 74, 75, 76, 77, + 68, 69, -1, -1, 72, 73, 74, 75, 76, 77, + -1, -1, -1, -1, 92, -1, 94, 95, 96, 97, + 98, -1, -1, -1, -1, -1, 94, 95, 96, 97, + 98 }; const unsigned char parser::yystos_[] = { 0, 11, 12, 13, 14, 15, 47, 100, 116, 117, - 118, 119, 120, 121, 122, 123, 191, 99, 100, 192, - 192, 54, 0, 118, 119, 120, 54, 80, 64, 64, - 101, 194, 170, 191, 16, 40, 41, 42, 43, 44, + 118, 119, 120, 121, 122, 123, 192, 99, 100, 193, + 193, 54, 0, 118, 119, 120, 54, 80, 64, 64, + 101, 195, 170, 192, 16, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 58, 62, 78, 79, 95, 98, 100, 102, 103, 104, 155, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 55, 55, 60, 58, - 191, 192, 58, 191, 192, 58, 54, 54, 155, 58, - 59, 155, 171, 172, 191, 155, 155, 103, 104, 100, - 64, 65, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 91, 92, 93, 94, 95, 96, 97, 98, - 58, 61, 167, 168, 191, 192, 54, 62, 64, 56, - 129, 191, 58, 54, 62, 58, 54, 62, 58, 155, - 155, 55, 60, 155, 60, 59, 155, 155, 155, 155, + 183, 184, 185, 186, 187, 188, 189, 190, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 55, 55, 60, + 58, 192, 193, 58, 192, 193, 58, 54, 54, 155, + 58, 59, 155, 171, 172, 192, 155, 155, 100, 103, + 104, 100, 64, 65, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 91, 92, 93, 94, 95, 96, + 97, 98, 58, 61, 167, 168, 192, 193, 54, 62, + 64, 56, 129, 192, 58, 54, 62, 58, 54, 62, + 58, 155, 155, 55, 60, 155, 60, 59, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 47, 100, 190, 62, - 171, 172, 191, 11, 19, 22, 23, 24, 26, 27, - 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 57, 58, 66, 67, 124, 125, 127, 128, 129, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 157, 158, 159, 165, 166, 176, - 177, 180, 184, 185, 186, 187, 191, 155, 171, 191, - 155, 171, 191, 155, 55, 55, 155, 59, 155, 63, - 59, 191, 55, 54, 12, 124, 126, 155, 64, 54, - 64, 54, 124, 54, 54, 54, 54, 95, 194, 197, - 63, 64, 64, 64, 155, 64, 54, 54, 58, 165, - 166, 180, 180, 57, 125, 64, 64, 64, 64, 64, - 17, 18, 20, 21, 61, 66, 67, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 59, 55, - 54, 59, 55, 54, 59, 60, 59, 155, 171, 12, - 124, 64, 55, 155, 27, 155, 130, 157, 158, 159, - 180, 191, 155, 63, 63, 64, 171, 171, 155, 54, - 54, 54, 54, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 59, 171, 59, 171, 59, 155, - 54, 55, 64, 55, 54, 55, 64, 30, 60, 55, - 55, 55, 155, 155, 155, 155, 54, 55, 54, 55, - 54, 55, 171, 124, 155, 124, 155, 156, 155, 191, - 129, 64, 64, 55, 55, 60, 55, 60, 55, 60, - 171, 171, 171, 55, 25, 55, 64, 55, 30, 64, - 64, 172, 64, 172, 64, 172, 55, 55, 55, 124, - 64, 130, 124, 155, 55, 55, 55, 55, 55, 64, - 64, 64, 124, 124 + 155, 155, 155, 155, 155, 155, 155, 155, 47, 100, + 191, 62, 171, 172, 192, 11, 19, 22, 23, 24, + 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 57, 58, 66, 67, 124, 125, 127, + 128, 129, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 157, 158, 159, 165, + 166, 176, 177, 180, 184, 185, 186, 187, 192, 155, + 171, 192, 155, 171, 192, 155, 55, 55, 155, 59, + 155, 63, 59, 192, 55, 54, 12, 124, 126, 155, + 64, 54, 64, 54, 124, 54, 54, 54, 54, 95, + 195, 198, 63, 64, 64, 64, 155, 64, 54, 54, + 58, 165, 166, 180, 180, 57, 125, 64, 64, 64, + 64, 64, 17, 18, 20, 21, 61, 66, 67, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 59, 55, 54, 59, 55, 54, 59, 60, 59, 155, + 171, 12, 124, 64, 55, 155, 27, 155, 130, 157, + 158, 159, 180, 192, 155, 63, 63, 64, 171, 171, + 155, 54, 54, 54, 54, 155, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 59, 171, 59, 171, + 59, 155, 54, 55, 64, 55, 54, 55, 64, 30, + 60, 55, 55, 55, 155, 155, 155, 155, 54, 55, + 54, 55, 54, 55, 171, 124, 155, 124, 155, 156, + 155, 192, 129, 64, 64, 55, 55, 60, 55, 60, + 55, 60, 171, 171, 171, 55, 25, 55, 64, 55, + 30, 64, 64, 172, 64, 172, 64, 172, 55, 55, + 55, 124, 64, 130, 124, 155, 55, 55, 55, 55, + 55, 64, 64, 64, 124, 124 }; const unsigned char @@ -4519,13 +4554,13 @@ namespace xsk { namespace gsc { namespace iw8 { 161, 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 163, 164, 165, 165, 166, 166, 167, 167, 167, - 167, 167, 167, 168, 168, 168, 168, 169, 170, 170, - 170, 171, 171, 172, 172, 173, 174, 175, 175, 176, - 177, 178, 179, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 191, 192, 192, 193, 194, 195, 196, - 196, 197, 197, 198, 199 + 162, 162, 163, 164, 165, 165, 166, 166, 167, 167, + 167, 167, 167, 167, 168, 168, 168, 168, 169, 170, + 170, 170, 171, 171, 172, 172, 173, 174, 175, 175, + 176, 177, 178, 179, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 192, 193, 193, 194, 195, + 196, 197, 197, 198, 198, 199, 200 }; const signed char @@ -4547,13 +4582,13 @@ namespace xsk { namespace gsc { namespace iw8 { 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 1, 1, 2, 2, 4, 6, 5, - 7, 5, 7, 8, 9, 9, 9, 3, 3, 1, - 0, 1, 0, 3, 1, 4, 4, 2, 3, 4, - 3, 3, 3, 1, 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, 2, - 1, 2, 1, 1, 1 + 1, 1, 2, 2, 1, 1, 2, 2, 4, 6, + 5, 7, 5, 7, 8, 9, 9, 9, 3, 3, + 1, 0, 1, 0, 3, 1, 4, 4, 2, 3, + 4, 3, 3, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 7, 2, 1, 2, 1, 1, 1 }; @@ -4563,29 +4598,29 @@ namespace xsk { namespace gsc { namespace iw8 { const short parser::yyrline_[] = { - 0, 263, 263, 264, 268, 270, 272, 274, 276, 278, - 283, 287, 292, 293, 294, 295, 296, 300, 305, 310, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 343, 344, 348, 350, 355, - 357, 362, 363, 367, 368, 372, 374, 376, 379, 383, - 385, 390, 392, 394, 399, 404, 406, 411, 416, 418, - 423, 425, 430, 435, 437, 442, 447, 452, 457, 462, - 467, 469, 474, 479, 481, 486, 491, 496, 501, 503, - 508, 513, 518, 523, 524, 525, 529, 530, 534, 536, - 538, 540, 542, 544, 546, 548, 550, 552, 554, 559, - 561, 566, 568, 573, 578, 580, 582, 584, 586, 588, - 590, 592, 594, 596, 598, 600, 602, 604, 606, 608, - 610, 612, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 649, 654, 659, 660, 663, 664, 668, 670, 672, - 674, 676, 678, 683, 685, 687, 689, 694, 699, 701, - 704, 708, 711, 715, 717, 722, 727, 732, 734, 739, - 744, 749, 754, 759, 760, 761, 762, 763, 764, 765, - 766, 767, 771, 776, 781, 786, 791, 796, 801, 806, - 811, 816, 821, 823, 828, 830, 835, 840, 845, 850, - 852, 857, 859, 864, 869 + 0, 264, 264, 265, 269, 271, 273, 275, 277, 279, + 284, 288, 293, 294, 295, 296, 297, 301, 306, 311, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 344, 345, 349, 351, 356, + 358, 363, 364, 368, 369, 373, 375, 377, 380, 384, + 386, 391, 393, 395, 400, 405, 407, 412, 417, 419, + 424, 426, 431, 436, 438, 443, 448, 453, 458, 463, + 468, 470, 475, 480, 482, 487, 492, 497, 502, 504, + 509, 514, 519, 524, 525, 526, 530, 531, 535, 537, + 539, 541, 543, 545, 547, 549, 551, 553, 555, 560, + 562, 567, 569, 574, 579, 581, 583, 585, 587, 589, + 591, 593, 595, 597, 599, 601, 603, 605, 607, 609, + 611, 613, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 651, 656, 661, 662, 665, 666, 670, 672, + 674, 676, 678, 680, 685, 687, 689, 691, 696, 701, + 703, 706, 710, 713, 717, 719, 724, 729, 734, 736, + 741, 746, 751, 756, 761, 762, 763, 764, 765, 766, + 767, 768, 769, 773, 778, 783, 788, 793, 798, 803, + 808, 813, 818, 823, 828, 830, 835, 837, 842, 847, + 852, 857, 859, 864, 866, 871, 876 }; void @@ -4618,9 +4653,9 @@ namespace xsk { namespace gsc { namespace iw8 { #line 13 "parser.ypp" } } } // xsk::gsc::iw8 -#line 4622 "parser.cpp" +#line 4657 "parser.cpp" -#line 873 "parser.ypp" +#line 880 "parser.ypp" void xsk::gsc::iw8::parser::error(const xsk::gsc::location& loc, const std::string& msg) diff --git a/src/iw8/xsk/parser.hpp b/src/iw8/xsk/parser.hpp index 7dd50883..d49df608 100644 --- a/src/iw8/xsk/parser.hpp +++ b/src/iw8/xsk/parser.hpp @@ -447,6 +447,7 @@ namespace xsk { namespace gsc { namespace iw8 { // expr_binary // expr_primitive // expr_object + // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -1019,16 +1020,17 @@ namespace xsk { namespace gsc { namespace iw8 { S_expr_level = 187, // expr_level S_expr_animation = 188, // expr_animation S_expr_animtree = 189, // expr_animtree - S_expr_identifier_nosize = 190, // expr_identifier_nosize - S_expr_identifier = 191, // expr_identifier - S_expr_path = 192, // expr_path - S_expr_istring = 193, // expr_istring - S_expr_string = 194, // expr_string - S_expr_vector = 195, // expr_vector - S_expr_float = 196, // expr_float - S_expr_integer = 197, // expr_integer - S_expr_false = 198, // expr_false - S_expr_true = 199 // expr_true + S_expr_identifier_neg = 190, // expr_identifier_neg + S_expr_identifier_nosize = 191, // expr_identifier_nosize + S_expr_identifier = 192, // expr_identifier + S_expr_path = 193, // expr_path + S_expr_istring = 194, // expr_istring + S_expr_string = 195, // expr_string + S_expr_vector = 196, // expr_vector + S_expr_float = 197, // expr_float + S_expr_integer = 198, // expr_integer + S_expr_false = 199, // expr_false + S_expr_true = 200 // expr_true }; }; @@ -1095,6 +1097,7 @@ namespace xsk { namespace gsc { namespace iw8 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (std::move (that.value)); break; @@ -2403,6 +2406,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.template destroy< ast::expr > (); break; @@ -4899,8 +4903,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 2278, ///< Last index in yytable_. - yynnts_ = 85, ///< Number of nonterminal symbols. + yylast_ = 2360, ///< Last index in yytable_. + yynnts_ = 86, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4957,6 +4961,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (YY_MOVE (that.value)); break; @@ -5283,6 +5288,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (s.value)); break; @@ -5615,7 +5621,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::iw8 -#line 5619 "parser.hpp" +#line 5625 "parser.hpp" diff --git a/src/s1/xsk/parser.cpp b/src/s1/xsk/parser.cpp index d8c9009b..d7f038d7 100644 --- a/src/s1/xsk/parser.cpp +++ b/src/s1/xsk/parser.cpp @@ -245,6 +245,7 @@ namespace xsk { namespace gsc { namespace s1 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.YY_MOVE_OR_COPY< ast::expr > (YY_MOVE (that.value)); break; @@ -547,6 +548,7 @@ namespace xsk { namespace gsc { namespace s1 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (that.value)); break; @@ -849,6 +851,7 @@ namespace xsk { namespace gsc { namespace s1 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (that.value); break; @@ -1150,6 +1153,7 @@ namespace xsk { namespace gsc { namespace s1 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (that.value); break; @@ -1706,6 +1710,7 @@ namespace xsk { namespace gsc { namespace s1 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg yylhs.value.emplace< ast::expr > (); break; @@ -1984,1321 +1989,1333 @@ namespace xsk { namespace gsc { namespace s1 { switch (yyn) { case 2: // root: program -#line 259 "parser.ypp" +#line 260 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1990 "parser.cpp" +#line 1995 "parser.cpp" break; case 3: // root: %empty -#line 260 "parser.ypp" +#line 261 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 1996 "parser.cpp" +#line 2001 "parser.cpp" break; case 4: // program: program inline -#line 265 "parser.ypp" +#line 266 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2002 "parser.cpp" +#line 2007 "parser.cpp" break; case 5: // program: program include -#line 267 "parser.ypp" +#line 268 "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 2008 "parser.cpp" +#line 2013 "parser.cpp" break; case 6: // program: program declaration -#line 269 "parser.ypp" +#line 270 "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 2014 "parser.cpp" +#line 2019 "parser.cpp" break; case 7: // program: inline -#line 271 "parser.ypp" +#line 272 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2020 "parser.cpp" +#line 2025 "parser.cpp" break; case 8: // program: include -#line 273 "parser.ypp" +#line 274 "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 2026 "parser.cpp" +#line 2031 "parser.cpp" break; case 9: // program: declaration -#line 275 "parser.ypp" +#line 276 "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 2032 "parser.cpp" +#line 2037 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" -#line 279 "parser.ypp" +#line 280 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2038 "parser.cpp" +#line 2043 "parser.cpp" break; case 11: // include: "#include" expr_path ";" -#line 284 "parser.ypp" +#line 285 "parser.ypp" { yylhs.value.as < ast::include::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_path::ptr > ())); } -#line 2044 "parser.cpp" +#line 2049 "parser.cpp" break; case 12: // declaration: "/#" -#line 288 "parser.ypp" +#line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2050 "parser.cpp" +#line 2055 "parser.cpp" break; case 13: // declaration: "#/" -#line 289 "parser.ypp" +#line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2056 "parser.cpp" +#line 2061 "parser.cpp" break; case 14: // declaration: decl_usingtree -#line 290 "parser.ypp" +#line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2062 "parser.cpp" +#line 2067 "parser.cpp" break; case 15: // declaration: decl_constant -#line 291 "parser.ypp" +#line 292 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2068 "parser.cpp" +#line 2073 "parser.cpp" break; case 16: // declaration: decl_thread -#line 292 "parser.ypp" +#line 293 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2074 "parser.cpp" +#line 2079 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" -#line 297 "parser.ypp" +#line 298 "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 2080 "parser.cpp" +#line 2085 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" -#line 302 "parser.ypp" +#line 303 "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 2086 "parser.cpp" +#line 2091 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block -#line 307 "parser.ypp" +#line 308 "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 2092 "parser.cpp" +#line 2097 "parser.cpp" break; case 20: // stmt: stmt_block -#line 311 "parser.ypp" +#line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2098 "parser.cpp" +#line 2103 "parser.cpp" break; case 21: // stmt: stmt_call -#line 312 "parser.ypp" +#line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2104 "parser.cpp" +#line 2109 "parser.cpp" break; case 22: // stmt: stmt_assign -#line 313 "parser.ypp" +#line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2110 "parser.cpp" +#line 2115 "parser.cpp" break; case 23: // stmt: stmt_endon -#line 314 "parser.ypp" +#line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2116 "parser.cpp" +#line 2121 "parser.cpp" break; case 24: // stmt: stmt_notify -#line 315 "parser.ypp" +#line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2122 "parser.cpp" +#line 2127 "parser.cpp" break; case 25: // stmt: stmt_wait -#line 316 "parser.ypp" +#line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2128 "parser.cpp" +#line 2133 "parser.cpp" break; case 26: // stmt: stmt_waittill -#line 317 "parser.ypp" +#line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2134 "parser.cpp" +#line 2139 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch -#line 318 "parser.ypp" +#line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2140 "parser.cpp" +#line 2145 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend -#line 319 "parser.ypp" +#line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2146 "parser.cpp" +#line 2151 "parser.cpp" break; case 29: // stmt: stmt_waitframe -#line 320 "parser.ypp" +#line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waitframe = std::move(yystack_[0].value.as < ast::stmt_waitframe::ptr > ()); } -#line 2152 "parser.cpp" +#line 2157 "parser.cpp" break; case 30: // stmt: stmt_if -#line 321 "parser.ypp" +#line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2158 "parser.cpp" +#line 2163 "parser.cpp" break; case 31: // stmt: stmt_ifelse -#line 322 "parser.ypp" +#line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2164 "parser.cpp" +#line 2169 "parser.cpp" break; case 32: // stmt: stmt_while -#line 323 "parser.ypp" +#line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2170 "parser.cpp" +#line 2175 "parser.cpp" break; case 33: // stmt: stmt_dowhile -#line 324 "parser.ypp" +#line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2176 "parser.cpp" +#line 2181 "parser.cpp" break; case 34: // stmt: stmt_for -#line 325 "parser.ypp" +#line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2182 "parser.cpp" +#line 2187 "parser.cpp" break; case 35: // stmt: stmt_foreach -#line 326 "parser.ypp" +#line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2188 "parser.cpp" +#line 2193 "parser.cpp" break; case 36: // stmt: stmt_switch -#line 327 "parser.ypp" +#line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2194 "parser.cpp" +#line 2199 "parser.cpp" break; case 37: // stmt: stmt_case -#line 328 "parser.ypp" +#line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2200 "parser.cpp" +#line 2205 "parser.cpp" break; case 38: // stmt: stmt_default -#line 329 "parser.ypp" +#line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2206 "parser.cpp" +#line 2211 "parser.cpp" break; case 39: // stmt: stmt_break -#line 330 "parser.ypp" +#line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2212 "parser.cpp" +#line 2217 "parser.cpp" break; case 40: // stmt: stmt_continue -#line 331 "parser.ypp" +#line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2218 "parser.cpp" +#line 2223 "parser.cpp" break; case 41: // stmt: stmt_return -#line 332 "parser.ypp" +#line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2224 "parser.cpp" +#line 2229 "parser.cpp" break; case 42: // stmt: stmt_breakpoint -#line 333 "parser.ypp" +#line 334 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2230 "parser.cpp" +#line 2235 "parser.cpp" break; case 43: // stmt: stmt_prof_begin -#line 334 "parser.ypp" +#line 335 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2236 "parser.cpp" +#line 2241 "parser.cpp" break; case 44: // stmt: stmt_prof_end -#line 335 "parser.ypp" +#line 336 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2242 "parser.cpp" +#line 2247 "parser.cpp" break; case 45: // stmt_or_dev: stmt -#line 339 "parser.ypp" +#line 340 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2248 "parser.cpp" +#line 2253 "parser.cpp" break; case 46: // stmt_or_dev: stmt_dev -#line 340 "parser.ypp" +#line 341 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2254 "parser.cpp" +#line 2259 "parser.cpp" break; case 47: // stmt_list: stmt_list stmt -#line 345 "parser.ypp" +#line 346 "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 2260 "parser.cpp" +#line 2265 "parser.cpp" break; case 48: // stmt_list: stmt -#line 347 "parser.ypp" +#line 348 "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 2266 "parser.cpp" +#line 2271 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev -#line 352 "parser.ypp" +#line 353 "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 2272 "parser.cpp" +#line 2277 "parser.cpp" break; case 50: // stmt_or_dev_list: stmt_or_dev -#line 354 "parser.ypp" +#line 355 "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 2278 "parser.cpp" +#line 2283 "parser.cpp" break; case 51: // stmt_dev: "/#" stmt_list "#/" -#line 358 "parser.ypp" +#line 359 "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 2284 "parser.cpp" +#line 2289 "parser.cpp" break; case 52: // stmt_dev: "/#" "#/" -#line 359 "parser.ypp" +#line 360 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2290 "parser.cpp" +#line 2295 "parser.cpp" break; case 53: // stmt_block: "{" stmt_or_dev_list "}" -#line 363 "parser.ypp" +#line 364 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2296 "parser.cpp" +#line 2301 "parser.cpp" break; case 54: // stmt_block: "{" "}" -#line 364 "parser.ypp" +#line 365 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2302 "parser.cpp" +#line 2307 "parser.cpp" break; case 55: // stmt_expr: expr_assign -#line 369 "parser.ypp" +#line 370 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2308 "parser.cpp" +#line 2313 "parser.cpp" break; case 56: // stmt_expr: expr_increment -#line 371 "parser.ypp" +#line 372 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2314 "parser.cpp" +#line 2319 "parser.cpp" break; case 57: // stmt_expr: expr_decrement -#line 373 "parser.ypp" +#line 374 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2320 "parser.cpp" +#line 2325 "parser.cpp" break; case 58: // stmt_expr: %empty -#line 375 "parser.ypp" +#line 376 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2326 "parser.cpp" +#line 2331 "parser.cpp" break; case 59: // stmt_call: expr_call ";" -#line 380 "parser.ypp" +#line 381 "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 2332 "parser.cpp" +#line 2337 "parser.cpp" break; case 60: // stmt_call: expr_method ";" -#line 382 "parser.ypp" +#line 383 "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 2338 "parser.cpp" +#line 2343 "parser.cpp" break; case 61: // stmt_assign: expr_assign ";" -#line 387 "parser.ypp" +#line 388 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2344 "parser.cpp" +#line 2349 "parser.cpp" break; case 62: // stmt_assign: expr_increment ";" -#line 389 "parser.ypp" +#line 390 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2350 "parser.cpp" +#line 2355 "parser.cpp" break; case 63: // stmt_assign: expr_decrement ";" -#line 391 "parser.ypp" +#line 392 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2356 "parser.cpp" +#line 2361 "parser.cpp" break; case 64: // stmt_endon: expr_object "endon" "(" expr ")" ";" -#line 396 "parser.ypp" +#line 397 "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 2362 "parser.cpp" +#line 2367 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" -#line 401 "parser.ypp" +#line 402 "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 2368 "parser.cpp" +#line 2373 "parser.cpp" break; case 66: // stmt_notify: expr_object "notify" "(" expr ")" ";" -#line 403 "parser.ypp" +#line 404 "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 2374 "parser.cpp" +#line 2379 "parser.cpp" break; case 67: // stmt_wait: "wait" expr ";" -#line 408 "parser.ypp" +#line 409 "parser.ypp" { yylhs.value.as < ast::stmt_wait::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2380 "parser.cpp" +#line 2385 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" -#line 413 "parser.ypp" +#line 414 "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 2386 "parser.cpp" +#line 2391 "parser.cpp" break; case 69: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" -#line 415 "parser.ypp" +#line 416 "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 2392 "parser.cpp" +#line 2397 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" -#line 420 "parser.ypp" +#line 421 "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 2398 "parser.cpp" +#line 2403 "parser.cpp" break; case 71: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" -#line 422 "parser.ypp" +#line 423 "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 2404 "parser.cpp" +#line 2409 "parser.cpp" break; case 72: // stmt_waittillframeend: "waittillframeend" ";" -#line 427 "parser.ypp" +#line 428 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2410 "parser.cpp" +#line 2415 "parser.cpp" break; case 73: // stmt_waitframe: "waitframe" ";" -#line 432 "parser.ypp" +#line 433 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2416 "parser.cpp" +#line 2421 "parser.cpp" break; case 74: // stmt_waitframe: "waitframe" "(" ")" ";" -#line 434 "parser.ypp" +#line 435 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2422 "parser.cpp" +#line 2427 "parser.cpp" break; case 75: // stmt_if: "if" "(" expr ")" stmt -#line 439 "parser.ypp" +#line 440 "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 2428 "parser.cpp" +#line 2433 "parser.cpp" break; case 76: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt -#line 444 "parser.ypp" +#line 445 "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 2434 "parser.cpp" +#line 2439 "parser.cpp" break; case 77: // stmt_while: "while" "(" expr ")" stmt -#line 449 "parser.ypp" +#line 450 "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 2440 "parser.cpp" +#line 2445 "parser.cpp" break; case 78: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" -#line 454 "parser.ypp" +#line 455 "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 2446 "parser.cpp" +#line 2451 "parser.cpp" break; case 79: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt -#line 459 "parser.ypp" +#line 460 "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 2452 "parser.cpp" +#line 2457 "parser.cpp" break; case 80: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt -#line 464 "parser.ypp" +#line 465 "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 2458 "parser.cpp" +#line 2463 "parser.cpp" break; case 81: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt -#line 466 "parser.ypp" +#line 467 "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 2464 "parser.cpp" +#line 2469 "parser.cpp" break; case 82: // stmt_switch: "switch" "(" expr ")" stmt_block -#line 471 "parser.ypp" +#line 472 "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 2470 "parser.cpp" +#line 2475 "parser.cpp" break; case 83: // stmt_case: "case" expr_integer ":" -#line 476 "parser.ypp" +#line 477 "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 2476 "parser.cpp" +#line 2481 "parser.cpp" break; case 84: // stmt_case: "case" expr_string ":" -#line 478 "parser.ypp" +#line 479 "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 2482 "parser.cpp" +#line 2487 "parser.cpp" break; case 85: // stmt_default: "default" ":" -#line 483 "parser.ypp" +#line 484 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2488 "parser.cpp" +#line 2493 "parser.cpp" break; case 86: // stmt_break: "break" ";" -#line 488 "parser.ypp" +#line 489 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2494 "parser.cpp" +#line 2499 "parser.cpp" break; case 87: // stmt_continue: "continue" ";" -#line 493 "parser.ypp" +#line 494 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2500 "parser.cpp" +#line 2505 "parser.cpp" break; case 88: // stmt_return: "return" expr ";" -#line 498 "parser.ypp" +#line 499 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2506 "parser.cpp" +#line 2511 "parser.cpp" break; case 89: // stmt_return: "return" ";" -#line 500 "parser.ypp" +#line 501 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2512 "parser.cpp" +#line 2517 "parser.cpp" break; case 90: // stmt_breakpoint: "breakpoint" ";" -#line 505 "parser.ypp" +#line 506 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2518 "parser.cpp" +#line 2523 "parser.cpp" break; case 91: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" -#line 510 "parser.ypp" +#line 511 "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 2524 "parser.cpp" +#line 2529 "parser.cpp" break; case 92: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" -#line 515 "parser.ypp" +#line 516 "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 2530 "parser.cpp" +#line 2535 "parser.cpp" break; case 93: // expr: expr_ternary -#line 519 "parser.ypp" +#line 520 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2536 "parser.cpp" +#line 2541 "parser.cpp" break; case 94: // expr: expr_binary -#line 520 "parser.ypp" +#line 521 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2542 "parser.cpp" +#line 2547 "parser.cpp" break; case 95: // expr: expr_primitive -#line 521 "parser.ypp" +#line 522 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2548 "parser.cpp" +#line 2553 "parser.cpp" break; case 96: // expr_or_empty: expr -#line 525 "parser.ypp" +#line 526 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2554 "parser.cpp" +#line 2559 "parser.cpp" break; case 97: // expr_or_empty: %empty -#line 526 "parser.ypp" +#line 527 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2560 "parser.cpp" +#line 2565 "parser.cpp" break; case 98: // expr_assign: expr_object "=" expr -#line 531 "parser.ypp" +#line 532 "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 2566 "parser.cpp" +#line 2571 "parser.cpp" break; case 99: // expr_assign: expr_object "|=" expr -#line 533 "parser.ypp" +#line 534 "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 2572 "parser.cpp" +#line 2577 "parser.cpp" break; case 100: // expr_assign: expr_object "&=" expr -#line 535 "parser.ypp" +#line 536 "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 2578 "parser.cpp" +#line 2583 "parser.cpp" break; case 101: // expr_assign: expr_object "^=" expr -#line 537 "parser.ypp" +#line 538 "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 2584 "parser.cpp" +#line 2589 "parser.cpp" break; case 102: // expr_assign: expr_object "<<=" expr -#line 539 "parser.ypp" +#line 540 "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 2590 "parser.cpp" +#line 2595 "parser.cpp" break; case 103: // expr_assign: expr_object ">>=" expr -#line 541 "parser.ypp" +#line 542 "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 2596 "parser.cpp" +#line 2601 "parser.cpp" break; case 104: // expr_assign: expr_object "+=" expr -#line 543 "parser.ypp" +#line 544 "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 2602 "parser.cpp" +#line 2607 "parser.cpp" break; case 105: // expr_assign: expr_object "-=" expr -#line 545 "parser.ypp" +#line 546 "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 2608 "parser.cpp" +#line 2613 "parser.cpp" break; case 106: // expr_assign: expr_object "*=" expr -#line 547 "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 2614 "parser.cpp" +#line 2619 "parser.cpp" break; case 107: // expr_assign: expr_object "/=" expr -#line 549 "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 2620 "parser.cpp" +#line 2625 "parser.cpp" break; case 108: // expr_assign: expr_object "%=" expr -#line 551 "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 2626 "parser.cpp" +#line 2631 "parser.cpp" break; case 109: // expr_increment: "++" expr_object -#line 556 "parser.ypp" +#line 557 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2632 "parser.cpp" +#line 2637 "parser.cpp" break; case 110: // expr_increment: expr_object "++" -#line 558 "parser.ypp" +#line 559 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2638 "parser.cpp" +#line 2643 "parser.cpp" break; case 111: // expr_decrement: "--" expr_object -#line 563 "parser.ypp" +#line 564 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2644 "parser.cpp" +#line 2649 "parser.cpp" break; case 112: // expr_decrement: expr_object "--" -#line 565 "parser.ypp" +#line 566 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2650 "parser.cpp" +#line 2655 "parser.cpp" break; case 113: // expr_ternary: expr "?" expr ":" expr -#line 570 "parser.ypp" +#line 571 "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 2656 "parser.cpp" +#line 2661 "parser.cpp" break; case 114: // expr_binary: expr "||" expr -#line 575 "parser.ypp" +#line 576 "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 2662 "parser.cpp" +#line 2667 "parser.cpp" break; case 115: // expr_binary: expr "&&" expr -#line 577 "parser.ypp" +#line 578 "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 2668 "parser.cpp" +#line 2673 "parser.cpp" break; case 116: // expr_binary: expr "==" expr -#line 579 "parser.ypp" +#line 580 "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 2674 "parser.cpp" +#line 2679 "parser.cpp" break; case 117: // expr_binary: expr "!=" expr -#line 581 "parser.ypp" +#line 582 "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 2680 "parser.cpp" +#line 2685 "parser.cpp" break; case 118: // expr_binary: expr "<=" expr -#line 583 "parser.ypp" +#line 584 "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 2686 "parser.cpp" +#line 2691 "parser.cpp" break; case 119: // expr_binary: expr ">=" expr -#line 585 "parser.ypp" +#line 586 "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 2692 "parser.cpp" +#line 2697 "parser.cpp" break; case 120: // expr_binary: expr "<" expr -#line 587 "parser.ypp" +#line 588 "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 2698 "parser.cpp" +#line 2703 "parser.cpp" break; case 121: // expr_binary: expr ">" expr -#line 589 "parser.ypp" +#line 590 "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 2704 "parser.cpp" +#line 2709 "parser.cpp" break; case 122: // expr_binary: expr "|" expr -#line 591 "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 2710 "parser.cpp" +#line 2715 "parser.cpp" break; case 123: // expr_binary: expr "&" expr -#line 593 "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 2716 "parser.cpp" +#line 2721 "parser.cpp" break; case 124: // expr_binary: expr "^" expr -#line 595 "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 2722 "parser.cpp" +#line 2727 "parser.cpp" break; case 125: // expr_binary: expr "<<" expr -#line 597 "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 2728 "parser.cpp" +#line 2733 "parser.cpp" break; case 126: // expr_binary: expr ">>" expr -#line 599 "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 2734 "parser.cpp" +#line 2739 "parser.cpp" break; case 127: // expr_binary: expr "+" expr -#line 601 "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 2740 "parser.cpp" +#line 2745 "parser.cpp" break; case 128: // expr_binary: expr "-" expr -#line 603 "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 2746 "parser.cpp" +#line 2751 "parser.cpp" break; case 129: // expr_binary: expr "*" expr -#line 605 "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 2752 "parser.cpp" +#line 2757 "parser.cpp" break; case 130: // expr_binary: expr "/" expr -#line 607 "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 2758 "parser.cpp" +#line 2763 "parser.cpp" break; case 131: // expr_binary: expr "%" expr -#line 609 "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 2764 "parser.cpp" +#line 2769 "parser.cpp" break; case 132: // expr_primitive: expr_complement -#line 613 "parser.ypp" +#line 614 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2770 "parser.cpp" +#line 2775 "parser.cpp" break; case 133: // expr_primitive: expr_not -#line 614 "parser.ypp" +#line 615 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2776 "parser.cpp" +#line 2781 "parser.cpp" break; case 134: // expr_primitive: expr_call -#line 615 "parser.ypp" +#line 616 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2782 "parser.cpp" +#line 2787 "parser.cpp" break; case 135: // expr_primitive: expr_method -#line 616 "parser.ypp" +#line 617 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2788 "parser.cpp" +#line 2793 "parser.cpp" break; case 136: // expr_primitive: expr_add_array -#line 617 "parser.ypp" +#line 618 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2794 "parser.cpp" +#line 2799 "parser.cpp" break; case 137: // expr_primitive: expr_reference -#line 618 "parser.ypp" +#line 619 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2800 "parser.cpp" +#line 2805 "parser.cpp" break; case 138: // expr_primitive: expr_array -#line 619 "parser.ypp" +#line 620 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2806 "parser.cpp" +#line 2811 "parser.cpp" break; case 139: // expr_primitive: expr_field -#line 620 "parser.ypp" +#line 621 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2812 "parser.cpp" +#line 2817 "parser.cpp" break; case 140: // expr_primitive: expr_size -#line 621 "parser.ypp" +#line 622 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2818 "parser.cpp" +#line 2823 "parser.cpp" break; case 141: // expr_primitive: expr_paren -#line 622 "parser.ypp" +#line 623 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2824 "parser.cpp" +#line 2829 "parser.cpp" break; case 142: // expr_primitive: expr_thisthread -#line 623 "parser.ypp" +#line 624 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2830 "parser.cpp" +#line 2835 "parser.cpp" break; case 143: // expr_primitive: expr_empty_array -#line 624 "parser.ypp" +#line 625 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2836 "parser.cpp" +#line 2841 "parser.cpp" break; case 144: // expr_primitive: expr_undefined -#line 625 "parser.ypp" +#line 626 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2842 "parser.cpp" +#line 2847 "parser.cpp" break; case 145: // expr_primitive: expr_game -#line 626 "parser.ypp" +#line 627 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2848 "parser.cpp" +#line 2853 "parser.cpp" break; case 146: // expr_primitive: expr_self -#line 627 "parser.ypp" +#line 628 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2854 "parser.cpp" +#line 2859 "parser.cpp" break; case 147: // expr_primitive: expr_anim -#line 628 "parser.ypp" +#line 629 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2860 "parser.cpp" +#line 2865 "parser.cpp" break; case 148: // expr_primitive: expr_level -#line 629 "parser.ypp" +#line 630 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2866 "parser.cpp" +#line 2871 "parser.cpp" break; case 149: // expr_primitive: expr_animation -#line 630 "parser.ypp" +#line 631 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2872 "parser.cpp" +#line 2877 "parser.cpp" break; case 150: // expr_primitive: expr_animtree -#line 631 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2878 "parser.cpp" - break; - - case 151: // expr_primitive: expr_identifier #line 632 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 2884 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2883 "parser.cpp" break; - case 152: // expr_primitive: expr_istring + case 151: // expr_primitive: expr_identifier_neg #line 633 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } -#line 2890 "parser.cpp" + { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } +#line 2889 "parser.cpp" break; - case 153: // expr_primitive: expr_string + case 152: // expr_primitive: expr_identifier #line 634 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } -#line 2896 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 2895 "parser.cpp" break; - case 154: // expr_primitive: expr_vector + case 153: // expr_primitive: expr_istring #line 635 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } -#line 2902 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } +#line 2901 "parser.cpp" break; - case 155: // expr_primitive: expr_float + case 154: // expr_primitive: expr_string #line 636 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } -#line 2908 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } +#line 2907 "parser.cpp" break; - case 156: // expr_primitive: expr_integer + case 155: // expr_primitive: expr_vector #line 637 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } -#line 2914 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } +#line 2913 "parser.cpp" break; - case 157: // expr_primitive: expr_false + case 156: // expr_primitive: expr_float #line 638 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } -#line 2920 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } +#line 2919 "parser.cpp" break; - case 158: // expr_primitive: expr_true + case 157: // expr_primitive: expr_integer #line 639 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } +#line 2925 "parser.cpp" + break; + + case 158: // expr_primitive: expr_false +#line 640 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } +#line 2931 "parser.cpp" + break; + + case 159: // expr_primitive: expr_true +#line 641 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_true::ptr > ()); } -#line 2926 "parser.cpp" +#line 2937 "parser.cpp" break; - case 159: // expr_complement: "~" expr -#line 644 "parser.ypp" + case 160: // expr_complement: "~" expr +#line 646 "parser.ypp" { yylhs.value.as < ast::expr_complement::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2932 "parser.cpp" +#line 2943 "parser.cpp" break; - case 160: // expr_not: "!" expr -#line 649 "parser.ypp" + case 161: // expr_not: "!" expr +#line 651 "parser.ypp" { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2938 "parser.cpp" +#line 2949 "parser.cpp" break; - case 161: // expr_call: expr_function -#line 653 "parser.ypp" + case 162: // expr_call: expr_function +#line 655 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2944 "parser.cpp" +#line 2955 "parser.cpp" break; - case 162: // expr_call: expr_pointer -#line 654 "parser.ypp" + case 163: // expr_call: expr_pointer +#line 656 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2950 "parser.cpp" +#line 2961 "parser.cpp" break; - case 163: // expr_method: expr_object expr_function -#line 657 "parser.ypp" + case 164: // expr_method: expr_object expr_function +#line 659 "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 2956 "parser.cpp" +#line 2967 "parser.cpp" break; - case 164: // expr_method: expr_object expr_pointer -#line 658 "parser.ypp" + case 165: // expr_method: expr_object expr_pointer +#line 660 "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 2962 "parser.cpp" +#line 2973 "parser.cpp" break; - case 165: // expr_function: expr_identifier "(" expr_arguments ")" -#line 663 "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 2968 "parser.cpp" - break; - - case 166: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" + case 166: // expr_function: expr_identifier "(" expr_arguments ")" #line 665 "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 2974 "parser.cpp" + { 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 2979 "parser.cpp" break; - case 167: // expr_function: "thread" expr_identifier "(" expr_arguments ")" + case 167: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" #line 667 "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 2980 "parser.cpp" + { 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 2985 "parser.cpp" break; - case 168: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 168: // expr_function: "thread" expr_identifier "(" expr_arguments ")" #line 669 "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 2986 "parser.cpp" + { 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 2991 "parser.cpp" break; - case 169: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" + case 169: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" #line 671 "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::childthread); } -#line 2992 "parser.cpp" + { 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 2997 "parser.cpp" break; - case 170: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 170: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" #line 673 "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::childthread); } +#line 3003 "parser.cpp" + break; + + case 171: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" +#line 675 "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::childthread); } -#line 2998 "parser.cpp" +#line 3009 "parser.cpp" break; - case 171: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" -#line 678 "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 3004 "parser.cpp" - break; - - case 172: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 172: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 680 "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 3010 "parser.cpp" + { 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 3015 "parser.cpp" break; - case 173: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 173: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 682 "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::childthread); } -#line 3016 "parser.cpp" + { 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 3021 "parser.cpp" break; - case 174: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 174: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 684 "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::childthread); } +#line 3027 "parser.cpp" + break; + + case 175: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 686 "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::builtin); } -#line 3022 "parser.cpp" +#line 3033 "parser.cpp" break; - case 175: // expr_add_array: "[" expr_arguments_no_empty "]" -#line 689 "parser.ypp" + case 176: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 691 "parser.ypp" { yylhs.value.as < ast::expr_add_array::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ())); } -#line 3028 "parser.cpp" +#line 3039 "parser.cpp" break; - case 176: // expr_parameters: expr_parameters "," expr_identifier -#line 694 "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 3034 "parser.cpp" - break; - - case 177: // expr_parameters: expr_identifier + case 177: // expr_parameters: expr_parameters "," expr_identifier #line 696 "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 3040 "parser.cpp" + { 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 3045 "parser.cpp" break; - case 178: // expr_parameters: %empty + case 178: // expr_parameters: expr_identifier #line 698 "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 3051 "parser.cpp" + break; + + case 179: // expr_parameters: %empty +#line 700 "parser.ypp" { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } -#line 3046 "parser.cpp" +#line 3057 "parser.cpp" break; - case 179: // expr_arguments: expr_arguments_no_empty -#line 703 "parser.ypp" - { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } -#line 3052 "parser.cpp" - break; - - case 180: // expr_arguments: %empty + case 180: // expr_arguments: expr_arguments_no_empty #line 705 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3063 "parser.cpp" + break; + + case 181: // expr_arguments: %empty +#line 707 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3058 "parser.cpp" +#line 3069 "parser.cpp" break; - case 181: // expr_arguments_no_empty: expr_arguments "," expr -#line 710 "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 3064 "parser.cpp" - break; - - case 182: // expr_arguments_no_empty: expr + case 182: // expr_arguments_no_empty: expr_arguments "," expr #line 712 "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 3075 "parser.cpp" + break; + + case 183: // expr_arguments_no_empty: expr +#line 714 "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 3070 "parser.cpp" +#line 3081 "parser.cpp" break; - case 183: // expr_reference: "::" expr_identifier -#line 717 "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 3076 "parser.cpp" - break; - - case 184: // expr_reference: expr_path "::" expr_identifier + case 184: // expr_reference: "::" expr_identifier #line 719 "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 3087 "parser.cpp" + break; + + case 185: // expr_reference: expr_path "::" expr_identifier +#line 721 "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 3082 "parser.cpp" +#line 3093 "parser.cpp" break; - case 185: // expr_array: expr_object "[" expr "]" -#line 724 "parser.ypp" + case 186: // expr_array: expr_object "[" expr "]" +#line 726 "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 3088 "parser.cpp" +#line 3099 "parser.cpp" break; - case 186: // expr_field: expr_object "." expr_identifier_nosize -#line 729 "parser.ypp" + case 187: // expr_field: expr_object "." expr_identifier_nosize +#line 731 "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 3094 "parser.cpp" +#line 3105 "parser.cpp" break; - case 187: // expr_size: expr_object "." "size" -#line 734 "parser.ypp" + case 188: // expr_size: expr_object "." "size" +#line 736 "parser.ypp" { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } -#line 3100 "parser.cpp" +#line 3111 "parser.cpp" break; - case 188: // expr_paren: "(" expr ")" -#line 739 "parser.ypp" + case 189: // expr_paren: "(" expr ")" +#line 741 "parser.ypp" { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3106 "parser.cpp" +#line 3117 "parser.cpp" break; - case 189: // expr_object: expr_call -#line 743 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 3112 "parser.cpp" - break; - - case 190: // expr_object: expr_method -#line 744 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 3118 "parser.cpp" - break; - - case 191: // expr_object: expr_array + case 190: // expr_object: expr_call #line 745 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3124 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3123 "parser.cpp" break; - case 192: // expr_object: expr_field + case 191: // expr_object: expr_method #line 746 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 3130 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3129 "parser.cpp" break; - case 193: // expr_object: expr_game + case 192: // expr_object: expr_array #line 747 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 3136 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3135 "parser.cpp" break; - case 194: // expr_object: expr_self + case 193: // expr_object: expr_field #line 748 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 3142 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3141 "parser.cpp" break; - case 195: // expr_object: expr_anim + case 194: // expr_object: expr_game #line 749 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 3148 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3147 "parser.cpp" break; - case 196: // expr_object: expr_level + case 195: // expr_object: expr_self #line 750 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 3154 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3153 "parser.cpp" break; - case 197: // expr_object: expr_identifier + case 196: // expr_object: expr_anim #line 751 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3159 "parser.cpp" + break; + + case 197: // expr_object: expr_level +#line 752 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3165 "parser.cpp" + break; + + case 198: // expr_object: expr_identifier +#line 753 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 3160 "parser.cpp" +#line 3171 "parser.cpp" break; - case 198: // expr_thisthread: "thisthread" -#line 756 "parser.ypp" + case 199: // expr_thisthread: "thisthread" +#line 758 "parser.ypp" { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3166 "parser.cpp" +#line 3177 "parser.cpp" break; - case 199: // expr_empty_array: "[" "]" -#line 761 "parser.ypp" + case 200: // expr_empty_array: "[" "]" +#line 763 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3172 "parser.cpp" +#line 3183 "parser.cpp" break; - case 200: // expr_undefined: "undefined" -#line 766 "parser.ypp" + case 201: // expr_undefined: "undefined" +#line 768 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3178 "parser.cpp" +#line 3189 "parser.cpp" break; - case 201: // expr_game: "game" -#line 771 "parser.ypp" + case 202: // expr_game: "game" +#line 773 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3184 "parser.cpp" +#line 3195 "parser.cpp" break; - case 202: // expr_self: "self" -#line 776 "parser.ypp" + case 203: // expr_self: "self" +#line 778 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3190 "parser.cpp" +#line 3201 "parser.cpp" break; - case 203: // expr_anim: "anim" -#line 781 "parser.ypp" + case 204: // expr_anim: "anim" +#line 783 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3196 "parser.cpp" +#line 3207 "parser.cpp" break; - case 204: // expr_level: "level" -#line 786 "parser.ypp" + case 205: // expr_level: "level" +#line 788 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3202 "parser.cpp" +#line 3213 "parser.cpp" break; - case 205: // expr_animation: "%" "identifier" -#line 791 "parser.ypp" + case 206: // expr_animation: "%" "identifier" +#line 793 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3208 "parser.cpp" +#line 3219 "parser.cpp" break; - case 206: // expr_animtree: "#animtree" -#line 796 "parser.ypp" + case 207: // expr_animtree: "#animtree" +#line 798 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3214 "parser.cpp" +#line 3225 "parser.cpp" break; - case 207: // expr_identifier_nosize: "identifier" -#line 801 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3220 "parser.cpp" + case 208: // expr_identifier_neg: "-" "identifier" +#line 803 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, ast::expr(std::make_unique(yylhs.location, "0")), ast::expr(std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()))); } +#line 3231 "parser.cpp" break; - case 208: // expr_identifier: "identifier" -#line 806 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3226 "parser.cpp" - break; - - case 209: // expr_identifier: "size" + case 209: // expr_identifier_nosize: "identifier" #line 808 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3232 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3237 "parser.cpp" break; - case 210: // expr_path: "identifier" + case 210: // expr_identifier: "identifier" #line 813 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3238 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3243 "parser.cpp" break; - case 211: // expr_path: "path" + case 211: // expr_identifier: "size" #line 815 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3244 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } +#line 3249 "parser.cpp" break; - case 212: // expr_istring: "localized string" + case 212: // expr_path: "identifier" #line 820 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3255 "parser.cpp" + break; + + case 213: // expr_path: "path" +#line 822 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3261 "parser.cpp" + break; + + case 214: // expr_istring: "localized string" +#line 827 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3250 "parser.cpp" +#line 3267 "parser.cpp" break; - case 213: // expr_string: "string literal" -#line 825 "parser.ypp" + case 215: // expr_string: "string literal" +#line 832 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3256 "parser.cpp" +#line 3273 "parser.cpp" break; - case 214: // expr_vector: "(" expr "," expr "," expr ")" -#line 830 "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 3262 "parser.cpp" - break; - - case 215: // expr_float: "-" "float" -#line 835 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3268 "parser.cpp" - break; - - case 216: // expr_float: "float" + case 216: // expr_vector: "(" expr "," expr "," expr ")" #line 837 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3274 "parser.cpp" + { 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 3279 "parser.cpp" break; - case 217: // expr_integer: "-" "integer" + case 217: // expr_float: "-" "float" #line 842 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3280 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3285 "parser.cpp" break; - case 218: // expr_integer: "integer" + case 218: // expr_float: "float" #line 844 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3286 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3291 "parser.cpp" break; - case 219: // expr_false: "false" + case 219: // expr_integer: "-" "integer" #line 849 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3297 "parser.cpp" + break; + + case 220: // expr_integer: "integer" +#line 851 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3303 "parser.cpp" + break; + + case 221: // expr_false: "false" +#line 856 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3292 "parser.cpp" +#line 3309 "parser.cpp" break; - case 220: // expr_true: "true" -#line 854 "parser.ypp" + case 222: // expr_true: "true" +#line 861 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3298 "parser.cpp" +#line 3315 "parser.cpp" break; -#line 3302 "parser.cpp" +#line 3319 "parser.cpp" default: break; @@ -3513,9 +3530,9 @@ namespace xsk { namespace gsc { namespace s1 { "expr_size", "expr_paren", "expr_object", "expr_thisthread", "expr_empty_array", "expr_undefined", "expr_game", "expr_self", "expr_anim", "expr_level", "expr_animation", "expr_animtree", - "expr_identifier_nosize", "expr_identifier", "expr_path", "expr_istring", - "expr_string", "expr_vector", "expr_float", "expr_integer", "expr_false", - "expr_true", YY_NULLPTR + "expr_identifier_neg", "expr_identifier_nosize", "expr_identifier", + "expr_path", "expr_istring", "expr_string", "expr_vector", "expr_float", + "expr_integer", "expr_false", "expr_true", YY_NULLPTR }; return yy_sname[yysymbol]; } @@ -3786,454 +3803,461 @@ namespace xsk { namespace gsc { namespace s1 { const short parser::yypact_ninf_ = -271; - const short parser::yytable_ninf_ = -211; + const short parser::yytable_ninf_ = -213; const short parser::yypact_[] = { - 9, -271, -271, -48, -48, -34, -271, -271, 29, 9, - -271, -271, -271, -271, -271, -271, -44, -271, -271, -30, - -9, -85, -271, -271, -271, -271, -20, 684, -271, -271, - -271, -6, 21, -271, -271, -28, 39, -271, 15, -271, - -271, -271, -271, -271, -271, -271, 684, 1024, -20, 684, - 684, -38, 2, 43, -271, -271, -271, 1959, -271, -271, - -271, -271, -271, 42, 72, -271, -271, -271, -271, 86, - 186, -271, -271, 427, -271, -271, -271, 490, 615, 712, - 876, -271, -271, 25, 50, -271, -271, -271, -271, -271, - -271, -271, 44, 62, -20, 64, 82, 78, 68, 92, - 96, 103, 1284, 1024, -271, 2042, 118, 132, -271, -271, - -271, -271, -271, -271, -271, 684, 684, 684, 684, 684, - 684, 684, 684, 684, 684, 684, 684, 684, 684, 684, - 684, 684, 684, 684, 1150, -2, -271, -271, 141, 147, - 684, -20, -271, 792, -271, -271, 684, 684, -20, 684, - 684, -20, 684, -271, 684, 1728, 684, -271, 1924, 315, - 315, 2073, 2083, 1078, 1078, 165, 165, 165, 165, 2114, - 2155, 2124, -4, -4, -271, -271, -271, 1768, -271, -271, - -271, -20, 46, -271, 158, 921, 684, 149, -37, 162, - 1274, 163, 166, 167, 168, 12, 164, 172, 173, 1087, - 175, 176, 178, -271, 191, -10, -10, -271, -271, 844, + 2, -271, -271, -32, -32, -30, -271, -271, 20, 2, + -271, -271, -271, -271, -271, -271, -19, -271, -271, -21, + -8, -69, -271, -271, -271, -271, -20, 1097, -271, -271, + -271, 11, -35, -271, -271, -22, 6, -271, 1, -271, + -271, -271, -271, -271, -271, -271, 1097, 642, -20, 1097, + 1097, 59, -2, 17, -271, -271, -271, 2008, -271, -271, + -271, -271, -271, 115, 353, -271, -271, -271, -271, 521, + 552, -271, -271, 581, -271, -271, -271, 750, 886, 963, + 1061, -271, -271, -271, 491, 19, -271, -271, -271, -271, + -271, -271, -271, 44, 27, -20, 65, 74, 78, 73, + 76, 87, 103, 1294, 642, -271, 2091, 105, 107, -271, + -271, -271, -271, -271, -271, -271, -271, 1097, 1097, 1097, + 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, + 1097, 1097, 1097, 1097, 1097, 1097, 1160, -1, -271, -271, + 117, 110, 1097, -20, -271, 802, -271, -271, 1097, 1097, + -20, 1097, 1097, -20, 1097, -271, 1097, 1738, 1097, -271, + 1973, 141, 141, 2122, 2132, 2214, 2214, 136, 136, 136, + 136, 2163, 2204, 2173, -56, -56, -271, -271, -271, 1778, + -271, -271, -271, -20, 3, -271, 120, 931, 1097, 111, + -33, 126, 1284, 127, 130, 132, 133, 21, 125, 128, + 129, 1034, 131, 137, 143, -271, 142, 706, 706, -271, + -271, 854, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - -271, -271, -271, -271, -271, -271, 184, 187, 189, 192, - 200, -271, -271, 1197, -271, -271, -271, -271, 141, 1808, - 77, 201, 1848, 94, 215, 1888, 1019, 181, 2042, 684, - -271, 158, -271, 684, -271, -271, 998, 1994, -271, 199, - -271, 684, 241, 684, 11, -20, 684, 169, 208, 217, - -271, -271, -271, -271, 2029, -271, 684, 684, 684, -271, - -271, 953, 953, -271, -271, -271, -271, -271, -271, -271, - 224, 227, 228, 230, 188, -271, -271, 684, 684, 684, - 684, 684, 684, 684, 684, 684, 684, 684, 232, -271, - 684, 233, -271, 684, 237, 684, 243, 2042, 100, -271, - -271, -271, 234, 1450, 245, 1484, 240, -271, -271, -271, - 550, -14, 1518, -271, -271, -271, 104, 107, 1728, 684, - 684, 684, 684, 2042, 2042, 2042, 2042, 2042, 2042, 2042, - 2042, 2042, 2042, 2042, 251, 110, 252, 113, 275, 1552, - 684, -271, -271, 1274, 684, 1274, 684, 684, -20, 62, - 268, 269, 1586, 1328, 1372, 1416, 684, -271, 684, -271, - 684, -271, 124, 307, 1620, -271, 2042, 271, 1654, 305, - -271, -271, -271, 276, 281, 684, 283, 684, 286, 684, - 143, 146, 150, -271, 1274, 289, 11, 1274, 684, -271, - -271, 288, -271, 299, -271, 300, -271, -271, -271, -271, - -271, 301, -271, 1688, 294, 296, 298, 1274, 1274, -271, - -271, -271, -271, -271 + -271, -271, -271, -271, -271, -271, -271, -271, 144, 147, + 148, 154, 155, -271, -271, 1207, -271, -271, -271, -271, + 117, 1818, 14, 153, 1858, 40, 167, 1898, 1937, 164, + 2091, 1097, -271, 120, -271, 1097, -271, -271, 1008, 2043, + -271, 135, -271, 1097, 212, 1097, 68, -20, 1097, 139, + 181, 182, -271, -271, -271, -271, 2078, -271, 1097, 1097, + 1097, -271, -271, 1121, 1121, -271, -271, -271, -271, -271, + -271, -271, 192, 195, 196, 201, 156, -271, -271, 1097, + 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, + 198, -271, 1097, 199, -271, 1097, 202, 1097, 206, 2091, + 41, -271, -271, -271, 204, 1460, 208, 1494, 211, -271, + -271, -271, 4, -6, 1528, -271, -271, -271, 52, 54, + 1738, 1097, 1097, 1097, 1097, 2091, 2091, 2091, 2091, 2091, + 2091, 2091, 2091, 2091, 2091, 2091, 210, 69, 218, 72, + 226, 1562, 1097, -271, -271, 1284, 1097, 1284, 1097, 1097, + -20, 27, 224, 225, 1596, 1338, 1382, 1426, 1097, -271, + 1097, -271, 1097, -271, 82, 238, 1630, -271, 2091, 228, + 1664, 250, -271, -271, -271, 229, 230, 1097, 233, 1097, + 234, 1097, 83, 84, 93, -271, 1284, 235, 68, 1284, + 1097, -271, -271, 245, -271, 246, -271, 252, -271, -271, + -271, -271, -271, 253, -271, 1698, 247, 249, 251, 1284, + 1284, -271, -271, -271, -271, -271 }; const unsigned char parser::yydefact_[] = { - 3, 12, 13, 0, 0, 0, 209, 208, 0, 2, - 7, 8, 9, 14, 15, 16, 0, 211, 210, 0, - 0, 0, 1, 4, 5, 6, 178, 0, 10, 11, - 213, 0, 0, 177, 206, 0, 0, 198, 0, 220, - 219, 200, 201, 202, 203, 204, 0, 180, 0, 0, - 0, 0, 0, 208, 212, 216, 218, 0, 93, 94, - 95, 132, 133, 134, 135, 161, 162, 136, 137, 138, + 3, 12, 13, 0, 0, 0, 211, 210, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 213, 212, 0, + 0, 0, 1, 4, 5, 6, 179, 0, 10, 11, + 215, 0, 0, 178, 207, 0, 0, 199, 0, 222, + 221, 201, 202, 203, 204, 205, 0, 181, 0, 0, + 0, 0, 0, 210, 214, 218, 220, 0, 93, 94, + 95, 132, 133, 134, 135, 162, 163, 136, 137, 138, 139, 140, 141, 0, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 157, 158, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 180, 199, 182, 0, 179, 183, 160, - 159, 215, 217, 205, 18, 0, 0, 0, 0, 0, + 148, 149, 150, 151, 152, 0, 153, 154, 155, 156, + 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 181, 200, 183, 0, 180, 184, + 161, 160, 208, 217, 219, 206, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 163, 164, 0, 0, - 180, 0, 17, 0, 19, 176, 0, 180, 0, 0, - 180, 0, 0, 188, 0, 182, 0, 175, 0, 125, - 126, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 127, 128, 129, 130, 131, 0, 187, 207, - 186, 0, 0, 179, 184, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, + 0, 0, 181, 0, 17, 0, 19, 177, 0, 181, + 0, 0, 181, 0, 0, 189, 0, 183, 0, 176, + 0, 125, 126, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 127, 128, 129, 130, 131, 0, + 188, 209, 187, 0, 0, 180, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 54, 0, 0, 0, 45, 50, 0, - 46, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 0, 0, 0, 189, - 190, 191, 192, 0, 193, 194, 195, 196, 197, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, - 185, 0, 165, 180, 52, 48, 0, 0, 72, 0, - 73, 0, 0, 0, 58, 0, 0, 0, 0, 0, - 85, 86, 87, 89, 0, 90, 180, 180, 0, 189, - 190, 109, 111, 53, 49, 61, 62, 63, 59, 60, - 0, 0, 0, 0, 0, 110, 112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, - 180, 0, 169, 180, 0, 0, 0, 113, 0, 51, - 47, 67, 0, 0, 0, 0, 0, 55, 56, 57, - 0, 0, 0, 84, 83, 88, 0, 0, 0, 0, - 0, 0, 0, 98, 104, 105, 106, 107, 108, 99, - 100, 101, 103, 102, 0, 0, 0, 0, 0, 0, - 180, 166, 74, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 180, 168, 180, 170, - 180, 214, 0, 75, 0, 77, 96, 0, 0, 0, - 82, 91, 92, 0, 0, 180, 0, 180, 0, 180, - 0, 0, 0, 171, 0, 0, 58, 0, 0, 64, - 66, 179, 69, 179, 71, 179, 172, 173, 174, 76, - 78, 0, 80, 0, 0, 0, 0, 0, 0, 65, - 68, 70, 79, 81 + 0, 0, 0, 0, 0, 54, 0, 0, 0, 45, + 50, 0, 46, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 0, 0, + 0, 190, 191, 192, 193, 0, 194, 195, 196, 197, + 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 182, 0, 186, 0, 166, 181, 52, 48, 0, 0, + 72, 0, 73, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 85, 86, 87, 89, 0, 90, 181, 181, + 0, 190, 191, 109, 111, 53, 49, 61, 62, 63, + 59, 60, 0, 0, 0, 0, 0, 110, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 168, 181, 0, 170, 181, 0, 0, 0, 113, + 0, 51, 47, 67, 0, 0, 0, 0, 0, 55, + 56, 57, 0, 0, 0, 84, 83, 88, 0, 0, + 0, 0, 0, 0, 0, 98, 104, 105, 106, 107, + 108, 99, 100, 101, 103, 102, 0, 0, 0, 0, + 0, 0, 181, 167, 74, 0, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 181, 169, + 181, 171, 181, 216, 0, 75, 0, 77, 96, 0, + 0, 0, 82, 91, 92, 0, 0, 181, 0, 181, + 0, 181, 0, 0, 0, 172, 0, 0, 58, 0, + 0, 64, 66, 180, 69, 180, 71, 180, 173, 174, + 175, 76, 78, 0, 80, 0, 0, 0, 0, 0, + 0, 65, 68, 70, 79, 81 }; const short parser::yypgoto_[] = { - -271, -271, -271, 356, 357, 359, -271, -271, -271, -173, - 160, -271, -271, -271, -91, -45, -271, -271, -271, -271, + -271, -271, -271, 279, 298, 299, -271, -271, -271, -155, + 101, -271, -271, -271, -92, -104, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - 190, -271, -270, -267, -261, -271, -271, -271, -271, -271, - -88, -18, -70, -68, -271, -271, 14, -46, -271, -11, - 182, -271, -271, 270, -271, -271, -271, 279, 304, 329, - 375, -271, -271, -271, 0, 7, -271, -15, -271, -271, - 179, -271, -271 + 200, -271, -270, -269, -264, -271, -271, -271, -271, -271, + -137, -11, -70, -68, -271, -271, -121, -46, -271, 165, + 223, -271, -271, 257, -271, -271, -271, 290, 297, 349, + 383, -271, -271, -271, -271, 0, 7, -271, -17, -271, + -271, 118, -271, -271 }; const short parser::yydefgoto_[] = { - 0, 8, 9, 10, 11, 12, 13, 14, 15, 207, - 208, 266, 209, 210, 211, 336, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 105, 397, 236, 237, 238, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 32, 106, 183, 68, 69, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 209, + 210, 268, 211, 212, 213, 338, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 106, 399, 238, 239, 240, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 32, 107, 185, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 180, 83, 84, 85, 86, 87, 88, - 89, 90, 91 + 80, 81, 82, 83, 182, 84, 85, 86, 87, 88, + 89, 90, 91, 92 }; const short parser::yytable_[] = { - 16, 107, 144, 136, 337, 137, 31, 338, 26, 16, - 19, 20, 265, 339, 30, 269, 377, 272, 21, 6, - 1, 2, 3, 4, 5, 270, 33, 6, 95, 22, - 35, 36, 28, 38, 27, 96, 99, 6, 42, 43, - 44, 45, 97, 100, 378, 178, 204, 92, 108, 17, - 18, 35, 36, 29, 38, 239, 6, 107, 6, 42, - 43, 44, 45, 111, 112, -197, -197, 204, -197, 17, - 53, 101, -197, 138, 93, 205, 206, 140, 7, 94, - 139, -197, -189, -189, -197, -189, 6, 17, 53, -189, - 131, 132, 133, 330, 145, 98, 179, 239, -189, 262, - 113, -189, 239, -210, 156, 277, 142, 7, 17, 53, - 141, 30, -190, -190, 56, -190, 143, 289, 289, -190, - 146, 239, -197, -197, 149, 240, -191, -191, -190, -191, - 319, -190, 241, -191, 147, 156, 17, 53, 148, -189, - -189, 184, -191, 248, 150, -191, 337, 322, 251, 338, - 139, 254, 156, 371, 182, 339, 151, 380, 156, 152, - 381, 250, 156, 387, 253, 156, 389, 240, 156, -190, - -190, 156, 240, 136, 241, 137, 156, 413, 239, 241, - 278, 261, 156, -191, -191, 248, 289, 290, 290, 157, - 248, 240, 139, 140, 241, 241, 426, 139, 241, 427, - 393, 156, 395, 428, 156, 248, 248, 181, 156, 248, - 263, 268, 139, 139, 271, 273, 139, 57, 274, 275, - 276, 136, 136, 137, 137, 280, -192, -192, 286, -192, - 287, 116, 117, -192, 281, 282, 102, 285, 326, 109, - 110, 429, -192, 138, 432, -192, 295, 288, 240, 296, - 139, 297, 332, 320, 298, 241, 290, 129, 130, 131, - 132, 133, 299, 241, 442, 443, 248, 323, 334, 343, - 136, 112, 137, 139, 248, 341, 349, 328, 344, 350, - 351, 139, 352, -192, -192, 239, 179, 239, 400, 364, - 366, 138, 138, 155, 368, 370, 372, 374, 139, 139, - 346, 347, 376, 386, 388, 158, 159, 160, 161, 162, + 16, 108, 146, 138, 31, 139, 339, 340, 241, 16, + 19, 20, 341, 1, 2, 3, 4, 5, 94, 271, + 22, 184, 21, 95, 379, 6, 33, 6, 252, 272, + 30, 255, 267, 26, 96, 97, 100, 274, 133, 134, + 135, 28, 98, 101, 35, 36, 180, 38, 109, 6, + 241, 6, 380, 6, 29, 241, 264, 102, 108, 27, + 136, 158, 99, 306, 93, 17, 18, 321, 307, 308, + 291, 291, 158, 140, 241, 17, 53, -212, 7, 143, + 141, 145, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 324, 373, 147, 115, 181, 158, 158, + 7, 17, 53, 17, 53, 382, 144, 383, 35, 36, + 158, 38, 158, 332, 279, 6, 42, 43, 44, 45, + 30, 148, 389, 56, 206, 391, 149, 158, 152, 151, + 158, 241, 207, 208, 242, 415, 428, 429, 150, 291, + 158, 158, 158, 186, 330, 250, 430, 153, 339, 340, + 253, 158, 141, 256, 341, -190, -190, 112, -190, 154, + 113, 114, -190, 158, 159, 17, 53, 348, 349, 142, + 183, -190, 265, 270, -190, 138, 242, 139, 273, 275, + 280, 242, 276, 263, 277, 278, 282, 250, 334, 288, + 283, 284, 250, 287, 141, 289, 292, 292, 290, 141, + 242, 367, 118, 119, 369, 322, 297, 250, 250, 298, + 299, 250, -190, -190, 141, 141, 300, 301, 141, 325, + 395, 328, 397, 138, 138, 139, 139, 57, 131, 132, + 133, 134, 135, 131, 132, 133, 134, 135, 241, 336, + 241, 114, 345, 346, 351, 140, 103, 352, 353, 110, + 111, 394, 141, 354, 181, 366, 368, 242, 372, 370, + 376, 431, 388, 416, 434, 292, 374, 412, 250, 413, + 390, 414, 138, 378, 139, 141, 250, 343, 392, 241, + 420, 291, 241, 141, 444, 445, 403, 404, 23, 402, + 418, 421, 422, 140, 140, 424, 426, 432, 436, 437, + 141, 141, 241, 241, 157, 438, 439, 24, 25, 441, + 243, 442, 296, 443, 433, 281, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 242, 239, 390, 289, 239, - 401, 402, 414, 416, 365, 418, 249, 367, 419, 252, - 138, 434, 255, 420, 256, 422, 258, 139, 424, 239, - 239, 430, 435, 436, 437, 240, 439, 240, 440, 421, - 441, 423, 241, 425, 241, 23, 24, 242, 25, 294, - 0, 431, 242, 248, 279, 248, 267, 0, 399, 0, - 139, 0, 139, 0, 392, 0, 0, 242, 242, 284, - 0, 242, 0, 0, 0, 0, 240, 0, 290, 240, - 410, 0, 411, 241, 412, 241, 241, 129, 130, 131, - 132, 133, 0, 243, 248, 0, 248, 248, 0, 240, - 240, 139, 244, 139, 139, 0, 241, 241, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 248, 248, 0, - 0, 0, 0, 0, 139, 139, 0, 245, 242, 327, - 0, 0, 0, 0, 0, 243, 242, 0, 0, 0, - 243, 333, 0, 335, 244, 0, 342, 35, 36, 244, - 38, 0, 246, 0, 6, 291, 292, 0, 348, 243, - 0, 0, 0, 134, 244, 244, 135, 0, 244, 245, - 0, 0, 0, 0, 245, 0, 0, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 0, 245, - 245, 0, 0, 245, 246, 369, 0, 0, 247, 246, - 0, 0, 0, 0, 17, 53, 0, 0, 0, 0, - -193, -193, 0, -193, 246, 246, 243, -193, 246, 382, - 383, 384, 385, 0, 340, 244, -193, 0, 0, -193, - 0, 0, 0, 244, 0, 242, 0, 242, 0, 0, - 247, 0, 0, 0, 394, 247, 396, 398, 0, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 247, 247, 0, 0, 247, 0, 0, -193, -193, 0, - 35, 36, 0, 38, 0, 246, 242, 6, 242, 242, - 0, 0, 0, 246, 0, 0, 134, 0, 433, 304, - 0, 0, 0, 0, 305, 306, 0, 0, 0, 242, - 242, 0, 0, 0, 0, 0, 0, 0, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, - 0, 247, 0, 243, 0, 243, 0, 17, 53, 247, - 0, 0, 244, 0, 244, -194, -194, 0, -194, 0, - 0, 0, -194, 0, 0, 0, 0, 0, 0, 0, - 0, -194, 0, 0, -194, 0, 0, 245, 0, 245, - 0, 0, 0, 0, 243, 0, 340, 243, 0, 0, - 0, 0, 0, 244, 0, 244, 244, 0, 0, 0, - 34, 0, 246, 0, 246, 0, 0, 243, 243, 0, - 0, 0, -194, -194, 0, 0, 244, 244, 245, 0, - 245, 245, 0, 0, 35, 36, 37, 38, 39, 40, - 41, 6, 42, 43, 44, 45, 46, 0, 0, 0, - 47, 245, 245, 246, 48, 246, 246, 0, 247, 0, - 247, 0, -195, -195, 0, -195, 0, 0, 0, -195, - 49, 50, 0, 0, 0, 0, 246, 246, -195, 0, - 0, -195, 0, 0, 0, 0, 0, 51, 0, 0, - 52, 17, 53, 30, 54, 55, 56, 0, 0, 247, - 0, 247, 247, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 0, 0, 0, 0, 0, -195, - -195, 186, 247, 247, 187, 188, 189, 0, 190, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 35, 36, 0, 38, 0, 0, 0, 6, - 42, 43, 44, 45, 0, 0, 143, 203, 204, 0, - 0, 0, 0, 0, 0, 185, 205, 206, 0, 0, - 0, 0, 0, 186, 0, 0, 187, 188, 189, 0, - 190, 191, 192, 193, 0, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 35, 36, 0, 38, 0, 17, - 53, 6, 42, 43, 44, 45, 0, 0, 143, 293, - 204, 0, 0, 0, 0, 0, 0, 0, 205, 206, - 0, 0, 0, 0, 0, 0, -196, -196, 0, -196, - 0, 0, 0, -196, 0, 0, 0, 0, 0, 0, - 0, 0, -196, 264, 0, -196, 0, 0, 0, 0, - 186, 17, 53, 187, 188, 189, 0, 190, 191, 192, - 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 35, 36, 0, 38, 0, 0, 0, 6, 42, - 43, 44, 45, -196, -196, 143, 0, 204, 0, 0, - 0, 0, 0, 0, 0, 205, 206, 0, 0, 0, - 0, 0, 0, 35, 36, 0, 38, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 134, - 329, 0, 304, 0, 0, 0, 0, 186, 17, 53, - 187, 188, 189, 0, 190, 191, 192, 193, 0, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 35, 36, + 173, 174, 175, 176, 177, 178, 179, 0, 0, 0, + 0, 0, 140, 0, 0, 0, 0, 0, 251, 141, + 0, 254, 243, 0, 257, 0, 258, 243, 260, 0, + 0, 423, 0, 425, 242, 427, 242, 0, 244, 0, + 0, 0, 243, 243, 0, 250, 243, 250, 0, 0, + 401, 0, 141, 0, 141, 0, 0, 0, 269, 0, + 0, 0, 0, -191, -191, 0, -191, 0, 0, 0, + -191, 286, 245, 0, 0, 242, 0, 292, 242, -191, + 244, 0, -191, 0, 0, 244, 250, 0, 250, 250, + 0, 0, 0, 141, 0, 141, 141, 0, 242, 242, + 244, 244, 0, 243, 244, 246, 0, 0, 0, 250, + 250, 243, 247, 0, 245, 0, 141, 141, 0, 245, + -191, -191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 329, 0, 0, 293, 294, 0, 0, 245, 0, + 0, 0, 0, 335, 0, 337, 0, 246, 344, 0, + 0, 0, 246, 0, 247, 0, 0, 0, 0, 247, + 350, 244, 0, 0, 248, 0, 0, 246, 246, 244, + 0, 246, 0, 0, 247, 247, 0, 0, 247, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 0, 0, 0, 0, 0, 245, 0, 371, 249, 0, + 0, -198, -198, 342, -198, 0, 248, 0, -198, 0, + 243, 248, 243, 142, 0, 0, 0, -198, 0, 0, + -198, 384, 385, 386, 387, 0, 248, 248, 246, 0, + 248, -192, -192, 0, -192, 247, 246, 0, -192, 0, + 249, 0, 0, 247, 0, 249, 396, -192, 398, 400, + -192, 243, 0, 243, 243, 0, 0, 0, -198, -198, + 249, 249, -193, -193, 249, -193, 0, 0, 244, -193, + 244, 0, 0, 0, 243, 243, 0, 0, -193, 0, + 0, -193, 0, 0, 0, 0, 0, 248, -192, -192, + 435, 35, 36, 0, 38, 248, 0, 0, 6, 0, + 0, 0, 245, 0, 245, 0, 0, 136, 0, 244, + 137, 244, 244, 0, 0, 0, 0, 0, 0, -193, + -193, 249, 0, 0, 0, 0, 0, 0, 34, 249, + 0, 0, 244, 244, 0, 246, 0, 246, 0, 0, + 0, 0, 247, 245, 247, 342, 245, 0, 17, 53, + 0, 0, 35, 36, 37, 38, 39, 40, 41, 6, + 42, 43, 44, 45, 46, 0, 245, 245, 104, 105, + 0, 0, 48, 0, 0, 0, 246, 0, 246, 246, + 0, 0, 0, 247, 0, 247, 247, 0, 49, 50, + 0, 0, 0, 0, 248, 0, 248, 0, 0, 246, + 246, 0, 0, 0, 0, 51, 247, 247, 52, 17, + 53, 30, 54, 55, 56, 0, 35, 36, 0, 38, + 0, 0, 0, 6, 42, 43, 44, 45, 249, 0, + 249, 0, 206, 0, 0, 248, 0, 248, 248, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, + -194, -194, 0, -194, 0, 0, 0, -194, 0, 249, + 0, 249, 249, 17, 53, 0, -194, 0, 0, -194, + 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, + 0, 188, 249, 249, 189, 190, 191, 0, 192, 193, + 194, 195, 0, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 35, 36, 0, 38, 0, -194, -194, 6, + 42, 43, 44, 45, 0, 0, 145, 205, 206, 0, + 0, 0, 0, 0, 0, 187, 207, 208, 0, 0, + 0, 0, 0, 188, 0, 0, 189, 190, 191, 0, + 192, 193, 194, 195, 0, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 35, 36, 0, 38, 0, 17, + 53, 6, 42, 43, 44, 45, 0, 0, 145, 295, + 206, 0, 0, 0, 0, 0, 0, 0, 207, 208, + 0, 0, 0, 0, 0, 0, -195, -195, 0, -195, + 0, 0, 0, -195, 0, 0, 0, 0, 0, 0, + 0, 0, -195, 266, 0, -195, 0, 0, 0, 0, + 188, 17, 53, 189, 190, 191, 0, 192, 193, 194, + 195, 0, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 35, 36, 0, 38, 0, 0, 0, 6, 42, + 43, 44, 45, -195, -195, 145, 0, 206, 0, 0, + 0, 0, 0, 0, 0, 207, 208, 0, 0, 0, + 0, 0, 0, -196, -196, 0, -196, 0, 0, 0, + -196, 0, 0, 0, 0, 0, 0, 0, 0, -196, + 331, 0, -196, 0, 0, 0, 0, 188, 17, 53, + 189, 190, 191, 0, 192, 193, 194, 195, 0, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 35, 36, 34, 38, 0, 0, 0, 6, 42, 43, 44, 45, - 17, 53, 143, 0, 204, 0, 0, 0, 0, 0, - 0, 0, 205, 206, 35, 36, 37, 38, 39, 40, - 41, 6, 42, 43, 44, 45, 46, 325, 0, 0, - 103, 104, 115, 0, 48, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 17, 53, 0, 0, 0, - 49, 50, 0, 34, 0, 0, 0, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 0, 51, 0, 0, + -196, -196, 145, 0, 206, 0, 0, 0, 0, 0, + 0, 0, 207, 208, 35, 36, 37, 38, 39, 40, + 41, 6, 42, 43, 44, 45, 46, 0, 0, 0, + 47, 0, 0, 0, 48, 0, 285, 0, 0, 0, + 0, -197, -197, 0, -197, 17, 53, 0, -197, 0, + 49, 50, 0, 34, 0, 0, 0, -197, 0, 0, + -197, 0, 0, 0, 0, 0, 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, 45, 46, - 0, 0, 0, 47, 116, 117, 0, 48, 0, 283, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 49, 50, 0, 34, 0, 0, 0, - 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 47, 0, 0, 0, 48, -197, -197, + 0, 35, 36, 0, 38, 0, 0, 0, 6, 0, + 0, 0, 0, 49, 50, 0, 34, 136, 0, 0, + 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, - 44, 45, 46, 0, 0, 0, 103, 0, 0, 0, - 48, 0, 0, 0, 300, 301, 0, 302, 303, 0, + 44, 45, 46, 0, 0, 0, 104, 0, 17, 53, + 48, 0, 0, 0, 302, 303, 0, 304, 305, 0, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 36, 0, 38, 0, 0, 51, 6, 0, 52, 17, 53, 30, - 54, 55, 56, 134, 0, 0, 304, 0, 0, 0, - 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 0, 0, 0, 0, - 0, 0, 0, 186, 17, 53, 187, 188, 189, 0, - 190, 191, 192, 193, 0, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 35, 36, 0, 38, 0, 0, - 0, 6, 42, 43, 44, 45, 0, 0, 143, 0, - 204, 0, 0, 0, 0, 0, 0, 153, 205, 206, - 0, 0, 154, 0, 0, 0, 0, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 17, 53, 126, 127, 128, 129, 130, 131, 132, - 133, 404, 0, 0, 0, 0, 405, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 406, 0, 0, 0, 0, - 407, 0, 0, 0, 0, 115, 0, 0, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 126, 127, 128, 129, 130, 131, 132, 133, 408, - 0, 0, 0, 0, 409, 0, 0, 0, 0, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 373, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 115, 0, 0, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 375, 0, 126, - 127, 128, 129, 130, 131, 132, 133, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 379, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 391, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 115, 0, 0, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, - 0, 126, 127, 128, 129, 130, 131, 132, 133, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 415, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 115, 0, 0, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 417, 0, 126, - 127, 128, 129, 130, 131, 132, 133, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 438, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 257, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 260, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 318, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 321, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 324, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 259, 0, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 114, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 331, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 345, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 115, 0, 0, 116, 117, + 54, 55, 56, 136, 0, 0, 306, 0, 0, 0, + 0, 307, 308, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, + 0, 0, 0, 188, 17, 53, 189, 190, 191, 0, + 192, 193, 194, 195, 0, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 35, 36, 0, 38, 0, 0, + 0, 6, 42, 43, 44, 45, 0, 0, 145, 0, + 206, 0, 0, 0, 0, 0, 0, 155, 207, 208, + 0, 0, 156, 0, 0, 0, 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, - 0, 126, 127, 128, 129, 130, 131, 132, 133, 116, - 117, 0, 119, 120, 121, 122, 123, 124, 125, 116, - 117, 0, 0, 120, 121, 122, 123, 124, 125, 0, - 0, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 0, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 116, 117, 0, 0, 120, 121, 122, 123, 124, 125, - 116, 117, 0, 0, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 127, 128, 129, 130, 131, 132, - 133, 0, 0, 0, 127, 0, 129, 130, 131, 132, - 133, 116, 117, 0, 0, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, - 132, 133 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 53, 128, 129, 130, 131, 132, 133, 134, + 135, 406, 0, 0, 0, 0, 407, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 408, 0, 0, 0, 0, + 409, 0, 0, 0, 0, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 410, + 0, 0, 0, 0, 411, 0, 0, 0, 0, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 375, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 377, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 381, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 393, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 419, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 440, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 259, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 262, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 320, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 323, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 326, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 327, 0, 0, 0, 0, + 117, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 261, 0, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 116, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 333, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 347, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 117, 0, 0, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 0, 0, 0, 0, 0, + 128, 129, 130, 131, 132, 133, 134, 135, 118, 119, + 0, 121, 122, 123, 124, 125, 126, 127, 118, 119, + 0, 0, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 129, 130, 131, 132, 133, 134, 135, + 0, 0, 0, 129, 0, 131, 132, 133, 134, 135, + 118, 119, 0, 0, 122, 123, 124, 125, 126, 127, + 118, 119, 0, 0, 0, 0, 124, 125, 126, 127, + 0, 0, 0, 0, 0, 0, 131, 132, 133, 134, + 135, 0, 0, 0, 0, 0, 131, 132, 133, 134, + 135 }; const short parser::yycheck_[] = { - 0, 47, 93, 73, 274, 73, 21, 274, 52, 9, - 3, 4, 185, 274, 99, 52, 30, 190, 52, 47, - 11, 12, 13, 14, 15, 62, 26, 47, 56, 0, - 40, 41, 62, 43, 78, 35, 36, 47, 48, 49, - 50, 51, 35, 36, 58, 47, 56, 53, 48, 97, - 98, 40, 41, 62, 43, 143, 47, 103, 47, 48, - 49, 50, 51, 101, 102, 40, 41, 56, 43, 97, - 98, 56, 47, 73, 53, 64, 65, 52, 98, 58, - 73, 56, 40, 41, 59, 43, 47, 97, 98, 47, - 94, 95, 96, 266, 94, 56, 98, 185, 56, 53, - 98, 59, 190, 60, 58, 93, 62, 98, 97, 98, - 60, 99, 40, 41, 102, 43, 54, 205, 206, 47, - 56, 209, 97, 98, 56, 143, 40, 41, 56, 43, - 53, 59, 143, 47, 52, 58, 97, 98, 60, 97, - 98, 141, 56, 143, 52, 59, 416, 53, 148, 416, - 143, 151, 58, 53, 140, 416, 60, 53, 58, 56, - 53, 147, 58, 53, 150, 58, 53, 185, 58, 97, - 98, 58, 190, 243, 185, 243, 58, 53, 266, 190, - 195, 181, 58, 97, 98, 185, 274, 205, 206, 57, - 190, 209, 185, 52, 205, 206, 53, 190, 209, 53, - 373, 58, 375, 53, 58, 205, 206, 60, 58, 209, - 52, 62, 205, 206, 52, 52, 209, 27, 52, 52, - 52, 291, 292, 291, 292, 61, 40, 41, 52, 43, - 52, 66, 67, 47, 62, 62, 46, 62, 57, 49, - 50, 414, 56, 243, 417, 59, 62, 56, 266, 62, - 243, 62, 53, 52, 62, 266, 274, 92, 93, 94, - 95, 96, 62, 274, 437, 438, 266, 52, 27, 61, - 340, 102, 340, 266, 274, 275, 52, 263, 61, 52, - 52, 274, 52, 97, 98, 373, 98, 375, 379, 57, - 57, 291, 292, 103, 57, 52, 62, 52, 291, 292, - 286, 287, 62, 52, 52, 115, 116, 117, 118, 119, + 0, 47, 94, 73, 21, 73, 276, 276, 145, 9, + 3, 4, 276, 11, 12, 13, 14, 15, 53, 52, + 0, 142, 52, 58, 30, 47, 26, 47, 149, 62, + 99, 152, 187, 52, 56, 35, 36, 192, 94, 95, + 96, 62, 35, 36, 40, 41, 47, 43, 48, 47, + 187, 47, 58, 47, 62, 192, 53, 56, 104, 78, + 56, 58, 56, 59, 53, 97, 98, 53, 64, 65, + 207, 208, 58, 73, 211, 97, 98, 60, 98, 60, + 73, 54, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 53, 53, 95, 98, 98, 58, 58, + 98, 97, 98, 97, 98, 53, 62, 53, 40, 41, + 58, 43, 58, 268, 93, 47, 48, 49, 50, 51, + 99, 56, 53, 102, 56, 53, 52, 58, 52, 56, + 58, 268, 64, 65, 145, 53, 53, 53, 60, 276, + 58, 58, 58, 143, 265, 145, 53, 60, 418, 418, + 150, 58, 145, 153, 418, 40, 41, 98, 43, 56, + 101, 102, 47, 58, 57, 97, 98, 288, 289, 52, + 60, 56, 52, 62, 59, 245, 187, 245, 52, 52, + 197, 192, 52, 183, 52, 52, 61, 187, 53, 52, + 62, 62, 192, 62, 187, 52, 207, 208, 56, 192, + 211, 322, 66, 67, 325, 52, 62, 207, 208, 62, + 62, 211, 97, 98, 207, 208, 62, 62, 211, 52, + 375, 57, 377, 293, 294, 293, 294, 27, 92, 93, + 94, 95, 96, 92, 93, 94, 95, 96, 375, 27, + 377, 102, 61, 61, 52, 245, 46, 52, 52, 49, + 50, 372, 245, 52, 98, 57, 57, 268, 52, 57, + 52, 416, 52, 25, 419, 276, 62, 388, 268, 390, + 52, 392, 342, 62, 342, 268, 276, 277, 52, 416, + 30, 418, 419, 276, 439, 440, 62, 62, 9, 381, + 62, 62, 62, 293, 294, 62, 62, 62, 53, 53, + 293, 294, 439, 440, 104, 53, 53, 9, 9, 62, + 145, 62, 211, 62, 418, 197, -1, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 143, 414, 52, 416, 417, - 62, 62, 25, 62, 320, 30, 146, 323, 62, 149, - 340, 53, 152, 62, 154, 62, 156, 340, 62, 437, - 438, 62, 53, 53, 53, 373, 62, 375, 62, 405, - 62, 407, 373, 409, 375, 9, 9, 185, 9, 209, - -1, 416, 190, 373, 195, 375, 186, -1, 378, -1, - 373, -1, 375, -1, 370, -1, -1, 205, 206, 199, - -1, 209, -1, -1, -1, -1, 414, -1, 416, 417, - 386, -1, 388, 414, 390, 416, 417, 92, 93, 94, - 95, 96, -1, 143, 414, -1, 416, 417, -1, 437, - 438, 414, 143, 416, 417, -1, 437, 438, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 437, 438, -1, - -1, -1, -1, -1, 437, 438, -1, 143, 266, 259, - -1, -1, -1, -1, -1, 185, 274, -1, -1, -1, - 190, 271, -1, 273, 185, -1, 276, 40, 41, 190, - 43, -1, 143, -1, 47, 205, 206, -1, 288, 209, - -1, -1, -1, 56, 205, 206, 59, -1, 209, 185, - -1, -1, -1, -1, 190, -1, -1, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, -1, 205, - 206, -1, -1, 209, 185, 325, -1, -1, 143, 190, - -1, -1, -1, -1, 97, 98, -1, -1, -1, -1, - 40, 41, -1, 43, 205, 206, 266, 47, 209, 349, - 350, 351, 352, -1, 274, 266, 56, -1, -1, 59, - -1, -1, -1, 274, -1, 373, -1, 375, -1, -1, - 185, -1, -1, -1, 374, 190, 376, 377, -1, -1, - 266, -1, -1, -1, -1, -1, -1, -1, 274, -1, - 205, 206, -1, -1, 209, -1, -1, 97, 98, -1, - 40, 41, -1, 43, -1, 266, 414, 47, 416, 417, - -1, -1, -1, 274, -1, -1, 56, -1, 418, 59, - -1, -1, -1, -1, 64, 65, -1, -1, -1, 437, - 438, -1, -1, -1, -1, -1, -1, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, - -1, 266, -1, 373, -1, 375, -1, 97, 98, 274, - -1, -1, 373, -1, 375, 40, 41, -1, 43, -1, - -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, 56, -1, -1, 59, -1, -1, 373, -1, 375, - -1, -1, -1, -1, 414, -1, 416, 417, -1, -1, - -1, -1, -1, 414, -1, 416, 417, -1, -1, -1, - 16, -1, 373, -1, 375, -1, -1, 437, 438, -1, - -1, -1, 97, 98, -1, -1, 437, 438, 414, -1, - 416, 417, -1, -1, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, -1, -1, -1, - 56, 437, 438, 414, 60, 416, 417, -1, 373, -1, - 375, -1, 40, 41, -1, 43, -1, -1, -1, 47, - 76, 77, -1, -1, -1, -1, 437, 438, 56, -1, - -1, 59, -1, -1, -1, -1, -1, 93, -1, -1, - 96, 97, 98, 99, 100, 101, 102, -1, -1, 414, - -1, 416, 417, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 11, -1, -1, -1, -1, -1, 97, - 98, 19, 437, 438, 22, 23, 24, -1, 26, 27, + 130, 131, 132, 133, 134, 135, 136, -1, -1, -1, + -1, -1, 342, -1, -1, -1, -1, -1, 148, 342, + -1, 151, 187, -1, 154, -1, 156, 192, 158, -1, + -1, 407, -1, 409, 375, 411, 377, -1, 145, -1, + -1, -1, 207, 208, -1, 375, 211, 377, -1, -1, + 380, -1, 375, -1, 377, -1, -1, -1, 188, -1, + -1, -1, -1, 40, 41, -1, 43, -1, -1, -1, + 47, 201, 145, -1, -1, 416, -1, 418, 419, 56, + 187, -1, 59, -1, -1, 192, 416, -1, 418, 419, + -1, -1, -1, 416, -1, 418, 419, -1, 439, 440, + 207, 208, -1, 268, 211, 145, -1, -1, -1, 439, + 440, 276, 145, -1, 187, -1, 439, 440, -1, 192, + 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 261, -1, -1, 207, 208, -1, -1, 211, -1, + -1, -1, -1, 273, -1, 275, -1, 187, 278, -1, + -1, -1, 192, -1, 187, -1, -1, -1, -1, 192, + 290, 268, -1, -1, 145, -1, -1, 207, 208, 276, + -1, 211, -1, -1, 207, 208, -1, -1, 211, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, -1, -1, -1, -1, 268, -1, 327, 145, -1, + -1, 40, 41, 276, 43, -1, 187, -1, 47, -1, + 375, 192, 377, 52, -1, -1, -1, 56, -1, -1, + 59, 351, 352, 353, 354, -1, 207, 208, 268, -1, + 211, 40, 41, -1, 43, 268, 276, -1, 47, -1, + 187, -1, -1, 276, -1, 192, 376, 56, 378, 379, + 59, 416, -1, 418, 419, -1, -1, -1, 97, 98, + 207, 208, 40, 41, 211, 43, -1, -1, 375, 47, + 377, -1, -1, -1, 439, 440, -1, -1, 56, -1, + -1, 59, -1, -1, -1, -1, -1, 268, 97, 98, + 420, 40, 41, -1, 43, 276, -1, -1, 47, -1, + -1, -1, 375, -1, 377, -1, -1, 56, -1, 416, + 59, 418, 419, -1, -1, -1, -1, -1, -1, 97, + 98, 268, -1, -1, -1, -1, -1, -1, 16, 276, + -1, -1, 439, 440, -1, 375, -1, 377, -1, -1, + -1, -1, 375, 416, 377, 418, 419, -1, 97, 98, + -1, -1, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, -1, 439, 440, 56, 57, + -1, -1, 60, -1, -1, -1, 416, -1, 418, 419, + -1, -1, -1, 416, -1, 418, 419, -1, 76, 77, + -1, -1, -1, -1, 375, -1, 377, -1, -1, 439, + 440, -1, -1, -1, -1, 93, 439, 440, 96, 97, + 98, 99, 100, 101, 102, -1, 40, 41, -1, 43, + -1, -1, -1, 47, 48, 49, 50, 51, 375, -1, + 377, -1, 56, -1, -1, 416, -1, 418, 419, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 439, 440, + 40, 41, -1, 43, -1, -1, -1, 47, -1, 416, + -1, 418, 419, 97, 98, -1, 56, -1, -1, 59, + -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, + -1, 19, 439, 440, 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, -1, 43, -1, -1, -1, 47, + 38, 39, 40, 41, -1, 43, -1, 97, 98, 47, 48, 49, 50, 51, -1, -1, 54, 55, 56, -1, -1, -1, -1, -1, -1, 11, 64, 65, -1, -1, -1, -1, -1, 19, -1, -1, 22, 23, 24, -1, @@ -4257,20 +4281,20 @@ namespace xsk { namespace gsc { namespace s1 { 16, 43, -1, -1, -1, 47, 48, 49, 50, 51, 97, 98, 54, -1, 56, -1, -1, -1, -1, -1, -1, -1, 64, 65, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 58, -1, -1, - 56, 57, 63, -1, 60, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 97, 98, -1, -1, -1, - 76, 77, -1, 16, -1, -1, -1, -1, 89, 90, - 91, 92, 93, 94, 95, 96, -1, 93, -1, -1, + 46, 47, 48, 49, 50, 51, 52, -1, -1, -1, + 56, -1, -1, -1, 60, -1, 62, -1, -1, -1, + -1, 40, 41, -1, 43, 97, 98, -1, 47, -1, + 76, 77, -1, 16, -1, -1, -1, 56, -1, -1, + 59, -1, -1, -1, -1, -1, -1, 93, -1, -1, 96, 97, 98, 99, 100, 101, 102, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - -1, -1, -1, 56, 66, 67, -1, 60, -1, 62, - 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 76, 77, -1, 16, -1, -1, -1, - 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, 56, -1, -1, -1, 60, 97, 98, + -1, 40, 41, -1, 43, -1, -1, -1, 47, -1, + -1, -1, -1, 76, 77, -1, 16, 56, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, 96, 97, 98, 99, 100, 101, 102, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, -1, -1, -1, 56, -1, -1, -1, + 50, 51, 52, -1, -1, -1, 56, -1, 97, 98, 60, -1, -1, -1, 17, 18, -1, 20, 21, -1, -1, -1, -1, -1, -1, -1, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, @@ -4348,84 +4372,89 @@ namespace xsk { namespace gsc { namespace s1 { -1, 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, - 92, 93, 94, 95, 96, 61, -1, 63, -1, -1, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 92, 93, 94, 95, 96, 58, -1, -1, -1, -1, + 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 89, 90, 91, 92, + 93, 94, 95, 96, 61, -1, 63, -1, -1, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 89, 90, 91, 92, 93, 94, 95, - 96, 62, 63, -1, -1, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, - 91, 92, 93, 94, 95, 96, 62, 63, -1, -1, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + 62, 63, -1, -1, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, + 92, 93, 94, 95, 96, 62, 63, -1, -1, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 89, 90, 91, 92, 93, 94, 95, - 96, 62, 63, -1, -1, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 63, -1, -1, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 89, 90, - 91, 92, 93, 94, 95, 96, -1, -1, -1, -1, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + 62, 63, -1, -1, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 63, -1, -1, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 89, 90, 91, + 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, + 89, 90, 91, 92, 93, 94, 95, 96, 66, 67, + -1, 69, 70, 71, 72, 73, 74, 75, 66, 67, + -1, -1, 70, 71, 72, 73, 74, 75, -1, -1, + -1, 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, 66, - 67, -1, 69, 70, 71, 72, 73, 74, 75, 66, + 67, -1, -1, 70, 71, 72, 73, 74, 75, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, -1, - -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, - -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + -1, -1, -1, 90, 91, 92, 93, 94, 95, 96, + -1, -1, -1, 90, -1, 92, 93, 94, 95, 96, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, - 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, - -1, -1, -1, -1, 90, 91, 92, 93, 94, 95, - 96, -1, -1, -1, 90, -1, 92, 93, 94, 95, - 96, 66, 67, -1, -1, 70, 71, 72, 73, 74, - 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 92, 93, 94, - 95, 96 + 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, + -1, -1, -1, -1, -1, -1, 92, 93, 94, 95, + 96, -1, -1, -1, -1, -1, 92, 93, 94, 95, + 96 }; const unsigned char parser::yystos_[] = { 0, 11, 12, 13, 14, 15, 47, 98, 114, 115, - 116, 117, 118, 119, 120, 121, 187, 97, 98, 188, - 188, 52, 0, 116, 117, 118, 52, 78, 62, 62, - 99, 190, 168, 187, 16, 40, 41, 42, 43, 44, + 116, 117, 118, 119, 120, 121, 188, 97, 98, 189, + 189, 52, 0, 116, 117, 118, 52, 78, 62, 62, + 99, 191, 168, 188, 16, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 56, 60, 76, 77, 93, 96, 98, 100, 101, 102, 153, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 53, 53, 58, 56, 187, 188, 56, 187, - 188, 56, 153, 56, 57, 153, 169, 170, 187, 153, - 153, 101, 102, 98, 62, 63, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 89, 90, 91, 92, - 93, 94, 95, 96, 56, 59, 165, 166, 187, 188, - 52, 60, 62, 54, 127, 187, 56, 52, 60, 56, - 52, 60, 56, 53, 58, 153, 58, 57, 153, 153, + 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 53, 53, 58, 56, 188, 189, 56, + 188, 189, 56, 153, 56, 57, 153, 169, 170, 188, + 153, 153, 98, 101, 102, 98, 62, 63, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 89, 90, + 91, 92, 93, 94, 95, 96, 56, 59, 165, 166, + 188, 189, 52, 60, 62, 54, 127, 188, 56, 52, + 60, 56, 52, 60, 56, 53, 58, 153, 58, 57, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 47, 98, - 186, 60, 169, 170, 187, 11, 19, 22, 23, 24, - 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 55, 56, 64, 65, 122, 123, 125, - 126, 127, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 155, 156, 157, 163, - 164, 172, 173, 176, 180, 181, 182, 183, 187, 153, - 169, 187, 153, 169, 187, 153, 153, 57, 153, 61, - 57, 187, 53, 52, 12, 122, 124, 153, 62, 52, - 62, 52, 122, 52, 52, 52, 52, 93, 190, 193, - 61, 62, 62, 62, 153, 62, 52, 52, 56, 163, - 164, 176, 176, 55, 123, 62, 62, 62, 62, 62, - 17, 18, 20, 21, 59, 64, 65, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 57, 53, - 52, 57, 53, 52, 57, 58, 57, 153, 169, 12, - 122, 62, 53, 153, 27, 153, 128, 155, 156, 157, - 176, 187, 153, 61, 61, 62, 169, 169, 153, 52, - 52, 52, 52, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 57, 169, 57, 169, 57, 153, - 52, 53, 62, 53, 52, 53, 62, 30, 58, 53, - 53, 53, 153, 153, 153, 153, 52, 53, 52, 53, - 52, 53, 169, 122, 153, 122, 153, 154, 153, 187, - 127, 62, 62, 53, 53, 58, 53, 58, 53, 58, - 169, 169, 169, 53, 25, 53, 62, 53, 30, 62, - 62, 170, 62, 170, 62, 170, 53, 53, 53, 122, - 62, 128, 122, 153, 53, 53, 53, 53, 53, 62, - 62, 62, 122, 122 + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 47, 98, 187, 60, 169, 170, 188, 11, 19, 22, + 23, 24, 26, 27, 28, 29, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 55, 56, 64, 65, 122, + 123, 125, 126, 127, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 155, 156, + 157, 163, 164, 172, 173, 176, 180, 181, 182, 183, + 188, 153, 169, 188, 153, 169, 188, 153, 153, 57, + 153, 61, 57, 188, 53, 52, 12, 122, 124, 153, + 62, 52, 62, 52, 122, 52, 52, 52, 52, 93, + 191, 194, 61, 62, 62, 62, 153, 62, 52, 52, + 56, 163, 164, 176, 176, 55, 123, 62, 62, 62, + 62, 62, 17, 18, 20, 21, 59, 64, 65, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 57, 53, 52, 57, 53, 52, 57, 58, 57, 153, + 169, 12, 122, 62, 53, 153, 27, 153, 128, 155, + 156, 157, 176, 188, 153, 61, 61, 62, 169, 169, + 153, 52, 52, 52, 52, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 57, 169, 57, 169, + 57, 153, 52, 53, 62, 53, 52, 53, 62, 30, + 58, 53, 53, 53, 153, 153, 153, 153, 52, 53, + 52, 53, 52, 53, 169, 122, 153, 122, 153, 154, + 153, 188, 127, 62, 62, 53, 53, 58, 53, 58, + 53, 58, 169, 169, 169, 53, 25, 53, 62, 53, + 30, 62, 62, 170, 62, 170, 62, 170, 53, 53, + 53, 122, 62, 128, 122, 153, 53, 53, 53, 53, + 53, 62, 62, 62, 122, 122 }; const unsigned char @@ -4446,14 +4475,14 @@ namespace xsk { namespace gsc { namespace s1 { 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 161, - 162, 163, 163, 164, 164, 165, 165, 165, 165, 165, - 165, 166, 166, 166, 166, 167, 168, 168, 168, 169, - 169, 170, 170, 171, 171, 172, 173, 174, 175, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 187, - 188, 188, 189, 190, 191, 192, 192, 193, 193, 194, - 195 + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 161, 162, 163, 163, 164, 164, 165, 165, 165, 165, + 165, 165, 166, 166, 166, 166, 167, 168, 168, 168, + 169, 169, 170, 170, 171, 171, 172, 173, 174, 175, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 188, 189, 189, 190, 191, 192, 193, 193, 194, + 194, 195, 196 }; const signed char @@ -4474,14 +4503,14 @@ namespace xsk { namespace gsc { namespace s1 { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 1, 1, 2, 2, 4, 6, 5, 7, 5, - 7, 8, 9, 9, 9, 3, 3, 1, 0, 1, - 0, 3, 1, 2, 3, 4, 3, 3, 3, 1, - 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, 2, 1, 2, 1, 1, - 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 1, 1, 2, 2, 4, 6, 5, 7, + 5, 7, 8, 9, 9, 9, 3, 3, 1, 0, + 1, 0, 3, 1, 2, 3, 4, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 7, 2, 1, 2, + 1, 1, 1 }; @@ -4491,29 +4520,29 @@ namespace xsk { namespace gsc { namespace s1 { const short parser::yyrline_[] = { - 0, 259, 259, 260, 264, 266, 268, 270, 272, 274, - 279, 283, 288, 289, 290, 291, 292, 296, 301, 306, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 339, 340, 344, 346, 351, - 353, 358, 359, 363, 364, 368, 370, 372, 375, 379, - 381, 386, 388, 390, 395, 400, 402, 407, 412, 414, - 419, 421, 426, 431, 433, 438, 443, 448, 453, 458, - 463, 465, 470, 475, 477, 482, 487, 492, 497, 499, - 504, 509, 514, 519, 520, 521, 525, 526, 530, 532, - 534, 536, 538, 540, 542, 544, 546, 548, 550, 555, - 557, 562, 564, 569, 574, 576, 578, 580, 582, 584, - 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, - 606, 608, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 643, - 648, 653, 654, 657, 658, 662, 664, 666, 668, 670, - 672, 677, 679, 681, 683, 688, 693, 695, 698, 702, - 705, 709, 711, 716, 718, 723, 728, 733, 738, 743, - 744, 745, 746, 747, 748, 749, 750, 751, 755, 760, - 765, 770, 775, 780, 785, 790, 795, 800, 805, 807, - 812, 814, 819, 824, 829, 834, 836, 841, 843, 848, - 853 + 0, 260, 260, 261, 265, 267, 269, 271, 273, 275, + 280, 284, 289, 290, 291, 292, 293, 297, 302, 307, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 340, 341, 345, 347, 352, + 354, 359, 360, 364, 365, 369, 371, 373, 376, 380, + 382, 387, 389, 391, 396, 401, 403, 408, 413, 415, + 420, 422, 427, 432, 434, 439, 444, 449, 454, 459, + 464, 466, 471, 476, 478, 483, 488, 493, 498, 500, + 505, 510, 515, 520, 521, 522, 526, 527, 531, 533, + 535, 537, 539, 541, 543, 545, 547, 549, 551, 556, + 558, 563, 565, 570, 575, 577, 579, 581, 583, 585, + 587, 589, 591, 593, 595, 597, 599, 601, 603, 605, + 607, 609, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 645, 650, 655, 656, 659, 660, 664, 666, 668, 670, + 672, 674, 679, 681, 683, 685, 690, 695, 697, 700, + 704, 707, 711, 713, 718, 720, 725, 730, 735, 740, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 757, + 762, 767, 772, 777, 782, 787, 792, 797, 802, 807, + 812, 814, 819, 821, 826, 831, 836, 841, 843, 848, + 850, 855, 860 }; void @@ -4546,9 +4575,9 @@ namespace xsk { namespace gsc { namespace s1 { #line 13 "parser.ypp" } } } // xsk::gsc::s1 -#line 4550 "parser.cpp" +#line 4579 "parser.cpp" -#line 857 "parser.ypp" +#line 864 "parser.ypp" void xsk::gsc::s1::parser::error(const xsk::gsc::location& loc, const std::string& msg) diff --git a/src/s1/xsk/parser.hpp b/src/s1/xsk/parser.hpp index 29d15111..8fa8886e 100644 --- a/src/s1/xsk/parser.hpp +++ b/src/s1/xsk/parser.hpp @@ -447,6 +447,7 @@ namespace xsk { namespace gsc { namespace s1 { // expr_binary // expr_primitive // expr_object + // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -1007,16 +1008,17 @@ namespace xsk { namespace gsc { namespace s1 { S_expr_level = 183, // expr_level S_expr_animation = 184, // expr_animation S_expr_animtree = 185, // expr_animtree - S_expr_identifier_nosize = 186, // expr_identifier_nosize - S_expr_identifier = 187, // expr_identifier - S_expr_path = 188, // expr_path - S_expr_istring = 189, // expr_istring - S_expr_string = 190, // expr_string - S_expr_vector = 191, // expr_vector - S_expr_float = 192, // expr_float - S_expr_integer = 193, // expr_integer - S_expr_false = 194, // expr_false - S_expr_true = 195 // expr_true + S_expr_identifier_neg = 186, // expr_identifier_neg + S_expr_identifier_nosize = 187, // expr_identifier_nosize + S_expr_identifier = 188, // expr_identifier + S_expr_path = 189, // expr_path + S_expr_istring = 190, // expr_istring + S_expr_string = 191, // expr_string + S_expr_vector = 192, // expr_vector + S_expr_float = 193, // expr_float + S_expr_integer = 194, // expr_integer + S_expr_false = 195, // expr_false + S_expr_true = 196 // expr_true }; }; @@ -1083,6 +1085,7 @@ namespace xsk { namespace gsc { namespace s1 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (std::move (that.value)); break; @@ -2355,6 +2358,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.template destroy< ast::expr > (); break; @@ -4813,8 +4817,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 2251, ///< Last index in yytable_. - yynnts_ = 83, ///< Number of nonterminal symbols. + yylast_ = 2310, ///< Last index in yytable_. + yynnts_ = 84, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4871,6 +4875,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (YY_MOVE (that.value)); break; @@ -5189,6 +5194,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (s.value)); break; @@ -5513,7 +5519,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::s1 -#line 5517 "parser.hpp" +#line 5523 "parser.hpp" diff --git a/src/s2/xsk/parser.cpp b/src/s2/xsk/parser.cpp index 35635bca..7efc761f 100644 --- a/src/s2/xsk/parser.cpp +++ b/src/s2/xsk/parser.cpp @@ -245,6 +245,7 @@ namespace xsk { namespace gsc { namespace s2 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.YY_MOVE_OR_COPY< ast::expr > (YY_MOVE (that.value)); break; @@ -547,6 +548,7 @@ namespace xsk { namespace gsc { namespace s2 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (that.value)); break; @@ -849,6 +851,7 @@ namespace xsk { namespace gsc { namespace s2 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (that.value); break; @@ -1150,6 +1153,7 @@ namespace xsk { namespace gsc { namespace s2 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (that.value); break; @@ -1706,6 +1710,7 @@ namespace xsk { namespace gsc { namespace s2 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg yylhs.value.emplace< ast::expr > (); break; @@ -1984,1321 +1989,1333 @@ namespace xsk { namespace gsc { namespace s2 { switch (yyn) { case 2: // root: program -#line 259 "parser.ypp" +#line 260 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1990 "parser.cpp" +#line 1995 "parser.cpp" break; case 3: // root: %empty -#line 260 "parser.ypp" +#line 261 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 1996 "parser.cpp" +#line 2001 "parser.cpp" break; case 4: // program: program inline -#line 265 "parser.ypp" +#line 266 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2002 "parser.cpp" +#line 2007 "parser.cpp" break; case 5: // program: program include -#line 267 "parser.ypp" +#line 268 "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 2008 "parser.cpp" +#line 2013 "parser.cpp" break; case 6: // program: program declaration -#line 269 "parser.ypp" +#line 270 "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 2014 "parser.cpp" +#line 2019 "parser.cpp" break; case 7: // program: inline -#line 271 "parser.ypp" +#line 272 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2020 "parser.cpp" +#line 2025 "parser.cpp" break; case 8: // program: include -#line 273 "parser.ypp" +#line 274 "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 2026 "parser.cpp" +#line 2031 "parser.cpp" break; case 9: // program: declaration -#line 275 "parser.ypp" +#line 276 "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 2032 "parser.cpp" +#line 2037 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" -#line 279 "parser.ypp" +#line 280 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2038 "parser.cpp" +#line 2043 "parser.cpp" break; case 11: // include: "#include" expr_path ";" -#line 284 "parser.ypp" +#line 285 "parser.ypp" { yylhs.value.as < ast::include::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_path::ptr > ())); } -#line 2044 "parser.cpp" +#line 2049 "parser.cpp" break; case 12: // declaration: "/#" -#line 288 "parser.ypp" +#line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2050 "parser.cpp" +#line 2055 "parser.cpp" break; case 13: // declaration: "#/" -#line 289 "parser.ypp" +#line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2056 "parser.cpp" +#line 2061 "parser.cpp" break; case 14: // declaration: decl_usingtree -#line 290 "parser.ypp" +#line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2062 "parser.cpp" +#line 2067 "parser.cpp" break; case 15: // declaration: decl_constant -#line 291 "parser.ypp" +#line 292 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2068 "parser.cpp" +#line 2073 "parser.cpp" break; case 16: // declaration: decl_thread -#line 292 "parser.ypp" +#line 293 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2074 "parser.cpp" +#line 2079 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" -#line 297 "parser.ypp" +#line 298 "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 2080 "parser.cpp" +#line 2085 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" -#line 302 "parser.ypp" +#line 303 "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 2086 "parser.cpp" +#line 2091 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block -#line 307 "parser.ypp" +#line 308 "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 2092 "parser.cpp" +#line 2097 "parser.cpp" break; case 20: // stmt: stmt_block -#line 311 "parser.ypp" +#line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2098 "parser.cpp" +#line 2103 "parser.cpp" break; case 21: // stmt: stmt_call -#line 312 "parser.ypp" +#line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2104 "parser.cpp" +#line 2109 "parser.cpp" break; case 22: // stmt: stmt_assign -#line 313 "parser.ypp" +#line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2110 "parser.cpp" +#line 2115 "parser.cpp" break; case 23: // stmt: stmt_endon -#line 314 "parser.ypp" +#line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2116 "parser.cpp" +#line 2121 "parser.cpp" break; case 24: // stmt: stmt_notify -#line 315 "parser.ypp" +#line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2122 "parser.cpp" +#line 2127 "parser.cpp" break; case 25: // stmt: stmt_wait -#line 316 "parser.ypp" +#line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2128 "parser.cpp" +#line 2133 "parser.cpp" break; case 26: // stmt: stmt_waittill -#line 317 "parser.ypp" +#line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2134 "parser.cpp" +#line 2139 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch -#line 318 "parser.ypp" +#line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2140 "parser.cpp" +#line 2145 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend -#line 319 "parser.ypp" +#line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2146 "parser.cpp" +#line 2151 "parser.cpp" break; case 29: // stmt: stmt_waitframe -#line 320 "parser.ypp" +#line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waitframe = std::move(yystack_[0].value.as < ast::stmt_waitframe::ptr > ()); } -#line 2152 "parser.cpp" +#line 2157 "parser.cpp" break; case 30: // stmt: stmt_if -#line 321 "parser.ypp" +#line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2158 "parser.cpp" +#line 2163 "parser.cpp" break; case 31: // stmt: stmt_ifelse -#line 322 "parser.ypp" +#line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2164 "parser.cpp" +#line 2169 "parser.cpp" break; case 32: // stmt: stmt_while -#line 323 "parser.ypp" +#line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2170 "parser.cpp" +#line 2175 "parser.cpp" break; case 33: // stmt: stmt_dowhile -#line 324 "parser.ypp" +#line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2176 "parser.cpp" +#line 2181 "parser.cpp" break; case 34: // stmt: stmt_for -#line 325 "parser.ypp" +#line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2182 "parser.cpp" +#line 2187 "parser.cpp" break; case 35: // stmt: stmt_foreach -#line 326 "parser.ypp" +#line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2188 "parser.cpp" +#line 2193 "parser.cpp" break; case 36: // stmt: stmt_switch -#line 327 "parser.ypp" +#line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2194 "parser.cpp" +#line 2199 "parser.cpp" break; case 37: // stmt: stmt_case -#line 328 "parser.ypp" +#line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2200 "parser.cpp" +#line 2205 "parser.cpp" break; case 38: // stmt: stmt_default -#line 329 "parser.ypp" +#line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2206 "parser.cpp" +#line 2211 "parser.cpp" break; case 39: // stmt: stmt_break -#line 330 "parser.ypp" +#line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2212 "parser.cpp" +#line 2217 "parser.cpp" break; case 40: // stmt: stmt_continue -#line 331 "parser.ypp" +#line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2218 "parser.cpp" +#line 2223 "parser.cpp" break; case 41: // stmt: stmt_return -#line 332 "parser.ypp" +#line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2224 "parser.cpp" +#line 2229 "parser.cpp" break; case 42: // stmt: stmt_breakpoint -#line 333 "parser.ypp" +#line 334 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2230 "parser.cpp" +#line 2235 "parser.cpp" break; case 43: // stmt: stmt_prof_begin -#line 334 "parser.ypp" +#line 335 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2236 "parser.cpp" +#line 2241 "parser.cpp" break; case 44: // stmt: stmt_prof_end -#line 335 "parser.ypp" +#line 336 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2242 "parser.cpp" +#line 2247 "parser.cpp" break; case 45: // stmt_or_dev: stmt -#line 339 "parser.ypp" +#line 340 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2248 "parser.cpp" +#line 2253 "parser.cpp" break; case 46: // stmt_or_dev: stmt_dev -#line 340 "parser.ypp" +#line 341 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2254 "parser.cpp" +#line 2259 "parser.cpp" break; case 47: // stmt_list: stmt_list stmt -#line 345 "parser.ypp" +#line 346 "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 2260 "parser.cpp" +#line 2265 "parser.cpp" break; case 48: // stmt_list: stmt -#line 347 "parser.ypp" +#line 348 "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 2266 "parser.cpp" +#line 2271 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev -#line 352 "parser.ypp" +#line 353 "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 2272 "parser.cpp" +#line 2277 "parser.cpp" break; case 50: // stmt_or_dev_list: stmt_or_dev -#line 354 "parser.ypp" +#line 355 "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 2278 "parser.cpp" +#line 2283 "parser.cpp" break; case 51: // stmt_dev: "/#" stmt_list "#/" -#line 358 "parser.ypp" +#line 359 "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 2284 "parser.cpp" +#line 2289 "parser.cpp" break; case 52: // stmt_dev: "/#" "#/" -#line 359 "parser.ypp" +#line 360 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2290 "parser.cpp" +#line 2295 "parser.cpp" break; case 53: // stmt_block: "{" stmt_or_dev_list "}" -#line 363 "parser.ypp" +#line 364 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2296 "parser.cpp" +#line 2301 "parser.cpp" break; case 54: // stmt_block: "{" "}" -#line 364 "parser.ypp" +#line 365 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2302 "parser.cpp" +#line 2307 "parser.cpp" break; case 55: // stmt_expr: expr_assign -#line 369 "parser.ypp" +#line 370 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2308 "parser.cpp" +#line 2313 "parser.cpp" break; case 56: // stmt_expr: expr_increment -#line 371 "parser.ypp" +#line 372 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2314 "parser.cpp" +#line 2319 "parser.cpp" break; case 57: // stmt_expr: expr_decrement -#line 373 "parser.ypp" +#line 374 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2320 "parser.cpp" +#line 2325 "parser.cpp" break; case 58: // stmt_expr: %empty -#line 375 "parser.ypp" +#line 376 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2326 "parser.cpp" +#line 2331 "parser.cpp" break; case 59: // stmt_call: expr_call ";" -#line 380 "parser.ypp" +#line 381 "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 2332 "parser.cpp" +#line 2337 "parser.cpp" break; case 60: // stmt_call: expr_method ";" -#line 382 "parser.ypp" +#line 383 "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 2338 "parser.cpp" +#line 2343 "parser.cpp" break; case 61: // stmt_assign: expr_assign ";" -#line 387 "parser.ypp" +#line 388 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2344 "parser.cpp" +#line 2349 "parser.cpp" break; case 62: // stmt_assign: expr_increment ";" -#line 389 "parser.ypp" +#line 390 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2350 "parser.cpp" +#line 2355 "parser.cpp" break; case 63: // stmt_assign: expr_decrement ";" -#line 391 "parser.ypp" +#line 392 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2356 "parser.cpp" +#line 2361 "parser.cpp" break; case 64: // stmt_endon: expr_object "endon" "(" expr ")" ";" -#line 396 "parser.ypp" +#line 397 "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 2362 "parser.cpp" +#line 2367 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" -#line 401 "parser.ypp" +#line 402 "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 2368 "parser.cpp" +#line 2373 "parser.cpp" break; case 66: // stmt_notify: expr_object "notify" "(" expr ")" ";" -#line 403 "parser.ypp" +#line 404 "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 2374 "parser.cpp" +#line 2379 "parser.cpp" break; case 67: // stmt_wait: "wait" expr ";" -#line 408 "parser.ypp" +#line 409 "parser.ypp" { yylhs.value.as < ast::stmt_wait::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2380 "parser.cpp" +#line 2385 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" -#line 413 "parser.ypp" +#line 414 "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 2386 "parser.cpp" +#line 2391 "parser.cpp" break; case 69: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" -#line 415 "parser.ypp" +#line 416 "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 2392 "parser.cpp" +#line 2397 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" -#line 420 "parser.ypp" +#line 421 "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 2398 "parser.cpp" +#line 2403 "parser.cpp" break; case 71: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" -#line 422 "parser.ypp" +#line 423 "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 2404 "parser.cpp" +#line 2409 "parser.cpp" break; case 72: // stmt_waittillframeend: "waittillframeend" ";" -#line 427 "parser.ypp" +#line 428 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2410 "parser.cpp" +#line 2415 "parser.cpp" break; case 73: // stmt_waitframe: "waitframe" ";" -#line 432 "parser.ypp" +#line 433 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2416 "parser.cpp" +#line 2421 "parser.cpp" break; case 74: // stmt_waitframe: "waitframe" "(" ")" ";" -#line 434 "parser.ypp" +#line 435 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2422 "parser.cpp" +#line 2427 "parser.cpp" break; case 75: // stmt_if: "if" "(" expr ")" stmt -#line 439 "parser.ypp" +#line 440 "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 2428 "parser.cpp" +#line 2433 "parser.cpp" break; case 76: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt -#line 444 "parser.ypp" +#line 445 "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 2434 "parser.cpp" +#line 2439 "parser.cpp" break; case 77: // stmt_while: "while" "(" expr ")" stmt -#line 449 "parser.ypp" +#line 450 "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 2440 "parser.cpp" +#line 2445 "parser.cpp" break; case 78: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" -#line 454 "parser.ypp" +#line 455 "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 2446 "parser.cpp" +#line 2451 "parser.cpp" break; case 79: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt -#line 459 "parser.ypp" +#line 460 "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 2452 "parser.cpp" +#line 2457 "parser.cpp" break; case 80: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt -#line 464 "parser.ypp" +#line 465 "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 2458 "parser.cpp" +#line 2463 "parser.cpp" break; case 81: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt -#line 466 "parser.ypp" +#line 467 "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 2464 "parser.cpp" +#line 2469 "parser.cpp" break; case 82: // stmt_switch: "switch" "(" expr ")" stmt_block -#line 471 "parser.ypp" +#line 472 "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 2470 "parser.cpp" +#line 2475 "parser.cpp" break; case 83: // stmt_case: "case" expr_integer ":" -#line 476 "parser.ypp" +#line 477 "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 2476 "parser.cpp" +#line 2481 "parser.cpp" break; case 84: // stmt_case: "case" expr_string ":" -#line 478 "parser.ypp" +#line 479 "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 2482 "parser.cpp" +#line 2487 "parser.cpp" break; case 85: // stmt_default: "default" ":" -#line 483 "parser.ypp" +#line 484 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2488 "parser.cpp" +#line 2493 "parser.cpp" break; case 86: // stmt_break: "break" ";" -#line 488 "parser.ypp" +#line 489 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2494 "parser.cpp" +#line 2499 "parser.cpp" break; case 87: // stmt_continue: "continue" ";" -#line 493 "parser.ypp" +#line 494 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2500 "parser.cpp" +#line 2505 "parser.cpp" break; case 88: // stmt_return: "return" expr ";" -#line 498 "parser.ypp" +#line 499 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2506 "parser.cpp" +#line 2511 "parser.cpp" break; case 89: // stmt_return: "return" ";" -#line 500 "parser.ypp" +#line 501 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2512 "parser.cpp" +#line 2517 "parser.cpp" break; case 90: // stmt_breakpoint: "breakpoint" ";" -#line 505 "parser.ypp" +#line 506 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2518 "parser.cpp" +#line 2523 "parser.cpp" break; case 91: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" -#line 510 "parser.ypp" +#line 511 "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 2524 "parser.cpp" +#line 2529 "parser.cpp" break; case 92: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" -#line 515 "parser.ypp" +#line 516 "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 2530 "parser.cpp" +#line 2535 "parser.cpp" break; case 93: // expr: expr_ternary -#line 519 "parser.ypp" +#line 520 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2536 "parser.cpp" +#line 2541 "parser.cpp" break; case 94: // expr: expr_binary -#line 520 "parser.ypp" +#line 521 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2542 "parser.cpp" +#line 2547 "parser.cpp" break; case 95: // expr: expr_primitive -#line 521 "parser.ypp" +#line 522 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2548 "parser.cpp" +#line 2553 "parser.cpp" break; case 96: // expr_or_empty: expr -#line 525 "parser.ypp" +#line 526 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2554 "parser.cpp" +#line 2559 "parser.cpp" break; case 97: // expr_or_empty: %empty -#line 526 "parser.ypp" +#line 527 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2560 "parser.cpp" +#line 2565 "parser.cpp" break; case 98: // expr_assign: expr_object "=" expr -#line 531 "parser.ypp" +#line 532 "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 2566 "parser.cpp" +#line 2571 "parser.cpp" break; case 99: // expr_assign: expr_object "|=" expr -#line 533 "parser.ypp" +#line 534 "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 2572 "parser.cpp" +#line 2577 "parser.cpp" break; case 100: // expr_assign: expr_object "&=" expr -#line 535 "parser.ypp" +#line 536 "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 2578 "parser.cpp" +#line 2583 "parser.cpp" break; case 101: // expr_assign: expr_object "^=" expr -#line 537 "parser.ypp" +#line 538 "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 2584 "parser.cpp" +#line 2589 "parser.cpp" break; case 102: // expr_assign: expr_object "<<=" expr -#line 539 "parser.ypp" +#line 540 "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 2590 "parser.cpp" +#line 2595 "parser.cpp" break; case 103: // expr_assign: expr_object ">>=" expr -#line 541 "parser.ypp" +#line 542 "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 2596 "parser.cpp" +#line 2601 "parser.cpp" break; case 104: // expr_assign: expr_object "+=" expr -#line 543 "parser.ypp" +#line 544 "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 2602 "parser.cpp" +#line 2607 "parser.cpp" break; case 105: // expr_assign: expr_object "-=" expr -#line 545 "parser.ypp" +#line 546 "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 2608 "parser.cpp" +#line 2613 "parser.cpp" break; case 106: // expr_assign: expr_object "*=" expr -#line 547 "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 2614 "parser.cpp" +#line 2619 "parser.cpp" break; case 107: // expr_assign: expr_object "/=" expr -#line 549 "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 2620 "parser.cpp" +#line 2625 "parser.cpp" break; case 108: // expr_assign: expr_object "%=" expr -#line 551 "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 2626 "parser.cpp" +#line 2631 "parser.cpp" break; case 109: // expr_increment: "++" expr_object -#line 556 "parser.ypp" +#line 557 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2632 "parser.cpp" +#line 2637 "parser.cpp" break; case 110: // expr_increment: expr_object "++" -#line 558 "parser.ypp" +#line 559 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2638 "parser.cpp" +#line 2643 "parser.cpp" break; case 111: // expr_decrement: "--" expr_object -#line 563 "parser.ypp" +#line 564 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2644 "parser.cpp" +#line 2649 "parser.cpp" break; case 112: // expr_decrement: expr_object "--" -#line 565 "parser.ypp" +#line 566 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2650 "parser.cpp" +#line 2655 "parser.cpp" break; case 113: // expr_ternary: expr "?" expr ":" expr -#line 570 "parser.ypp" +#line 571 "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 2656 "parser.cpp" +#line 2661 "parser.cpp" break; case 114: // expr_binary: expr "||" expr -#line 575 "parser.ypp" +#line 576 "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 2662 "parser.cpp" +#line 2667 "parser.cpp" break; case 115: // expr_binary: expr "&&" expr -#line 577 "parser.ypp" +#line 578 "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 2668 "parser.cpp" +#line 2673 "parser.cpp" break; case 116: // expr_binary: expr "==" expr -#line 579 "parser.ypp" +#line 580 "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 2674 "parser.cpp" +#line 2679 "parser.cpp" break; case 117: // expr_binary: expr "!=" expr -#line 581 "parser.ypp" +#line 582 "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 2680 "parser.cpp" +#line 2685 "parser.cpp" break; case 118: // expr_binary: expr "<=" expr -#line 583 "parser.ypp" +#line 584 "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 2686 "parser.cpp" +#line 2691 "parser.cpp" break; case 119: // expr_binary: expr ">=" expr -#line 585 "parser.ypp" +#line 586 "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 2692 "parser.cpp" +#line 2697 "parser.cpp" break; case 120: // expr_binary: expr "<" expr -#line 587 "parser.ypp" +#line 588 "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 2698 "parser.cpp" +#line 2703 "parser.cpp" break; case 121: // expr_binary: expr ">" expr -#line 589 "parser.ypp" +#line 590 "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 2704 "parser.cpp" +#line 2709 "parser.cpp" break; case 122: // expr_binary: expr "|" expr -#line 591 "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 2710 "parser.cpp" +#line 2715 "parser.cpp" break; case 123: // expr_binary: expr "&" expr -#line 593 "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 2716 "parser.cpp" +#line 2721 "parser.cpp" break; case 124: // expr_binary: expr "^" expr -#line 595 "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 2722 "parser.cpp" +#line 2727 "parser.cpp" break; case 125: // expr_binary: expr "<<" expr -#line 597 "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 2728 "parser.cpp" +#line 2733 "parser.cpp" break; case 126: // expr_binary: expr ">>" expr -#line 599 "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 2734 "parser.cpp" +#line 2739 "parser.cpp" break; case 127: // expr_binary: expr "+" expr -#line 601 "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 2740 "parser.cpp" +#line 2745 "parser.cpp" break; case 128: // expr_binary: expr "-" expr -#line 603 "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 2746 "parser.cpp" +#line 2751 "parser.cpp" break; case 129: // expr_binary: expr "*" expr -#line 605 "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 2752 "parser.cpp" +#line 2757 "parser.cpp" break; case 130: // expr_binary: expr "/" expr -#line 607 "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 2758 "parser.cpp" +#line 2763 "parser.cpp" break; case 131: // expr_binary: expr "%" expr -#line 609 "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 2764 "parser.cpp" +#line 2769 "parser.cpp" break; case 132: // expr_primitive: expr_complement -#line 613 "parser.ypp" +#line 614 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2770 "parser.cpp" +#line 2775 "parser.cpp" break; case 133: // expr_primitive: expr_not -#line 614 "parser.ypp" +#line 615 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2776 "parser.cpp" +#line 2781 "parser.cpp" break; case 134: // expr_primitive: expr_call -#line 615 "parser.ypp" +#line 616 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2782 "parser.cpp" +#line 2787 "parser.cpp" break; case 135: // expr_primitive: expr_method -#line 616 "parser.ypp" +#line 617 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2788 "parser.cpp" +#line 2793 "parser.cpp" break; case 136: // expr_primitive: expr_add_array -#line 617 "parser.ypp" +#line 618 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2794 "parser.cpp" +#line 2799 "parser.cpp" break; case 137: // expr_primitive: expr_reference -#line 618 "parser.ypp" +#line 619 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2800 "parser.cpp" +#line 2805 "parser.cpp" break; case 138: // expr_primitive: expr_array -#line 619 "parser.ypp" +#line 620 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2806 "parser.cpp" +#line 2811 "parser.cpp" break; case 139: // expr_primitive: expr_field -#line 620 "parser.ypp" +#line 621 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2812 "parser.cpp" +#line 2817 "parser.cpp" break; case 140: // expr_primitive: expr_size -#line 621 "parser.ypp" +#line 622 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2818 "parser.cpp" +#line 2823 "parser.cpp" break; case 141: // expr_primitive: expr_paren -#line 622 "parser.ypp" +#line 623 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2824 "parser.cpp" +#line 2829 "parser.cpp" break; case 142: // expr_primitive: expr_thisthread -#line 623 "parser.ypp" +#line 624 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2830 "parser.cpp" +#line 2835 "parser.cpp" break; case 143: // expr_primitive: expr_empty_array -#line 624 "parser.ypp" +#line 625 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2836 "parser.cpp" +#line 2841 "parser.cpp" break; case 144: // expr_primitive: expr_undefined -#line 625 "parser.ypp" +#line 626 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2842 "parser.cpp" +#line 2847 "parser.cpp" break; case 145: // expr_primitive: expr_game -#line 626 "parser.ypp" +#line 627 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2848 "parser.cpp" +#line 2853 "parser.cpp" break; case 146: // expr_primitive: expr_self -#line 627 "parser.ypp" +#line 628 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2854 "parser.cpp" +#line 2859 "parser.cpp" break; case 147: // expr_primitive: expr_anim -#line 628 "parser.ypp" +#line 629 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2860 "parser.cpp" +#line 2865 "parser.cpp" break; case 148: // expr_primitive: expr_level -#line 629 "parser.ypp" +#line 630 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2866 "parser.cpp" +#line 2871 "parser.cpp" break; case 149: // expr_primitive: expr_animation -#line 630 "parser.ypp" +#line 631 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2872 "parser.cpp" +#line 2877 "parser.cpp" break; case 150: // expr_primitive: expr_animtree -#line 631 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2878 "parser.cpp" - break; - - case 151: // expr_primitive: expr_identifier #line 632 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 2884 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2883 "parser.cpp" break; - case 152: // expr_primitive: expr_istring + case 151: // expr_primitive: expr_identifier_neg #line 633 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } -#line 2890 "parser.cpp" + { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } +#line 2889 "parser.cpp" break; - case 153: // expr_primitive: expr_string + case 152: // expr_primitive: expr_identifier #line 634 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } -#line 2896 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 2895 "parser.cpp" break; - case 154: // expr_primitive: expr_vector + case 153: // expr_primitive: expr_istring #line 635 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } -#line 2902 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } +#line 2901 "parser.cpp" break; - case 155: // expr_primitive: expr_float + case 154: // expr_primitive: expr_string #line 636 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } -#line 2908 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } +#line 2907 "parser.cpp" break; - case 156: // expr_primitive: expr_integer + case 155: // expr_primitive: expr_vector #line 637 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } -#line 2914 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } +#line 2913 "parser.cpp" break; - case 157: // expr_primitive: expr_false + case 156: // expr_primitive: expr_float #line 638 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } -#line 2920 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } +#line 2919 "parser.cpp" break; - case 158: // expr_primitive: expr_true + case 157: // expr_primitive: expr_integer #line 639 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } +#line 2925 "parser.cpp" + break; + + case 158: // expr_primitive: expr_false +#line 640 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } +#line 2931 "parser.cpp" + break; + + case 159: // expr_primitive: expr_true +#line 641 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_true::ptr > ()); } -#line 2926 "parser.cpp" +#line 2937 "parser.cpp" break; - case 159: // expr_complement: "~" expr -#line 644 "parser.ypp" + case 160: // expr_complement: "~" expr +#line 646 "parser.ypp" { yylhs.value.as < ast::expr_complement::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2932 "parser.cpp" +#line 2943 "parser.cpp" break; - case 160: // expr_not: "!" expr -#line 649 "parser.ypp" + case 161: // expr_not: "!" expr +#line 651 "parser.ypp" { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2938 "parser.cpp" +#line 2949 "parser.cpp" break; - case 161: // expr_call: expr_function -#line 653 "parser.ypp" + case 162: // expr_call: expr_function +#line 655 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2944 "parser.cpp" +#line 2955 "parser.cpp" break; - case 162: // expr_call: expr_pointer -#line 654 "parser.ypp" + case 163: // expr_call: expr_pointer +#line 656 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2950 "parser.cpp" +#line 2961 "parser.cpp" break; - case 163: // expr_method: expr_object expr_function -#line 657 "parser.ypp" + case 164: // expr_method: expr_object expr_function +#line 659 "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 2956 "parser.cpp" +#line 2967 "parser.cpp" break; - case 164: // expr_method: expr_object expr_pointer -#line 658 "parser.ypp" + case 165: // expr_method: expr_object expr_pointer +#line 660 "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 2962 "parser.cpp" +#line 2973 "parser.cpp" break; - case 165: // expr_function: expr_identifier "(" expr_arguments ")" -#line 663 "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 2968 "parser.cpp" - break; - - case 166: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" + case 166: // expr_function: expr_identifier "(" expr_arguments ")" #line 665 "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 2974 "parser.cpp" + { 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 2979 "parser.cpp" break; - case 167: // expr_function: "thread" expr_identifier "(" expr_arguments ")" + case 167: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" #line 667 "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 2980 "parser.cpp" + { 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 2985 "parser.cpp" break; - case 168: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 168: // expr_function: "thread" expr_identifier "(" expr_arguments ")" #line 669 "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 2986 "parser.cpp" + { 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 2991 "parser.cpp" break; - case 169: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" + case 169: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" #line 671 "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::childthread); } -#line 2992 "parser.cpp" + { 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 2997 "parser.cpp" break; - case 170: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 170: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" #line 673 "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::childthread); } +#line 3003 "parser.cpp" + break; + + case 171: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" +#line 675 "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::childthread); } -#line 2998 "parser.cpp" +#line 3009 "parser.cpp" break; - case 171: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" -#line 678 "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 3004 "parser.cpp" - break; - - case 172: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 172: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 680 "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 3010 "parser.cpp" + { 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 3015 "parser.cpp" break; - case 173: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 173: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 682 "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::childthread); } -#line 3016 "parser.cpp" + { 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 3021 "parser.cpp" break; - case 174: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 174: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 684 "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::childthread); } +#line 3027 "parser.cpp" + break; + + case 175: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 686 "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::builtin); } -#line 3022 "parser.cpp" +#line 3033 "parser.cpp" break; - case 175: // expr_add_array: "[" expr_arguments_no_empty "]" -#line 689 "parser.ypp" + case 176: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 691 "parser.ypp" { yylhs.value.as < ast::expr_add_array::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ())); } -#line 3028 "parser.cpp" +#line 3039 "parser.cpp" break; - case 176: // expr_parameters: expr_parameters "," expr_identifier -#line 694 "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 3034 "parser.cpp" - break; - - case 177: // expr_parameters: expr_identifier + case 177: // expr_parameters: expr_parameters "," expr_identifier #line 696 "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 3040 "parser.cpp" + { 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 3045 "parser.cpp" break; - case 178: // expr_parameters: %empty + case 178: // expr_parameters: expr_identifier #line 698 "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 3051 "parser.cpp" + break; + + case 179: // expr_parameters: %empty +#line 700 "parser.ypp" { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } -#line 3046 "parser.cpp" +#line 3057 "parser.cpp" break; - case 179: // expr_arguments: expr_arguments_no_empty -#line 703 "parser.ypp" - { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } -#line 3052 "parser.cpp" - break; - - case 180: // expr_arguments: %empty + case 180: // expr_arguments: expr_arguments_no_empty #line 705 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3063 "parser.cpp" + break; + + case 181: // expr_arguments: %empty +#line 707 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3058 "parser.cpp" +#line 3069 "parser.cpp" break; - case 181: // expr_arguments_no_empty: expr_arguments "," expr -#line 710 "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 3064 "parser.cpp" - break; - - case 182: // expr_arguments_no_empty: expr + case 182: // expr_arguments_no_empty: expr_arguments "," expr #line 712 "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 3075 "parser.cpp" + break; + + case 183: // expr_arguments_no_empty: expr +#line 714 "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 3070 "parser.cpp" +#line 3081 "parser.cpp" break; - case 183: // expr_reference: "::" expr_identifier -#line 717 "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 3076 "parser.cpp" - break; - - case 184: // expr_reference: expr_path "::" expr_identifier + case 184: // expr_reference: "::" expr_identifier #line 719 "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 3087 "parser.cpp" + break; + + case 185: // expr_reference: expr_path "::" expr_identifier +#line 721 "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 3082 "parser.cpp" +#line 3093 "parser.cpp" break; - case 185: // expr_array: expr_object "[" expr "]" -#line 724 "parser.ypp" + case 186: // expr_array: expr_object "[" expr "]" +#line 726 "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 3088 "parser.cpp" +#line 3099 "parser.cpp" break; - case 186: // expr_field: expr_object "." expr_identifier_nosize -#line 729 "parser.ypp" + case 187: // expr_field: expr_object "." expr_identifier_nosize +#line 731 "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 3094 "parser.cpp" +#line 3105 "parser.cpp" break; - case 187: // expr_size: expr_object "." "size" -#line 734 "parser.ypp" + case 188: // expr_size: expr_object "." "size" +#line 736 "parser.ypp" { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } -#line 3100 "parser.cpp" +#line 3111 "parser.cpp" break; - case 188: // expr_paren: "(" expr ")" -#line 739 "parser.ypp" + case 189: // expr_paren: "(" expr ")" +#line 741 "parser.ypp" { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3106 "parser.cpp" +#line 3117 "parser.cpp" break; - case 189: // expr_object: expr_call -#line 743 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 3112 "parser.cpp" - break; - - case 190: // expr_object: expr_method -#line 744 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 3118 "parser.cpp" - break; - - case 191: // expr_object: expr_array + case 190: // expr_object: expr_call #line 745 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3124 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3123 "parser.cpp" break; - case 192: // expr_object: expr_field + case 191: // expr_object: expr_method #line 746 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 3130 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3129 "parser.cpp" break; - case 193: // expr_object: expr_game + case 192: // expr_object: expr_array #line 747 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 3136 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3135 "parser.cpp" break; - case 194: // expr_object: expr_self + case 193: // expr_object: expr_field #line 748 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 3142 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3141 "parser.cpp" break; - case 195: // expr_object: expr_anim + case 194: // expr_object: expr_game #line 749 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 3148 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3147 "parser.cpp" break; - case 196: // expr_object: expr_level + case 195: // expr_object: expr_self #line 750 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 3154 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3153 "parser.cpp" break; - case 197: // expr_object: expr_identifier + case 196: // expr_object: expr_anim #line 751 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3159 "parser.cpp" + break; + + case 197: // expr_object: expr_level +#line 752 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3165 "parser.cpp" + break; + + case 198: // expr_object: expr_identifier +#line 753 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 3160 "parser.cpp" +#line 3171 "parser.cpp" break; - case 198: // expr_thisthread: "thisthread" -#line 756 "parser.ypp" + case 199: // expr_thisthread: "thisthread" +#line 758 "parser.ypp" { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3166 "parser.cpp" +#line 3177 "parser.cpp" break; - case 199: // expr_empty_array: "[" "]" -#line 761 "parser.ypp" + case 200: // expr_empty_array: "[" "]" +#line 763 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3172 "parser.cpp" +#line 3183 "parser.cpp" break; - case 200: // expr_undefined: "undefined" -#line 766 "parser.ypp" + case 201: // expr_undefined: "undefined" +#line 768 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3178 "parser.cpp" +#line 3189 "parser.cpp" break; - case 201: // expr_game: "game" -#line 771 "parser.ypp" + case 202: // expr_game: "game" +#line 773 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3184 "parser.cpp" +#line 3195 "parser.cpp" break; - case 202: // expr_self: "self" -#line 776 "parser.ypp" + case 203: // expr_self: "self" +#line 778 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3190 "parser.cpp" +#line 3201 "parser.cpp" break; - case 203: // expr_anim: "anim" -#line 781 "parser.ypp" + case 204: // expr_anim: "anim" +#line 783 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3196 "parser.cpp" +#line 3207 "parser.cpp" break; - case 204: // expr_level: "level" -#line 786 "parser.ypp" + case 205: // expr_level: "level" +#line 788 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3202 "parser.cpp" +#line 3213 "parser.cpp" break; - case 205: // expr_animation: "%" "identifier" -#line 791 "parser.ypp" + case 206: // expr_animation: "%" "identifier" +#line 793 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3208 "parser.cpp" +#line 3219 "parser.cpp" break; - case 206: // expr_animtree: "#animtree" -#line 796 "parser.ypp" + case 207: // expr_animtree: "#animtree" +#line 798 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3214 "parser.cpp" +#line 3225 "parser.cpp" break; - case 207: // expr_identifier_nosize: "identifier" -#line 801 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3220 "parser.cpp" + case 208: // expr_identifier_neg: "-" "identifier" +#line 803 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, ast::expr(std::make_unique(yylhs.location, "0")), ast::expr(std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()))); } +#line 3231 "parser.cpp" break; - case 208: // expr_identifier: "identifier" -#line 806 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3226 "parser.cpp" - break; - - case 209: // expr_identifier: "size" + case 209: // expr_identifier_nosize: "identifier" #line 808 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3232 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3237 "parser.cpp" break; - case 210: // expr_path: "identifier" + case 210: // expr_identifier: "identifier" #line 813 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3238 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3243 "parser.cpp" break; - case 211: // expr_path: "path" + case 211: // expr_identifier: "size" #line 815 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3244 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } +#line 3249 "parser.cpp" break; - case 212: // expr_istring: "localized string" + case 212: // expr_path: "identifier" #line 820 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3255 "parser.cpp" + break; + + case 213: // expr_path: "path" +#line 822 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3261 "parser.cpp" + break; + + case 214: // expr_istring: "localized string" +#line 827 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3250 "parser.cpp" +#line 3267 "parser.cpp" break; - case 213: // expr_string: "string literal" -#line 825 "parser.ypp" + case 215: // expr_string: "string literal" +#line 832 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3256 "parser.cpp" +#line 3273 "parser.cpp" break; - case 214: // expr_vector: "(" expr "," expr "," expr ")" -#line 830 "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 3262 "parser.cpp" - break; - - case 215: // expr_float: "-" "float" -#line 835 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3268 "parser.cpp" - break; - - case 216: // expr_float: "float" + case 216: // expr_vector: "(" expr "," expr "," expr ")" #line 837 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3274 "parser.cpp" + { 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 3279 "parser.cpp" break; - case 217: // expr_integer: "-" "integer" + case 217: // expr_float: "-" "float" #line 842 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3280 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3285 "parser.cpp" break; - case 218: // expr_integer: "integer" + case 218: // expr_float: "float" #line 844 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3286 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3291 "parser.cpp" break; - case 219: // expr_false: "false" + case 219: // expr_integer: "-" "integer" #line 849 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3297 "parser.cpp" + break; + + case 220: // expr_integer: "integer" +#line 851 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3303 "parser.cpp" + break; + + case 221: // expr_false: "false" +#line 856 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3292 "parser.cpp" +#line 3309 "parser.cpp" break; - case 220: // expr_true: "true" -#line 854 "parser.ypp" + case 222: // expr_true: "true" +#line 861 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3298 "parser.cpp" +#line 3315 "parser.cpp" break; -#line 3302 "parser.cpp" +#line 3319 "parser.cpp" default: break; @@ -3513,9 +3530,9 @@ namespace xsk { namespace gsc { namespace s2 { "expr_size", "expr_paren", "expr_object", "expr_thisthread", "expr_empty_array", "expr_undefined", "expr_game", "expr_self", "expr_anim", "expr_level", "expr_animation", "expr_animtree", - "expr_identifier_nosize", "expr_identifier", "expr_path", "expr_istring", - "expr_string", "expr_vector", "expr_float", "expr_integer", "expr_false", - "expr_true", YY_NULLPTR + "expr_identifier_neg", "expr_identifier_nosize", "expr_identifier", + "expr_path", "expr_istring", "expr_string", "expr_vector", "expr_float", + "expr_integer", "expr_false", "expr_true", YY_NULLPTR }; return yy_sname[yysymbol]; } @@ -3786,454 +3803,461 @@ namespace xsk { namespace gsc { namespace s2 { const short parser::yypact_ninf_ = -271; - const short parser::yytable_ninf_ = -211; + const short parser::yytable_ninf_ = -213; const short parser::yypact_[] = { - 9, -271, -271, -48, -48, -34, -271, -271, 29, 9, - -271, -271, -271, -271, -271, -271, -44, -271, -271, -30, - -9, -85, -271, -271, -271, -271, -20, 684, -271, -271, - -271, -6, 21, -271, -271, -28, 39, -271, 15, -271, - -271, -271, -271, -271, -271, -271, 684, 1024, -20, 684, - 684, -38, 2, 43, -271, -271, -271, 1959, -271, -271, - -271, -271, -271, 42, 72, -271, -271, -271, -271, 86, - 186, -271, -271, 427, -271, -271, -271, 490, 615, 712, - 876, -271, -271, 25, 50, -271, -271, -271, -271, -271, - -271, -271, 44, 62, -20, 64, 82, 78, 68, 92, - 96, 103, 1284, 1024, -271, 2042, 118, 132, -271, -271, - -271, -271, -271, -271, -271, 684, 684, 684, 684, 684, - 684, 684, 684, 684, 684, 684, 684, 684, 684, 684, - 684, 684, 684, 684, 1150, -2, -271, -271, 141, 147, - 684, -20, -271, 792, -271, -271, 684, 684, -20, 684, - 684, -20, 684, -271, 684, 1728, 684, -271, 1924, 315, - 315, 2073, 2083, 1078, 1078, 165, 165, 165, 165, 2114, - 2155, 2124, -4, -4, -271, -271, -271, 1768, -271, -271, - -271, -20, 46, -271, 158, 921, 684, 149, -37, 162, - 1274, 163, 166, 167, 168, 12, 164, 172, 173, 1087, - 175, 176, 178, -271, 191, -10, -10, -271, -271, 844, + 2, -271, -271, -32, -32, -30, -271, -271, 20, 2, + -271, -271, -271, -271, -271, -271, -19, -271, -271, -21, + -8, -69, -271, -271, -271, -271, -20, 1097, -271, -271, + -271, 11, -35, -271, -271, -22, 6, -271, 1, -271, + -271, -271, -271, -271, -271, -271, 1097, 642, -20, 1097, + 1097, 59, -2, 17, -271, -271, -271, 2008, -271, -271, + -271, -271, -271, 115, 353, -271, -271, -271, -271, 521, + 552, -271, -271, 581, -271, -271, -271, 750, 886, 963, + 1061, -271, -271, -271, 491, 19, -271, -271, -271, -271, + -271, -271, -271, 44, 27, -20, 65, 74, 78, 73, + 76, 87, 103, 1294, 642, -271, 2091, 105, 107, -271, + -271, -271, -271, -271, -271, -271, -271, 1097, 1097, 1097, + 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, + 1097, 1097, 1097, 1097, 1097, 1097, 1160, -1, -271, -271, + 117, 110, 1097, -20, -271, 802, -271, -271, 1097, 1097, + -20, 1097, 1097, -20, 1097, -271, 1097, 1738, 1097, -271, + 1973, 141, 141, 2122, 2132, 2214, 2214, 136, 136, 136, + 136, 2163, 2204, 2173, -56, -56, -271, -271, -271, 1778, + -271, -271, -271, -20, 3, -271, 120, 931, 1097, 111, + -33, 126, 1284, 127, 130, 132, 133, 21, 125, 128, + 129, 1034, 131, 137, 143, -271, 142, 706, 706, -271, + -271, 854, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - -271, -271, -271, -271, -271, -271, 184, 187, 189, 192, - 200, -271, -271, 1197, -271, -271, -271, -271, 141, 1808, - 77, 201, 1848, 94, 215, 1888, 1019, 181, 2042, 684, - -271, 158, -271, 684, -271, -271, 998, 1994, -271, 199, - -271, 684, 241, 684, 11, -20, 684, 169, 208, 217, - -271, -271, -271, -271, 2029, -271, 684, 684, 684, -271, - -271, 953, 953, -271, -271, -271, -271, -271, -271, -271, - 224, 227, 228, 230, 188, -271, -271, 684, 684, 684, - 684, 684, 684, 684, 684, 684, 684, 684, 232, -271, - 684, 233, -271, 684, 237, 684, 243, 2042, 100, -271, - -271, -271, 234, 1450, 245, 1484, 240, -271, -271, -271, - 550, -14, 1518, -271, -271, -271, 104, 107, 1728, 684, - 684, 684, 684, 2042, 2042, 2042, 2042, 2042, 2042, 2042, - 2042, 2042, 2042, 2042, 251, 110, 252, 113, 275, 1552, - 684, -271, -271, 1274, 684, 1274, 684, 684, -20, 62, - 268, 269, 1586, 1328, 1372, 1416, 684, -271, 684, -271, - 684, -271, 124, 307, 1620, -271, 2042, 271, 1654, 305, - -271, -271, -271, 276, 281, 684, 283, 684, 286, 684, - 143, 146, 150, -271, 1274, 289, 11, 1274, 684, -271, - -271, 288, -271, 299, -271, 300, -271, -271, -271, -271, - -271, 301, -271, 1688, 294, 296, 298, 1274, 1274, -271, - -271, -271, -271, -271 + -271, -271, -271, -271, -271, -271, -271, -271, 144, 147, + 148, 154, 155, -271, -271, 1207, -271, -271, -271, -271, + 117, 1818, 14, 153, 1858, 40, 167, 1898, 1937, 164, + 2091, 1097, -271, 120, -271, 1097, -271, -271, 1008, 2043, + -271, 135, -271, 1097, 212, 1097, 68, -20, 1097, 139, + 181, 182, -271, -271, -271, -271, 2078, -271, 1097, 1097, + 1097, -271, -271, 1121, 1121, -271, -271, -271, -271, -271, + -271, -271, 192, 195, 196, 201, 156, -271, -271, 1097, + 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, + 198, -271, 1097, 199, -271, 1097, 202, 1097, 206, 2091, + 41, -271, -271, -271, 204, 1460, 208, 1494, 211, -271, + -271, -271, 4, -6, 1528, -271, -271, -271, 52, 54, + 1738, 1097, 1097, 1097, 1097, 2091, 2091, 2091, 2091, 2091, + 2091, 2091, 2091, 2091, 2091, 2091, 210, 69, 218, 72, + 226, 1562, 1097, -271, -271, 1284, 1097, 1284, 1097, 1097, + -20, 27, 224, 225, 1596, 1338, 1382, 1426, 1097, -271, + 1097, -271, 1097, -271, 82, 238, 1630, -271, 2091, 228, + 1664, 250, -271, -271, -271, 229, 230, 1097, 233, 1097, + 234, 1097, 83, 84, 93, -271, 1284, 235, 68, 1284, + 1097, -271, -271, 245, -271, 246, -271, 252, -271, -271, + -271, -271, -271, 253, -271, 1698, 247, 249, 251, 1284, + 1284, -271, -271, -271, -271, -271 }; const unsigned char parser::yydefact_[] = { - 3, 12, 13, 0, 0, 0, 209, 208, 0, 2, - 7, 8, 9, 14, 15, 16, 0, 211, 210, 0, - 0, 0, 1, 4, 5, 6, 178, 0, 10, 11, - 213, 0, 0, 177, 206, 0, 0, 198, 0, 220, - 219, 200, 201, 202, 203, 204, 0, 180, 0, 0, - 0, 0, 0, 208, 212, 216, 218, 0, 93, 94, - 95, 132, 133, 134, 135, 161, 162, 136, 137, 138, + 3, 12, 13, 0, 0, 0, 211, 210, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 213, 212, 0, + 0, 0, 1, 4, 5, 6, 179, 0, 10, 11, + 215, 0, 0, 178, 207, 0, 0, 199, 0, 222, + 221, 201, 202, 203, 204, 205, 0, 181, 0, 0, + 0, 0, 0, 210, 214, 218, 220, 0, 93, 94, + 95, 132, 133, 134, 135, 162, 163, 136, 137, 138, 139, 140, 141, 0, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 157, 158, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 180, 199, 182, 0, 179, 183, 160, - 159, 215, 217, 205, 18, 0, 0, 0, 0, 0, + 148, 149, 150, 151, 152, 0, 153, 154, 155, 156, + 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 181, 200, 183, 0, 180, 184, + 161, 160, 208, 217, 219, 206, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 163, 164, 0, 0, - 180, 0, 17, 0, 19, 176, 0, 180, 0, 0, - 180, 0, 0, 188, 0, 182, 0, 175, 0, 125, - 126, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 127, 128, 129, 130, 131, 0, 187, 207, - 186, 0, 0, 179, 184, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, + 0, 0, 181, 0, 17, 0, 19, 177, 0, 181, + 0, 0, 181, 0, 0, 189, 0, 183, 0, 176, + 0, 125, 126, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 127, 128, 129, 130, 131, 0, + 188, 209, 187, 0, 0, 180, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 54, 0, 0, 0, 45, 50, 0, - 46, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 0, 0, 0, 189, - 190, 191, 192, 0, 193, 194, 195, 196, 197, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, - 185, 0, 165, 180, 52, 48, 0, 0, 72, 0, - 73, 0, 0, 0, 58, 0, 0, 0, 0, 0, - 85, 86, 87, 89, 0, 90, 180, 180, 0, 189, - 190, 109, 111, 53, 49, 61, 62, 63, 59, 60, - 0, 0, 0, 0, 0, 110, 112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, - 180, 0, 169, 180, 0, 0, 0, 113, 0, 51, - 47, 67, 0, 0, 0, 0, 0, 55, 56, 57, - 0, 0, 0, 84, 83, 88, 0, 0, 0, 0, - 0, 0, 0, 98, 104, 105, 106, 107, 108, 99, - 100, 101, 103, 102, 0, 0, 0, 0, 0, 0, - 180, 166, 74, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 180, 168, 180, 170, - 180, 214, 0, 75, 0, 77, 96, 0, 0, 0, - 82, 91, 92, 0, 0, 180, 0, 180, 0, 180, - 0, 0, 0, 171, 0, 0, 58, 0, 0, 64, - 66, 179, 69, 179, 71, 179, 172, 173, 174, 76, - 78, 0, 80, 0, 0, 0, 0, 0, 0, 65, - 68, 70, 79, 81 + 0, 0, 0, 0, 0, 54, 0, 0, 0, 45, + 50, 0, 46, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 0, 0, + 0, 190, 191, 192, 193, 0, 194, 195, 196, 197, + 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 182, 0, 186, 0, 166, 181, 52, 48, 0, 0, + 72, 0, 73, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 85, 86, 87, 89, 0, 90, 181, 181, + 0, 190, 191, 109, 111, 53, 49, 61, 62, 63, + 59, 60, 0, 0, 0, 0, 0, 110, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 168, 181, 0, 170, 181, 0, 0, 0, 113, + 0, 51, 47, 67, 0, 0, 0, 0, 0, 55, + 56, 57, 0, 0, 0, 84, 83, 88, 0, 0, + 0, 0, 0, 0, 0, 98, 104, 105, 106, 107, + 108, 99, 100, 101, 103, 102, 0, 0, 0, 0, + 0, 0, 181, 167, 74, 0, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 181, 169, + 181, 171, 181, 216, 0, 75, 0, 77, 96, 0, + 0, 0, 82, 91, 92, 0, 0, 181, 0, 181, + 0, 181, 0, 0, 0, 172, 0, 0, 58, 0, + 0, 64, 66, 180, 69, 180, 71, 180, 173, 174, + 175, 76, 78, 0, 80, 0, 0, 0, 0, 0, + 0, 65, 68, 70, 79, 81 }; const short parser::yypgoto_[] = { - -271, -271, -271, 356, 357, 359, -271, -271, -271, -173, - 160, -271, -271, -271, -91, -45, -271, -271, -271, -271, + -271, -271, -271, 279, 298, 299, -271, -271, -271, -155, + 101, -271, -271, -271, -92, -104, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - 190, -271, -270, -267, -261, -271, -271, -271, -271, -271, - -88, -18, -70, -68, -271, -271, 14, -46, -271, -11, - 182, -271, -271, 270, -271, -271, -271, 279, 304, 329, - 375, -271, -271, -271, 0, 7, -271, -15, -271, -271, - 179, -271, -271 + 200, -271, -270, -269, -264, -271, -271, -271, -271, -271, + -137, -11, -70, -68, -271, -271, -121, -46, -271, 165, + 223, -271, -271, 257, -271, -271, -271, 290, 297, 349, + 383, -271, -271, -271, -271, 0, 7, -271, -17, -271, + -271, 118, -271, -271 }; const short parser::yydefgoto_[] = { - 0, 8, 9, 10, 11, 12, 13, 14, 15, 207, - 208, 266, 209, 210, 211, 336, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 105, 397, 236, 237, 238, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 32, 106, 183, 68, 69, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 209, + 210, 268, 211, 212, 213, 338, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 106, 399, 238, 239, 240, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 32, 107, 185, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 180, 83, 84, 85, 86, 87, 88, - 89, 90, 91 + 80, 81, 82, 83, 182, 84, 85, 86, 87, 88, + 89, 90, 91, 92 }; const short parser::yytable_[] = { - 16, 107, 144, 136, 337, 137, 31, 338, 26, 16, - 19, 20, 265, 339, 30, 269, 377, 272, 21, 6, - 1, 2, 3, 4, 5, 270, 33, 6, 95, 22, - 35, 36, 28, 38, 27, 96, 99, 6, 42, 43, - 44, 45, 97, 100, 378, 178, 204, 92, 108, 17, - 18, 35, 36, 29, 38, 239, 6, 107, 6, 42, - 43, 44, 45, 111, 112, -197, -197, 204, -197, 17, - 53, 101, -197, 138, 93, 205, 206, 140, 7, 94, - 139, -197, -189, -189, -197, -189, 6, 17, 53, -189, - 131, 132, 133, 330, 145, 98, 179, 239, -189, 262, - 113, -189, 239, -210, 156, 277, 142, 7, 17, 53, - 141, 30, -190, -190, 56, -190, 143, 289, 289, -190, - 146, 239, -197, -197, 149, 240, -191, -191, -190, -191, - 319, -190, 241, -191, 147, 156, 17, 53, 148, -189, - -189, 184, -191, 248, 150, -191, 337, 322, 251, 338, - 139, 254, 156, 371, 182, 339, 151, 380, 156, 152, - 381, 250, 156, 387, 253, 156, 389, 240, 156, -190, - -190, 156, 240, 136, 241, 137, 156, 413, 239, 241, - 278, 261, 156, -191, -191, 248, 289, 290, 290, 157, - 248, 240, 139, 140, 241, 241, 426, 139, 241, 427, - 393, 156, 395, 428, 156, 248, 248, 181, 156, 248, - 263, 268, 139, 139, 271, 273, 139, 57, 274, 275, - 276, 136, 136, 137, 137, 280, -192, -192, 286, -192, - 287, 116, 117, -192, 281, 282, 102, 285, 326, 109, - 110, 429, -192, 138, 432, -192, 295, 288, 240, 296, - 139, 297, 332, 320, 298, 241, 290, 129, 130, 131, - 132, 133, 299, 241, 442, 443, 248, 323, 334, 343, - 136, 112, 137, 139, 248, 341, 349, 328, 344, 350, - 351, 139, 352, -192, -192, 239, 179, 239, 400, 364, - 366, 138, 138, 155, 368, 370, 372, 374, 139, 139, - 346, 347, 376, 386, 388, 158, 159, 160, 161, 162, + 16, 108, 146, 138, 31, 139, 339, 340, 241, 16, + 19, 20, 341, 1, 2, 3, 4, 5, 94, 271, + 22, 184, 21, 95, 379, 6, 33, 6, 252, 272, + 30, 255, 267, 26, 96, 97, 100, 274, 133, 134, + 135, 28, 98, 101, 35, 36, 180, 38, 109, 6, + 241, 6, 380, 6, 29, 241, 264, 102, 108, 27, + 136, 158, 99, 306, 93, 17, 18, 321, 307, 308, + 291, 291, 158, 140, 241, 17, 53, -212, 7, 143, + 141, 145, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 324, 373, 147, 115, 181, 158, 158, + 7, 17, 53, 17, 53, 382, 144, 383, 35, 36, + 158, 38, 158, 332, 279, 6, 42, 43, 44, 45, + 30, 148, 389, 56, 206, 391, 149, 158, 152, 151, + 158, 241, 207, 208, 242, 415, 428, 429, 150, 291, + 158, 158, 158, 186, 330, 250, 430, 153, 339, 340, + 253, 158, 141, 256, 341, -190, -190, 112, -190, 154, + 113, 114, -190, 158, 159, 17, 53, 348, 349, 142, + 183, -190, 265, 270, -190, 138, 242, 139, 273, 275, + 280, 242, 276, 263, 277, 278, 282, 250, 334, 288, + 283, 284, 250, 287, 141, 289, 292, 292, 290, 141, + 242, 367, 118, 119, 369, 322, 297, 250, 250, 298, + 299, 250, -190, -190, 141, 141, 300, 301, 141, 325, + 395, 328, 397, 138, 138, 139, 139, 57, 131, 132, + 133, 134, 135, 131, 132, 133, 134, 135, 241, 336, + 241, 114, 345, 346, 351, 140, 103, 352, 353, 110, + 111, 394, 141, 354, 181, 366, 368, 242, 372, 370, + 376, 431, 388, 416, 434, 292, 374, 412, 250, 413, + 390, 414, 138, 378, 139, 141, 250, 343, 392, 241, + 420, 291, 241, 141, 444, 445, 403, 404, 23, 402, + 418, 421, 422, 140, 140, 424, 426, 432, 436, 437, + 141, 141, 241, 241, 157, 438, 439, 24, 25, 441, + 243, 442, 296, 443, 433, 281, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 242, 239, 390, 289, 239, - 401, 402, 414, 416, 365, 418, 249, 367, 419, 252, - 138, 434, 255, 420, 256, 422, 258, 139, 424, 239, - 239, 430, 435, 436, 437, 240, 439, 240, 440, 421, - 441, 423, 241, 425, 241, 23, 24, 242, 25, 294, - 0, 431, 242, 248, 279, 248, 267, 0, 399, 0, - 139, 0, 139, 0, 392, 0, 0, 242, 242, 284, - 0, 242, 0, 0, 0, 0, 240, 0, 290, 240, - 410, 0, 411, 241, 412, 241, 241, 129, 130, 131, - 132, 133, 0, 243, 248, 0, 248, 248, 0, 240, - 240, 139, 244, 139, 139, 0, 241, 241, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 248, 248, 0, - 0, 0, 0, 0, 139, 139, 0, 245, 242, 327, - 0, 0, 0, 0, 0, 243, 242, 0, 0, 0, - 243, 333, 0, 335, 244, 0, 342, 35, 36, 244, - 38, 0, 246, 0, 6, 291, 292, 0, 348, 243, - 0, 0, 0, 134, 244, 244, 135, 0, 244, 245, - 0, 0, 0, 0, 245, 0, 0, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 0, 245, - 245, 0, 0, 245, 246, 369, 0, 0, 247, 246, - 0, 0, 0, 0, 17, 53, 0, 0, 0, 0, - -193, -193, 0, -193, 246, 246, 243, -193, 246, 382, - 383, 384, 385, 0, 340, 244, -193, 0, 0, -193, - 0, 0, 0, 244, 0, 242, 0, 242, 0, 0, - 247, 0, 0, 0, 394, 247, 396, 398, 0, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 247, 247, 0, 0, 247, 0, 0, -193, -193, 0, - 35, 36, 0, 38, 0, 246, 242, 6, 242, 242, - 0, 0, 0, 246, 0, 0, 134, 0, 433, 304, - 0, 0, 0, 0, 305, 306, 0, 0, 0, 242, - 242, 0, 0, 0, 0, 0, 0, 0, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, - 0, 247, 0, 243, 0, 243, 0, 17, 53, 247, - 0, 0, 244, 0, 244, -194, -194, 0, -194, 0, - 0, 0, -194, 0, 0, 0, 0, 0, 0, 0, - 0, -194, 0, 0, -194, 0, 0, 245, 0, 245, - 0, 0, 0, 0, 243, 0, 340, 243, 0, 0, - 0, 0, 0, 244, 0, 244, 244, 0, 0, 0, - 34, 0, 246, 0, 246, 0, 0, 243, 243, 0, - 0, 0, -194, -194, 0, 0, 244, 244, 245, 0, - 245, 245, 0, 0, 35, 36, 37, 38, 39, 40, - 41, 6, 42, 43, 44, 45, 46, 0, 0, 0, - 47, 245, 245, 246, 48, 246, 246, 0, 247, 0, - 247, 0, -195, -195, 0, -195, 0, 0, 0, -195, - 49, 50, 0, 0, 0, 0, 246, 246, -195, 0, - 0, -195, 0, 0, 0, 0, 0, 51, 0, 0, - 52, 17, 53, 30, 54, 55, 56, 0, 0, 247, - 0, 247, 247, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 0, 0, 0, 0, 0, -195, - -195, 186, 247, 247, 187, 188, 189, 0, 190, 191, - 192, 193, 0, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 35, 36, 0, 38, 0, 0, 0, 6, - 42, 43, 44, 45, 0, 0, 143, 203, 204, 0, - 0, 0, 0, 0, 0, 185, 205, 206, 0, 0, - 0, 0, 0, 186, 0, 0, 187, 188, 189, 0, - 190, 191, 192, 193, 0, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 35, 36, 0, 38, 0, 17, - 53, 6, 42, 43, 44, 45, 0, 0, 143, 293, - 204, 0, 0, 0, 0, 0, 0, 0, 205, 206, - 0, 0, 0, 0, 0, 0, -196, -196, 0, -196, - 0, 0, 0, -196, 0, 0, 0, 0, 0, 0, - 0, 0, -196, 264, 0, -196, 0, 0, 0, 0, - 186, 17, 53, 187, 188, 189, 0, 190, 191, 192, - 193, 0, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 35, 36, 0, 38, 0, 0, 0, 6, 42, - 43, 44, 45, -196, -196, 143, 0, 204, 0, 0, - 0, 0, 0, 0, 0, 205, 206, 0, 0, 0, - 0, 0, 0, 35, 36, 0, 38, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 134, - 329, 0, 304, 0, 0, 0, 0, 186, 17, 53, - 187, 188, 189, 0, 190, 191, 192, 193, 0, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 35, 36, + 173, 174, 175, 176, 177, 178, 179, 0, 0, 0, + 0, 0, 140, 0, 0, 0, 0, 0, 251, 141, + 0, 254, 243, 0, 257, 0, 258, 243, 260, 0, + 0, 423, 0, 425, 242, 427, 242, 0, 244, 0, + 0, 0, 243, 243, 0, 250, 243, 250, 0, 0, + 401, 0, 141, 0, 141, 0, 0, 0, 269, 0, + 0, 0, 0, -191, -191, 0, -191, 0, 0, 0, + -191, 286, 245, 0, 0, 242, 0, 292, 242, -191, + 244, 0, -191, 0, 0, 244, 250, 0, 250, 250, + 0, 0, 0, 141, 0, 141, 141, 0, 242, 242, + 244, 244, 0, 243, 244, 246, 0, 0, 0, 250, + 250, 243, 247, 0, 245, 0, 141, 141, 0, 245, + -191, -191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 329, 0, 0, 293, 294, 0, 0, 245, 0, + 0, 0, 0, 335, 0, 337, 0, 246, 344, 0, + 0, 0, 246, 0, 247, 0, 0, 0, 0, 247, + 350, 244, 0, 0, 248, 0, 0, 246, 246, 244, + 0, 246, 0, 0, 247, 247, 0, 0, 247, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 0, 0, 0, 0, 0, 245, 0, 371, 249, 0, + 0, -198, -198, 342, -198, 0, 248, 0, -198, 0, + 243, 248, 243, 142, 0, 0, 0, -198, 0, 0, + -198, 384, 385, 386, 387, 0, 248, 248, 246, 0, + 248, -192, -192, 0, -192, 247, 246, 0, -192, 0, + 249, 0, 0, 247, 0, 249, 396, -192, 398, 400, + -192, 243, 0, 243, 243, 0, 0, 0, -198, -198, + 249, 249, -193, -193, 249, -193, 0, 0, 244, -193, + 244, 0, 0, 0, 243, 243, 0, 0, -193, 0, + 0, -193, 0, 0, 0, 0, 0, 248, -192, -192, + 435, 35, 36, 0, 38, 248, 0, 0, 6, 0, + 0, 0, 245, 0, 245, 0, 0, 136, 0, 244, + 137, 244, 244, 0, 0, 0, 0, 0, 0, -193, + -193, 249, 0, 0, 0, 0, 0, 0, 34, 249, + 0, 0, 244, 244, 0, 246, 0, 246, 0, 0, + 0, 0, 247, 245, 247, 342, 245, 0, 17, 53, + 0, 0, 35, 36, 37, 38, 39, 40, 41, 6, + 42, 43, 44, 45, 46, 0, 245, 245, 104, 105, + 0, 0, 48, 0, 0, 0, 246, 0, 246, 246, + 0, 0, 0, 247, 0, 247, 247, 0, 49, 50, + 0, 0, 0, 0, 248, 0, 248, 0, 0, 246, + 246, 0, 0, 0, 0, 51, 247, 247, 52, 17, + 53, 30, 54, 55, 56, 0, 35, 36, 0, 38, + 0, 0, 0, 6, 42, 43, 44, 45, 249, 0, + 249, 0, 206, 0, 0, 248, 0, 248, 248, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, + -194, -194, 0, -194, 0, 0, 0, -194, 0, 249, + 0, 249, 249, 17, 53, 0, -194, 0, 0, -194, + 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, + 0, 188, 249, 249, 189, 190, 191, 0, 192, 193, + 194, 195, 0, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 35, 36, 0, 38, 0, -194, -194, 6, + 42, 43, 44, 45, 0, 0, 145, 205, 206, 0, + 0, 0, 0, 0, 0, 187, 207, 208, 0, 0, + 0, 0, 0, 188, 0, 0, 189, 190, 191, 0, + 192, 193, 194, 195, 0, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 35, 36, 0, 38, 0, 17, + 53, 6, 42, 43, 44, 45, 0, 0, 145, 295, + 206, 0, 0, 0, 0, 0, 0, 0, 207, 208, + 0, 0, 0, 0, 0, 0, -195, -195, 0, -195, + 0, 0, 0, -195, 0, 0, 0, 0, 0, 0, + 0, 0, -195, 266, 0, -195, 0, 0, 0, 0, + 188, 17, 53, 189, 190, 191, 0, 192, 193, 194, + 195, 0, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 35, 36, 0, 38, 0, 0, 0, 6, 42, + 43, 44, 45, -195, -195, 145, 0, 206, 0, 0, + 0, 0, 0, 0, 0, 207, 208, 0, 0, 0, + 0, 0, 0, -196, -196, 0, -196, 0, 0, 0, + -196, 0, 0, 0, 0, 0, 0, 0, 0, -196, + 331, 0, -196, 0, 0, 0, 0, 188, 17, 53, + 189, 190, 191, 0, 192, 193, 194, 195, 0, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 35, 36, 34, 38, 0, 0, 0, 6, 42, 43, 44, 45, - 17, 53, 143, 0, 204, 0, 0, 0, 0, 0, - 0, 0, 205, 206, 35, 36, 37, 38, 39, 40, - 41, 6, 42, 43, 44, 45, 46, 325, 0, 0, - 103, 104, 115, 0, 48, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 17, 53, 0, 0, 0, - 49, 50, 0, 34, 0, 0, 0, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 0, 51, 0, 0, + -196, -196, 145, 0, 206, 0, 0, 0, 0, 0, + 0, 0, 207, 208, 35, 36, 37, 38, 39, 40, + 41, 6, 42, 43, 44, 45, 46, 0, 0, 0, + 47, 0, 0, 0, 48, 0, 285, 0, 0, 0, + 0, -197, -197, 0, -197, 17, 53, 0, -197, 0, + 49, 50, 0, 34, 0, 0, 0, -197, 0, 0, + -197, 0, 0, 0, 0, 0, 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, 45, 46, - 0, 0, 0, 47, 116, 117, 0, 48, 0, 283, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 49, 50, 0, 34, 0, 0, 0, - 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 47, 0, 0, 0, 48, -197, -197, + 0, 35, 36, 0, 38, 0, 0, 0, 6, 0, + 0, 0, 0, 49, 50, 0, 34, 136, 0, 0, + 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 52, 17, 53, 30, 54, 55, 56, 35, 36, 37, 38, 39, 40, 41, 6, 42, 43, - 44, 45, 46, 0, 0, 0, 103, 0, 0, 0, - 48, 0, 0, 0, 300, 301, 0, 302, 303, 0, + 44, 45, 46, 0, 0, 0, 104, 0, 17, 53, + 48, 0, 0, 0, 302, 303, 0, 304, 305, 0, 0, 0, 0, 0, 0, 0, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 36, 0, 38, 0, 0, 51, 6, 0, 52, 17, 53, 30, - 54, 55, 56, 134, 0, 0, 304, 0, 0, 0, - 0, 305, 306, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 0, 0, 0, 0, - 0, 0, 0, 186, 17, 53, 187, 188, 189, 0, - 190, 191, 192, 193, 0, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 35, 36, 0, 38, 0, 0, - 0, 6, 42, 43, 44, 45, 0, 0, 143, 0, - 204, 0, 0, 0, 0, 0, 0, 153, 205, 206, - 0, 0, 154, 0, 0, 0, 0, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 17, 53, 126, 127, 128, 129, 130, 131, 132, - 133, 404, 0, 0, 0, 0, 405, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 406, 0, 0, 0, 0, - 407, 0, 0, 0, 0, 115, 0, 0, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 126, 127, 128, 129, 130, 131, 132, 133, 408, - 0, 0, 0, 0, 409, 0, 0, 0, 0, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 373, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 115, 0, 0, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 375, 0, 126, - 127, 128, 129, 130, 131, 132, 133, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 379, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 391, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 115, 0, 0, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, - 0, 126, 127, 128, 129, 130, 131, 132, 133, 115, - 0, 0, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 415, 0, 126, 127, 128, 129, 130, - 131, 132, 133, 115, 0, 0, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 417, 0, 126, - 127, 128, 129, 130, 131, 132, 133, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 438, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 257, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 260, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 318, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 321, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 324, 0, 0, 0, 0, - 0, 115, 0, 0, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 129, 130, 131, 132, 133, 259, 0, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 114, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 126, 127, - 128, 129, 130, 131, 132, 133, 331, 115, 0, 0, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126, 127, 128, 129, 130, 131, 132, - 133, 345, 115, 0, 0, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 115, 0, 0, 116, 117, + 54, 55, 56, 136, 0, 0, 306, 0, 0, 0, + 0, 307, 308, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, + 0, 0, 0, 188, 17, 53, 189, 190, 191, 0, + 192, 193, 194, 195, 0, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 35, 36, 0, 38, 0, 0, + 0, 6, 42, 43, 44, 45, 0, 0, 145, 0, + 206, 0, 0, 0, 0, 0, 0, 155, 207, 208, + 0, 0, 156, 0, 0, 0, 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, - 0, 126, 127, 128, 129, 130, 131, 132, 133, 116, - 117, 0, 119, 120, 121, 122, 123, 124, 125, 116, - 117, 0, 0, 120, 121, 122, 123, 124, 125, 0, - 0, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 0, 0, 126, 127, 128, 129, 130, 131, 132, 133, - 116, 117, 0, 0, 120, 121, 122, 123, 124, 125, - 116, 117, 0, 0, 120, 121, 122, 123, 124, 125, - 0, 0, 0, 0, 127, 128, 129, 130, 131, 132, - 133, 0, 0, 0, 127, 0, 129, 130, 131, 132, - 133, 116, 117, 0, 0, 120, 121, 122, 123, 124, - 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, - 132, 133 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 53, 128, 129, 130, 131, 132, 133, 134, + 135, 406, 0, 0, 0, 0, 407, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 408, 0, 0, 0, 0, + 409, 0, 0, 0, 0, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 410, + 0, 0, 0, 0, 411, 0, 0, 0, 0, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 375, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 377, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 381, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 393, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 117, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 117, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 117, 0, 0, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 419, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 117, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 440, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 259, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 262, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 320, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 323, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 326, 0, 0, 0, 0, + 0, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 327, 0, 0, 0, 0, + 117, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 261, 0, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 116, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 333, 117, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 347, 117, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 117, 0, 0, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 0, 0, 0, 0, 0, + 128, 129, 130, 131, 132, 133, 134, 135, 118, 119, + 0, 121, 122, 123, 124, 125, 126, 127, 118, 119, + 0, 0, 122, 123, 124, 125, 126, 127, 0, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 118, + 119, 0, 0, 122, 123, 124, 125, 126, 127, 0, + 0, 0, 0, 129, 130, 131, 132, 133, 134, 135, + 0, 0, 0, 129, 0, 131, 132, 133, 134, 135, + 118, 119, 0, 0, 122, 123, 124, 125, 126, 127, + 118, 119, 0, 0, 0, 0, 124, 125, 126, 127, + 0, 0, 0, 0, 0, 0, 131, 132, 133, 134, + 135, 0, 0, 0, 0, 0, 131, 132, 133, 134, + 135 }; const short parser::yycheck_[] = { - 0, 47, 93, 73, 274, 73, 21, 274, 52, 9, - 3, 4, 185, 274, 99, 52, 30, 190, 52, 47, - 11, 12, 13, 14, 15, 62, 26, 47, 56, 0, - 40, 41, 62, 43, 78, 35, 36, 47, 48, 49, - 50, 51, 35, 36, 58, 47, 56, 53, 48, 97, - 98, 40, 41, 62, 43, 143, 47, 103, 47, 48, - 49, 50, 51, 101, 102, 40, 41, 56, 43, 97, - 98, 56, 47, 73, 53, 64, 65, 52, 98, 58, - 73, 56, 40, 41, 59, 43, 47, 97, 98, 47, - 94, 95, 96, 266, 94, 56, 98, 185, 56, 53, - 98, 59, 190, 60, 58, 93, 62, 98, 97, 98, - 60, 99, 40, 41, 102, 43, 54, 205, 206, 47, - 56, 209, 97, 98, 56, 143, 40, 41, 56, 43, - 53, 59, 143, 47, 52, 58, 97, 98, 60, 97, - 98, 141, 56, 143, 52, 59, 416, 53, 148, 416, - 143, 151, 58, 53, 140, 416, 60, 53, 58, 56, - 53, 147, 58, 53, 150, 58, 53, 185, 58, 97, - 98, 58, 190, 243, 185, 243, 58, 53, 266, 190, - 195, 181, 58, 97, 98, 185, 274, 205, 206, 57, - 190, 209, 185, 52, 205, 206, 53, 190, 209, 53, - 373, 58, 375, 53, 58, 205, 206, 60, 58, 209, - 52, 62, 205, 206, 52, 52, 209, 27, 52, 52, - 52, 291, 292, 291, 292, 61, 40, 41, 52, 43, - 52, 66, 67, 47, 62, 62, 46, 62, 57, 49, - 50, 414, 56, 243, 417, 59, 62, 56, 266, 62, - 243, 62, 53, 52, 62, 266, 274, 92, 93, 94, - 95, 96, 62, 274, 437, 438, 266, 52, 27, 61, - 340, 102, 340, 266, 274, 275, 52, 263, 61, 52, - 52, 274, 52, 97, 98, 373, 98, 375, 379, 57, - 57, 291, 292, 103, 57, 52, 62, 52, 291, 292, - 286, 287, 62, 52, 52, 115, 116, 117, 118, 119, + 0, 47, 94, 73, 21, 73, 276, 276, 145, 9, + 3, 4, 276, 11, 12, 13, 14, 15, 53, 52, + 0, 142, 52, 58, 30, 47, 26, 47, 149, 62, + 99, 152, 187, 52, 56, 35, 36, 192, 94, 95, + 96, 62, 35, 36, 40, 41, 47, 43, 48, 47, + 187, 47, 58, 47, 62, 192, 53, 56, 104, 78, + 56, 58, 56, 59, 53, 97, 98, 53, 64, 65, + 207, 208, 58, 73, 211, 97, 98, 60, 98, 60, + 73, 54, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 53, 53, 95, 98, 98, 58, 58, + 98, 97, 98, 97, 98, 53, 62, 53, 40, 41, + 58, 43, 58, 268, 93, 47, 48, 49, 50, 51, + 99, 56, 53, 102, 56, 53, 52, 58, 52, 56, + 58, 268, 64, 65, 145, 53, 53, 53, 60, 276, + 58, 58, 58, 143, 265, 145, 53, 60, 418, 418, + 150, 58, 145, 153, 418, 40, 41, 98, 43, 56, + 101, 102, 47, 58, 57, 97, 98, 288, 289, 52, + 60, 56, 52, 62, 59, 245, 187, 245, 52, 52, + 197, 192, 52, 183, 52, 52, 61, 187, 53, 52, + 62, 62, 192, 62, 187, 52, 207, 208, 56, 192, + 211, 322, 66, 67, 325, 52, 62, 207, 208, 62, + 62, 211, 97, 98, 207, 208, 62, 62, 211, 52, + 375, 57, 377, 293, 294, 293, 294, 27, 92, 93, + 94, 95, 96, 92, 93, 94, 95, 96, 375, 27, + 377, 102, 61, 61, 52, 245, 46, 52, 52, 49, + 50, 372, 245, 52, 98, 57, 57, 268, 52, 57, + 52, 416, 52, 25, 419, 276, 62, 388, 268, 390, + 52, 392, 342, 62, 342, 268, 276, 277, 52, 416, + 30, 418, 419, 276, 439, 440, 62, 62, 9, 381, + 62, 62, 62, 293, 294, 62, 62, 62, 53, 53, + 293, 294, 439, 440, 104, 53, 53, 9, 9, 62, + 145, 62, 211, 62, 418, 197, -1, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 143, 414, 52, 416, 417, - 62, 62, 25, 62, 320, 30, 146, 323, 62, 149, - 340, 53, 152, 62, 154, 62, 156, 340, 62, 437, - 438, 62, 53, 53, 53, 373, 62, 375, 62, 405, - 62, 407, 373, 409, 375, 9, 9, 185, 9, 209, - -1, 416, 190, 373, 195, 375, 186, -1, 378, -1, - 373, -1, 375, -1, 370, -1, -1, 205, 206, 199, - -1, 209, -1, -1, -1, -1, 414, -1, 416, 417, - 386, -1, 388, 414, 390, 416, 417, 92, 93, 94, - 95, 96, -1, 143, 414, -1, 416, 417, -1, 437, - 438, 414, 143, 416, 417, -1, 437, 438, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 437, 438, -1, - -1, -1, -1, -1, 437, 438, -1, 143, 266, 259, - -1, -1, -1, -1, -1, 185, 274, -1, -1, -1, - 190, 271, -1, 273, 185, -1, 276, 40, 41, 190, - 43, -1, 143, -1, 47, 205, 206, -1, 288, 209, - -1, -1, -1, 56, 205, 206, 59, -1, 209, 185, - -1, -1, -1, -1, 190, -1, -1, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, -1, 205, - 206, -1, -1, 209, 185, 325, -1, -1, 143, 190, - -1, -1, -1, -1, 97, 98, -1, -1, -1, -1, - 40, 41, -1, 43, 205, 206, 266, 47, 209, 349, - 350, 351, 352, -1, 274, 266, 56, -1, -1, 59, - -1, -1, -1, 274, -1, 373, -1, 375, -1, -1, - 185, -1, -1, -1, 374, 190, 376, 377, -1, -1, - 266, -1, -1, -1, -1, -1, -1, -1, 274, -1, - 205, 206, -1, -1, 209, -1, -1, 97, 98, -1, - 40, 41, -1, 43, -1, 266, 414, 47, 416, 417, - -1, -1, -1, 274, -1, -1, 56, -1, 418, 59, - -1, -1, -1, -1, 64, 65, -1, -1, -1, 437, - 438, -1, -1, -1, -1, -1, -1, -1, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, - -1, 266, -1, 373, -1, 375, -1, 97, 98, 274, - -1, -1, 373, -1, 375, 40, 41, -1, 43, -1, - -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, 56, -1, -1, 59, -1, -1, 373, -1, 375, - -1, -1, -1, -1, 414, -1, 416, 417, -1, -1, - -1, -1, -1, 414, -1, 416, 417, -1, -1, -1, - 16, -1, 373, -1, 375, -1, -1, 437, 438, -1, - -1, -1, 97, 98, -1, -1, 437, 438, 414, -1, - 416, 417, -1, -1, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, -1, -1, -1, - 56, 437, 438, 414, 60, 416, 417, -1, 373, -1, - 375, -1, 40, 41, -1, 43, -1, -1, -1, 47, - 76, 77, -1, -1, -1, -1, 437, 438, 56, -1, - -1, 59, -1, -1, -1, -1, -1, 93, -1, -1, - 96, 97, 98, 99, 100, 101, 102, -1, -1, 414, - -1, 416, 417, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 11, -1, -1, -1, -1, -1, 97, - 98, 19, 437, 438, 22, 23, 24, -1, 26, 27, + 130, 131, 132, 133, 134, 135, 136, -1, -1, -1, + -1, -1, 342, -1, -1, -1, -1, -1, 148, 342, + -1, 151, 187, -1, 154, -1, 156, 192, 158, -1, + -1, 407, -1, 409, 375, 411, 377, -1, 145, -1, + -1, -1, 207, 208, -1, 375, 211, 377, -1, -1, + 380, -1, 375, -1, 377, -1, -1, -1, 188, -1, + -1, -1, -1, 40, 41, -1, 43, -1, -1, -1, + 47, 201, 145, -1, -1, 416, -1, 418, 419, 56, + 187, -1, 59, -1, -1, 192, 416, -1, 418, 419, + -1, -1, -1, 416, -1, 418, 419, -1, 439, 440, + 207, 208, -1, 268, 211, 145, -1, -1, -1, 439, + 440, 276, 145, -1, 187, -1, 439, 440, -1, 192, + 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 261, -1, -1, 207, 208, -1, -1, 211, -1, + -1, -1, -1, 273, -1, 275, -1, 187, 278, -1, + -1, -1, 192, -1, 187, -1, -1, -1, -1, 192, + 290, 268, -1, -1, 145, -1, -1, 207, 208, 276, + -1, 211, -1, -1, 207, 208, -1, -1, 211, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + -1, -1, -1, -1, -1, 268, -1, 327, 145, -1, + -1, 40, 41, 276, 43, -1, 187, -1, 47, -1, + 375, 192, 377, 52, -1, -1, -1, 56, -1, -1, + 59, 351, 352, 353, 354, -1, 207, 208, 268, -1, + 211, 40, 41, -1, 43, 268, 276, -1, 47, -1, + 187, -1, -1, 276, -1, 192, 376, 56, 378, 379, + 59, 416, -1, 418, 419, -1, -1, -1, 97, 98, + 207, 208, 40, 41, 211, 43, -1, -1, 375, 47, + 377, -1, -1, -1, 439, 440, -1, -1, 56, -1, + -1, 59, -1, -1, -1, -1, -1, 268, 97, 98, + 420, 40, 41, -1, 43, 276, -1, -1, 47, -1, + -1, -1, 375, -1, 377, -1, -1, 56, -1, 416, + 59, 418, 419, -1, -1, -1, -1, -1, -1, 97, + 98, 268, -1, -1, -1, -1, -1, -1, 16, 276, + -1, -1, 439, 440, -1, 375, -1, 377, -1, -1, + -1, -1, 375, 416, 377, 418, 419, -1, 97, 98, + -1, -1, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, -1, 439, 440, 56, 57, + -1, -1, 60, -1, -1, -1, 416, -1, 418, 419, + -1, -1, -1, 416, -1, 418, 419, -1, 76, 77, + -1, -1, -1, -1, 375, -1, 377, -1, -1, 439, + 440, -1, -1, -1, -1, 93, 439, 440, 96, 97, + 98, 99, 100, 101, 102, -1, 40, 41, -1, 43, + -1, -1, -1, 47, 48, 49, 50, 51, 375, -1, + 377, -1, 56, -1, -1, 416, -1, 418, 419, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 439, 440, + 40, 41, -1, 43, -1, -1, -1, 47, -1, 416, + -1, 418, 419, 97, 98, -1, 56, -1, -1, 59, + -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, + -1, 19, 439, 440, 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, -1, 43, -1, -1, -1, 47, + 38, 39, 40, 41, -1, 43, -1, 97, 98, 47, 48, 49, 50, 51, -1, -1, 54, 55, 56, -1, -1, -1, -1, -1, -1, 11, 64, 65, -1, -1, -1, -1, -1, 19, -1, -1, 22, 23, 24, -1, @@ -4257,20 +4281,20 @@ namespace xsk { namespace gsc { namespace s2 { 16, 43, -1, -1, -1, 47, 48, 49, 50, 51, 97, 98, 54, -1, 56, -1, -1, -1, -1, -1, -1, -1, 64, 65, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 58, -1, -1, - 56, 57, 63, -1, 60, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 97, 98, -1, -1, -1, - 76, 77, -1, 16, -1, -1, -1, -1, 89, 90, - 91, 92, 93, 94, 95, 96, -1, 93, -1, -1, + 46, 47, 48, 49, 50, 51, 52, -1, -1, -1, + 56, -1, -1, -1, 60, -1, 62, -1, -1, -1, + -1, 40, 41, -1, 43, 97, 98, -1, 47, -1, + 76, 77, -1, 16, -1, -1, -1, 56, -1, -1, + 59, -1, -1, -1, -1, -1, -1, 93, -1, -1, 96, 97, 98, 99, 100, 101, 102, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - -1, -1, -1, 56, 66, 67, -1, 60, -1, 62, - 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 76, 77, -1, 16, -1, -1, -1, - 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, 56, -1, -1, -1, 60, 97, 98, + -1, 40, 41, -1, 43, -1, -1, -1, 47, -1, + -1, -1, -1, 76, 77, -1, 16, 56, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, 96, 97, 98, 99, 100, 101, 102, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, -1, -1, -1, 56, -1, -1, -1, + 50, 51, 52, -1, -1, -1, 56, -1, 97, 98, 60, -1, -1, -1, 17, 18, -1, 20, 21, -1, -1, -1, -1, -1, -1, -1, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, @@ -4348,84 +4372,89 @@ namespace xsk { namespace gsc { namespace s2 { -1, 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, - 92, 93, 94, 95, 96, 61, -1, 63, -1, -1, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 92, 93, 94, 95, 96, 58, -1, -1, -1, -1, + 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 89, 90, 91, 92, + 93, 94, 95, 96, 61, -1, 63, -1, -1, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 89, 90, 91, 92, 93, 94, 95, - 96, 62, 63, -1, -1, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, - 91, 92, 93, 94, 95, 96, 62, 63, -1, -1, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + 62, 63, -1, -1, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, + 92, 93, 94, 95, 96, 62, 63, -1, -1, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 89, 90, 91, 92, 93, 94, 95, - 96, 62, 63, -1, -1, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 63, -1, -1, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 89, 90, - 91, 92, 93, 94, 95, 96, -1, -1, -1, -1, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + 62, 63, -1, -1, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 63, -1, -1, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 89, 90, 91, + 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, + 89, 90, 91, 92, 93, 94, 95, 96, 66, 67, + -1, 69, 70, 71, 72, 73, 74, 75, 66, 67, + -1, -1, 70, 71, 72, 73, 74, 75, -1, -1, + -1, 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, 66, - 67, -1, 69, 70, 71, 72, 73, 74, 75, 66, + 67, -1, -1, 70, 71, 72, 73, 74, 75, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, -1, - -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, - -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + -1, -1, -1, 90, 91, 92, 93, 94, 95, 96, + -1, -1, -1, 90, -1, 92, 93, 94, 95, 96, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, - 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, - -1, -1, -1, -1, 90, 91, 92, 93, 94, 95, - 96, -1, -1, -1, 90, -1, 92, 93, 94, 95, - 96, 66, 67, -1, -1, 70, 71, 72, 73, 74, - 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 92, 93, 94, - 95, 96 + 66, 67, -1, -1, -1, -1, 72, 73, 74, 75, + -1, -1, -1, -1, -1, -1, 92, 93, 94, 95, + 96, -1, -1, -1, -1, -1, 92, 93, 94, 95, + 96 }; const unsigned char parser::yystos_[] = { 0, 11, 12, 13, 14, 15, 47, 98, 114, 115, - 116, 117, 118, 119, 120, 121, 187, 97, 98, 188, - 188, 52, 0, 116, 117, 118, 52, 78, 62, 62, - 99, 190, 168, 187, 16, 40, 41, 42, 43, 44, + 116, 117, 118, 119, 120, 121, 188, 97, 98, 189, + 189, 52, 0, 116, 117, 118, 52, 78, 62, 62, + 99, 191, 168, 188, 16, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 56, 60, 76, 77, 93, 96, 98, 100, 101, 102, 153, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 53, 53, 58, 56, 187, 188, 56, 187, - 188, 56, 153, 56, 57, 153, 169, 170, 187, 153, - 153, 101, 102, 98, 62, 63, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 89, 90, 91, 92, - 93, 94, 95, 96, 56, 59, 165, 166, 187, 188, - 52, 60, 62, 54, 127, 187, 56, 52, 60, 56, - 52, 60, 56, 53, 58, 153, 58, 57, 153, 153, + 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 53, 53, 58, 56, 188, 189, 56, + 188, 189, 56, 153, 56, 57, 153, 169, 170, 188, + 153, 153, 98, 101, 102, 98, 62, 63, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 89, 90, + 91, 92, 93, 94, 95, 96, 56, 59, 165, 166, + 188, 189, 52, 60, 62, 54, 127, 188, 56, 52, + 60, 56, 52, 60, 56, 53, 58, 153, 58, 57, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 47, 98, - 186, 60, 169, 170, 187, 11, 19, 22, 23, 24, - 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 55, 56, 64, 65, 122, 123, 125, - 126, 127, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 155, 156, 157, 163, - 164, 172, 173, 176, 180, 181, 182, 183, 187, 153, - 169, 187, 153, 169, 187, 153, 153, 57, 153, 61, - 57, 187, 53, 52, 12, 122, 124, 153, 62, 52, - 62, 52, 122, 52, 52, 52, 52, 93, 190, 193, - 61, 62, 62, 62, 153, 62, 52, 52, 56, 163, - 164, 176, 176, 55, 123, 62, 62, 62, 62, 62, - 17, 18, 20, 21, 59, 64, 65, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 57, 53, - 52, 57, 53, 52, 57, 58, 57, 153, 169, 12, - 122, 62, 53, 153, 27, 153, 128, 155, 156, 157, - 176, 187, 153, 61, 61, 62, 169, 169, 153, 52, - 52, 52, 52, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 57, 169, 57, 169, 57, 153, - 52, 53, 62, 53, 52, 53, 62, 30, 58, 53, - 53, 53, 153, 153, 153, 153, 52, 53, 52, 53, - 52, 53, 169, 122, 153, 122, 153, 154, 153, 187, - 127, 62, 62, 53, 53, 58, 53, 58, 53, 58, - 169, 169, 169, 53, 25, 53, 62, 53, 30, 62, - 62, 170, 62, 170, 62, 170, 53, 53, 53, 122, - 62, 128, 122, 153, 53, 53, 53, 53, 53, 62, - 62, 62, 122, 122 + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 47, 98, 187, 60, 169, 170, 188, 11, 19, 22, + 23, 24, 26, 27, 28, 29, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 55, 56, 64, 65, 122, + 123, 125, 126, 127, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 155, 156, + 157, 163, 164, 172, 173, 176, 180, 181, 182, 183, + 188, 153, 169, 188, 153, 169, 188, 153, 153, 57, + 153, 61, 57, 188, 53, 52, 12, 122, 124, 153, + 62, 52, 62, 52, 122, 52, 52, 52, 52, 93, + 191, 194, 61, 62, 62, 62, 153, 62, 52, 52, + 56, 163, 164, 176, 176, 55, 123, 62, 62, 62, + 62, 62, 17, 18, 20, 21, 59, 64, 65, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 57, 53, 52, 57, 53, 52, 57, 58, 57, 153, + 169, 12, 122, 62, 53, 153, 27, 153, 128, 155, + 156, 157, 176, 188, 153, 61, 61, 62, 169, 169, + 153, 52, 52, 52, 52, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 57, 169, 57, 169, + 57, 153, 52, 53, 62, 53, 52, 53, 62, 30, + 58, 53, 53, 53, 153, 153, 153, 153, 52, 53, + 52, 53, 52, 53, 169, 122, 153, 122, 153, 154, + 153, 188, 127, 62, 62, 53, 53, 58, 53, 58, + 53, 58, 169, 169, 169, 53, 25, 53, 62, 53, + 30, 62, 62, 170, 62, 170, 62, 170, 53, 53, + 53, 122, 62, 128, 122, 153, 53, 53, 53, 53, + 53, 62, 62, 62, 122, 122 }; const unsigned char @@ -4446,14 +4475,14 @@ namespace xsk { namespace gsc { namespace s2 { 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 161, - 162, 163, 163, 164, 164, 165, 165, 165, 165, 165, - 165, 166, 166, 166, 166, 167, 168, 168, 168, 169, - 169, 170, 170, 171, 171, 172, 173, 174, 175, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 187, - 188, 188, 189, 190, 191, 192, 192, 193, 193, 194, - 195 + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 161, 162, 163, 163, 164, 164, 165, 165, 165, 165, + 165, 165, 166, 166, 166, 166, 167, 168, 168, 168, + 169, 169, 170, 170, 171, 171, 172, 173, 174, 175, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 188, 189, 189, 190, 191, 192, 193, 193, 194, + 194, 195, 196 }; const signed char @@ -4474,14 +4503,14 @@ namespace xsk { namespace gsc { namespace s2 { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 1, 1, 2, 2, 4, 6, 5, 7, 5, - 7, 8, 9, 9, 9, 3, 3, 1, 0, 1, - 0, 3, 1, 2, 3, 4, 3, 3, 3, 1, - 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, 2, 1, 2, 1, 1, - 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 1, 1, 2, 2, 4, 6, 5, 7, + 5, 7, 8, 9, 9, 9, 3, 3, 1, 0, + 1, 0, 3, 1, 2, 3, 4, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 7, 2, 1, 2, + 1, 1, 1 }; @@ -4491,29 +4520,29 @@ namespace xsk { namespace gsc { namespace s2 { const short parser::yyrline_[] = { - 0, 259, 259, 260, 264, 266, 268, 270, 272, 274, - 279, 283, 288, 289, 290, 291, 292, 296, 301, 306, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 339, 340, 344, 346, 351, - 353, 358, 359, 363, 364, 368, 370, 372, 375, 379, - 381, 386, 388, 390, 395, 400, 402, 407, 412, 414, - 419, 421, 426, 431, 433, 438, 443, 448, 453, 458, - 463, 465, 470, 475, 477, 482, 487, 492, 497, 499, - 504, 509, 514, 519, 520, 521, 525, 526, 530, 532, - 534, 536, 538, 540, 542, 544, 546, 548, 550, 555, - 557, 562, 564, 569, 574, 576, 578, 580, 582, 584, - 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, - 606, 608, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 643, - 648, 653, 654, 657, 658, 662, 664, 666, 668, 670, - 672, 677, 679, 681, 683, 688, 693, 695, 698, 702, - 705, 709, 711, 716, 718, 723, 728, 733, 738, 743, - 744, 745, 746, 747, 748, 749, 750, 751, 755, 760, - 765, 770, 775, 780, 785, 790, 795, 800, 805, 807, - 812, 814, 819, 824, 829, 834, 836, 841, 843, 848, - 853 + 0, 260, 260, 261, 265, 267, 269, 271, 273, 275, + 280, 284, 289, 290, 291, 292, 293, 297, 302, 307, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 340, 341, 345, 347, 352, + 354, 359, 360, 364, 365, 369, 371, 373, 376, 380, + 382, 387, 389, 391, 396, 401, 403, 408, 413, 415, + 420, 422, 427, 432, 434, 439, 444, 449, 454, 459, + 464, 466, 471, 476, 478, 483, 488, 493, 498, 500, + 505, 510, 515, 520, 521, 522, 526, 527, 531, 533, + 535, 537, 539, 541, 543, 545, 547, 549, 551, 556, + 558, 563, 565, 570, 575, 577, 579, 581, 583, 585, + 587, 589, 591, 593, 595, 597, 599, 601, 603, 605, + 607, 609, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 645, 650, 655, 656, 659, 660, 664, 666, 668, 670, + 672, 674, 679, 681, 683, 685, 690, 695, 697, 700, + 704, 707, 711, 713, 718, 720, 725, 730, 735, 740, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 757, + 762, 767, 772, 777, 782, 787, 792, 797, 802, 807, + 812, 814, 819, 821, 826, 831, 836, 841, 843, 848, + 850, 855, 860 }; void @@ -4546,9 +4575,9 @@ namespace xsk { namespace gsc { namespace s2 { #line 13 "parser.ypp" } } } // xsk::gsc::s2 -#line 4550 "parser.cpp" +#line 4579 "parser.cpp" -#line 857 "parser.ypp" +#line 864 "parser.ypp" void xsk::gsc::s2::parser::error(const xsk::gsc::location& loc, const std::string& msg) diff --git a/src/s2/xsk/parser.hpp b/src/s2/xsk/parser.hpp index 32fc4e73..00ef05a2 100644 --- a/src/s2/xsk/parser.hpp +++ b/src/s2/xsk/parser.hpp @@ -447,6 +447,7 @@ namespace xsk { namespace gsc { namespace s2 { // expr_binary // expr_primitive // expr_object + // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -1007,16 +1008,17 @@ namespace xsk { namespace gsc { namespace s2 { S_expr_level = 183, // expr_level S_expr_animation = 184, // expr_animation S_expr_animtree = 185, // expr_animtree - S_expr_identifier_nosize = 186, // expr_identifier_nosize - S_expr_identifier = 187, // expr_identifier - S_expr_path = 188, // expr_path - S_expr_istring = 189, // expr_istring - S_expr_string = 190, // expr_string - S_expr_vector = 191, // expr_vector - S_expr_float = 192, // expr_float - S_expr_integer = 193, // expr_integer - S_expr_false = 194, // expr_false - S_expr_true = 195 // expr_true + S_expr_identifier_neg = 186, // expr_identifier_neg + S_expr_identifier_nosize = 187, // expr_identifier_nosize + S_expr_identifier = 188, // expr_identifier + S_expr_path = 189, // expr_path + S_expr_istring = 190, // expr_istring + S_expr_string = 191, // expr_string + S_expr_vector = 192, // expr_vector + S_expr_float = 193, // expr_float + S_expr_integer = 194, // expr_integer + S_expr_false = 195, // expr_false + S_expr_true = 196 // expr_true }; }; @@ -1083,6 +1085,7 @@ namespace xsk { namespace gsc { namespace s2 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (std::move (that.value)); break; @@ -2355,6 +2358,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.template destroy< ast::expr > (); break; @@ -4813,8 +4817,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 2251, ///< Last index in yytable_. - yynnts_ = 83, ///< Number of nonterminal symbols. + yylast_ = 2310, ///< Last index in yytable_. + yynnts_ = 84, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4871,6 +4875,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (YY_MOVE (that.value)); break; @@ -5189,6 +5194,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (s.value)); break; @@ -5513,7 +5519,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::s2 -#line 5517 "parser.hpp" +#line 5523 "parser.hpp" diff --git a/src/s4/xsk/parser.cpp b/src/s4/xsk/parser.cpp index 12ff50bc..3e802039 100644 --- a/src/s4/xsk/parser.cpp +++ b/src/s4/xsk/parser.cpp @@ -245,6 +245,7 @@ namespace xsk { namespace gsc { namespace s4 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.YY_MOVE_OR_COPY< ast::expr > (YY_MOVE (that.value)); break; @@ -555,6 +556,7 @@ namespace xsk { namespace gsc { namespace s4 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (that.value)); break; @@ -865,6 +867,7 @@ namespace xsk { namespace gsc { namespace s4 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (that.value); break; @@ -1174,6 +1177,7 @@ namespace xsk { namespace gsc { namespace s4 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (that.value); break; @@ -1738,6 +1742,7 @@ namespace xsk { namespace gsc { namespace s4 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg yylhs.value.emplace< ast::expr > (); break; @@ -2024,1345 +2029,1357 @@ namespace xsk { namespace gsc { namespace s4 { switch (yyn) { case 2: // root: program -#line 263 "parser.ypp" +#line 264 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 2030 "parser.cpp" +#line 2035 "parser.cpp" break; case 3: // root: %empty -#line 264 "parser.ypp" +#line 265 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 2036 "parser.cpp" +#line 2041 "parser.cpp" break; case 4: // program: program inline -#line 269 "parser.ypp" +#line 270 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2042 "parser.cpp" +#line 2047 "parser.cpp" break; case 5: // program: program include -#line 271 "parser.ypp" +#line 272 "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 2048 "parser.cpp" +#line 2053 "parser.cpp" break; case 6: // program: program declaration -#line 273 "parser.ypp" +#line 274 "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 2054 "parser.cpp" +#line 2059 "parser.cpp" break; case 7: // program: inline -#line 275 "parser.ypp" +#line 276 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2060 "parser.cpp" +#line 2065 "parser.cpp" break; case 8: // program: include -#line 277 "parser.ypp" +#line 278 "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 2066 "parser.cpp" +#line 2071 "parser.cpp" break; case 9: // program: declaration -#line 279 "parser.ypp" +#line 280 "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 2072 "parser.cpp" +#line 2077 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" -#line 283 "parser.ypp" +#line 284 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2078 "parser.cpp" +#line 2083 "parser.cpp" break; case 11: // include: "#include" expr_path ";" -#line 288 "parser.ypp" +#line 289 "parser.ypp" { yylhs.value.as < ast::include::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_path::ptr > ())); } -#line 2084 "parser.cpp" +#line 2089 "parser.cpp" break; case 12: // declaration: "/#" -#line 292 "parser.ypp" +#line 293 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2090 "parser.cpp" +#line 2095 "parser.cpp" break; case 13: // declaration: "#/" -#line 293 "parser.ypp" +#line 294 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2096 "parser.cpp" +#line 2101 "parser.cpp" break; case 14: // declaration: decl_usingtree -#line 294 "parser.ypp" +#line 295 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2102 "parser.cpp" +#line 2107 "parser.cpp" break; case 15: // declaration: decl_constant -#line 295 "parser.ypp" +#line 296 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2108 "parser.cpp" +#line 2113 "parser.cpp" break; case 16: // declaration: decl_thread -#line 296 "parser.ypp" +#line 297 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2114 "parser.cpp" +#line 2119 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" -#line 301 "parser.ypp" +#line 302 "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 2120 "parser.cpp" +#line 2125 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" -#line 306 "parser.ypp" +#line 307 "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 2126 "parser.cpp" +#line 2131 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block -#line 311 "parser.ypp" +#line 312 "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 2132 "parser.cpp" +#line 2137 "parser.cpp" break; case 20: // stmt: stmt_block -#line 315 "parser.ypp" +#line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2138 "parser.cpp" +#line 2143 "parser.cpp" break; case 21: // stmt: stmt_call -#line 316 "parser.ypp" +#line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2144 "parser.cpp" +#line 2149 "parser.cpp" break; case 22: // stmt: stmt_assign -#line 317 "parser.ypp" +#line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2150 "parser.cpp" +#line 2155 "parser.cpp" break; case 23: // stmt: stmt_endon -#line 318 "parser.ypp" +#line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2156 "parser.cpp" +#line 2161 "parser.cpp" break; case 24: // stmt: stmt_notify -#line 319 "parser.ypp" +#line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2162 "parser.cpp" +#line 2167 "parser.cpp" break; case 25: // stmt: stmt_wait -#line 320 "parser.ypp" +#line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2168 "parser.cpp" +#line 2173 "parser.cpp" break; case 26: // stmt: stmt_waittill -#line 321 "parser.ypp" +#line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2174 "parser.cpp" +#line 2179 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch -#line 322 "parser.ypp" +#line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2180 "parser.cpp" +#line 2185 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend -#line 323 "parser.ypp" +#line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2186 "parser.cpp" +#line 2191 "parser.cpp" break; case 29: // stmt: stmt_waitframe -#line 324 "parser.ypp" +#line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waitframe = std::move(yystack_[0].value.as < ast::stmt_waitframe::ptr > ()); } -#line 2192 "parser.cpp" +#line 2197 "parser.cpp" break; case 30: // stmt: stmt_if -#line 325 "parser.ypp" +#line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2198 "parser.cpp" +#line 2203 "parser.cpp" break; case 31: // stmt: stmt_ifelse -#line 326 "parser.ypp" +#line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2204 "parser.cpp" +#line 2209 "parser.cpp" break; case 32: // stmt: stmt_while -#line 327 "parser.ypp" +#line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2210 "parser.cpp" +#line 2215 "parser.cpp" break; case 33: // stmt: stmt_dowhile -#line 328 "parser.ypp" +#line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2216 "parser.cpp" +#line 2221 "parser.cpp" break; case 34: // stmt: stmt_for -#line 329 "parser.ypp" +#line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2222 "parser.cpp" +#line 2227 "parser.cpp" break; case 35: // stmt: stmt_foreach -#line 330 "parser.ypp" +#line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2228 "parser.cpp" +#line 2233 "parser.cpp" break; case 36: // stmt: stmt_switch -#line 331 "parser.ypp" +#line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2234 "parser.cpp" +#line 2239 "parser.cpp" break; case 37: // stmt: stmt_case -#line 332 "parser.ypp" +#line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2240 "parser.cpp" +#line 2245 "parser.cpp" break; case 38: // stmt: stmt_default -#line 333 "parser.ypp" +#line 334 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2246 "parser.cpp" +#line 2251 "parser.cpp" break; case 39: // stmt: stmt_break -#line 334 "parser.ypp" +#line 335 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2252 "parser.cpp" +#line 2257 "parser.cpp" break; case 40: // stmt: stmt_continue -#line 335 "parser.ypp" +#line 336 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2258 "parser.cpp" +#line 2263 "parser.cpp" break; case 41: // stmt: stmt_return -#line 336 "parser.ypp" +#line 337 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2264 "parser.cpp" +#line 2269 "parser.cpp" break; case 42: // stmt: stmt_breakpoint -#line 337 "parser.ypp" +#line 338 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2270 "parser.cpp" +#line 2275 "parser.cpp" break; case 43: // stmt: stmt_prof_begin -#line 338 "parser.ypp" +#line 339 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2276 "parser.cpp" +#line 2281 "parser.cpp" break; case 44: // stmt: stmt_prof_end -#line 339 "parser.ypp" +#line 340 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2282 "parser.cpp" +#line 2287 "parser.cpp" break; case 45: // stmt_or_dev: stmt -#line 343 "parser.ypp" +#line 344 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2288 "parser.cpp" +#line 2293 "parser.cpp" break; case 46: // stmt_or_dev: stmt_dev -#line 344 "parser.ypp" +#line 345 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2294 "parser.cpp" +#line 2299 "parser.cpp" break; case 47: // stmt_list: stmt_list stmt -#line 349 "parser.ypp" +#line 350 "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 2300 "parser.cpp" +#line 2305 "parser.cpp" break; case 48: // stmt_list: stmt -#line 351 "parser.ypp" +#line 352 "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 2306 "parser.cpp" +#line 2311 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev -#line 356 "parser.ypp" +#line 357 "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 2312 "parser.cpp" +#line 2317 "parser.cpp" break; case 50: // stmt_or_dev_list: stmt_or_dev -#line 358 "parser.ypp" +#line 359 "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 2318 "parser.cpp" +#line 2323 "parser.cpp" break; case 51: // stmt_dev: "/#" stmt_list "#/" -#line 362 "parser.ypp" +#line 363 "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 2324 "parser.cpp" +#line 2329 "parser.cpp" break; case 52: // stmt_dev: "/#" "#/" -#line 363 "parser.ypp" +#line 364 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2330 "parser.cpp" +#line 2335 "parser.cpp" break; case 53: // stmt_block: "{" stmt_or_dev_list "}" -#line 367 "parser.ypp" +#line 368 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2336 "parser.cpp" +#line 2341 "parser.cpp" break; case 54: // stmt_block: "{" "}" -#line 368 "parser.ypp" +#line 369 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2342 "parser.cpp" +#line 2347 "parser.cpp" break; case 55: // stmt_expr: expr_assign -#line 373 "parser.ypp" +#line 374 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2348 "parser.cpp" +#line 2353 "parser.cpp" break; case 56: // stmt_expr: expr_increment -#line 375 "parser.ypp" +#line 376 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2354 "parser.cpp" +#line 2359 "parser.cpp" break; case 57: // stmt_expr: expr_decrement -#line 377 "parser.ypp" +#line 378 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2360 "parser.cpp" +#line 2365 "parser.cpp" break; case 58: // stmt_expr: %empty -#line 379 "parser.ypp" +#line 380 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2366 "parser.cpp" +#line 2371 "parser.cpp" break; case 59: // stmt_call: expr_call ";" -#line 384 "parser.ypp" +#line 385 "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 2372 "parser.cpp" +#line 2377 "parser.cpp" break; case 60: // stmt_call: expr_method ";" -#line 386 "parser.ypp" +#line 387 "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 2378 "parser.cpp" +#line 2383 "parser.cpp" break; case 61: // stmt_assign: expr_assign ";" -#line 391 "parser.ypp" +#line 392 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2384 "parser.cpp" +#line 2389 "parser.cpp" break; case 62: // stmt_assign: expr_increment ";" -#line 393 "parser.ypp" +#line 394 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2390 "parser.cpp" +#line 2395 "parser.cpp" break; case 63: // stmt_assign: expr_decrement ";" -#line 395 "parser.ypp" +#line 396 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2396 "parser.cpp" +#line 2401 "parser.cpp" break; case 64: // stmt_endon: expr_object "endon" "(" expr ")" ";" -#line 400 "parser.ypp" +#line 401 "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 2402 "parser.cpp" +#line 2407 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" -#line 405 "parser.ypp" +#line 406 "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 2408 "parser.cpp" +#line 2413 "parser.cpp" break; case 66: // stmt_notify: expr_object "notify" "(" expr ")" ";" -#line 407 "parser.ypp" +#line 408 "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 2414 "parser.cpp" +#line 2419 "parser.cpp" break; case 67: // stmt_wait: "wait" expr ";" -#line 412 "parser.ypp" +#line 413 "parser.ypp" { yylhs.value.as < ast::stmt_wait::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2420 "parser.cpp" +#line 2425 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" -#line 417 "parser.ypp" +#line 418 "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 2426 "parser.cpp" +#line 2431 "parser.cpp" break; case 69: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" -#line 419 "parser.ypp" +#line 420 "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 2432 "parser.cpp" +#line 2437 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" -#line 424 "parser.ypp" +#line 425 "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 2438 "parser.cpp" +#line 2443 "parser.cpp" break; case 71: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" -#line 426 "parser.ypp" +#line 427 "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 2444 "parser.cpp" +#line 2449 "parser.cpp" break; case 72: // stmt_waittillframeend: "waittillframeend" ";" -#line 431 "parser.ypp" +#line 432 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2450 "parser.cpp" +#line 2455 "parser.cpp" break; case 73: // stmt_waitframe: "waitframe" ";" -#line 436 "parser.ypp" +#line 437 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2456 "parser.cpp" +#line 2461 "parser.cpp" break; case 74: // stmt_waitframe: "waitframe" "(" ")" ";" -#line 438 "parser.ypp" +#line 439 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2462 "parser.cpp" +#line 2467 "parser.cpp" break; case 75: // stmt_if: "if" "(" expr ")" stmt -#line 443 "parser.ypp" +#line 444 "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 2468 "parser.cpp" +#line 2473 "parser.cpp" break; case 76: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt -#line 448 "parser.ypp" +#line 449 "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 2474 "parser.cpp" +#line 2479 "parser.cpp" break; case 77: // stmt_while: "while" "(" expr ")" stmt -#line 453 "parser.ypp" +#line 454 "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 2480 "parser.cpp" +#line 2485 "parser.cpp" break; case 78: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" -#line 458 "parser.ypp" +#line 459 "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 2486 "parser.cpp" +#line 2491 "parser.cpp" break; case 79: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt -#line 463 "parser.ypp" +#line 464 "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 2492 "parser.cpp" +#line 2497 "parser.cpp" break; case 80: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt -#line 468 "parser.ypp" +#line 469 "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 2498 "parser.cpp" +#line 2503 "parser.cpp" break; case 81: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt -#line 470 "parser.ypp" +#line 471 "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 2504 "parser.cpp" +#line 2509 "parser.cpp" break; case 82: // stmt_switch: "switch" "(" expr ")" stmt_block -#line 475 "parser.ypp" +#line 476 "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 2510 "parser.cpp" +#line 2515 "parser.cpp" break; case 83: // stmt_case: "case" expr_integer ":" -#line 480 "parser.ypp" +#line 481 "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 2516 "parser.cpp" +#line 2521 "parser.cpp" break; case 84: // stmt_case: "case" expr_string ":" -#line 482 "parser.ypp" +#line 483 "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 2522 "parser.cpp" +#line 2527 "parser.cpp" break; case 85: // stmt_default: "default" ":" -#line 487 "parser.ypp" +#line 488 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2528 "parser.cpp" +#line 2533 "parser.cpp" break; case 86: // stmt_break: "break" ";" -#line 492 "parser.ypp" +#line 493 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2534 "parser.cpp" +#line 2539 "parser.cpp" break; case 87: // stmt_continue: "continue" ";" -#line 497 "parser.ypp" +#line 498 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2540 "parser.cpp" +#line 2545 "parser.cpp" break; case 88: // stmt_return: "return" expr ";" -#line 502 "parser.ypp" +#line 503 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2546 "parser.cpp" +#line 2551 "parser.cpp" break; case 89: // stmt_return: "return" ";" -#line 504 "parser.ypp" +#line 505 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2552 "parser.cpp" +#line 2557 "parser.cpp" break; case 90: // stmt_breakpoint: "breakpoint" ";" -#line 509 "parser.ypp" +#line 510 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2558 "parser.cpp" +#line 2563 "parser.cpp" break; case 91: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" -#line 514 "parser.ypp" +#line 515 "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 2564 "parser.cpp" +#line 2569 "parser.cpp" break; case 92: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" -#line 519 "parser.ypp" +#line 520 "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 2570 "parser.cpp" +#line 2575 "parser.cpp" break; case 93: // expr: expr_ternary -#line 523 "parser.ypp" +#line 524 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2576 "parser.cpp" +#line 2581 "parser.cpp" break; case 94: // expr: expr_binary -#line 524 "parser.ypp" +#line 525 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2582 "parser.cpp" +#line 2587 "parser.cpp" break; case 95: // expr: expr_primitive -#line 525 "parser.ypp" +#line 526 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2588 "parser.cpp" +#line 2593 "parser.cpp" break; case 96: // expr_or_empty: expr -#line 529 "parser.ypp" +#line 530 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2594 "parser.cpp" +#line 2599 "parser.cpp" break; case 97: // expr_or_empty: %empty -#line 530 "parser.ypp" +#line 531 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2600 "parser.cpp" +#line 2605 "parser.cpp" break; case 98: // expr_assign: expr_object "=" expr -#line 535 "parser.ypp" +#line 536 "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 2606 "parser.cpp" +#line 2611 "parser.cpp" break; case 99: // expr_assign: expr_object "|=" expr -#line 537 "parser.ypp" +#line 538 "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 2612 "parser.cpp" +#line 2617 "parser.cpp" break; case 100: // expr_assign: expr_object "&=" expr -#line 539 "parser.ypp" +#line 540 "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 2618 "parser.cpp" +#line 2623 "parser.cpp" break; case 101: // expr_assign: expr_object "^=" expr -#line 541 "parser.ypp" +#line 542 "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 2624 "parser.cpp" +#line 2629 "parser.cpp" break; case 102: // expr_assign: expr_object "<<=" expr -#line 543 "parser.ypp" +#line 544 "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 2630 "parser.cpp" +#line 2635 "parser.cpp" break; case 103: // expr_assign: expr_object ">>=" expr -#line 545 "parser.ypp" +#line 546 "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 2636 "parser.cpp" +#line 2641 "parser.cpp" break; case 104: // expr_assign: expr_object "+=" expr -#line 547 "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 2642 "parser.cpp" +#line 2647 "parser.cpp" break; case 105: // expr_assign: expr_object "-=" expr -#line 549 "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 2648 "parser.cpp" +#line 2653 "parser.cpp" break; case 106: // expr_assign: expr_object "*=" expr -#line 551 "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 2654 "parser.cpp" +#line 2659 "parser.cpp" break; case 107: // expr_assign: expr_object "/=" expr -#line 553 "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 2660 "parser.cpp" +#line 2665 "parser.cpp" break; case 108: // expr_assign: expr_object "%=" expr -#line 555 "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 2666 "parser.cpp" +#line 2671 "parser.cpp" break; case 109: // expr_increment: "++" expr_object -#line 560 "parser.ypp" +#line 561 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2672 "parser.cpp" +#line 2677 "parser.cpp" break; case 110: // expr_increment: expr_object "++" -#line 562 "parser.ypp" +#line 563 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2678 "parser.cpp" +#line 2683 "parser.cpp" break; case 111: // expr_decrement: "--" expr_object -#line 567 "parser.ypp" +#line 568 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2684 "parser.cpp" +#line 2689 "parser.cpp" break; case 112: // expr_decrement: expr_object "--" -#line 569 "parser.ypp" +#line 570 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2690 "parser.cpp" +#line 2695 "parser.cpp" break; case 113: // expr_ternary: expr "?" expr ":" expr -#line 574 "parser.ypp" +#line 575 "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 2696 "parser.cpp" +#line 2701 "parser.cpp" break; case 114: // expr_binary: expr "||" expr -#line 579 "parser.ypp" +#line 580 "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 2702 "parser.cpp" +#line 2707 "parser.cpp" break; case 115: // expr_binary: expr "&&" expr -#line 581 "parser.ypp" +#line 582 "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 2708 "parser.cpp" +#line 2713 "parser.cpp" break; case 116: // expr_binary: expr "==" expr -#line 583 "parser.ypp" +#line 584 "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 2714 "parser.cpp" +#line 2719 "parser.cpp" break; case 117: // expr_binary: expr "!=" expr -#line 585 "parser.ypp" +#line 586 "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 2720 "parser.cpp" +#line 2725 "parser.cpp" break; case 118: // expr_binary: expr "<=" expr -#line 587 "parser.ypp" +#line 588 "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 2726 "parser.cpp" +#line 2731 "parser.cpp" break; case 119: // expr_binary: expr ">=" expr -#line 589 "parser.ypp" +#line 590 "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 2732 "parser.cpp" +#line 2737 "parser.cpp" break; case 120: // expr_binary: expr "<" expr -#line 591 "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 2738 "parser.cpp" +#line 2743 "parser.cpp" break; case 121: // expr_binary: expr ">" expr -#line 593 "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 2744 "parser.cpp" +#line 2749 "parser.cpp" break; case 122: // expr_binary: expr "|" expr -#line 595 "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 2750 "parser.cpp" +#line 2755 "parser.cpp" break; case 123: // expr_binary: expr "&" expr -#line 597 "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 2756 "parser.cpp" +#line 2761 "parser.cpp" break; case 124: // expr_binary: expr "^" expr -#line 599 "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 2762 "parser.cpp" +#line 2767 "parser.cpp" break; case 125: // expr_binary: expr "<<" expr -#line 601 "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 2768 "parser.cpp" +#line 2773 "parser.cpp" break; case 126: // expr_binary: expr ">>" expr -#line 603 "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 2774 "parser.cpp" +#line 2779 "parser.cpp" break; case 127: // expr_binary: expr "+" expr -#line 605 "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 2780 "parser.cpp" +#line 2785 "parser.cpp" break; case 128: // expr_binary: expr "-" expr -#line 607 "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 2786 "parser.cpp" +#line 2791 "parser.cpp" break; case 129: // expr_binary: expr "*" expr -#line 609 "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 2792 "parser.cpp" +#line 2797 "parser.cpp" break; case 130: // expr_binary: expr "/" expr -#line 611 "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 2798 "parser.cpp" +#line 2803 "parser.cpp" break; case 131: // expr_binary: expr "%" expr -#line 613 "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 2804 "parser.cpp" +#line 2809 "parser.cpp" break; case 132: // expr_primitive: expr_complement -#line 617 "parser.ypp" +#line 618 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2810 "parser.cpp" +#line 2815 "parser.cpp" break; case 133: // expr_primitive: expr_not -#line 618 "parser.ypp" +#line 619 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2816 "parser.cpp" +#line 2821 "parser.cpp" break; case 134: // expr_primitive: expr_call -#line 619 "parser.ypp" +#line 620 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2822 "parser.cpp" +#line 2827 "parser.cpp" break; case 135: // expr_primitive: expr_method -#line 620 "parser.ypp" +#line 621 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2828 "parser.cpp" +#line 2833 "parser.cpp" break; case 136: // expr_primitive: expr_add_array -#line 621 "parser.ypp" +#line 622 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2834 "parser.cpp" +#line 2839 "parser.cpp" break; case 137: // expr_primitive: expr_isdefined -#line 622 "parser.ypp" +#line 623 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_isdefined::ptr > ()); } -#line 2840 "parser.cpp" +#line 2845 "parser.cpp" break; case 138: // expr_primitive: expr_istrue -#line 623 "parser.ypp" +#line 624 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istrue::ptr > ()); } -#line 2846 "parser.cpp" +#line 2851 "parser.cpp" break; case 139: // expr_primitive: expr_reference -#line 624 "parser.ypp" +#line 625 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2852 "parser.cpp" +#line 2857 "parser.cpp" break; case 140: // expr_primitive: expr_array -#line 625 "parser.ypp" +#line 626 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2858 "parser.cpp" +#line 2863 "parser.cpp" break; case 141: // expr_primitive: expr_field -#line 626 "parser.ypp" +#line 627 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2864 "parser.cpp" +#line 2869 "parser.cpp" break; case 142: // expr_primitive: expr_size -#line 627 "parser.ypp" +#line 628 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2870 "parser.cpp" +#line 2875 "parser.cpp" break; case 143: // expr_primitive: expr_paren -#line 628 "parser.ypp" +#line 629 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2876 "parser.cpp" +#line 2881 "parser.cpp" break; case 144: // expr_primitive: expr_thisthread -#line 629 "parser.ypp" +#line 630 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2882 "parser.cpp" +#line 2887 "parser.cpp" break; case 145: // expr_primitive: expr_empty_array -#line 630 "parser.ypp" +#line 631 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2888 "parser.cpp" +#line 2893 "parser.cpp" break; case 146: // expr_primitive: expr_undefined -#line 631 "parser.ypp" +#line 632 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2894 "parser.cpp" +#line 2899 "parser.cpp" break; case 147: // expr_primitive: expr_game -#line 632 "parser.ypp" +#line 633 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2900 "parser.cpp" +#line 2905 "parser.cpp" break; case 148: // expr_primitive: expr_self -#line 633 "parser.ypp" +#line 634 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2906 "parser.cpp" +#line 2911 "parser.cpp" break; case 149: // expr_primitive: expr_anim -#line 634 "parser.ypp" +#line 635 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2912 "parser.cpp" +#line 2917 "parser.cpp" break; case 150: // expr_primitive: expr_level -#line 635 "parser.ypp" +#line 636 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2918 "parser.cpp" +#line 2923 "parser.cpp" break; case 151: // expr_primitive: expr_animation -#line 636 "parser.ypp" +#line 637 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2924 "parser.cpp" +#line 2929 "parser.cpp" break; case 152: // expr_primitive: expr_animtree -#line 637 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2930 "parser.cpp" - break; - - case 153: // expr_primitive: expr_identifier #line 638 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 2936 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2935 "parser.cpp" break; - case 154: // expr_primitive: expr_istring + case 153: // expr_primitive: expr_identifier_neg #line 639 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } -#line 2942 "parser.cpp" + { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } +#line 2941 "parser.cpp" break; - case 155: // expr_primitive: expr_string + case 154: // expr_primitive: expr_identifier #line 640 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } -#line 2948 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 2947 "parser.cpp" break; - case 156: // expr_primitive: expr_vector + case 155: // expr_primitive: expr_istring #line 641 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } -#line 2954 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } +#line 2953 "parser.cpp" break; - case 157: // expr_primitive: expr_float + case 156: // expr_primitive: expr_string #line 642 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } -#line 2960 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } +#line 2959 "parser.cpp" break; - case 158: // expr_primitive: expr_integer + case 157: // expr_primitive: expr_vector #line 643 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } -#line 2966 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } +#line 2965 "parser.cpp" break; - case 159: // expr_primitive: expr_false + case 158: // expr_primitive: expr_float #line 644 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } -#line 2972 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } +#line 2971 "parser.cpp" break; - case 160: // expr_primitive: expr_true + case 159: // expr_primitive: expr_integer #line 645 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } +#line 2977 "parser.cpp" + break; + + case 160: // expr_primitive: expr_false +#line 646 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } +#line 2983 "parser.cpp" + break; + + case 161: // expr_primitive: expr_true +#line 647 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_true::ptr > ()); } -#line 2978 "parser.cpp" +#line 2989 "parser.cpp" break; - case 161: // expr_complement: "~" expr -#line 650 "parser.ypp" + case 162: // expr_complement: "~" expr +#line 652 "parser.ypp" { yylhs.value.as < ast::expr_complement::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2984 "parser.cpp" +#line 2995 "parser.cpp" break; - case 162: // expr_not: "!" expr -#line 655 "parser.ypp" + case 163: // expr_not: "!" expr +#line 657 "parser.ypp" { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2990 "parser.cpp" +#line 3001 "parser.cpp" break; - case 163: // expr_call: expr_function -#line 659 "parser.ypp" + case 164: // expr_call: expr_function +#line 661 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2996 "parser.cpp" +#line 3007 "parser.cpp" break; - case 164: // expr_call: expr_pointer -#line 660 "parser.ypp" + case 165: // expr_call: expr_pointer +#line 662 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 3002 "parser.cpp" +#line 3013 "parser.cpp" break; - case 165: // expr_method: expr_object expr_function -#line 663 "parser.ypp" + case 166: // expr_method: expr_object expr_function +#line 665 "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 3008 "parser.cpp" +#line 3019 "parser.cpp" break; - case 166: // expr_method: expr_object expr_pointer -#line 664 "parser.ypp" + case 167: // expr_method: expr_object expr_pointer +#line 666 "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 3014 "parser.cpp" +#line 3025 "parser.cpp" break; - case 167: // expr_function: expr_identifier "(" expr_arguments ")" -#line 669 "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 3020 "parser.cpp" - break; - - case 168: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" + case 168: // expr_function: expr_identifier "(" expr_arguments ")" #line 671 "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 3026 "parser.cpp" + { 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 3031 "parser.cpp" break; - case 169: // expr_function: "thread" expr_identifier "(" expr_arguments ")" + case 169: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" #line 673 "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 3032 "parser.cpp" + { 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 3037 "parser.cpp" break; - case 170: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 170: // expr_function: "thread" expr_identifier "(" expr_arguments ")" #line 675 "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 3038 "parser.cpp" + { 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 3043 "parser.cpp" break; - case 171: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" + case 171: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" #line 677 "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::childthread); } -#line 3044 "parser.cpp" + { 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 3049 "parser.cpp" break; - case 172: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 172: // expr_function: "childthread" expr_identifier "(" expr_arguments ")" #line 679 "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::childthread); } +#line 3055 "parser.cpp" + break; + + case 173: // expr_function: "childthread" expr_path "::" expr_identifier "(" expr_arguments ")" +#line 681 "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::childthread); } -#line 3050 "parser.cpp" +#line 3061 "parser.cpp" break; - case 173: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" -#line 684 "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 3056 "parser.cpp" - break; - - case 174: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 174: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 686 "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 3062 "parser.cpp" + { 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 3067 "parser.cpp" break; - case 175: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 175: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 688 "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::childthread); } -#line 3068 "parser.cpp" + { 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 3073 "parser.cpp" break; - case 176: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 176: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" #line 690 "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::childthread); } +#line 3079 "parser.cpp" + break; + + case 177: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 692 "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::builtin); } -#line 3074 "parser.cpp" +#line 3085 "parser.cpp" break; - case 177: // expr_add_array: "[" expr_arguments_no_empty "]" -#line 695 "parser.ypp" + case 178: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 697 "parser.ypp" { yylhs.value.as < ast::expr_add_array::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ())); } -#line 3080 "parser.cpp" +#line 3091 "parser.cpp" break; - case 178: // expr_parameters: expr_parameters "," expr_identifier -#line 700 "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 3086 "parser.cpp" - break; - - case 179: // expr_parameters: expr_identifier + case 179: // expr_parameters: expr_parameters "," expr_identifier #line 702 "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 3092 "parser.cpp" + { 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 3097 "parser.cpp" break; - case 180: // expr_parameters: %empty + case 180: // expr_parameters: expr_identifier #line 704 "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 3103 "parser.cpp" + break; + + case 181: // expr_parameters: %empty +#line 706 "parser.ypp" { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } -#line 3098 "parser.cpp" +#line 3109 "parser.cpp" break; - case 181: // expr_arguments: expr_arguments_no_empty -#line 709 "parser.ypp" - { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } -#line 3104 "parser.cpp" - break; - - case 182: // expr_arguments: %empty + case 182: // expr_arguments: expr_arguments_no_empty #line 711 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3115 "parser.cpp" + break; + + case 183: // expr_arguments: %empty +#line 713 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3110 "parser.cpp" +#line 3121 "parser.cpp" break; - case 183: // expr_arguments_no_empty: expr_arguments "," expr -#line 716 "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 3116 "parser.cpp" - break; - - case 184: // expr_arguments_no_empty: expr + case 184: // expr_arguments_no_empty: expr_arguments "," expr #line 718 "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 3127 "parser.cpp" + break; + + case 185: // expr_arguments_no_empty: expr +#line 720 "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 3122 "parser.cpp" +#line 3133 "parser.cpp" break; - case 185: // expr_isdefined: "isdefined" "(" expr ")" -#line 723 "parser.ypp" + case 186: // expr_isdefined: "isdefined" "(" expr ")" +#line 725 "parser.ypp" { yylhs.value.as < ast::expr_isdefined::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3128 "parser.cpp" +#line 3139 "parser.cpp" break; - case 186: // expr_istrue: "istrue" "(" expr ")" -#line 728 "parser.ypp" + case 187: // expr_istrue: "istrue" "(" expr ")" +#line 730 "parser.ypp" { yylhs.value.as < ast::expr_istrue::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3134 "parser.cpp" +#line 3145 "parser.cpp" break; - case 187: // expr_reference: "::" expr_identifier -#line 733 "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 3140 "parser.cpp" - break; - - case 188: // expr_reference: expr_path "::" expr_identifier + case 188: // expr_reference: "::" expr_identifier #line 735 "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 3151 "parser.cpp" + break; + + case 189: // expr_reference: expr_path "::" expr_identifier +#line 737 "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 3146 "parser.cpp" +#line 3157 "parser.cpp" break; - case 189: // expr_array: expr_object "[" expr "]" -#line 740 "parser.ypp" + case 190: // expr_array: expr_object "[" expr "]" +#line 742 "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 3152 "parser.cpp" +#line 3163 "parser.cpp" break; - case 190: // expr_field: expr_object "." expr_identifier_nosize -#line 745 "parser.ypp" + case 191: // expr_field: expr_object "." expr_identifier_nosize +#line 747 "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 3158 "parser.cpp" +#line 3169 "parser.cpp" break; - case 191: // expr_size: expr_object "." "size" -#line 750 "parser.ypp" + case 192: // expr_size: expr_object "." "size" +#line 752 "parser.ypp" { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } -#line 3164 "parser.cpp" +#line 3175 "parser.cpp" break; - case 192: // expr_paren: "(" expr ")" -#line 755 "parser.ypp" + case 193: // expr_paren: "(" expr ")" +#line 757 "parser.ypp" { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3170 "parser.cpp" +#line 3181 "parser.cpp" break; - case 193: // expr_object: expr_call -#line 759 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 3176 "parser.cpp" - break; - - case 194: // expr_object: expr_method -#line 760 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 3182 "parser.cpp" - break; - - case 195: // expr_object: expr_array + case 194: // expr_object: expr_call #line 761 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3188 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3187 "parser.cpp" break; - case 196: // expr_object: expr_field + case 195: // expr_object: expr_method #line 762 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 3194 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3193 "parser.cpp" break; - case 197: // expr_object: expr_game + case 196: // expr_object: expr_array #line 763 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 3200 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3199 "parser.cpp" break; - case 198: // expr_object: expr_self + case 197: // expr_object: expr_field #line 764 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 3206 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3205 "parser.cpp" break; - case 199: // expr_object: expr_anim + case 198: // expr_object: expr_game #line 765 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 3212 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3211 "parser.cpp" break; - case 200: // expr_object: expr_level + case 199: // expr_object: expr_self #line 766 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 3218 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3217 "parser.cpp" break; - case 201: // expr_object: expr_identifier + case 200: // expr_object: expr_anim #line 767 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3223 "parser.cpp" + break; + + case 201: // expr_object: expr_level +#line 768 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3229 "parser.cpp" + break; + + case 202: // expr_object: expr_identifier +#line 769 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 3224 "parser.cpp" +#line 3235 "parser.cpp" break; - case 202: // expr_thisthread: "thisthread" -#line 772 "parser.ypp" + case 203: // expr_thisthread: "thisthread" +#line 774 "parser.ypp" { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3230 "parser.cpp" +#line 3241 "parser.cpp" break; - case 203: // expr_empty_array: "[" "]" -#line 777 "parser.ypp" + case 204: // expr_empty_array: "[" "]" +#line 779 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3236 "parser.cpp" +#line 3247 "parser.cpp" break; - case 204: // expr_undefined: "undefined" -#line 782 "parser.ypp" + case 205: // expr_undefined: "undefined" +#line 784 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3242 "parser.cpp" +#line 3253 "parser.cpp" break; - case 205: // expr_game: "game" -#line 787 "parser.ypp" + case 206: // expr_game: "game" +#line 789 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3248 "parser.cpp" +#line 3259 "parser.cpp" break; - case 206: // expr_self: "self" -#line 792 "parser.ypp" + case 207: // expr_self: "self" +#line 794 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3254 "parser.cpp" +#line 3265 "parser.cpp" break; - case 207: // expr_anim: "anim" -#line 797 "parser.ypp" + case 208: // expr_anim: "anim" +#line 799 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3260 "parser.cpp" +#line 3271 "parser.cpp" break; - case 208: // expr_level: "level" -#line 802 "parser.ypp" + case 209: // expr_level: "level" +#line 804 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3266 "parser.cpp" +#line 3277 "parser.cpp" break; - case 209: // expr_animation: "%" "identifier" -#line 807 "parser.ypp" + case 210: // expr_animation: "%" "identifier" +#line 809 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3272 "parser.cpp" +#line 3283 "parser.cpp" break; - case 210: // expr_animtree: "#animtree" -#line 812 "parser.ypp" + case 211: // expr_animtree: "#animtree" +#line 814 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3278 "parser.cpp" +#line 3289 "parser.cpp" break; - case 211: // expr_identifier_nosize: "identifier" -#line 817 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3284 "parser.cpp" + case 212: // expr_identifier_neg: "-" "identifier" +#line 819 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, ast::expr(std::make_unique(yylhs.location, "0")), ast::expr(std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()))); } +#line 3295 "parser.cpp" break; - case 212: // expr_identifier: "identifier" -#line 822 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3290 "parser.cpp" - break; - - case 213: // expr_identifier: "size" + case 213: // expr_identifier_nosize: "identifier" #line 824 "parser.ypp" - { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3296 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3301 "parser.cpp" break; - case 214: // expr_path: "identifier" + case 214: // expr_identifier: "identifier" #line 829 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3302 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3307 "parser.cpp" break; - case 215: // expr_path: "path" + case 215: // expr_identifier: "size" #line 831 "parser.ypp" - { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3308 "parser.cpp" + { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } +#line 3313 "parser.cpp" break; - case 216: // expr_istring: "localized string" + case 216: // expr_path: "identifier" #line 836 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3319 "parser.cpp" + break; + + case 217: // expr_path: "path" +#line 838 "parser.ypp" + { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3325 "parser.cpp" + break; + + case 218: // expr_istring: "localized string" +#line 843 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3314 "parser.cpp" +#line 3331 "parser.cpp" break; - case 217: // expr_string: "string literal" -#line 841 "parser.ypp" + case 219: // expr_string: "string literal" +#line 848 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3320 "parser.cpp" +#line 3337 "parser.cpp" break; - case 218: // expr_vector: "(" expr "," expr "," expr ")" -#line 846 "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 3326 "parser.cpp" - break; - - case 219: // expr_float: "-" "float" -#line 851 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3332 "parser.cpp" - break; - - case 220: // expr_float: "float" + case 220: // expr_vector: "(" expr "," expr "," expr ")" #line 853 "parser.ypp" - { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3338 "parser.cpp" + { 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 3343 "parser.cpp" break; - case 221: // expr_integer: "-" "integer" + case 221: // expr_float: "-" "float" #line 858 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3344 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3349 "parser.cpp" break; - case 222: // expr_integer: "integer" + case 222: // expr_float: "float" #line 860 "parser.ypp" - { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3350 "parser.cpp" + { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3355 "parser.cpp" break; - case 223: // expr_false: "false" + case 223: // expr_integer: "-" "integer" #line 865 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } +#line 3361 "parser.cpp" + break; + + case 224: // expr_integer: "integer" +#line 867 "parser.ypp" + { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } +#line 3367 "parser.cpp" + break; + + case 225: // expr_false: "false" +#line 872 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3356 "parser.cpp" +#line 3373 "parser.cpp" break; - case 224: // expr_true: "true" -#line 870 "parser.ypp" + case 226: // expr_true: "true" +#line 877 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3362 "parser.cpp" +#line 3379 "parser.cpp" break; -#line 3366 "parser.cpp" +#line 3383 "parser.cpp" default: break; @@ -3578,9 +3595,9 @@ namespace xsk { namespace gsc { namespace s4 { "expr_field", "expr_size", "expr_paren", "expr_object", "expr_thisthread", "expr_empty_array", "expr_undefined", "expr_game", "expr_self", "expr_anim", "expr_level", "expr_animation", - "expr_animtree", "expr_identifier_nosize", "expr_identifier", - "expr_path", "expr_istring", "expr_string", "expr_vector", "expr_float", - "expr_integer", "expr_false", "expr_true", YY_NULLPTR + "expr_animtree", "expr_identifier_neg", "expr_identifier_nosize", + "expr_identifier", "expr_path", "expr_istring", "expr_string", + "expr_vector", "expr_float", "expr_integer", "expr_false", "expr_true", YY_NULLPTR }; return yy_sname[yysymbol]; } @@ -3849,655 +3866,673 @@ namespace xsk { namespace gsc { namespace s4 { } - const short parser::yypact_ninf_ = -279; + const short parser::yypact_ninf_ = -283; - const short parser::yytable_ninf_ = -215; + const short parser::yytable_ninf_ = -217; const short parser::yypact_[] = { - 8, -279, -279, -75, -75, -49, -279, -279, 16, 8, - -279, -279, -279, -279, -279, -279, -36, -279, -279, -57, - -35, -69, -279, -279, -279, -279, -20, 1152, -279, -279, - -279, -27, -8, -279, -279, 21, 23, -279, -7, -279, - -279, -279, -279, -279, -279, -279, 18, 46, 1152, 1022, - -20, 1152, 1152, -21, -46, 31, -279, -279, -279, 2015, - -279, -279, -279, -279, -279, 123, 207, -279, -279, -279, - -279, -279, -279, 361, 497, -279, -279, 594, -279, -279, - -279, 606, 737, 868, 947, -279, -279, 17, 51, -279, - -279, -279, -279, -279, -279, -279, 37, 68, -20, 57, - 53, 76, 94, 85, 97, 103, 1152, 1152, 1313, 1022, - -279, 2098, 80, 109, -279, -279, -279, -279, -279, -279, - -279, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1217, -13, -279, -279, 115, 110, 1152, -20, -279, 782, - -279, -279, 1152, 1152, -20, 1152, 1152, -20, 1152, 1479, - 1513, -279, 1152, 1148, 1152, -279, 1980, 177, 177, 2129, - 2139, 822, 822, 166, 166, 166, 166, 2170, 601, 2180, - 78, 78, -279, -279, -279, 1213, -279, -279, -279, -20, - 14, -279, 117, 915, 1152, 113, -5, 125, 1303, 126, - 136, 137, 140, -28, 132, 135, 139, 1087, 142, 147, - 155, -279, 152, -10, -10, -279, -279, 836, -279, -279, - -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, - -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, - -279, -279, -279, -279, 148, 151, 154, 161, 162, -279, - -279, 45, -279, -279, -279, -279, 115, 1825, 36, 165, - 1865, 39, 173, 1905, -279, -279, 1944, 157, 2098, 1152, - -279, 117, -279, 1152, -279, -279, 994, 2050, -279, 181, - -279, 1152, 205, 1152, 561, -20, 1152, 133, 178, 179, - -279, -279, -279, -279, 2085, -279, 1152, 1152, 1152, -279, - -279, 1048, 1048, -279, -279, -279, -279, -279, -279, -279, - 186, 190, 195, 203, 159, -279, -279, 1152, 1152, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 210, -279, - 1152, 220, -279, 1152, 222, 1152, 228, 2098, 42, -279, - -279, -279, 224, 1547, 235, 1581, 226, -279, -279, -279, - 675, -15, 1615, -279, -279, -279, 49, 50, 1148, 1152, - 1152, 1152, 1152, 2098, 2098, 2098, 2098, 2098, 2098, 2098, - 2098, 2098, 2098, 2098, 238, 59, 239, 81, 241, 1649, - 1152, -279, -279, 1303, 1152, 1303, 1152, 1152, -20, 68, - 233, 240, 1683, 1357, 1401, 1445, 1152, -279, 1152, -279, - 1152, -279, 82, 261, 1717, -279, 2098, 248, 1751, 269, - -279, -279, -279, 250, 251, 1152, 252, 1152, 253, 1152, - 91, 98, 105, -279, 1303, 254, 561, 1303, 1152, -279, - -279, 264, -279, 266, -279, 267, -279, -279, -279, -279, - -279, 268, -279, 1785, 256, 260, 282, 1303, 1303, -279, - -279, -279, -279, -279 + 26, -283, -283, -30, -30, -38, -283, -283, 22, 26, + -283, -283, -283, -283, -283, -283, -29, -283, -283, -10, + 15, -69, -283, -283, -283, -283, -34, 1154, -283, -283, + -283, 6, 3, -283, -283, -40, -35, -283, 13, -283, + -283, -283, -283, -283, -283, -283, 27, 43, 1154, 1024, + -34, 1154, 1154, -13, -2, 67, -283, -283, -283, 2097, + -283, -283, -283, -283, -283, 45, 648, -283, -283, -283, + -283, -283, -283, 691, 739, -283, -283, 870, -283, -283, + -283, 949, 1050, 1114, 1119, -283, -283, -283, 519, 68, + -283, -283, -283, -283, -283, -283, -283, 75, 96, -34, + 97, 100, 95, 102, 107, 101, 104, 1154, 1154, 1315, + 1024, -283, 2180, 106, 108, -283, -283, -283, -283, -283, + -283, -283, -283, 1154, 1154, 1154, 1154, 1154, 1154, 1154, + 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, + 1154, 1154, 1219, -32, -283, -283, 120, 113, 1154, -34, + -283, 784, -283, -283, 1154, 1154, -34, 1154, 1154, -34, + 1154, 1481, 1515, -283, 1154, 1827, 1154, -283, 2062, 115, + 115, 1214, 2211, 824, 824, -49, -49, -49, -49, 2221, + 2262, 2252, -67, -67, -283, -283, -283, 1867, -283, -283, + -283, -34, 12, -283, 122, 917, 1154, 119, -20, 131, + 1305, 132, 136, 138, 140, -21, 151, 135, 139, 1089, + 157, 170, 171, -283, 169, 547, 547, -283, -283, 838, + -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, + -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, + -283, -283, -283, -283, -283, -283, 164, 172, 173, 176, + 181, -283, -283, 35, -283, -283, -283, -283, 120, 1907, + 34, 180, 1947, 40, 192, 1987, -283, -283, 2026, 188, + 2180, 1154, -283, 122, -283, 1154, -283, -283, 996, 2132, + -283, 194, -283, 1154, 208, 1154, 130, -34, 1154, 147, + 189, 191, -283, -283, -283, -283, 2167, -283, 1154, 1154, + 1154, -283, -283, 1180, 1180, -283, -283, -283, -283, -283, + -283, -283, 202, 203, 204, 207, 163, -283, -283, 1154, + 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, + 206, -283, 1154, 210, -283, 1154, 213, 1154, 219, 2180, + 50, -283, -283, -283, 212, 1549, 223, 1583, 215, -283, + -283, -283, 587, -3, 1617, -283, -283, -283, 52, 53, + 1827, 1154, 1154, 1154, 1154, 2180, 2180, 2180, 2180, 2180, + 2180, 2180, 2180, 2180, 2180, 2180, 226, 54, 230, 72, + 234, 1651, 1154, -283, -283, 1305, 1154, 1305, 1154, 1154, + -34, 96, 225, 227, 1685, 1359, 1403, 1447, 1154, -283, + 1154, -283, 1154, -283, 73, 265, 1719, -283, 2180, 232, + 1753, 264, -283, -283, -283, 235, 237, 1154, 238, 1154, + 241, 1154, 76, 82, 83, -283, 1305, 242, 130, 1305, + 1154, -283, -283, 252, -283, 254, -283, 257, -283, -283, + -283, -283, -283, 280, -283, 1787, 244, 272, 273, 1305, + 1305, -283, -283, -283, -283, -283 }; const unsigned char parser::yydefact_[] = { - 3, 12, 13, 0, 0, 0, 213, 212, 0, 2, - 7, 8, 9, 14, 15, 16, 0, 215, 214, 0, - 0, 0, 1, 4, 5, 6, 180, 0, 10, 11, - 217, 0, 0, 179, 210, 0, 0, 202, 0, 224, - 223, 204, 205, 206, 207, 208, 0, 0, 0, 182, - 0, 0, 0, 0, 0, 212, 216, 220, 222, 0, - 93, 94, 95, 132, 133, 134, 135, 163, 164, 136, + 3, 12, 13, 0, 0, 0, 215, 214, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 217, 216, 0, + 0, 0, 1, 4, 5, 6, 181, 0, 10, 11, + 219, 0, 0, 180, 211, 0, 0, 203, 0, 226, + 225, 205, 206, 207, 208, 209, 0, 0, 0, 183, + 0, 0, 0, 0, 0, 214, 218, 222, 224, 0, + 93, 94, 95, 132, 133, 134, 135, 164, 165, 136, 137, 138, 139, 140, 141, 142, 143, 0, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 0, 154, - 155, 156, 157, 158, 159, 160, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, - 203, 184, 0, 181, 187, 162, 161, 219, 221, 209, - 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, + 155, 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 165, 166, 0, 0, 182, 0, 17, 0, - 19, 178, 0, 182, 0, 0, 182, 0, 0, 0, - 0, 192, 0, 184, 0, 177, 0, 125, 126, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 127, 128, 129, 130, 131, 0, 191, 211, 190, 0, - 0, 181, 188, 0, 0, 0, 0, 0, 0, 0, + 183, 204, 185, 0, 182, 188, 163, 162, 212, 221, + 223, 210, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 54, 0, 0, 0, 45, 50, 0, 46, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 0, 0, 0, 193, 194, 195, - 196, 0, 197, 198, 199, 200, 201, 0, 0, 0, - 0, 0, 0, 0, 185, 186, 0, 0, 183, 0, - 189, 0, 167, 182, 52, 48, 0, 0, 72, 0, - 73, 0, 0, 0, 58, 0, 0, 0, 0, 0, - 85, 86, 87, 89, 0, 90, 182, 182, 0, 193, - 194, 109, 111, 53, 49, 61, 62, 63, 59, 60, - 0, 0, 0, 0, 0, 110, 112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, - 182, 0, 171, 182, 0, 0, 0, 113, 0, 51, - 47, 67, 0, 0, 0, 0, 0, 55, 56, 57, - 0, 0, 0, 84, 83, 88, 0, 0, 0, 0, - 0, 0, 0, 98, 104, 105, 106, 107, 108, 99, - 100, 101, 103, 102, 0, 0, 0, 0, 0, 0, - 182, 168, 74, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 170, 182, 172, - 182, 218, 0, 75, 0, 77, 96, 0, 0, 0, - 82, 91, 92, 0, 0, 182, 0, 182, 0, 182, - 0, 0, 0, 173, 0, 0, 58, 0, 0, 64, - 66, 181, 69, 181, 71, 181, 174, 175, 176, 76, - 78, 0, 80, 0, 0, 0, 0, 0, 0, 65, - 68, 70, 79, 81 + 0, 0, 0, 0, 166, 167, 0, 0, 183, 0, + 17, 0, 19, 179, 0, 183, 0, 0, 183, 0, + 0, 0, 0, 193, 0, 185, 0, 178, 0, 125, + 126, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 127, 128, 129, 130, 131, 0, 192, 213, + 191, 0, 0, 182, 189, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 54, 0, 0, 0, 45, 50, 0, + 46, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 0, 0, 0, 194, + 195, 196, 197, 0, 198, 199, 200, 201, 202, 0, + 0, 0, 0, 0, 0, 0, 186, 187, 0, 0, + 184, 0, 190, 0, 168, 183, 52, 48, 0, 0, + 72, 0, 73, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 85, 86, 87, 89, 0, 90, 183, 183, + 0, 194, 195, 109, 111, 53, 49, 61, 62, 63, + 59, 60, 0, 0, 0, 0, 0, 110, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 183, 0, 172, 183, 0, 0, 0, 113, + 0, 51, 47, 67, 0, 0, 0, 0, 0, 55, + 56, 57, 0, 0, 0, 84, 83, 88, 0, 0, + 0, 0, 0, 0, 0, 98, 104, 105, 106, 107, + 108, 99, 100, 101, 103, 102, 0, 0, 0, 0, + 0, 0, 183, 169, 74, 0, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 171, + 183, 173, 183, 220, 0, 75, 0, 77, 96, 0, + 0, 0, 82, 91, 92, 0, 0, 183, 0, 183, + 0, 183, 0, 0, 0, 174, 0, 0, 58, 0, + 0, 64, 66, 182, 69, 182, 71, 182, 175, 176, + 177, 76, 78, 0, 80, 0, 0, 0, 0, 0, + 0, 65, 68, 70, 79, 81 }; const short parser::yypgoto_[] = { - -279, -279, -279, 294, 296, 338, -279, -279, -279, -181, - 131, -279, -279, -279, -95, -77, -279, -279, -279, -279, - -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, - -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, - 204, -279, -278, -276, -271, -279, -279, -279, -279, -279, - -31, -6, -73, -63, -279, -279, -100, -48, -279, -279, - -279, 196, 232, -279, -279, 265, -279, -279, -279, 283, - 301, 319, 355, -279, -279, -279, 0, 7, -279, -18, - -279, -279, 150, -279, -279 + -283, -283, -283, 330, 333, 334, -283, -283, -283, -167, + 126, -283, -283, -283, -96, -94, -283, -283, -283, -283, + -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, + -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, + 190, -283, -282, -281, -278, -283, -283, -283, -283, -283, + -47, -11, -71, -60, -283, -283, -134, -48, -283, -283, + -283, 55, 253, -283, -283, 270, -283, -283, -283, 279, + 307, 325, 355, -283, -283, -283, -283, 0, 7, -283, + -18, -283, -283, 141, -283, -283 }; const short parser::yydefgoto_[] = { - 0, 8, 9, 10, 11, 12, 13, 14, 15, 215, - 216, 276, 217, 218, 219, 346, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 111, 407, 244, 245, 246, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 32, 112, 191, 70, 71, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 217, + 218, 278, 219, 220, 221, 348, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 112, 409, 246, 247, 248, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 32, 113, 193, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 188, 87, 88, 89, 90, - 91, 92, 93, 94, 95 + 82, 83, 84, 85, 86, 87, 190, 88, 89, 90, + 91, 92, 93, 94, 95, 96 }; const short parser::yytable_[] = { - 16, 113, 150, 31, 142, 21, 347, 28, 348, 16, - 19, 20, 275, 349, 143, 387, 22, 282, 26, 1, - 2, 3, 4, 5, 17, 18, 33, 6, 96, 29, - 35, 36, 30, 38, 186, 100, 103, 6, 42, 43, - 44, 45, 101, 104, 27, 388, 190, 97, 212, 279, - 114, 105, 98, 258, 119, 6, 261, -201, -201, 280, - -201, 113, 310, 311, -201, 312, 313, 287, 6, 272, - 6, 146, 106, 30, 164, -201, 58, 144, -201, 99, - 7, 102, 117, 118, 145, 35, 36, 187, 38, 17, - 55, 329, 6, -214, 332, 340, 164, 381, 151, 164, - 107, 148, 164, 140, 390, 391, 314, 153, 7, 164, - 164, 315, 316, 147, 397, 152, -201, -201, 247, 164, - 17, 55, 17, 55, 149, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 399, 423, 154, 156, - 164, 164, 164, 248, 17, 55, 436, 192, 347, 256, - 348, 164, 155, 437, 259, 349, 145, 262, 164, 157, - 438, 158, 247, -193, -193, 164, -193, 247, 165, 146, - -193, 273, 189, 338, 137, 138, 139, 278, 142, 281, - 283, -193, 299, 299, -193, 288, 247, 248, 143, 271, - 284, 285, 248, 256, 286, 290, 356, 357, 256, 291, - 145, 296, 403, 292, 405, 145, 295, 300, 300, 297, - 298, 248, 305, 256, 256, 306, 336, 256, 307, 330, - 145, 145, -193, -193, 145, 308, 309, 333, 142, 142, - 375, 59, 344, 377, 122, 123, 342, 118, 143, 143, - 359, 353, 354, 439, 360, 247, 442, -194, -194, 361, - -194, 144, 108, 299, -194, 115, 116, 362, 145, 187, - 135, 136, 137, 138, 139, -194, 452, 453, -194, 374, - 248, 135, 136, 137, 138, 139, 256, 142, 300, 376, - 402, 378, 380, 145, 256, 351, 424, 143, 382, 384, - 386, 145, 396, 398, 410, 400, 420, 411, 421, 428, - 422, 144, 144, 23, 412, 24, -194, -194, 145, 145, - 159, 160, 426, 163, 429, 430, 432, 434, 440, 444, - 449, 445, 446, 447, 450, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 249, 451, 25, 304, 441, - 144, 0, 247, 289, 247, 0, 257, 145, 0, 260, - 0, 0, 263, 0, 0, 0, 266, 431, 268, 433, - 0, 435, 0, 0, 0, 0, 0, 248, 0, 248, - 0, 250, 0, 256, 0, 256, 0, 0, 409, 249, - 145, 0, 145, 247, 249, 299, 247, 0, 277, 0, - 0, -195, -195, 0, -195, 0, 0, 0, -195, 249, - 249, 294, 0, 249, 251, 0, 247, 247, 248, -195, - 300, 248, -195, 0, 256, 250, 256, 256, 0, 0, - 250, 145, 252, 145, 145, 0, 0, 0, 0, 0, - 0, 248, 248, 0, 0, 250, 250, 256, 256, 250, - 253, 0, 0, 0, 145, 145, 0, 0, 251, 0, - -195, -195, 0, 251, 0, 0, 0, 0, 254, 0, - 0, 0, 249, 337, 0, 0, 252, 0, 301, 302, - 249, 252, 251, 0, 0, 343, 0, 345, 0, 0, - 352, 0, 0, 0, 253, 0, 252, 252, 0, 253, - 252, 0, 358, 0, 255, 0, 0, 0, 250, 0, - 0, 0, 254, 0, 253, 253, 250, 254, 253, 0, - 0, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 254, 254, 0, 0, 254, -196, -196, 379, - -196, 251, 0, 0, -196, 0, 0, 0, 255, 350, - 0, 0, 0, 255, 0, -196, 0, 0, -196, 252, - 0, 0, 0, 392, 393, 394, 395, 252, 255, 255, - 0, 0, 255, 0, 0, 0, 0, 253, 0, 249, - 0, 249, 0, 0, 0, 253, 0, 0, 404, 0, - 406, 408, 0, 0, 0, 254, -196, -196, 0, 0, - 0, 35, 36, 254, 38, 0, 0, 0, 6, 42, - 43, 44, 45, 0, 0, 250, 0, 250, 0, 212, - 249, 0, 249, 249, 0, 0, 0, 213, 214, 0, - 0, 255, 443, 0, 35, 36, 0, 38, 0, 255, - 0, 6, 0, 249, 249, 0, -197, -197, 251, -197, - 251, 0, 140, -197, 0, 141, 250, 0, 250, 250, - 17, 55, 0, 0, -197, 0, 252, -197, 252, 122, - 123, 0, 0, 126, 127, 128, 129, 130, 131, 250, - 250, 0, 0, 0, 253, 0, 253, 0, 0, 251, - 0, 350, 251, 17, 55, 135, 136, 137, 138, 139, - 0, 0, 254, 0, 254, -197, -197, 252, 0, 252, - 252, 0, 251, 251, 0, 35, 36, 0, 38, 0, - 0, 0, 6, 0, 0, 253, 0, 253, 253, 0, - 252, 252, 0, 140, 0, 0, 314, 0, 255, 0, - 255, 315, 316, 254, 0, 254, 254, 0, 253, 253, - 0, 0, 0, 0, 0, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 254, 254, 0, 0, - 0, 0, 0, 0, 17, 55, 0, -198, -198, 255, - -198, 255, 255, 0, -198, 0, 0, 0, 0, 0, - 0, 0, 0, 193, 0, -198, 0, 0, -198, 0, - 0, 194, 255, 255, 195, 196, 197, 0, 198, 199, - 200, 201, 0, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 35, 36, 0, 38, 0, 0, 0, 6, - 42, 43, 44, 45, 0, 0, -198, -198, 149, 211, - 212, 0, 0, 0, 0, 0, 0, 193, 213, 214, - 0, 0, 0, 0, 0, 194, 0, 0, 195, 196, - 197, 0, 198, 199, 200, 201, 0, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 35, 36, 0, 38, - 0, 17, 55, 6, 42, 43, 44, 45, 0, 0, - 122, 123, 149, 303, 212, 0, 128, 129, 130, 131, - 0, 0, 213, 214, 0, 0, 0, 0, -199, -199, - 0, -199, 0, 0, 0, -199, 135, 136, 137, 138, - 139, 0, 0, 0, 0, 0, -199, 274, 0, -199, - 0, 0, 0, 0, 194, 17, 55, 195, 196, 197, - 0, 198, 199, 200, 201, 0, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 35, 36, 0, 38, 0, - 0, 0, 6, 42, 43, 44, 45, -199, -199, 0, - 0, 149, 0, 212, 0, 0, 0, 0, 0, 0, - 0, 213, 214, 0, 0, 0, 0, -200, -200, 0, - -200, 0, 0, 0, -200, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -200, 339, 0, -200, 0, - 0, 0, 0, 194, 17, 55, 195, 196, 197, 0, - 198, 199, 200, 201, 0, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 35, 36, 0, 38, 34, 0, - 0, 6, 42, 43, 44, 45, -200, -200, 0, 0, - 149, 0, 212, 0, 0, 0, 0, 0, 0, 0, - 213, 214, 35, 36, 37, 38, 39, 40, 41, 6, - 42, 43, 44, 45, 46, 47, 48, 0, 0, 0, - 109, 110, 0, 0, 50, 0, 0, 0, 35, 36, - 0, 38, 0, 17, 55, 6, 0, 0, 0, 0, - 51, 52, 0, 34, 0, 0, 140, 0, 0, 314, - 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, - 54, 17, 55, 30, 56, 57, 58, 35, 36, 37, - 38, 39, 40, 41, 6, 42, 43, 44, 45, 46, - 47, 48, 0, 0, 0, 49, 0, 17, 55, 50, - 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 52, 0, 34, 0, + 16, 114, 152, 31, 349, 350, 144, 6, 351, 16, + 19, 20, 6, 6, 192, 188, 21, 145, 100, 124, + 125, 260, 22, 103, 263, 26, 33, 389, 277, 139, + 140, 141, 30, 284, 281, 101, 104, 1, 2, 3, + 4, 5, 102, 105, 282, 137, 138, 139, 140, 141, + 115, 27, 312, 313, 28, 314, 315, 390, 98, 17, + 55, 97, 114, 99, 17, 55, 7, 274, 189, 17, + 18, 106, 166, 6, 289, 35, 36, 146, 38, 29, + 30, 107, 6, 58, 147, -194, -194, 118, -194, 331, + 119, 120, -194, 142, 166, 334, 316, 108, 121, 153, + 166, 317, 318, -194, 249, 383, -194, 392, 393, 399, + 166, 342, 166, 166, 166, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 7, 401, 425, -216, + 149, 438, 166, 166, 17, 55, 166, 439, 440, 150, + 250, 340, 166, 166, -194, -194, 349, 350, 249, 194, + 351, 258, 151, 249, 155, 154, 261, 156, 147, 264, + 157, 158, 160, 159, 358, 359, 166, 167, 301, 301, + 35, 36, 249, 38, 148, 191, 275, 6, 42, 43, + 44, 45, 144, 280, 250, 283, 285, 290, 214, 250, + 286, 273, 287, 145, 288, 258, 215, 216, 377, 293, + 258, 379, 147, 294, 302, 302, 251, 147, 250, 137, + 138, 139, 140, 141, 292, 258, 258, 59, 405, 258, + 407, 297, 147, 147, 298, 299, 147, 300, 307, 17, + 55, 249, 144, 144, 332, 346, 308, 309, 109, 301, + 310, 116, 117, 145, 145, 311, 335, 338, 404, 344, + 251, 120, 355, 146, 356, 251, 361, 362, 363, 441, + 147, 364, 444, 189, 422, 376, 423, 250, 424, 378, + 251, 251, 380, 382, 251, 302, 384, 386, 258, 388, + 398, 144, 454, 455, 400, 147, 258, 353, 402, 413, + 426, 414, 145, 147, 430, 412, 428, 161, 162, 431, + 165, 432, 434, 146, 146, 436, 442, 446, 451, 447, + 147, 147, 448, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 251, 443, 449, 452, 453, 249, 23, + 249, 251, 24, 25, 259, 306, 291, 262, 0, 0, + 265, 0, 146, 0, 268, 0, 270, 0, 0, 147, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 433, + 0, 435, 0, 437, 250, 0, 250, 0, 0, 249, + 0, 301, 249, 0, 0, 258, 279, 258, 0, 0, + 411, 0, 147, 0, 147, 0, 0, 0, 0, 296, + 0, 0, 249, 249, 252, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 250, 0, 302, 250, 0, + 0, 253, 0, 0, 0, 0, 258, 0, 258, 258, + 254, 0, 0, 147, 0, 147, 147, 0, 250, 250, + 251, 0, 251, 0, 0, 0, 0, 0, 252, 258, + 258, 0, 0, 252, 0, 0, 147, 147, 255, 0, + 0, 339, 0, 0, 0, 253, 0, 0, 252, 252, + 253, 0, 252, 345, 254, 347, 256, 0, 354, 254, + 0, 251, 0, 251, 251, 303, 304, 0, 0, 253, + 360, 0, 0, 0, 254, 254, 0, 0, 254, 0, + 0, 0, 255, 0, 251, 251, 257, 255, 0, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 256, 0, 255, 255, 0, 256, 255, 381, 0, 0, + 0, 252, 0, 0, 0, 0, 0, 0, 0, 252, + 256, 256, 0, 0, 256, 0, 0, 0, 253, 0, + 257, 394, 395, 396, 397, 257, 352, 254, 0, -202, + -202, 0, -202, 0, 0, 254, -202, 0, 0, 0, + 257, 257, 0, 148, 257, 0, 406, -202, 408, 410, + -202, 0, 0, 0, 0, 255, 0, 35, 36, 0, + 38, 0, 0, 255, 6, 42, 43, 44, 45, 0, + 0, 0, 0, 256, 0, 214, 0, 0, 0, 0, + 0, 256, 0, 0, 0, 0, 0, 0, -202, -202, + 445, 0, 0, 0, 0, 0, 0, 35, 36, 0, + 38, 0, 0, 257, 6, 0, 0, 0, 252, 0, + 252, 257, 0, 0, 0, 142, 17, 55, 316, 0, + 0, 0, 0, 317, 318, 253, 0, 253, 0, 0, + 0, 0, 0, 0, 254, 0, 254, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 0, 252, + 0, 252, 252, 0, 0, 0, 17, 55, -195, -195, + 0, -195, 255, 0, 255, -195, 253, 0, 352, 253, + 0, 0, 252, 252, 0, 254, -195, 254, 254, -195, + 256, 0, 256, 0, 0, 0, 0, 0, 0, 253, + 253, 0, 0, 0, 0, 0, 0, 0, 254, 254, + 0, -196, -196, 255, -196, 255, 255, 0, -196, 0, + 257, 0, 257, 0, 0, 0, 0, -195, -195, -196, + 0, 256, -196, 256, 256, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 54, 17, 55, 30, 56, - 57, 58, 35, 36, 37, 38, 39, 40, 41, 6, - 42, 43, 44, 45, 46, 47, 48, 267, 0, 0, - 49, 0, 0, 121, 50, 0, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 0, 0, 0, 0, - 51, 52, 0, 34, 0, 0, 0, 0, 0, 132, - 133, 134, 135, 136, 137, 138, 139, 53, 0, 0, - 54, 17, 55, 30, 56, 57, 58, 35, 36, 37, - 38, 39, 40, 41, 6, 42, 43, 44, 45, 46, - 47, 48, 270, 0, 0, 109, 0, 0, 121, 50, - 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 0, 0, 0, 0, 51, 52, 0, 0, 0, - 0, 0, 0, 0, 132, 133, 134, 135, 136, 137, - 138, 139, 53, 0, 0, 54, 17, 55, 30, 56, - 57, 58, 194, 0, 0, 195, 196, 197, 0, 198, - 199, 200, 201, 0, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 35, 36, 0, 38, 0, 0, 0, - 6, 42, 43, 44, 45, 0, 0, 0, 0, 149, - 0, 212, 0, 0, 0, 0, 0, 0, 161, 213, - 214, 0, 0, 162, 0, 0, 0, 0, 121, 0, - 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 55, 132, 133, 134, 135, 136, 137, - 138, 139, 414, 0, 0, 0, 0, 415, 0, 0, - 0, 0, 121, 0, 0, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 132, 133, - 134, 135, 136, 137, 138, 139, 416, 0, 0, 0, - 0, 417, 0, 0, 0, 0, 121, 0, 0, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 0, + 0, 0, 0, 0, 256, 256, 0, 0, 0, -197, + -197, 257, -197, 257, 257, 0, -197, 0, 0, 0, + -196, -196, 0, 0, 0, 195, 0, -197, 0, 0, + -197, 0, 0, 196, 257, 257, 197, 198, 199, 0, + 200, 201, 202, 203, 0, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 35, 36, 0, 38, 0, 0, + 0, 6, 42, 43, 44, 45, 0, 0, -197, -197, + 151, 213, 214, 0, 0, 0, 0, 0, 0, 195, + 215, 216, 0, 0, 0, 0, 0, 196, 0, 0, + 197, 198, 199, 0, 200, 201, 202, 203, 0, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 35, 36, + 0, 38, 0, 17, 55, 6, 42, 43, 44, 45, + 0, 0, 124, 125, 151, 305, 214, 0, 130, 131, + 132, 133, 0, 0, 215, 216, 0, 0, 0, 0, + 35, 36, 0, 38, 0, 0, 0, 6, 137, 138, + 139, 140, 141, 0, 0, 0, 0, 0, 142, 276, + 0, 143, 0, 0, 0, 0, 196, 17, 55, 197, + 198, 199, 0, 200, 201, 202, 203, 0, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 35, 36, 0, + 38, 0, 0, 0, 6, 42, 43, 44, 45, 17, + 55, 0, 0, 151, 0, 214, 0, 0, 0, 0, + 0, 0, 0, 215, 216, 0, 0, 0, 0, -198, + -198, 0, -198, 0, 0, 0, -198, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -198, 341, 0, + -198, 0, 0, 0, 0, 196, 17, 55, 197, 198, + 199, 0, 200, 201, 202, 203, 0, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 35, 36, 0, 38, + 34, 0, 0, 6, 42, 43, 44, 45, -198, -198, + 0, 0, 151, 0, 214, 0, 0, 0, 0, 0, + 0, 0, 215, 216, 35, 36, 37, 38, 39, 40, + 41, 6, 42, 43, 44, 45, 46, 47, 48, 0, + 0, 0, 110, 111, 0, 0, 50, 0, 0, 0, + -199, -199, 0, -199, 0, 17, 55, -199, 0, 0, + 0, 0, 51, 52, 0, 34, 0, 0, -199, 0, + 0, -199, 0, 0, 0, 0, 0, 0, 0, 53, + 0, 0, 54, 17, 55, 30, 56, 57, 58, 35, + 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, + 45, 46, 47, 48, 0, 0, 0, 49, 0, -199, + -199, 50, 0, 295, -200, -200, 0, -200, 0, -201, + -201, -200, -201, 0, 0, 0, -201, 51, 52, 0, + 34, 0, -200, 0, 0, -200, 0, -201, 0, 0, + -201, 0, 0, 0, 53, 0, 0, 54, 17, 55, + 30, 56, 57, 58, 35, 36, 37, 38, 39, 40, + 41, 6, 42, 43, 44, 45, 46, 47, 48, 0, + 0, 0, 49, -200, -200, 0, 50, 0, -201, -201, + 35, 36, 0, 38, 0, 0, 0, 6, 0, 0, + 0, 0, 51, 52, 0, 34, 0, 0, 142, 0, + 0, 316, 0, 0, 0, 0, 0, 0, 0, 53, + 0, 0, 54, 17, 55, 30, 56, 57, 58, 35, + 36, 37, 38, 39, 40, 41, 6, 42, 43, 44, + 45, 46, 47, 48, 0, 0, 0, 110, 0, 17, + 55, 50, 124, 125, 0, 127, 128, 129, 130, 131, + 132, 133, 0, 0, 0, 0, 0, 51, 52, 0, + 0, 0, 0, 0, 0, 134, 135, 136, 137, 138, + 139, 140, 141, 0, 53, 0, 0, 54, 17, 55, + 30, 56, 57, 58, 196, 0, 0, 197, 198, 199, + 0, 200, 201, 202, 203, 0, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 35, 36, 0, 38, 0, + 0, 0, 6, 42, 43, 44, 45, 0, 0, 0, + 0, 151, 0, 214, 0, 0, 0, 0, 0, 0, + 163, 215, 216, 0, 0, 164, 0, 0, 0, 0, + 123, 0, 0, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 55, 134, 135, 136, 137, + 138, 139, 140, 141, 416, 0, 0, 0, 0, 417, + 0, 0, 0, 0, 123, 0, 0, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 132, 133, 134, 135, 136, 137, 138, 139, - 418, 0, 0, 0, 0, 419, 0, 0, 0, 0, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 264, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 121, 0, 0, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 121, 0, - 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 383, 0, 132, 133, 134, 135, 136, 137, - 138, 139, 121, 0, 0, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 385, 0, 132, 133, - 134, 135, 136, 137, 138, 139, 121, 0, 0, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 0, + 134, 135, 136, 137, 138, 139, 140, 141, 418, 0, + 0, 0, 0, 419, 0, 0, 0, 0, 123, 0, + 0, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 134, 135, 136, 137, 138, 139, + 140, 141, 420, 0, 0, 0, 0, 421, 0, 0, + 0, 0, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 266, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 123, 0, 0, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 389, 0, 132, 133, 134, 135, 136, 137, 138, 139, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 401, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 121, 0, 0, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 121, 0, - 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 425, 0, 132, 133, 134, 135, 136, 137, - 138, 139, 121, 0, 0, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 427, 0, 132, 133, - 134, 135, 136, 137, 138, 139, 121, 0, 0, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 0, + 267, 0, 134, 135, 136, 137, 138, 139, 140, 141, + 123, 0, 0, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 385, 0, 134, 135, 136, 137, + 138, 139, 140, 141, 123, 0, 0, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 387, 0, + 134, 135, 136, 137, 138, 139, 140, 141, 123, 0, + 0, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 391, 0, 134, 135, 136, 137, 138, 139, + 140, 141, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 403, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 123, 0, 0, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 448, 0, 132, 133, 134, 135, 136, 137, 138, 139, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 328, 0, 0, 0, 0, 0, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 331, 0, 0, 0, 0, 0, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 334, 0, 0, 0, 0, 0, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 335, 0, 0, 0, 0, 121, - 0, 0, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 133, 134, 135, 136, - 137, 138, 139, 269, 0, 121, 0, 0, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 0, 0, + 415, 0, 134, 135, 136, 137, 138, 139, 140, 141, + 123, 0, 0, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 427, 0, 134, 135, 136, 137, + 138, 139, 140, 141, 123, 0, 0, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 429, 0, + 134, 135, 136, 137, 138, 139, 140, 141, 123, 0, + 0, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 450, 0, 134, 135, 136, 137, 138, 139, + 140, 141, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 269, 0, 0, 0, + 0, 0, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 272, 0, 0, 0, + 0, 0, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 330, 0, 0, 0, + 0, 0, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 333, 0, 0, 0, + 0, 0, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 336, 0, 0, 0, + 0, 0, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 337, 0, 0, 0, + 0, 123, 0, 0, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 134, 135, 136, + 137, 138, 139, 140, 141, 271, 0, 123, 0, 0, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 132, 133, 134, 135, 136, 137, 138, 139, 120, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 341, 121, 0, 0, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 0, 0, + 0, 0, 0, 134, 135, 136, 137, 138, 139, 140, + 141, 122, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 136, 137, 138, 139, 140, 141, 343, 123, 0, 0, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 132, 133, 134, 135, 136, 137, 138, 139, 355, - 121, 0, 0, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 121, 0, 0, 122, 123, 124, 125, + 0, 0, 0, 134, 135, 136, 137, 138, 139, 140, + 141, 357, 123, 0, 0, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 123, 0, 0, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 0, 0, 0, 0, 0, 132, - 133, 134, 135, 136, 137, 138, 139, 122, 123, 0, - 125, 126, 127, 128, 129, 130, 131, 122, 123, 0, - 0, 126, 127, 128, 129, 130, 131, 0, 0, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 0, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 122, 123, - 0, 0, 126, 127, 128, 129, 130, 131, 122, 123, - 0, 0, 126, 127, 128, 129, 130, 131, 0, 0, - 0, 0, 133, 134, 135, 136, 137, 138, 139, 0, - 0, 0, 133, 0, 135, 136, 137, 138, 139 + 136, 137, 138, 139, 140, 141, 0, 0, 0, 0, + 0, 134, 135, 136, 137, 138, 139, 140, 141, 124, + 125, 0, 0, 128, 129, 130, 131, 132, 133, 124, + 125, 0, 0, 128, 129, 130, 131, 132, 133, 0, + 0, 0, 134, 135, 136, 137, 138, 139, 140, 141, + 0, 0, 0, 135, 136, 137, 138, 139, 140, 141, + 124, 125, 0, 0, 128, 129, 130, 131, 132, 133, + 124, 125, 0, 0, 128, 129, 130, 131, 132, 133, + 0, 0, 0, 0, 135, 0, 137, 138, 139, 140, + 141, 0, 0, 0, 0, 0, 137, 138, 139, 140, + 141 }; const short parser::yycheck_[] = { - 0, 49, 97, 21, 77, 54, 284, 64, 284, 9, - 3, 4, 193, 284, 77, 30, 0, 198, 54, 11, - 12, 13, 14, 15, 99, 100, 26, 47, 55, 64, - 40, 41, 101, 43, 47, 35, 36, 47, 48, 49, - 50, 51, 35, 36, 80, 60, 146, 55, 58, 54, - 50, 58, 60, 153, 100, 47, 156, 40, 41, 64, - 43, 109, 17, 18, 47, 20, 21, 95, 47, 55, - 47, 54, 54, 101, 60, 58, 104, 77, 61, 58, - 100, 58, 103, 104, 77, 40, 41, 100, 43, 99, - 100, 55, 47, 62, 55, 276, 60, 55, 98, 60, - 54, 64, 60, 58, 55, 55, 61, 54, 100, 60, - 60, 66, 67, 62, 55, 58, 99, 100, 149, 60, - 99, 100, 99, 100, 56, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 55, 55, 62, 54, - 60, 60, 60, 149, 99, 100, 55, 147, 426, 149, - 426, 60, 58, 55, 154, 426, 149, 157, 60, 62, - 55, 58, 193, 40, 41, 60, 43, 198, 59, 54, - 47, 54, 62, 273, 96, 97, 98, 64, 251, 54, - 54, 58, 213, 214, 61, 203, 217, 193, 251, 189, - 54, 54, 198, 193, 54, 63, 296, 297, 198, 64, - 193, 54, 383, 64, 385, 198, 64, 213, 214, 54, - 58, 217, 64, 213, 214, 64, 59, 217, 64, 54, - 213, 214, 99, 100, 217, 64, 64, 54, 301, 302, - 330, 27, 27, 333, 68, 69, 55, 104, 301, 302, - 54, 63, 63, 424, 54, 276, 427, 40, 41, 54, - 43, 251, 48, 284, 47, 51, 52, 54, 251, 100, - 94, 95, 96, 97, 98, 58, 447, 448, 61, 59, - 276, 94, 95, 96, 97, 98, 276, 350, 284, 59, - 380, 59, 54, 276, 284, 285, 25, 350, 64, 54, - 64, 284, 54, 54, 389, 54, 396, 64, 398, 30, - 400, 301, 302, 9, 64, 9, 99, 100, 301, 302, - 106, 107, 64, 109, 64, 64, 64, 64, 64, 55, - 64, 55, 55, 55, 64, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 149, 64, 9, 217, 426, - 350, -1, 383, 203, 385, -1, 152, 350, -1, 155, - -1, -1, 158, -1, -1, -1, 162, 415, 164, 417, - -1, 419, -1, -1, -1, -1, -1, 383, -1, 385, - -1, 149, -1, 383, -1, 385, -1, -1, 388, 193, - 383, -1, 385, 424, 198, 426, 427, -1, 194, -1, - -1, 40, 41, -1, 43, -1, -1, -1, 47, 213, - 214, 207, -1, 217, 149, -1, 447, 448, 424, 58, - 426, 427, 61, -1, 424, 193, 426, 427, -1, -1, - 198, 424, 149, 426, 427, -1, -1, -1, -1, -1, - -1, 447, 448, -1, -1, 213, 214, 447, 448, 217, - 149, -1, -1, -1, 447, 448, -1, -1, 193, -1, - 99, 100, -1, 198, -1, -1, -1, -1, 149, -1, - -1, -1, 276, 269, -1, -1, 193, -1, 213, 214, - 284, 198, 217, -1, -1, 281, -1, 283, -1, -1, - 286, -1, -1, -1, 193, -1, 213, 214, -1, 198, - 217, -1, 298, -1, 149, -1, -1, -1, 276, -1, - -1, -1, 193, -1, 213, 214, 284, 198, 217, -1, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 213, 214, -1, -1, 217, 40, 41, 335, - 43, 276, -1, -1, 47, -1, -1, -1, 193, 284, - -1, -1, -1, 198, -1, 58, -1, -1, 61, 276, - -1, -1, -1, 359, 360, 361, 362, 284, 213, 214, - -1, -1, 217, -1, -1, -1, -1, 276, -1, 383, - -1, 385, -1, -1, -1, 284, -1, -1, 384, -1, - 386, 387, -1, -1, -1, 276, 99, 100, -1, -1, - -1, 40, 41, 284, 43, -1, -1, -1, 47, 48, - 49, 50, 51, -1, -1, 383, -1, 385, -1, 58, - 424, -1, 426, 427, -1, -1, -1, 66, 67, -1, - -1, 276, 428, -1, 40, 41, -1, 43, -1, 284, - -1, 47, -1, 447, 448, -1, 40, 41, 383, 43, - 385, -1, 58, 47, -1, 61, 424, -1, 426, 427, - 99, 100, -1, -1, 58, -1, 383, 61, 385, 68, - 69, -1, -1, 72, 73, 74, 75, 76, 77, 447, - 448, -1, -1, -1, 383, -1, 385, -1, -1, 424, - -1, 426, 427, 99, 100, 94, 95, 96, 97, 98, - -1, -1, 383, -1, 385, 99, 100, 424, -1, 426, - 427, -1, 447, 448, -1, 40, 41, -1, 43, -1, - -1, -1, 47, -1, -1, 424, -1, 426, 427, -1, - 447, 448, -1, 58, -1, -1, 61, -1, 383, -1, - 385, 66, 67, 424, -1, 426, 427, -1, 447, 448, - -1, -1, -1, -1, -1, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 447, 448, -1, -1, - -1, -1, -1, -1, 99, 100, -1, 40, 41, 424, - 43, 426, 427, -1, 47, -1, -1, -1, -1, -1, - -1, -1, -1, 11, -1, 58, -1, -1, 61, -1, - -1, 19, 447, 448, 22, 23, 24, -1, 26, 27, - 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, -1, 43, -1, -1, -1, 47, - 48, 49, 50, 51, -1, -1, 99, 100, 56, 57, - 58, -1, -1, -1, -1, -1, -1, 11, 66, 67, - -1, -1, -1, -1, -1, 19, -1, -1, 22, 23, + 0, 49, 98, 21, 286, 286, 77, 47, 286, 9, + 3, 4, 47, 47, 148, 47, 54, 77, 58, 68, + 69, 155, 0, 58, 158, 54, 26, 30, 195, 96, + 97, 98, 101, 200, 54, 35, 36, 11, 12, 13, + 14, 15, 35, 36, 64, 94, 95, 96, 97, 98, + 50, 80, 17, 18, 64, 20, 21, 60, 55, 99, + 100, 55, 110, 60, 99, 100, 100, 55, 100, 99, + 100, 58, 60, 47, 95, 40, 41, 77, 43, 64, + 101, 54, 47, 104, 77, 40, 41, 100, 43, 55, + 103, 104, 47, 58, 60, 55, 61, 54, 100, 99, + 60, 66, 67, 58, 151, 55, 61, 55, 55, 55, + 60, 278, 60, 60, 60, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 100, 55, 55, 62, + 62, 55, 60, 60, 99, 100, 60, 55, 55, 64, + 151, 275, 60, 60, 99, 100, 428, 428, 195, 149, + 428, 151, 56, 200, 54, 58, 156, 62, 151, 159, + 58, 54, 58, 62, 298, 299, 60, 59, 215, 216, + 40, 41, 219, 43, 54, 62, 54, 47, 48, 49, + 50, 51, 253, 64, 195, 54, 54, 205, 58, 200, + 54, 191, 54, 253, 54, 195, 66, 67, 332, 64, + 200, 335, 195, 64, 215, 216, 151, 200, 219, 94, + 95, 96, 97, 98, 63, 215, 216, 27, 385, 219, + 387, 64, 215, 216, 54, 54, 219, 58, 64, 99, + 100, 278, 303, 304, 54, 27, 64, 64, 48, 286, + 64, 51, 52, 303, 304, 64, 54, 59, 382, 55, + 195, 104, 63, 253, 63, 200, 54, 54, 54, 426, + 253, 54, 429, 100, 398, 59, 400, 278, 402, 59, + 215, 216, 59, 54, 219, 286, 64, 54, 278, 64, + 54, 352, 449, 450, 54, 278, 286, 287, 54, 64, + 25, 64, 352, 286, 30, 391, 64, 107, 108, 64, + 110, 64, 64, 303, 304, 64, 64, 55, 64, 55, + 303, 304, 55, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 278, 428, 55, 64, 64, 385, 9, + 387, 286, 9, 9, 154, 219, 205, 157, -1, -1, + 160, -1, 352, -1, 164, -1, 166, -1, -1, 352, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 417, + -1, 419, -1, 421, 385, -1, 387, -1, -1, 426, + -1, 428, 429, -1, -1, 385, 196, 387, -1, -1, + 390, -1, 385, -1, 387, -1, -1, -1, -1, 209, + -1, -1, 449, 450, 151, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 426, -1, 428, 429, -1, + -1, 151, -1, -1, -1, -1, 426, -1, 428, 429, + 151, -1, -1, 426, -1, 428, 429, -1, 449, 450, + 385, -1, 387, -1, -1, -1, -1, -1, 195, 449, + 450, -1, -1, 200, -1, -1, 449, 450, 151, -1, + -1, 271, -1, -1, -1, 195, -1, -1, 215, 216, + 200, -1, 219, 283, 195, 285, 151, -1, 288, 200, + -1, 426, -1, 428, 429, 215, 216, -1, -1, 219, + 300, -1, -1, -1, 215, 216, -1, -1, 219, -1, + -1, -1, 195, -1, 449, 450, 151, 200, -1, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 195, -1, 215, 216, -1, 200, 219, 337, -1, -1, + -1, 278, -1, -1, -1, -1, -1, -1, -1, 286, + 215, 216, -1, -1, 219, -1, -1, -1, 278, -1, + 195, 361, 362, 363, 364, 200, 286, 278, -1, 40, + 41, -1, 43, -1, -1, 286, 47, -1, -1, -1, + 215, 216, -1, 54, 219, -1, 386, 58, 388, 389, + 61, -1, -1, -1, -1, 278, -1, 40, 41, -1, + 43, -1, -1, 286, 47, 48, 49, 50, 51, -1, + -1, -1, -1, 278, -1, 58, -1, -1, -1, -1, + -1, 286, -1, -1, -1, -1, -1, -1, 99, 100, + 430, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, -1, -1, 278, 47, -1, -1, -1, 385, -1, + 387, 286, -1, -1, -1, 58, 99, 100, 61, -1, + -1, -1, -1, 66, 67, 385, -1, 387, -1, -1, + -1, -1, -1, -1, 385, -1, 387, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, -1, 426, + -1, 428, 429, -1, -1, -1, 99, 100, 40, 41, + -1, 43, 385, -1, 387, 47, 426, -1, 428, 429, + -1, -1, 449, 450, -1, 426, 58, 428, 429, 61, + 385, -1, 387, -1, -1, -1, -1, -1, -1, 449, + 450, -1, -1, -1, -1, -1, -1, -1, 449, 450, + -1, 40, 41, 426, 43, 428, 429, -1, 47, -1, + 385, -1, 387, -1, -1, -1, -1, 99, 100, 58, + -1, 426, 61, 428, 429, -1, 449, 450, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 450, -1, -1, -1, 40, + 41, 426, 43, 428, 429, -1, 47, -1, -1, -1, + 99, 100, -1, -1, -1, 11, -1, 58, -1, -1, + 61, -1, -1, 19, 449, 450, 22, 23, 24, -1, + 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, -1, 43, -1, -1, + -1, 47, 48, 49, 50, 51, -1, -1, 99, 100, + 56, 57, 58, -1, -1, -1, -1, -1, -1, 11, + 66, 67, -1, -1, -1, -1, -1, 19, -1, -1, + 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + -1, 43, -1, 99, 100, 47, 48, 49, 50, 51, + -1, -1, 68, 69, 56, 57, 58, -1, 74, 75, + 76, 77, -1, -1, 66, 67, -1, -1, -1, -1, + 40, 41, -1, 43, -1, -1, -1, 47, 94, 95, + 96, 97, 98, -1, -1, -1, -1, -1, 58, 12, + -1, 61, -1, -1, -1, -1, 19, 99, 100, 22, + 23, 24, -1, 26, 27, 28, 29, -1, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, + 43, -1, -1, -1, 47, 48, 49, 50, 51, 99, + 100, -1, -1, 56, -1, 58, -1, -1, -1, -1, + -1, -1, -1, 66, 67, -1, -1, -1, -1, 40, + 41, -1, 43, -1, -1, -1, 47, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 58, 12, -1, + 61, -1, -1, -1, -1, 19, 99, 100, 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, - -1, 99, 100, 47, 48, 49, 50, 51, -1, -1, - 68, 69, 56, 57, 58, -1, 74, 75, 76, 77, - -1, -1, 66, 67, -1, -1, -1, -1, 40, 41, - -1, 43, -1, -1, -1, 47, 94, 95, 96, 97, - 98, -1, -1, -1, -1, -1, 58, 12, -1, 61, - -1, -1, -1, -1, 19, 99, 100, 22, 23, 24, + 16, -1, -1, 47, 48, 49, 50, 51, 99, 100, + -1, -1, 56, -1, 58, -1, -1, -1, -1, -1, + -1, -1, 66, 67, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, + -1, -1, 58, 59, -1, -1, 62, -1, -1, -1, + 40, 41, -1, 43, -1, 99, 100, 47, -1, -1, + -1, -1, 78, 79, -1, 16, -1, -1, 58, -1, + -1, 61, -1, -1, -1, -1, -1, -1, -1, 95, + -1, -1, 98, 99, 100, 101, 102, 103, 104, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, -1, -1, -1, 58, -1, 99, + 100, 62, -1, 64, 40, 41, -1, 43, -1, 40, + 41, 47, 43, -1, -1, -1, 47, 78, 79, -1, + 16, -1, 58, -1, -1, 61, -1, 58, -1, -1, + 61, -1, -1, -1, 95, -1, -1, 98, 99, 100, + 101, 102, 103, 104, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, + -1, -1, 58, 99, 100, -1, 62, -1, 99, 100, + 40, 41, -1, 43, -1, -1, -1, 47, -1, -1, + -1, -1, 78, 79, -1, 16, -1, -1, 58, -1, + -1, 61, -1, -1, -1, -1, -1, -1, -1, 95, + -1, -1, 98, 99, 100, 101, 102, 103, 104, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, -1, -1, -1, 58, -1, 99, + 100, 62, 68, 69, -1, 71, 72, 73, 74, 75, + 76, 77, -1, -1, -1, -1, -1, 78, 79, -1, + -1, -1, -1, -1, -1, 91, 92, 93, 94, 95, + 96, 97, 98, -1, 95, -1, -1, 98, 99, 100, + 101, 102, 103, 104, 19, -1, -1, 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, -1, - -1, -1, 47, 48, 49, 50, 51, 99, 100, -1, + -1, -1, 47, 48, 49, 50, 51, -1, -1, -1, -1, 56, -1, 58, -1, -1, -1, -1, -1, -1, - -1, 66, 67, -1, -1, -1, -1, 40, 41, -1, - 43, -1, -1, -1, 47, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 58, 12, -1, 61, -1, - -1, -1, -1, 19, 99, 100, 22, 23, 24, -1, - 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, -1, 43, 16, -1, - -1, 47, 48, 49, 50, 51, 99, 100, -1, -1, - 56, -1, 58, -1, -1, -1, -1, -1, -1, -1, - 66, 67, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, -1, -1, -1, - 58, 59, -1, -1, 62, -1, -1, -1, 40, 41, - -1, 43, -1, 99, 100, 47, -1, -1, -1, -1, - 78, 79, -1, 16, -1, -1, 58, -1, -1, 61, - -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, - 98, 99, 100, 101, 102, 103, 104, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, -1, -1, -1, 58, -1, 99, 100, 62, - -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 79, -1, 16, -1, + 55, 66, 67, -1, -1, 60, -1, -1, -1, -1, + 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 99, 100, 91, 92, 93, 94, + 95, 96, 97, 98, 55, -1, -1, -1, -1, 60, + -1, -1, -1, -1, 65, -1, -1, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 95, -1, -1, 98, 99, 100, 101, 102, - 103, 104, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 59, -1, -1, - 58, -1, -1, 65, 62, -1, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, -1, -1, -1, -1, - 78, 79, -1, 16, -1, -1, -1, -1, -1, 91, - 92, 93, 94, 95, 96, 97, 98, 95, -1, -1, - 98, 99, 100, 101, 102, 103, 104, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 59, -1, -1, 58, -1, -1, 65, 62, - -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, -1, -1, -1, -1, 78, 79, -1, -1, -1, - -1, -1, -1, -1, 91, 92, 93, 94, 95, 96, - 97, 98, 95, -1, -1, 98, 99, 100, 101, 102, - 103, 104, 19, -1, -1, 22, 23, 24, -1, 26, - 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, -1, 43, -1, -1, -1, - 47, 48, 49, 50, 51, -1, -1, -1, -1, 56, - -1, 58, -1, -1, -1, -1, -1, -1, 55, 66, - 67, -1, -1, 60, -1, -1, -1, -1, 65, -1, + 91, 92, 93, 94, 95, 96, 97, 98, 55, -1, + -1, -1, -1, 60, -1, -1, -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 99, 100, 91, 92, 93, 94, 95, 96, + -1, -1, -1, -1, 91, 92, 93, 94, 95, 96, 97, 98, 55, -1, -1, -1, -1, 60, -1, -1, -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 55, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 65, -1, -1, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 55, -1, 91, 92, 93, 94, 95, 96, 97, 98, + 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 55, -1, 91, 92, 93, 94, + 95, 96, 97, 98, 65, -1, -1, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, + 91, 92, 93, 94, 95, 96, 97, 98, 65, -1, + -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 55, -1, 91, 92, 93, 94, 95, 96, + 97, 98, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 55, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 65, -1, -1, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 55, -1, 91, 92, 93, 94, 95, 96, 97, 98, + 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 55, -1, 91, 92, 93, 94, + 95, 96, 97, 98, 65, -1, -1, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, + 91, 92, 93, 94, 95, 96, 97, 98, 65, -1, + -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 55, -1, 91, 92, 93, 94, 95, 96, + 97, 98, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, - 93, 94, 95, 96, 97, 98, 55, -1, -1, -1, - -1, 60, -1, -1, -1, -1, 65, -1, -1, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, + 93, 94, 95, 96, 97, 98, 59, -1, -1, -1, + -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 59, -1, -1, -1, + -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 59, -1, -1, -1, + -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 59, -1, -1, -1, + -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 59, -1, -1, -1, + -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 60, -1, -1, -1, + -1, 65, -1, -1, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 91, 92, 93, + 94, 95, 96, 97, 98, 63, -1, 65, -1, -1, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, 92, 93, 94, 95, 96, 97, + 98, 64, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 64, 65, -1, -1, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, 92, 93, 94, 95, 96, 97, + 98, 64, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 65, -1, -1, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 91, 92, + 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, + -1, 91, 92, 93, 94, 95, 96, 97, 98, 68, + 69, -1, -1, 72, 73, 74, 75, 76, 77, 68, + 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, -1, -1, 91, 92, 93, 94, 95, 96, 97, 98, - 55, -1, -1, -1, -1, 60, -1, -1, -1, -1, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 55, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 65, -1, -1, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, - 91, 92, 93, 94, 95, 96, 97, 98, 65, -1, - -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 55, -1, 91, 92, 93, 94, 95, 96, - 97, 98, 65, -1, -1, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 55, -1, 91, 92, - 93, 94, 95, 96, 97, 98, 65, -1, -1, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 55, -1, 91, 92, 93, 94, 95, 96, 97, 98, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 55, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 65, -1, -1, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, - 91, 92, 93, 94, 95, 96, 97, 98, 65, -1, - -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 55, -1, 91, 92, 93, 94, 95, 96, - 97, 98, 65, -1, -1, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 55, -1, 91, 92, - 93, 94, 95, 96, 97, 98, 65, -1, -1, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 55, -1, 91, 92, 93, 94, 95, 96, 97, 98, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 59, -1, -1, -1, -1, -1, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 59, -1, -1, -1, -1, -1, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 59, -1, -1, -1, -1, -1, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 60, -1, -1, -1, -1, 65, - -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 91, 92, 93, 94, 95, - 96, 97, 98, 63, -1, 65, -1, -1, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 91, 92, 93, 94, 95, 96, 97, 98, 64, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 64, 65, -1, -1, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 91, 92, 93, 94, 95, 96, 97, 98, 64, - 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 65, -1, -1, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 91, 92, 93, 94, - 95, 96, 97, 98, -1, -1, -1, -1, -1, 91, - 92, 93, 94, 95, 96, 97, 98, 68, 69, -1, - 71, 72, 73, 74, 75, 76, 77, 68, 69, -1, - -1, 72, 73, 74, 75, 76, 77, -1, -1, -1, - 91, 92, 93, 94, 95, 96, 97, 98, -1, -1, - 91, 92, 93, 94, 95, 96, 97, 98, 68, 69, - -1, -1, 72, 73, 74, 75, 76, 77, 68, 69, - -1, -1, 72, 73, 74, 75, 76, 77, -1, -1, - -1, -1, 92, 93, 94, 95, 96, 97, 98, -1, - -1, -1, 92, -1, 94, 95, 96, 97, 98 + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + 68, 69, -1, -1, 72, 73, 74, 75, 76, 77, + 68, 69, -1, -1, 72, 73, 74, 75, 76, 77, + -1, -1, -1, -1, 92, -1, 94, 95, 96, 97, + 98, -1, -1, -1, -1, -1, 94, 95, 96, 97, + 98 }; const unsigned char parser::yystos_[] = { 0, 11, 12, 13, 14, 15, 47, 100, 116, 117, - 118, 119, 120, 121, 122, 123, 191, 99, 100, 192, - 192, 54, 0, 118, 119, 120, 54, 80, 64, 64, - 101, 194, 170, 191, 16, 40, 41, 42, 43, 44, + 118, 119, 120, 121, 122, 123, 192, 99, 100, 193, + 193, 54, 0, 118, 119, 120, 54, 80, 64, 64, + 101, 195, 170, 192, 16, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 58, 62, 78, 79, 95, 98, 100, 102, 103, 104, 155, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 55, 55, 60, 58, - 191, 192, 58, 191, 192, 58, 54, 54, 155, 58, - 59, 155, 171, 172, 191, 155, 155, 103, 104, 100, - 64, 65, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 91, 92, 93, 94, 95, 96, 97, 98, - 58, 61, 167, 168, 191, 192, 54, 62, 64, 56, - 129, 191, 58, 54, 62, 58, 54, 62, 58, 155, - 155, 55, 60, 155, 60, 59, 155, 155, 155, 155, + 183, 184, 185, 186, 187, 188, 189, 190, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 55, 55, 60, + 58, 192, 193, 58, 192, 193, 58, 54, 54, 155, + 58, 59, 155, 171, 172, 192, 155, 155, 100, 103, + 104, 100, 64, 65, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 91, 92, 93, 94, 95, 96, + 97, 98, 58, 61, 167, 168, 192, 193, 54, 62, + 64, 56, 129, 192, 58, 54, 62, 58, 54, 62, + 58, 155, 155, 55, 60, 155, 60, 59, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 47, 100, 190, 62, - 171, 172, 191, 11, 19, 22, 23, 24, 26, 27, - 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 57, 58, 66, 67, 124, 125, 127, 128, 129, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 157, 158, 159, 165, 166, 176, - 177, 180, 184, 185, 186, 187, 191, 155, 171, 191, - 155, 171, 191, 155, 55, 55, 155, 59, 155, 63, - 59, 191, 55, 54, 12, 124, 126, 155, 64, 54, - 64, 54, 124, 54, 54, 54, 54, 95, 194, 197, - 63, 64, 64, 64, 155, 64, 54, 54, 58, 165, - 166, 180, 180, 57, 125, 64, 64, 64, 64, 64, - 17, 18, 20, 21, 61, 66, 67, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 59, 55, - 54, 59, 55, 54, 59, 60, 59, 155, 171, 12, - 124, 64, 55, 155, 27, 155, 130, 157, 158, 159, - 180, 191, 155, 63, 63, 64, 171, 171, 155, 54, - 54, 54, 54, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 59, 171, 59, 171, 59, 155, - 54, 55, 64, 55, 54, 55, 64, 30, 60, 55, - 55, 55, 155, 155, 155, 155, 54, 55, 54, 55, - 54, 55, 171, 124, 155, 124, 155, 156, 155, 191, - 129, 64, 64, 55, 55, 60, 55, 60, 55, 60, - 171, 171, 171, 55, 25, 55, 64, 55, 30, 64, - 64, 172, 64, 172, 64, 172, 55, 55, 55, 124, - 64, 130, 124, 155, 55, 55, 55, 55, 55, 64, - 64, 64, 124, 124 + 155, 155, 155, 155, 155, 155, 155, 155, 47, 100, + 191, 62, 171, 172, 192, 11, 19, 22, 23, 24, + 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 57, 58, 66, 67, 124, 125, 127, + 128, 129, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 157, 158, 159, 165, + 166, 176, 177, 180, 184, 185, 186, 187, 192, 155, + 171, 192, 155, 171, 192, 155, 55, 55, 155, 59, + 155, 63, 59, 192, 55, 54, 12, 124, 126, 155, + 64, 54, 64, 54, 124, 54, 54, 54, 54, 95, + 195, 198, 63, 64, 64, 64, 155, 64, 54, 54, + 58, 165, 166, 180, 180, 57, 125, 64, 64, 64, + 64, 64, 17, 18, 20, 21, 61, 66, 67, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 59, 55, 54, 59, 55, 54, 59, 60, 59, 155, + 171, 12, 124, 64, 55, 155, 27, 155, 130, 157, + 158, 159, 180, 192, 155, 63, 63, 64, 171, 171, + 155, 54, 54, 54, 54, 155, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 59, 171, 59, 171, + 59, 155, 54, 55, 64, 55, 54, 55, 64, 30, + 60, 55, 55, 55, 155, 155, 155, 155, 54, 55, + 54, 55, 54, 55, 171, 124, 155, 124, 155, 156, + 155, 192, 129, 64, 64, 55, 55, 60, 55, 60, + 55, 60, 171, 171, 171, 55, 25, 55, 64, 55, + 30, 64, 64, 172, 64, 172, 64, 172, 55, 55, + 55, 124, 64, 130, 124, 155, 55, 55, 55, 55, + 55, 64, 64, 64, 124, 124 }; const unsigned char @@ -4519,13 +4554,13 @@ namespace xsk { namespace gsc { namespace s4 { 161, 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 163, 164, 165, 165, 166, 166, 167, 167, 167, - 167, 167, 167, 168, 168, 168, 168, 169, 170, 170, - 170, 171, 171, 172, 172, 173, 174, 175, 175, 176, - 177, 178, 179, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 191, 192, 192, 193, 194, 195, 196, - 196, 197, 197, 198, 199 + 162, 162, 163, 164, 165, 165, 166, 166, 167, 167, + 167, 167, 167, 167, 168, 168, 168, 168, 169, 170, + 170, 170, 171, 171, 172, 172, 173, 174, 175, 175, + 176, 177, 178, 179, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 192, 193, 193, 194, 195, + 196, 197, 197, 198, 198, 199, 200 }; const signed char @@ -4547,13 +4582,13 @@ namespace xsk { namespace gsc { namespace s4 { 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 1, 1, 2, 2, 4, 6, 5, - 7, 5, 7, 8, 9, 9, 9, 3, 3, 1, - 0, 1, 0, 3, 1, 4, 4, 2, 3, 4, - 3, 3, 3, 1, 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, 2, - 1, 2, 1, 1, 1 + 1, 1, 2, 2, 1, 1, 2, 2, 4, 6, + 5, 7, 5, 7, 8, 9, 9, 9, 3, 3, + 1, 0, 1, 0, 3, 1, 4, 4, 2, 3, + 4, 3, 3, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 7, 2, 1, 2, 1, 1, 1 }; @@ -4563,29 +4598,29 @@ namespace xsk { namespace gsc { namespace s4 { const short parser::yyrline_[] = { - 0, 263, 263, 264, 268, 270, 272, 274, 276, 278, - 283, 287, 292, 293, 294, 295, 296, 300, 305, 310, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 343, 344, 348, 350, 355, - 357, 362, 363, 367, 368, 372, 374, 376, 379, 383, - 385, 390, 392, 394, 399, 404, 406, 411, 416, 418, - 423, 425, 430, 435, 437, 442, 447, 452, 457, 462, - 467, 469, 474, 479, 481, 486, 491, 496, 501, 503, - 508, 513, 518, 523, 524, 525, 529, 530, 534, 536, - 538, 540, 542, 544, 546, 548, 550, 552, 554, 559, - 561, 566, 568, 573, 578, 580, 582, 584, 586, 588, - 590, 592, 594, 596, 598, 600, 602, 604, 606, 608, - 610, 612, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 649, 654, 659, 660, 663, 664, 668, 670, 672, - 674, 676, 678, 683, 685, 687, 689, 694, 699, 701, - 704, 708, 711, 715, 717, 722, 727, 732, 734, 739, - 744, 749, 754, 759, 760, 761, 762, 763, 764, 765, - 766, 767, 771, 776, 781, 786, 791, 796, 801, 806, - 811, 816, 821, 823, 828, 830, 835, 840, 845, 850, - 852, 857, 859, 864, 869 + 0, 264, 264, 265, 269, 271, 273, 275, 277, 279, + 284, 288, 293, 294, 295, 296, 297, 301, 306, 311, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 344, 345, 349, 351, 356, + 358, 363, 364, 368, 369, 373, 375, 377, 380, 384, + 386, 391, 393, 395, 400, 405, 407, 412, 417, 419, + 424, 426, 431, 436, 438, 443, 448, 453, 458, 463, + 468, 470, 475, 480, 482, 487, 492, 497, 502, 504, + 509, 514, 519, 524, 525, 526, 530, 531, 535, 537, + 539, 541, 543, 545, 547, 549, 551, 553, 555, 560, + 562, 567, 569, 574, 579, 581, 583, 585, 587, 589, + 591, 593, 595, 597, 599, 601, 603, 605, 607, 609, + 611, 613, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 651, 656, 661, 662, 665, 666, 670, 672, + 674, 676, 678, 680, 685, 687, 689, 691, 696, 701, + 703, 706, 710, 713, 717, 719, 724, 729, 734, 736, + 741, 746, 751, 756, 761, 762, 763, 764, 765, 766, + 767, 768, 769, 773, 778, 783, 788, 793, 798, 803, + 808, 813, 818, 823, 828, 830, 835, 837, 842, 847, + 852, 857, 859, 864, 866, 871, 876 }; void @@ -4618,9 +4653,9 @@ namespace xsk { namespace gsc { namespace s4 { #line 13 "parser.ypp" } } } // xsk::gsc::s4 -#line 4622 "parser.cpp" +#line 4657 "parser.cpp" -#line 873 "parser.ypp" +#line 880 "parser.ypp" void xsk::gsc::s4::parser::error(const xsk::gsc::location& loc, const std::string& msg) diff --git a/src/s4/xsk/parser.hpp b/src/s4/xsk/parser.hpp index c7a14d98..fb80d465 100644 --- a/src/s4/xsk/parser.hpp +++ b/src/s4/xsk/parser.hpp @@ -447,6 +447,7 @@ namespace xsk { namespace gsc { namespace s4 { // expr_binary // expr_primitive // expr_object + // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -1019,16 +1020,17 @@ namespace xsk { namespace gsc { namespace s4 { S_expr_level = 187, // expr_level S_expr_animation = 188, // expr_animation S_expr_animtree = 189, // expr_animtree - S_expr_identifier_nosize = 190, // expr_identifier_nosize - S_expr_identifier = 191, // expr_identifier - S_expr_path = 192, // expr_path - S_expr_istring = 193, // expr_istring - S_expr_string = 194, // expr_string - S_expr_vector = 195, // expr_vector - S_expr_float = 196, // expr_float - S_expr_integer = 197, // expr_integer - S_expr_false = 198, // expr_false - S_expr_true = 199 // expr_true + S_expr_identifier_neg = 190, // expr_identifier_neg + S_expr_identifier_nosize = 191, // expr_identifier_nosize + S_expr_identifier = 192, // expr_identifier + S_expr_path = 193, // expr_path + S_expr_istring = 194, // expr_istring + S_expr_string = 195, // expr_string + S_expr_vector = 196, // expr_vector + S_expr_float = 197, // expr_float + S_expr_integer = 198, // expr_integer + S_expr_false = 199, // expr_false + S_expr_true = 200 // expr_true }; }; @@ -1095,6 +1097,7 @@ namespace xsk { namespace gsc { namespace s4 { case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (std::move (that.value)); break; @@ -2403,6 +2406,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.template destroy< ast::expr > (); break; @@ -4899,8 +4903,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 2278, ///< Last index in yytable_. - yynnts_ = 85, ///< Number of nonterminal symbols. + yylast_ = 2360, ///< Last index in yytable_. + yynnts_ = 86, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4957,6 +4961,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.copy< ast::expr > (YY_MOVE (that.value)); break; @@ -5283,6 +5288,7 @@ switch (yykind) case symbol_kind::S_expr_binary: // expr_binary case symbol_kind::S_expr_primitive: // expr_primitive case symbol_kind::S_expr_object: // expr_object + case symbol_kind::S_expr_identifier_neg: // expr_identifier_neg value.move< ast::expr > (YY_MOVE (s.value)); break; @@ -5615,7 +5621,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::s4 -#line 5619 "parser.hpp" +#line 5625 "parser.hpp"