diff --git a/gen/h1/parser.ypp b/gen/h1/parser.ypp index f7ff02a8..25a81c07 100644 --- a/gen/h1/parser.ypp +++ b/gen/h1/parser.ypp @@ -190,6 +190,7 @@ xsk::gsc::h1::parser::symbol_type H1lex(xsk::gsc::h1::lexer& lexer); %type expr_binary %type expr_primitive %type expr_complement +%type expr_negate %type expr_not %type expr_call %type expr_method @@ -214,7 +215,6 @@ 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 @@ -612,6 +612,7 @@ expr_binary expr_primitive : expr_complement { $$.as_node = std::move($1); } + | expr_negate { $$.as_node = std::move($1); } | expr_not { $$.as_node = std::move($1); } | expr_call { $$.as_node = std::move($1); } | expr_method { $$.as_node = std::move($1); } @@ -630,7 +631,6 @@ 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); } @@ -646,6 +646,17 @@ expr_complement { $$ = std::make_unique(@$, std::move($2)); } ; +expr_negate + : SUB expr_identifier %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_paren %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_array %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_field %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + ; + expr_not : NOT expr { $$ = std::make_unique(@$, std::move($2)); } @@ -798,11 +809,6 @@ 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 5c9e640f..7e7b34e2 100644 --- a/gen/h2/parser.ypp +++ b/gen/h2/parser.ypp @@ -190,6 +190,7 @@ xsk::gsc::h2::parser::symbol_type H2lex(xsk::gsc::h2::lexer& lexer); %type expr_binary %type expr_primitive %type expr_complement +%type expr_negate %type expr_not %type expr_call %type expr_method @@ -214,7 +215,6 @@ 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 @@ -612,6 +612,7 @@ expr_binary expr_primitive : expr_complement { $$.as_node = std::move($1); } + | expr_negate { $$.as_node = std::move($1); } | expr_not { $$.as_node = std::move($1); } | expr_call { $$.as_node = std::move($1); } | expr_method { $$.as_node = std::move($1); } @@ -630,7 +631,6 @@ 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); } @@ -646,6 +646,17 @@ expr_complement { $$ = std::make_unique(@$, std::move($2)); } ; +expr_negate + : SUB expr_identifier %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_paren %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_array %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_field %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + ; + expr_not : NOT expr { $$ = std::make_unique(@$, std::move($2)); } @@ -798,11 +809,6 @@ 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 4e7f9cb2..674d4075 100644 --- a/gen/iw5/parser.ypp +++ b/gen/iw5/parser.ypp @@ -188,6 +188,7 @@ xsk::gsc::iw5::parser::symbol_type IW5lex(xsk::gsc::iw5::lexer& lexer); %type expr_binary %type expr_primitive %type expr_complement +%type expr_negate %type expr_not %type expr_call %type expr_method @@ -212,7 +213,6 @@ 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 @@ -602,6 +602,7 @@ expr_binary expr_primitive : expr_complement { $$.as_node = std::move($1); } + | expr_negate { $$.as_node = std::move($1); } | expr_not { $$.as_node = std::move($1); } | expr_call { $$.as_node = std::move($1); } | expr_method { $$.as_node = std::move($1); } @@ -620,7 +621,6 @@ 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); } @@ -636,6 +636,17 @@ expr_complement { $$ = std::make_unique(@$, std::move($2)); } ; +expr_negate + : SUB expr_identifier %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_paren %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_array %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_field %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + ; + expr_not : NOT expr { $$ = std::make_unique(@$, std::move($2)); } @@ -788,11 +799,6 @@ 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 941ef58d..942c6205 100644 --- a/gen/iw6/parser.ypp +++ b/gen/iw6/parser.ypp @@ -188,6 +188,7 @@ xsk::gsc::iw6::parser::symbol_type IW6lex(xsk::gsc::iw6::lexer& lexer); %type expr_binary %type expr_primitive %type expr_complement +%type expr_negate %type expr_not %type expr_call %type expr_method @@ -212,7 +213,6 @@ 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 @@ -602,6 +602,7 @@ expr_binary expr_primitive : expr_complement { $$.as_node = std::move($1); } + | expr_negate { $$.as_node = std::move($1); } | expr_not { $$.as_node = std::move($1); } | expr_call { $$.as_node = std::move($1); } | expr_method { $$.as_node = std::move($1); } @@ -620,7 +621,6 @@ 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); } @@ -636,6 +636,17 @@ expr_complement { $$ = std::make_unique(@$, std::move($2)); } ; +expr_negate + : SUB expr_identifier %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_paren %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_array %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_field %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + ; + expr_not : NOT expr { $$ = std::make_unique(@$, std::move($2)); } @@ -788,11 +799,6 @@ 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 34ce1737..88ac12b5 100644 --- a/gen/iw7/parser.ypp +++ b/gen/iw7/parser.ypp @@ -188,6 +188,7 @@ xsk::gsc::iw7::parser::symbol_type IW7lex(xsk::gsc::iw7::lexer& lexer); %type expr_binary %type expr_primitive %type expr_complement +%type expr_negate %type expr_not %type expr_call %type expr_method @@ -212,7 +213,6 @@ 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 @@ -602,6 +602,7 @@ expr_binary expr_primitive : expr_complement { $$.as_node = std::move($1); } + | expr_negate { $$.as_node = std::move($1); } | expr_not { $$.as_node = std::move($1); } | expr_call { $$.as_node = std::move($1); } | expr_method { $$.as_node = std::move($1); } @@ -620,7 +621,6 @@ 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); } @@ -636,6 +636,17 @@ expr_complement { $$ = std::make_unique(@$, std::move($2)); } ; +expr_negate + : SUB expr_identifier %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_paren %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_array %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_field %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + ; + expr_not : NOT expr { $$ = std::make_unique(@$, std::move($2)); } @@ -788,11 +799,6 @@ 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 ac4b1b0b..c2619d29 100644 --- a/gen/iw8/parser.ypp +++ b/gen/iw8/parser.ypp @@ -192,6 +192,7 @@ xsk::gsc::iw8::parser::symbol_type IW8lex(xsk::gsc::iw8::lexer& lexer); %type expr_binary %type expr_primitive %type expr_complement +%type expr_negate %type expr_not %type expr_call %type expr_method @@ -218,7 +219,6 @@ 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 @@ -616,6 +616,7 @@ expr_binary expr_primitive : expr_complement { $$.as_node = std::move($1); } + | expr_negate { $$.as_node = std::move($1); } | expr_not { $$.as_node = std::move($1); } | expr_call { $$.as_node = std::move($1); } | expr_method { $$.as_node = std::move($1); } @@ -636,7 +637,6 @@ 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); } @@ -652,6 +652,17 @@ expr_complement { $$ = std::make_unique(@$, std::move($2)); } ; +expr_negate + : SUB expr_identifier %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_paren %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_array %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_field %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + ; + expr_not : NOT expr { $$ = std::make_unique(@$, std::move($2)); } @@ -814,11 +825,6 @@ 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 db527f2a..c7080d02 100644 --- a/gen/s1/parser.ypp +++ b/gen/s1/parser.ypp @@ -190,6 +190,7 @@ xsk::gsc::s1::parser::symbol_type S1lex(xsk::gsc::s1::lexer& lexer); %type expr_binary %type expr_primitive %type expr_complement +%type expr_negate %type expr_not %type expr_call %type expr_method @@ -214,7 +215,6 @@ 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 @@ -612,6 +612,7 @@ expr_binary expr_primitive : expr_complement { $$.as_node = std::move($1); } + | expr_negate { $$.as_node = std::move($1); } | expr_not { $$.as_node = std::move($1); } | expr_call { $$.as_node = std::move($1); } | expr_method { $$.as_node = std::move($1); } @@ -630,7 +631,6 @@ 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); } @@ -646,6 +646,17 @@ expr_complement { $$ = std::make_unique(@$, std::move($2)); } ; +expr_negate + : SUB expr_identifier %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_paren %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_array %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_field %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + ; + expr_not : NOT expr { $$ = std::make_unique(@$, std::move($2)); } @@ -798,11 +809,6 @@ 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 36476f34..12f0e498 100644 --- a/gen/s2/parser.ypp +++ b/gen/s2/parser.ypp @@ -190,6 +190,7 @@ xsk::gsc::s2::parser::symbol_type S2lex(xsk::gsc::s2::lexer& lexer); %type expr_binary %type expr_primitive %type expr_complement +%type expr_negate %type expr_not %type expr_call %type expr_method @@ -214,7 +215,6 @@ 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 @@ -612,6 +612,7 @@ expr_binary expr_primitive : expr_complement { $$.as_node = std::move($1); } + | expr_negate { $$.as_node = std::move($1); } | expr_not { $$.as_node = std::move($1); } | expr_call { $$.as_node = std::move($1); } | expr_method { $$.as_node = std::move($1); } @@ -630,7 +631,6 @@ 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); } @@ -646,6 +646,17 @@ expr_complement { $$ = std::make_unique(@$, std::move($2)); } ; +expr_negate + : SUB expr_identifier %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_paren %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_array %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_field %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + ; + expr_not : NOT expr { $$ = std::make_unique(@$, std::move($2)); } @@ -798,11 +809,6 @@ 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 9e310501..e5f52cf2 100644 --- a/gen/s4/parser.ypp +++ b/gen/s4/parser.ypp @@ -192,6 +192,7 @@ xsk::gsc::s4::parser::symbol_type S4lex(xsk::gsc::s4::lexer& lexer); %type expr_binary %type expr_primitive %type expr_complement +%type expr_negate %type expr_not %type expr_call %type expr_method @@ -218,7 +219,6 @@ 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 @@ -616,6 +616,7 @@ expr_binary expr_primitive : expr_complement { $$.as_node = std::move($1); } + | expr_negate { $$.as_node = std::move($1); } | expr_not { $$.as_node = std::move($1); } | expr_call { $$.as_node = std::move($1); } | expr_method { $$.as_node = std::move($1); } @@ -636,7 +637,6 @@ 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); } @@ -652,6 +652,17 @@ expr_complement { $$ = std::make_unique(@$, std::move($2)); } ; +expr_negate + : SUB expr_identifier %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_paren %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_array %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_field %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + ; + expr_not : NOT expr { $$ = std::make_unique(@$, std::move($2)); } @@ -814,11 +825,6 @@ 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/t6/parser.ypp b/gen/t6/parser.ypp index 65d4ba3f..f3049015 100644 --- a/gen/t6/parser.ypp +++ b/gen/t6/parser.ypp @@ -202,6 +202,7 @@ xsk::arc::t6::parser::symbol_type T6lex(xsk::arc::t6::lexer& lexer); %type expr_binary %type expr_primitive %type expr_complement +%type expr_negate %type expr_not %type expr_call %type expr_method @@ -242,7 +243,6 @@ xsk::arc::t6::parser::symbol_type T6lex(xsk::arc::t6::lexer& lexer); %type expr_anim %type expr_level %type expr_animation -%type expr_identifier_neg %type expr_identifier_nosize %type expr_identifier %type expr_path @@ -626,6 +626,7 @@ expr_binary expr_primitive : expr_complement { $$.as_node = std::move($1); } + | expr_negate { $$.as_node = std::move($1); } | expr_not { $$.as_node = std::move($1); } | expr_call { $$.as_node = std::move($1); } | expr_method { $$.as_node = std::move($1); } @@ -660,7 +661,6 @@ expr_primitive | expr_anim { $$.as_node = std::move($1); } | expr_level { $$.as_node = std::move($1); } | expr_animation { $$.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); } @@ -677,6 +677,17 @@ expr_complement { $$ = std::make_unique(@$, std::move($2)); } ; +expr_negate + : SUB expr_identifier %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_paren %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_array %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + | SUB expr_field %prec NEG + { $$ = std::make_unique(@$, ast::expr(std::move($2))); } + ; + expr_not : NOT expr { $$ = std::make_unique(@$, std::move($2)); } @@ -915,11 +926,6 @@ expr_animation { $$ = std::make_unique(@$, $2); }; ; -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/compiler.cpp b/src/h1/xsk/compiler.cpp index 6446e4a4..308b125b 100644 --- a/src/h1/xsk/compiler.cpp +++ b/src/h1/xsk/compiler.cpp @@ -946,6 +946,9 @@ void compiler::emit_expr(const ast::expr& expr, const block::ptr& blk) case ast::kind::expr_complement: emit_expr_complement(expr.as_complement, blk); break; + case ast::kind::expr_negate: + emit_expr_negate(expr.as_negate, blk); + break; case ast::kind::expr_not: emit_expr_not(expr.as_not, blk); break; @@ -1259,6 +1262,13 @@ void compiler::emit_expr_complement(const ast::expr_complement::ptr& expr, const emit_opcode(opcode::OP_BoolComplement); } +void compiler::emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk) +{ + emit_opcode(opcode::OP_GetZero); + emit_expr(expr->rvalue, blk); + emit_opcode(opcode::OP_minus); +} + void compiler::emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk) { emit_expr(expr->rvalue, blk); diff --git a/src/h1/xsk/compiler.hpp b/src/h1/xsk/compiler.hpp index ab85fa79..a88a12b2 100644 --- a/src/h1/xsk/compiler.hpp +++ b/src/h1/xsk/compiler.hpp @@ -83,6 +83,7 @@ private: void emit_expr_and(const ast::expr_and::ptr& expr, const block::ptr& blk); void emit_expr_or(const ast::expr_or::ptr& expr, const block::ptr& blk); void emit_expr_complement(const ast::expr_complement::ptr& expr, const block::ptr& blk); + void emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk); void emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk); void emit_expr_call(const ast::expr_call::ptr& expr, const block::ptr& blk, bool is_stmt); void emit_expr_call_pointer(const ast::expr_pointer::ptr& expr, const block::ptr& blk, bool is_stmt); diff --git a/src/h1/xsk/parser.cpp b/src/h1/xsk/parser.cpp index da5d860e..ab127403 100644 --- a/src/h1/xsk/parser.cpp +++ b/src/h1/xsk/parser.cpp @@ -245,7 +245,6 @@ 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; @@ -323,6 +322,10 @@ namespace xsk { namespace gsc { namespace h1 { value.YY_MOVE_OR_COPY< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.YY_MOVE_OR_COPY< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.YY_MOVE_OR_COPY< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -548,7 +551,6 @@ 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; @@ -626,6 +628,10 @@ namespace xsk { namespace gsc { namespace h1 { value.move< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -851,7 +857,6 @@ 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; @@ -929,6 +934,10 @@ namespace xsk { namespace gsc { namespace h1 { value.copy< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (that.value); break; @@ -1153,7 +1162,6 @@ 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; @@ -1231,6 +1239,10 @@ namespace xsk { namespace gsc { namespace h1 { value.move< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (that.value); break; @@ -1710,7 +1722,6 @@ 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; @@ -1788,6 +1799,10 @@ namespace xsk { namespace gsc { namespace h1 { yylhs.value.emplace< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + yylhs.value.emplace< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not yylhs.value.emplace< ast::expr_not::ptr > (); break; @@ -1991,1331 +2006,1349 @@ namespace xsk { namespace gsc { namespace h1 { case 2: // root: program #line 260 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1995 "parser.cpp" +#line 2010 "parser.cpp" break; case 3: // root: %empty #line 261 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 2001 "parser.cpp" +#line 2016 "parser.cpp" break; case 4: // program: program inline #line 266 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2007 "parser.cpp" +#line 2022 "parser.cpp" break; case 5: // program: program include #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 2013 "parser.cpp" +#line 2028 "parser.cpp" break; case 6: // program: program declaration #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 2019 "parser.cpp" +#line 2034 "parser.cpp" break; case 7: // program: inline #line 272 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2025 "parser.cpp" +#line 2040 "parser.cpp" break; case 8: // program: include #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 2031 "parser.cpp" +#line 2046 "parser.cpp" break; case 9: // program: declaration #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 2037 "parser.cpp" +#line 2052 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" #line 280 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2043 "parser.cpp" +#line 2058 "parser.cpp" break; case 11: // include: "#include" expr_path ";" #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 2049 "parser.cpp" +#line 2064 "parser.cpp" break; case 12: // declaration: "/#" #line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2055 "parser.cpp" +#line 2070 "parser.cpp" break; case 13: // declaration: "#/" #line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2061 "parser.cpp" +#line 2076 "parser.cpp" break; case 14: // declaration: decl_usingtree #line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2067 "parser.cpp" +#line 2082 "parser.cpp" break; case 15: // declaration: decl_constant #line 292 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2073 "parser.cpp" +#line 2088 "parser.cpp" break; case 16: // declaration: decl_thread #line 293 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2079 "parser.cpp" +#line 2094 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" #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 2085 "parser.cpp" +#line 2100 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" #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 2091 "parser.cpp" +#line 2106 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block #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 2097 "parser.cpp" +#line 2112 "parser.cpp" break; case 20: // stmt: stmt_block #line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2103 "parser.cpp" +#line 2118 "parser.cpp" break; case 21: // stmt: stmt_call #line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2109 "parser.cpp" +#line 2124 "parser.cpp" break; case 22: // stmt: stmt_assign #line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2115 "parser.cpp" +#line 2130 "parser.cpp" break; case 23: // stmt: stmt_endon #line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2121 "parser.cpp" +#line 2136 "parser.cpp" break; case 24: // stmt: stmt_notify #line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2127 "parser.cpp" +#line 2142 "parser.cpp" break; case 25: // stmt: stmt_wait #line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2133 "parser.cpp" +#line 2148 "parser.cpp" break; case 26: // stmt: stmt_waittill #line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2139 "parser.cpp" +#line 2154 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch #line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2145 "parser.cpp" +#line 2160 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend #line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2151 "parser.cpp" +#line 2166 "parser.cpp" break; case 29: // stmt: stmt_waitframe #line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waitframe = std::move(yystack_[0].value.as < ast::stmt_waitframe::ptr > ()); } -#line 2157 "parser.cpp" +#line 2172 "parser.cpp" break; case 30: // stmt: stmt_if #line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2163 "parser.cpp" +#line 2178 "parser.cpp" break; case 31: // stmt: stmt_ifelse #line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2169 "parser.cpp" +#line 2184 "parser.cpp" break; case 32: // stmt: stmt_while #line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2175 "parser.cpp" +#line 2190 "parser.cpp" break; case 33: // stmt: stmt_dowhile #line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2181 "parser.cpp" +#line 2196 "parser.cpp" break; case 34: // stmt: stmt_for #line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2187 "parser.cpp" +#line 2202 "parser.cpp" break; case 35: // stmt: stmt_foreach #line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2193 "parser.cpp" +#line 2208 "parser.cpp" break; case 36: // stmt: stmt_switch #line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2199 "parser.cpp" +#line 2214 "parser.cpp" break; case 37: // stmt: stmt_case #line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2205 "parser.cpp" +#line 2220 "parser.cpp" break; case 38: // stmt: stmt_default #line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2211 "parser.cpp" +#line 2226 "parser.cpp" break; case 39: // stmt: stmt_break #line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2217 "parser.cpp" +#line 2232 "parser.cpp" break; case 40: // stmt: stmt_continue #line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2223 "parser.cpp" +#line 2238 "parser.cpp" break; case 41: // stmt: stmt_return #line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2229 "parser.cpp" +#line 2244 "parser.cpp" break; case 42: // stmt: stmt_breakpoint #line 334 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2235 "parser.cpp" +#line 2250 "parser.cpp" break; case 43: // stmt: stmt_prof_begin #line 335 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2241 "parser.cpp" +#line 2256 "parser.cpp" break; case 44: // stmt: stmt_prof_end #line 336 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2247 "parser.cpp" +#line 2262 "parser.cpp" break; case 45: // stmt_or_dev: stmt #line 340 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2253 "parser.cpp" +#line 2268 "parser.cpp" break; case 46: // stmt_or_dev: stmt_dev #line 341 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2259 "parser.cpp" +#line 2274 "parser.cpp" break; case 47: // stmt_list: stmt_list stmt #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 2265 "parser.cpp" +#line 2280 "parser.cpp" break; case 48: // stmt_list: stmt #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 2271 "parser.cpp" +#line 2286 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev #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 2277 "parser.cpp" +#line 2292 "parser.cpp" break; case 50: // stmt_or_dev_list: stmt_or_dev #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 2283 "parser.cpp" +#line 2298 "parser.cpp" break; case 51: // stmt_dev: "/#" stmt_list "#/" #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 2289 "parser.cpp" +#line 2304 "parser.cpp" break; case 52: // stmt_dev: "/#" "#/" #line 360 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2295 "parser.cpp" +#line 2310 "parser.cpp" break; case 53: // stmt_block: "{" stmt_or_dev_list "}" #line 364 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2301 "parser.cpp" +#line 2316 "parser.cpp" break; case 54: // stmt_block: "{" "}" #line 365 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2307 "parser.cpp" +#line 2322 "parser.cpp" break; case 55: // stmt_expr: expr_assign #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 2313 "parser.cpp" +#line 2328 "parser.cpp" break; case 56: // stmt_expr: expr_increment #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 2319 "parser.cpp" +#line 2334 "parser.cpp" break; case 57: // stmt_expr: expr_decrement #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 2325 "parser.cpp" +#line 2340 "parser.cpp" break; case 58: // stmt_expr: %empty #line 376 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2331 "parser.cpp" +#line 2346 "parser.cpp" break; case 59: // stmt_call: expr_call ";" #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 2337 "parser.cpp" +#line 2352 "parser.cpp" break; case 60: // stmt_call: expr_method ";" #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 2343 "parser.cpp" +#line 2358 "parser.cpp" break; case 61: // stmt_assign: expr_assign ";" #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 2349 "parser.cpp" +#line 2364 "parser.cpp" break; case 62: // stmt_assign: expr_increment ";" #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 2355 "parser.cpp" +#line 2370 "parser.cpp" break; case 63: // stmt_assign: expr_decrement ";" #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 2361 "parser.cpp" +#line 2376 "parser.cpp" break; case 64: // stmt_endon: expr_object "endon" "(" expr ")" ";" #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 2367 "parser.cpp" +#line 2382 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" #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 2373 "parser.cpp" +#line 2388 "parser.cpp" break; case 66: // stmt_notify: expr_object "notify" "(" expr ")" ";" #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 2379 "parser.cpp" +#line 2394 "parser.cpp" break; case 67: // stmt_wait: "wait" expr ";" #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 2385 "parser.cpp" +#line 2400 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" #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 2391 "parser.cpp" +#line 2406 "parser.cpp" break; case 69: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" #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 2397 "parser.cpp" +#line 2412 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" #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 2403 "parser.cpp" +#line 2418 "parser.cpp" break; case 71: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" #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 2409 "parser.cpp" +#line 2424 "parser.cpp" break; case 72: // stmt_waittillframeend: "waittillframeend" ";" #line 428 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2415 "parser.cpp" +#line 2430 "parser.cpp" break; case 73: // stmt_waitframe: "waitframe" ";" #line 433 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2421 "parser.cpp" +#line 2436 "parser.cpp" break; case 74: // stmt_waitframe: "waitframe" "(" ")" ";" #line 435 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2427 "parser.cpp" +#line 2442 "parser.cpp" break; case 75: // stmt_if: "if" "(" expr ")" stmt #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 2433 "parser.cpp" +#line 2448 "parser.cpp" break; case 76: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt #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 2439 "parser.cpp" +#line 2454 "parser.cpp" break; case 77: // stmt_while: "while" "(" expr ")" stmt #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 2445 "parser.cpp" +#line 2460 "parser.cpp" break; case 78: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" #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 2451 "parser.cpp" +#line 2466 "parser.cpp" break; case 79: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt #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 2457 "parser.cpp" +#line 2472 "parser.cpp" break; case 80: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt #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 2463 "parser.cpp" +#line 2478 "parser.cpp" break; case 81: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt #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 2469 "parser.cpp" +#line 2484 "parser.cpp" break; case 82: // stmt_switch: "switch" "(" expr ")" stmt_block #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 2475 "parser.cpp" +#line 2490 "parser.cpp" break; case 83: // stmt_case: "case" expr_integer ":" #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 2481 "parser.cpp" +#line 2496 "parser.cpp" break; case 84: // stmt_case: "case" expr_string ":" #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 2487 "parser.cpp" +#line 2502 "parser.cpp" break; case 85: // stmt_default: "default" ":" #line 484 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2493 "parser.cpp" +#line 2508 "parser.cpp" break; case 86: // stmt_break: "break" ";" #line 489 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2499 "parser.cpp" +#line 2514 "parser.cpp" break; case 87: // stmt_continue: "continue" ";" #line 494 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2505 "parser.cpp" +#line 2520 "parser.cpp" break; case 88: // stmt_return: "return" expr ";" #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 2511 "parser.cpp" +#line 2526 "parser.cpp" break; case 89: // stmt_return: "return" ";" #line 501 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2517 "parser.cpp" +#line 2532 "parser.cpp" break; case 90: // stmt_breakpoint: "breakpoint" ";" #line 506 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2523 "parser.cpp" +#line 2538 "parser.cpp" break; case 91: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" #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 2529 "parser.cpp" +#line 2544 "parser.cpp" break; case 92: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" #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 2535 "parser.cpp" +#line 2550 "parser.cpp" break; case 93: // expr: expr_ternary #line 520 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2541 "parser.cpp" +#line 2556 "parser.cpp" break; case 94: // expr: expr_binary #line 521 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2547 "parser.cpp" +#line 2562 "parser.cpp" break; case 95: // expr: expr_primitive #line 522 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2553 "parser.cpp" +#line 2568 "parser.cpp" break; case 96: // expr_or_empty: expr #line 526 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2559 "parser.cpp" +#line 2574 "parser.cpp" break; case 97: // expr_or_empty: %empty #line 527 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2565 "parser.cpp" +#line 2580 "parser.cpp" break; case 98: // expr_assign: expr_object "=" expr #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 2571 "parser.cpp" +#line 2586 "parser.cpp" break; case 99: // expr_assign: expr_object "|=" expr #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 2577 "parser.cpp" +#line 2592 "parser.cpp" break; case 100: // expr_assign: expr_object "&=" expr #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 2583 "parser.cpp" +#line 2598 "parser.cpp" break; case 101: // expr_assign: expr_object "^=" expr #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 2589 "parser.cpp" +#line 2604 "parser.cpp" break; case 102: // expr_assign: expr_object "<<=" expr #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 2595 "parser.cpp" +#line 2610 "parser.cpp" break; case 103: // expr_assign: expr_object ">>=" expr #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 2601 "parser.cpp" +#line 2616 "parser.cpp" break; case 104: // expr_assign: expr_object "+=" expr #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 2607 "parser.cpp" +#line 2622 "parser.cpp" break; case 105: // expr_assign: expr_object "-=" expr #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 2613 "parser.cpp" +#line 2628 "parser.cpp" break; case 106: // expr_assign: expr_object "*=" expr #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 2619 "parser.cpp" +#line 2634 "parser.cpp" break; case 107: // expr_assign: expr_object "/=" expr #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 2625 "parser.cpp" +#line 2640 "parser.cpp" break; case 108: // expr_assign: expr_object "%=" expr #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 2631 "parser.cpp" +#line 2646 "parser.cpp" break; case 109: // expr_increment: "++" expr_object #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 2637 "parser.cpp" +#line 2652 "parser.cpp" break; case 110: // expr_increment: expr_object "++" #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 2643 "parser.cpp" +#line 2658 "parser.cpp" break; case 111: // expr_decrement: "--" expr_object #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 2649 "parser.cpp" +#line 2664 "parser.cpp" break; case 112: // expr_decrement: expr_object "--" #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 2655 "parser.cpp" +#line 2670 "parser.cpp" break; case 113: // expr_ternary: expr "?" expr ":" expr #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 2661 "parser.cpp" +#line 2676 "parser.cpp" break; case 114: // expr_binary: expr "||" expr #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 2667 "parser.cpp" +#line 2682 "parser.cpp" break; case 115: // expr_binary: expr "&&" expr #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 2673 "parser.cpp" +#line 2688 "parser.cpp" break; case 116: // expr_binary: expr "==" expr #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 2679 "parser.cpp" +#line 2694 "parser.cpp" break; case 117: // expr_binary: expr "!=" expr #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 2685 "parser.cpp" +#line 2700 "parser.cpp" break; case 118: // expr_binary: expr "<=" expr #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 2691 "parser.cpp" +#line 2706 "parser.cpp" break; case 119: // expr_binary: expr ">=" expr #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 2697 "parser.cpp" +#line 2712 "parser.cpp" break; case 120: // expr_binary: expr "<" expr #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 2703 "parser.cpp" +#line 2718 "parser.cpp" break; case 121: // expr_binary: expr ">" expr #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 2709 "parser.cpp" +#line 2724 "parser.cpp" break; case 122: // expr_binary: expr "|" expr #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 2715 "parser.cpp" +#line 2730 "parser.cpp" break; case 123: // expr_binary: expr "&" expr #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 2721 "parser.cpp" +#line 2736 "parser.cpp" break; case 124: // expr_binary: expr "^" expr #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 2727 "parser.cpp" +#line 2742 "parser.cpp" break; case 125: // expr_binary: expr "<<" expr #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 2733 "parser.cpp" +#line 2748 "parser.cpp" break; case 126: // expr_binary: expr ">>" expr #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 2739 "parser.cpp" +#line 2754 "parser.cpp" break; case 127: // expr_binary: expr "+" expr #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 2745 "parser.cpp" +#line 2760 "parser.cpp" break; case 128: // expr_binary: expr "-" expr #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 2751 "parser.cpp" +#line 2766 "parser.cpp" break; case 129: // expr_binary: expr "*" expr #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 2757 "parser.cpp" +#line 2772 "parser.cpp" break; case 130: // expr_binary: expr "/" expr #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 2763 "parser.cpp" +#line 2778 "parser.cpp" break; case 131: // expr_binary: expr "%" expr #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 2769 "parser.cpp" +#line 2784 "parser.cpp" break; case 132: // expr_primitive: expr_complement #line 614 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2775 "parser.cpp" +#line 2790 "parser.cpp" break; - case 133: // expr_primitive: expr_not + case 133: // expr_primitive: expr_negate #line 615 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2781 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_negate::ptr > ()); } +#line 2796 "parser.cpp" break; - case 134: // expr_primitive: expr_call + case 134: // expr_primitive: expr_not #line 616 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2787 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } +#line 2802 "parser.cpp" break; - case 135: // expr_primitive: expr_method + case 135: // expr_primitive: expr_call #line 617 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2793 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 2808 "parser.cpp" break; - case 136: // expr_primitive: expr_add_array + case 136: // expr_primitive: expr_method #line 618 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2799 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 2814 "parser.cpp" break; - case 137: // expr_primitive: expr_reference + case 137: // expr_primitive: expr_add_array #line 619 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2805 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } +#line 2820 "parser.cpp" break; - case 138: // expr_primitive: expr_array + case 138: // expr_primitive: expr_reference #line 620 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2811 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } +#line 2826 "parser.cpp" break; - case 139: // expr_primitive: expr_field + case 139: // expr_primitive: expr_array #line 621 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2817 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 2832 "parser.cpp" break; - case 140: // expr_primitive: expr_size + case 140: // expr_primitive: expr_field #line 622 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2823 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 2838 "parser.cpp" break; - case 141: // expr_primitive: expr_paren + case 141: // expr_primitive: expr_size #line 623 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2829 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } +#line 2844 "parser.cpp" break; - case 142: // expr_primitive: expr_thisthread + case 142: // expr_primitive: expr_paren #line 624 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2835 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } +#line 2850 "parser.cpp" break; - case 143: // expr_primitive: expr_empty_array + case 143: // expr_primitive: expr_thisthread #line 625 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2841 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } +#line 2856 "parser.cpp" break; - case 144: // expr_primitive: expr_undefined + case 144: // expr_primitive: expr_empty_array #line 626 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2847 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } +#line 2862 "parser.cpp" break; - case 145: // expr_primitive: expr_game + case 145: // expr_primitive: expr_undefined #line 627 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2853 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } +#line 2868 "parser.cpp" break; - case 146: // expr_primitive: expr_self + case 146: // expr_primitive: expr_game #line 628 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2859 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 2874 "parser.cpp" break; - case 147: // expr_primitive: expr_anim + case 147: // expr_primitive: expr_self #line 629 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2865 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 2880 "parser.cpp" break; - case 148: // expr_primitive: expr_level + case 148: // expr_primitive: expr_anim #line 630 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2871 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 2886 "parser.cpp" break; - case 149: // expr_primitive: expr_animation + case 149: // expr_primitive: expr_level #line 631 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2877 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 2892 "parser.cpp" break; - case 150: // expr_primitive: expr_animtree + case 150: // expr_primitive: expr_animation #line 632 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2883 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } +#line 2898 "parser.cpp" break; - case 151: // expr_primitive: expr_identifier_neg + case 151: // expr_primitive: expr_animtree #line 633 "parser.ypp" - { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2889 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2904 "parser.cpp" break; 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_identifier::ptr > ()); } -#line 2895 "parser.cpp" +#line 2910 "parser.cpp" break; 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_istring::ptr > ()); } -#line 2901 "parser.cpp" +#line 2916 "parser.cpp" break; 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_string::ptr > ()); } -#line 2907 "parser.cpp" +#line 2922 "parser.cpp" break; 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_vector::ptr > ()); } -#line 2913 "parser.cpp" +#line 2928 "parser.cpp" break; 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_float::ptr > ()); } -#line 2919 "parser.cpp" +#line 2934 "parser.cpp" break; 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" +#line 2940 "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" +#line 2946 "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 2937 "parser.cpp" +#line 2952 "parser.cpp" break; 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 2943 "parser.cpp" +#line 2958 "parser.cpp" break; - case 161: // expr_not: "!" expr + case 161: // expr_negate: "-" expr_identifier #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 2949 "parser.cpp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()))); } +#line 2964 "parser.cpp" break; - case 162: // expr_call: expr_function + case 162: // expr_negate: "-" expr_paren +#line 653 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()))); } +#line 2970 "parser.cpp" + break; + + case 163: // expr_negate: "-" expr_array #line 655 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_array::ptr > ()))); } +#line 2976 "parser.cpp" + break; + + case 164: // expr_negate: "-" expr_field +#line 657 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_field::ptr > ()))); } +#line 2982 "parser.cpp" + break; + + case 165: // expr_not: "!" expr +#line 662 "parser.ypp" + { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } +#line 2988 "parser.cpp" + break; + + case 166: // expr_call: expr_function +#line 666 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2955 "parser.cpp" +#line 2994 "parser.cpp" break; - 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 2961 "parser.cpp" - break; - - 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 2967 "parser.cpp" - break; - - 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 2973 "parser.cpp" - break; - - 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::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: expr_path "::" expr_identifier "(" expr_arguments ")" + case 167: // expr_call: expr_pointer #line 667 "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 2985 "parser.cpp" + { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } +#line 3000 "parser.cpp" break; - 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::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" + case 168: // expr_method: expr_object expr_function +#line 670 "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 3006 "parser.cpp" break; - case 169: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 169: // expr_method: expr_object expr_pointer #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::thread); } -#line 2997 "parser.cpp" + { 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 3012 "parser.cpp" break; - 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" + case 170: // expr_function: expr_identifier "(" expr_arguments ")" +#line 676 "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 3018 "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 3009 "parser.cpp" + case 171: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" +#line 678 "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 3024 "parser.cpp" break; - case 172: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" + case 172: // expr_function: "thread" expr_identifier "(" 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::normal); } -#line 3015 "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 3030 "parser.cpp" break; - case 173: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 173: // expr_function: "thread" expr_path "::" expr_identifier "(" 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::thread); } -#line 3021 "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 3036 "parser.cpp" break; - case 174: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 174: // expr_function: "childthread" expr_identifier "(" 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" + { 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 3042 "parser.cpp" break; - case 175: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 175: // expr_function: "childthread" expr_path "::" expr_identifier "(" 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 3033 "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::childthread); } +#line 3048 "parser.cpp" break; - case 176: // expr_add_array: "[" expr_arguments_no_empty "]" + case 176: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 691 "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 3054 "parser.cpp" + break; + + case 177: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 693 "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 3060 "parser.cpp" + break; + + case 178: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 695 "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 3066 "parser.cpp" + break; + + case 179: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 697 "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 3072 "parser.cpp" + break; + + case 180: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 702 "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 3039 "parser.cpp" +#line 3078 "parser.cpp" break; - case 177: // expr_parameters: expr_parameters "," expr_identifier -#line 696 "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 3045 "parser.cpp" - break; - - 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 3057 "parser.cpp" - break; - - 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 + case 181: // expr_parameters: expr_parameters "," expr_identifier #line 707 "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 3084 "parser.cpp" + break; + + case 182: // expr_parameters: expr_identifier +#line 709 "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 3090 "parser.cpp" + break; + + case 183: // expr_parameters: %empty +#line 711 "parser.ypp" + { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } +#line 3096 "parser.cpp" + break; + + case 184: // expr_arguments: expr_arguments_no_empty +#line 716 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3102 "parser.cpp" + break; + + case 185: // expr_arguments: %empty +#line 718 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3069 "parser.cpp" +#line 3108 "parser.cpp" break; - case 182: // expr_arguments_no_empty: expr_arguments "," expr -#line 712 "parser.ypp" + case 186: // expr_arguments_no_empty: expr_arguments "," expr +#line 723 "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" +#line 3114 "parser.cpp" break; - case 183: // expr_arguments_no_empty: expr -#line 714 "parser.ypp" + case 187: // expr_arguments_no_empty: expr +#line 725 "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 3081 "parser.cpp" +#line 3120 "parser.cpp" break; - case 184: // expr_reference: "::" expr_identifier -#line 719 "parser.ypp" + case 188: // expr_reference: "::" expr_identifier +#line 730 "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" +#line 3126 "parser.cpp" break; - case 185: // expr_reference: expr_path "::" expr_identifier -#line 721 "parser.ypp" + case 189: // expr_reference: expr_path "::" expr_identifier +#line 732 "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 3093 "parser.cpp" +#line 3132 "parser.cpp" break; - case 186: // expr_array: expr_object "[" expr "]" -#line 726 "parser.ypp" + case 190: // expr_array: expr_object "[" expr "]" +#line 737 "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 3099 "parser.cpp" +#line 3138 "parser.cpp" break; - case 187: // expr_field: expr_object "." expr_identifier_nosize -#line 731 "parser.ypp" + case 191: // expr_field: expr_object "." expr_identifier_nosize +#line 742 "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 3105 "parser.cpp" +#line 3144 "parser.cpp" break; - 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 3111 "parser.cpp" - break; - - 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 3117 "parser.cpp" - break; - - 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_call::ptr > ()); } -#line 3123 "parser.cpp" - break; - - 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_method::ptr > ()); } -#line 3129 "parser.cpp" - break; - - case 192: // expr_object: expr_array + case 192: // expr_size: expr_object "." "size" #line 747 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3135 "parser.cpp" + { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } +#line 3150 "parser.cpp" break; - 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_field::ptr > ()); } -#line 3141 "parser.cpp" - break; - - 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_game::ptr > ()); } -#line 3147 "parser.cpp" - break; - - 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_self::ptr > ()); } -#line 3153 "parser.cpp" - break; - - 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 + case 193: // expr_paren: "(" expr ")" #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" + { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3156 "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 3171 "parser.cpp" + case 194: // expr_object: expr_call +#line 756 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3162 "parser.cpp" break; - case 199: // expr_thisthread: "thisthread" + case 195: // expr_object: expr_method +#line 757 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3168 "parser.cpp" + break; + + case 196: // expr_object: expr_array #line 758 "parser.ypp" - { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3177 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3174 "parser.cpp" break; - case 200: // expr_empty_array: "[" "]" + case 197: // expr_object: expr_field +#line 759 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3180 "parser.cpp" + break; + + case 198: // expr_object: expr_game +#line 760 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3186 "parser.cpp" + break; + + case 199: // expr_object: expr_self +#line 761 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3192 "parser.cpp" + break; + + case 200: // expr_object: expr_anim +#line 762 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3198 "parser.cpp" + break; + + case 201: // expr_object: expr_level #line 763 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3204 "parser.cpp" + break; + + case 202: // expr_object: expr_identifier +#line 764 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 3210 "parser.cpp" + break; + + case 203: // expr_thisthread: "thisthread" +#line 769 "parser.ypp" + { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } +#line 3216 "parser.cpp" + break; + + case 204: // expr_empty_array: "[" "]" +#line 774 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3183 "parser.cpp" +#line 3222 "parser.cpp" break; - case 201: // expr_undefined: "undefined" -#line 768 "parser.ypp" + case 205: // expr_undefined: "undefined" +#line 779 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3189 "parser.cpp" +#line 3228 "parser.cpp" break; - case 202: // expr_game: "game" -#line 773 "parser.ypp" + case 206: // expr_game: "game" +#line 784 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3195 "parser.cpp" +#line 3234 "parser.cpp" break; - case 203: // expr_self: "self" -#line 778 "parser.ypp" + case 207: // expr_self: "self" +#line 789 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3201 "parser.cpp" +#line 3240 "parser.cpp" break; - case 204: // expr_anim: "anim" -#line 783 "parser.ypp" + case 208: // expr_anim: "anim" +#line 794 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3207 "parser.cpp" +#line 3246 "parser.cpp" break; - case 205: // expr_level: "level" -#line 788 "parser.ypp" + case 209: // expr_level: "level" +#line 799 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3213 "parser.cpp" +#line 3252 "parser.cpp" break; - case 206: // expr_animation: "%" "identifier" -#line 793 "parser.ypp" + case 210: // expr_animation: "%" "identifier" +#line 804 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3219 "parser.cpp" +#line 3258 "parser.cpp" break; - case 207: // expr_animtree: "#animtree" -#line 798 "parser.ypp" + case 211: // expr_animtree: "#animtree" +#line 809 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3225 "parser.cpp" +#line 3264 "parser.cpp" break; - 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 209: // expr_identifier_nosize: "identifier" -#line 808 "parser.ypp" + case 212: // expr_identifier_nosize: "identifier" +#line 814 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3237 "parser.cpp" +#line 3270 "parser.cpp" break; - case 210: // expr_identifier: "identifier" -#line 813 "parser.ypp" + case 213: // expr_identifier: "identifier" +#line 819 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3243 "parser.cpp" +#line 3276 "parser.cpp" break; - case 211: // expr_identifier: "size" -#line 815 "parser.ypp" + case 214: // expr_identifier: "size" +#line 821 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3249 "parser.cpp" +#line 3282 "parser.cpp" break; - case 212: // expr_path: "identifier" -#line 820 "parser.ypp" + case 215: // expr_path: "identifier" +#line 826 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3255 "parser.cpp" +#line 3288 "parser.cpp" break; - case 213: // expr_path: "path" -#line 822 "parser.ypp" + case 216: // expr_path: "path" +#line 828 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3261 "parser.cpp" +#line 3294 "parser.cpp" break; - case 214: // expr_istring: "localized string" -#line 827 "parser.ypp" + case 217: // expr_istring: "localized string" +#line 833 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3267 "parser.cpp" +#line 3300 "parser.cpp" break; - case 215: // expr_string: "string literal" -#line 832 "parser.ypp" + case 218: // expr_string: "string literal" +#line 838 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3273 "parser.cpp" +#line 3306 "parser.cpp" break; - case 216: // expr_vector: "(" expr "," expr "," expr ")" -#line 837 "parser.ypp" + case 219: // expr_vector: "(" expr "," expr "," expr ")" +#line 843 "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 3279 "parser.cpp" +#line 3312 "parser.cpp" break; - case 217: // expr_float: "-" "float" -#line 842 "parser.ypp" + case 220: // expr_float: "-" "float" +#line 848 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3285 "parser.cpp" +#line 3318 "parser.cpp" break; - case 218: // expr_float: "float" -#line 844 "parser.ypp" + case 221: // expr_float: "float" +#line 850 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3291 "parser.cpp" +#line 3324 "parser.cpp" break; - case 219: // expr_integer: "-" "integer" -#line 849 "parser.ypp" + case 222: // expr_integer: "-" "integer" +#line 855 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3297 "parser.cpp" +#line 3330 "parser.cpp" break; - case 220: // expr_integer: "integer" -#line 851 "parser.ypp" + case 223: // expr_integer: "integer" +#line 857 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3303 "parser.cpp" +#line 3336 "parser.cpp" break; - case 221: // expr_false: "false" -#line 856 "parser.ypp" + case 224: // expr_false: "false" +#line 862 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3309 "parser.cpp" +#line 3342 "parser.cpp" break; - case 222: // expr_true: "true" -#line 861 "parser.ypp" + case 225: // expr_true: "true" +#line 867 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3315 "parser.cpp" +#line 3348 "parser.cpp" break; -#line 3319 "parser.cpp" +#line 3352 "parser.cpp" default: break; @@ -3523,16 +3556,16 @@ namespace xsk { namespace gsc { namespace h1 { "stmt_break", "stmt_continue", "stmt_return", "stmt_breakpoint", "stmt_prof_begin", "stmt_prof_end", "expr", "expr_or_empty", "expr_assign", "expr_increment", "expr_decrement", "expr_ternary", - "expr_binary", "expr_primitive", "expr_complement", "expr_not", - "expr_call", "expr_method", "expr_function", "expr_pointer", + "expr_binary", "expr_primitive", "expr_complement", "expr_negate", + "expr_not", "expr_call", "expr_method", "expr_function", "expr_pointer", "expr_add_array", "expr_parameters", "expr_arguments", "expr_arguments_no_empty", "expr_reference", "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_neg", "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_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]; } @@ -3801,519 +3834,538 @@ namespace xsk { namespace gsc { namespace h1 { } - const short parser::yypact_ninf_ = -271; + const short parser::yypact_ninf_ = -287; - const short parser::yytable_ninf_ = -213; + const short parser::yytable_ninf_ = -216; const short parser::yypact_[] = { - 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, 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 + 9, -287, -287, -65, -65, -40, -287, -287, 41, 9, + -287, -287, -287, -287, -287, -287, -25, -287, -287, -12, + -8, -55, -287, -287, -287, -287, -34, 1152, -287, -287, + -287, 12, -19, -287, -287, -28, -18, -287, 4, -287, + -287, -287, -287, -287, -287, -287, 1152, 1026, -34, 1152, + 1152, 35, -27, 28, -287, -287, -287, 2117, -287, -287, + -287, -287, -287, -287, 543, 557, -287, -287, -287, -287, + 604, 666, -287, -287, 677, -287, -287, -287, 878, 955, + 1113, 1176, -287, -287, 215, 33, -287, -287, -287, -287, + -287, -287, -287, 32, 57, -34, 59, 52, 62, 67, + 75, 74, 85, 1408, 1026, -287, 2200, 92, 99, -287, + -287, -287, 1152, 102, -287, -287, -287, -287, 604, 666, + -287, 1375, -287, -287, -287, -287, 215, 100, -287, -287, + 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1215, + -31, -287, -287, 109, 1152, -34, -287, 769, -287, -287, + 1152, 1152, -34, 1152, 1152, -34, 1152, -287, 1152, 1886, + 1152, -287, 1574, 1152, 65, -34, 2082, 84, 84, 2231, + 2241, 2323, 2323, 249, 249, 249, 249, 2272, 2313, 2282, + 76, 76, -287, -287, -287, 1926, -287, -287, -287, -1, + -287, 116, 923, 1152, 111, -15, 129, 1339, 131, 132, + 134, 135, -53, 130, 128, 136, 1089, 137, 142, 145, + -287, 69, 69, -287, -287, 846, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + -287, -287, 141, 143, 146, 148, 149, -287, -287, 1262, + 109, 1966, 8, 160, 2006, 15, 161, 2046, 1021, 163, + 2200, 1886, 116, 1152, -287, -287, 1152, -287, -287, 1000, + 2152, -287, 164, -287, 1152, 196, 1152, 49, -34, 1152, + 122, 165, 166, -287, -287, -287, -287, 2187, -287, 1152, + 1152, 1375, 1375, -287, -287, -287, -287, -287, -287, -287, + 178, 181, 182, 186, -287, -287, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1152, 1152, 1152, 1152, 187, -287, 1152, + 193, -287, 1152, 195, 1152, 201, 2200, 19, -287, -287, + -287, 177, 1608, 205, 1642, 198, -287, -287, -287, 1365, + 1, 1676, -287, -287, -287, 48, 50, 1152, 1152, 1152, + 1152, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, + 2200, 2200, 209, 73, 211, 77, 218, 1710, 1152, -287, + -287, 1339, 1152, 1339, 1152, 1152, -34, 57, 203, 210, + 1744, 1452, 1496, 1540, 1152, -287, 1152, -287, 1152, -287, + 87, 250, 1778, -287, 2200, 214, 1812, 248, -287, -287, + -287, 220, 222, 1152, 223, 1152, 227, 1152, 90, 91, + 101, -287, 1339, 230, 49, 1339, 1152, -287, -287, 224, + -287, 244, -287, 246, -287, -287, -287, -287, -287, 251, + -287, 1846, 231, 238, 243, 1339, 1339, -287, -287, -287, + -287, -287 }; const unsigned char parser::yydefact_[] = { - 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, + 3, 12, 13, 0, 0, 0, 214, 213, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 216, 215, 0, + 0, 0, 1, 4, 5, 6, 183, 0, 10, 11, + 218, 0, 0, 182, 211, 0, 0, 203, 0, 225, + 224, 205, 206, 207, 208, 209, 0, 185, 0, 0, + 0, 0, 0, 213, 217, 221, 223, 0, 93, 94, + 95, 132, 133, 134, 135, 136, 166, 167, 137, 138, + 139, 140, 141, 142, 0, 143, 144, 145, 146, 147, 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, 185, 204, 187, 0, 184, 188, + 165, 160, 0, 0, 220, 222, 194, 195, 163, 164, + 162, 0, 198, 199, 200, 201, 161, 0, 210, 18, 0, 0, 0, 0, 0, 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, 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, 168, 169, 0, 185, 0, 17, 0, 19, 181, + 0, 185, 0, 0, 185, 0, 0, 193, 0, 187, + 0, 180, 0, 0, 0, 0, 0, 125, 126, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 127, 128, 129, 130, 131, 0, 192, 212, 191, 0, + 184, 189, 0, 0, 0, 0, 0, 0, 0, 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 + 54, 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, + 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 186, 0, 0, 0, 190, 170, 185, 52, 48, 0, + 0, 72, 0, 73, 0, 0, 0, 58, 0, 0, + 0, 0, 0, 85, 86, 87, 89, 0, 90, 185, + 185, 109, 111, 53, 49, 61, 62, 63, 59, 60, + 0, 0, 0, 0, 110, 112, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 185, + 0, 174, 185, 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, 98, 104, 105, 106, 107, 108, 99, 100, 101, + 103, 102, 0, 0, 0, 0, 0, 0, 185, 171, + 74, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 185, 173, 185, 175, 185, 219, + 0, 75, 0, 77, 96, 0, 0, 0, 82, 91, + 92, 0, 0, 185, 0, 185, 0, 185, 0, 0, + 0, 176, 0, 0, 58, 0, 0, 64, 66, 184, + 69, 184, 71, 184, 177, 178, 179, 76, 78, 0, + 80, 0, 0, 0, 0, 0, 0, 65, 68, 70, + 79, 81 }; const short parser::yypgoto_[] = { - -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, - 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 + -287, -287, -287, 271, 297, 298, -287, -287, -287, -177, + 86, -287, -287, -287, -91, -114, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + 191, -287, -286, -285, -282, -287, -287, -287, -287, -287, + -287, -33, -6, -66, -59, -287, -287, -147, -41, -287, + 213, 240, -287, 263, 247, -287, -287, -287, 316, 322, + 333, 404, -287, -287, -287, 0, 7, -287, -17, -287, + -287, 105, -287, -287 }; const short parser::yydefgoto_[] = { - 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, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 223, + 224, 279, 225, 226, 227, 345, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 106, 405, 252, 253, 254, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 32, 107, 200, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 182, 84, 85, 86, 87, 88, + 80, 81, 82, 83, 198, 84, 85, 86, 87, 88, 89, 90, 91, 92 }; const short parser::yytable_[] = { - 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, 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, + 16, 346, 347, 158, 31, 348, 108, 199, 151, 16, + 19, 20, 21, 6, 262, 152, 196, 265, 116, 6, + 1, 2, 3, 4, 5, 278, 33, 26, 96, 6, + 285, 385, 17, 18, 94, 97, 100, 282, 99, 95, + 290, 22, 98, 101, 30, 117, 30, 283, 109, 56, + 28, 126, 275, 27, 29, 151, 6, 170, 127, 386, + 102, 328, 152, 108, 7, 93, 170, 197, 331, 17, + 53, 128, 379, 170, 153, 35, 36, 170, 38, 17, + 53, 127, 6, 42, 43, 44, 45, 112, -215, 35, + 36, 113, 38, 155, 156, 159, 6, 42, 43, 44, + 45, 388, 339, 389, 161, 113, 170, 7, 170, 35, + 36, 157, 38, 221, 222, 160, 6, 42, 43, 44, + 45, 153, 162, 163, 255, 113, 395, 164, 127, 337, + 397, 170, 17, 53, 165, 170, 114, 115, 346, 347, + 421, 166, 348, 434, 435, 170, 17, 53, 170, 170, + 170, 256, 355, 356, 436, 201, 171, 260, 173, 170, + 175, 154, 263, 197, 127, 266, 17, 53, 276, 255, + 146, 147, 148, 281, 255, 272, 144, 145, 146, 147, + 148, 284, 373, 286, 287, 375, 288, 289, 116, 116, + 294, 293, 255, 151, 299, 291, 256, 300, 295, 298, + 152, 256, 260, 305, 401, 306, 403, 260, 307, 127, + 308, 309, 329, 332, 127, 117, 117, 341, 57, 256, + 335, 260, 260, 343, 115, 260, 352, 353, 127, 127, + 357, 400, 127, 358, 359, 151, 151, 103, 360, 380, + 110, 111, 152, 152, 372, 437, 255, 418, 440, 419, + 374, 420, 376, 378, 116, -202, -202, 382, -202, 153, + 384, 394, -202, 396, 118, 409, 127, 154, 450, 451, + 398, -202, 410, 256, -202, 422, 424, 442, 426, 260, + 23, 117, 427, 151, 428, 430, 127, 260, 350, 432, + 152, 119, 438, 447, 127, 169, 408, 443, 121, 444, + 448, 153, 153, 172, 445, 449, 24, 25, 127, 127, + 439, 304, -202, -202, 120, 131, 132, 292, 0, 0, + 0, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 144, 145, 146, 147, 148, 0, 0, 255, 153, + 255, 261, 0, 0, 264, 0, 127, 267, 0, 268, + 0, 270, 0, 0, 271, 0, 0, 122, 0, 0, + 257, 0, 429, 123, 431, 256, 433, 256, 0, 0, + 0, 260, 0, 260, 124, 0, 407, 0, 127, 255, + 127, 116, 255, 0, 280, 0, 0, 258, 0, 0, + 0, 0, 0, 0, 259, 0, 0, 297, 0, 0, + 0, 0, 255, 255, 0, 257, 256, 0, 117, 256, + 257, 0, 260, 0, 260, 260, 0, 0, 0, 127, + 0, 127, 127, 0, 257, 257, 0, 0, 257, 256, + 256, 0, 258, 0, 0, 260, 260, 258, 0, 259, + 0, 0, 127, 127, 259, 125, 0, 0, 0, 0, + 0, 258, 258, 0, 336, 258, 0, 0, 301, 302, + 0, 0, 259, 122, 0, 342, 0, 344, 0, 123, + 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 124, 0, 257, 0, 0, 0, 0, 0, 0, 0, + 257, 0, 0, 0, 0, 0, 0, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 122, 258, + 0, 0, 0, 122, 123, 377, 259, 258, 0, 123, + 0, 0, 0, 0, 349, 124, 0, 122, 122, 0, + 124, 122, 0, 123, 123, 0, 0, 123, 390, 391, + 392, 393, 0, 0, 124, 124, 0, 0, 124, 0, + 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 402, 0, 404, 406, 0, 0, 0, + 0, 0, 0, -194, -194, 0, -194, 0, 0, 0, + -194, 0, 0, 0, 257, 122, 257, -195, -195, -194, + -195, 123, -194, 122, -195, 0, 125, 0, 0, 123, + 0, 125, 124, -195, 0, 0, -195, 441, 0, 0, + 124, 258, 0, 258, 0, 125, 125, 0, 259, 125, + 259, 0, 0, 0, 0, 257, 0, 257, 257, 0, + -194, -194, 0, 0, -196, -196, 0, -196, 0, 0, + 0, -196, 0, 0, -195, -195, 0, 0, 257, 257, + -196, 0, 258, -196, 258, 258, 0, 0, 0, 259, + 0, 349, 259, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 258, 258, 0, 0, 0, + 0, 125, 259, 259, 0, 0, 0, 122, 0, 122, + 0, -196, -196, 123, 0, 123, -197, -197, 0, -197, + 0, 0, 0, -197, 124, 0, 124, 35, 36, 0, + 38, 0, -197, 0, 6, -197, 0, 0, 0, 0, + 0, 0, 0, 149, 0, 0, 150, 0, 122, 0, + 122, 122, 0, 0, 123, 0, 123, 123, 0, 0, + 0, 0, 0, 0, 0, 124, 0, 124, 124, 0, + 0, 122, 122, -197, -197, 0, 0, 123, 123, 0, + 0, 0, 0, 0, 17, 53, 0, 0, 124, 124, + 202, 0, 0, 0, 0, 125, 0, 125, 203, 0, + 0, 204, 205, 206, 0, 207, 208, 209, 210, 0, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 35, + 36, 0, 38, 0, 0, 0, 6, 42, 43, 44, + 45, 0, 0, 157, 220, 113, 125, 0, 125, 125, + 0, 0, 0, 221, 222, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 125, 0, 0, 0, 0, 0, 0, 202, 0, 0, + 0, 0, 0, 0, 0, 203, 17, 53, 204, 205, + 206, 0, 207, 208, 209, 210, 0, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 35, 36, 0, 38, + 0, 0, 0, 6, 42, 43, 44, 45, 0, 0, + 157, 303, 113, 0, 0, 0, 0, 0, 0, 0, + 221, 222, 0, 0, 0, 0, 0, 0, -198, -198, + 0, -198, 0, 0, 0, -198, 0, 0, 0, 0, + 0, 0, 0, 0, -198, 277, 0, -198, 0, 0, + 0, 0, 203, 17, 53, 204, 205, 206, 0, 207, + 208, 209, 210, 0, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 35, 36, 0, 38, 0, 0, 0, + 6, 42, 43, 44, 45, -198, -198, 157, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 221, 222, 0, + 0, 0, 0, 0, 0, -199, -199, 0, -199, 0, + 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, + 0, -199, 338, 0, -199, 0, 0, 0, 0, 203, + 17, 53, 204, 205, 206, 0, 207, 208, 209, 210, + 0, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 35, 36, 34, 38, 0, 0, 0, 6, 42, 43, + 44, 45, -199, -199, 157, 0, 113, 0, 0, 0, + 0, 0, 0, 0, 221, 222, 35, 36, 37, 38, + 39, 40, 41, 6, 42, 43, 44, 45, 46, 334, + 0, 0, 104, 105, 130, 0, 48, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 17, 53, 0, + 0, 0, 49, 50, 0, 34, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 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, 296, 0, -200, -200, 0, -200, 0, 0, 0, + -200, 0, 0, 0, 0, 49, 50, 0, 34, -200, + 0, 0, -200, 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, 47, 0, + -200, -200, 48, 0, 0, 0, -201, -201, 0, -201, + 0, 0, 0, -201, 0, 0, 0, 0, 49, 50, + 0, 34, -201, 0, 0, -201, 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, 104, 0, -201, -201, 48, 0, 0, 0, 310, + 311, 0, 312, 313, 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, 149, 0, + 0, 174, 0, 0, 0, 0, 314, 315, 0, 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, - -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, 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, 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, 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, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 0, 0, 0, 0, 0, 0, 0, 203, 17, + 53, 204, 205, 206, 0, 207, 208, 209, 210, 0, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 35, + 36, 0, 38, 0, 0, 0, 6, 42, 43, 44, + 45, 0, 0, 157, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 221, 222, 35, 36, 0, 38, 0, + 0, 0, 6, 0, 0, 35, 36, 0, 38, 0, + 0, 149, 6, 0, 174, 0, 0, 0, 0, 314, + 315, 149, 0, 0, 174, 0, 17, 53, 0, 0, + 0, 0, 0, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 0, 0, 0, 0, 0, 0, + 0, 167, 17, 53, 0, 0, 168, 0, 0, 0, + 0, 130, 17, 53, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 141, 142, 143, + 144, 145, 146, 147, 148, 412, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 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, 141, 142, 143, 144, 145, 146, 147, 148, 414, + 0, 0, 0, 0, 415, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 416, 0, 0, 0, 0, 417, 0, + 0, 0, 0, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 167, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 130, 0, 0, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 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, 381, 0, 141, 142, 143, 144, 145, 146, 147, + 148, 130, 0, 0, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 383, 0, 141, 142, 143, + 144, 145, 146, 147, 148, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 387, + 0, 141, 142, 143, 144, 145, 146, 147, 148, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 399, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 411, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 130, 0, 0, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 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, 423, 0, 141, 142, 143, 144, 145, 146, 147, + 148, 130, 0, 0, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 425, 0, 141, 142, 143, + 144, 145, 146, 147, 148, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, + 0, 141, 142, 143, 144, 145, 146, 147, 148, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 269, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 274, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 327, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 330, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 333, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 273, 0, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 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, 141, 142, 143, 144, 145, 146, 147, 148, 129, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, + 145, 146, 147, 148, 340, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 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 + 0, 141, 142, 143, 144, 145, 146, 147, 148, 354, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 0, 0, 0, 0, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 131, 132, 0, + 134, 135, 136, 137, 138, 139, 140, 131, 132, 0, + 0, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 131, 132, + 0, 0, 135, 136, 137, 138, 139, 140, 131, 132, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 142, 143, 144, 145, 146, 147, 148, 0, + 0, 0, 142, 0, 144, 145, 146, 147, 148, 131, + 132, 0, 0, 135, 136, 137, 138, 139, 140, 131, + 132, 0, 0, 0, 0, 137, 138, 139, 140, 0, + 0, 0, 0, 0, 0, 144, 145, 146, 147, 148, + 0, 0, 0, 0, 0, 144, 145, 146, 147, 148 }; const short parser::yycheck_[] = { - 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, 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, + 0, 287, 287, 94, 21, 287, 47, 154, 74, 9, + 3, 4, 52, 47, 161, 74, 47, 164, 51, 47, + 11, 12, 13, 14, 15, 202, 26, 52, 56, 47, + 207, 30, 97, 98, 53, 35, 36, 52, 56, 58, + 93, 0, 35, 36, 99, 51, 99, 62, 48, 102, + 62, 51, 53, 78, 62, 121, 47, 58, 51, 58, + 56, 53, 121, 104, 98, 53, 58, 98, 53, 97, + 98, 98, 53, 58, 74, 40, 41, 58, 43, 97, + 98, 74, 47, 48, 49, 50, 51, 52, 60, 40, + 41, 56, 43, 60, 62, 95, 47, 48, 49, 50, + 51, 53, 279, 53, 52, 56, 58, 98, 58, 40, + 41, 54, 43, 64, 65, 56, 47, 48, 49, 50, + 51, 121, 60, 56, 157, 56, 53, 52, 121, 276, + 53, 58, 97, 98, 60, 58, 101, 102, 424, 424, + 53, 56, 424, 53, 53, 58, 97, 98, 58, 58, + 58, 157, 299, 300, 53, 155, 57, 157, 56, 58, + 60, 52, 162, 98, 157, 165, 97, 98, 52, 202, + 94, 95, 96, 62, 207, 175, 92, 93, 94, 95, + 96, 52, 329, 52, 52, 332, 52, 52, 221, 222, + 62, 61, 225, 259, 52, 212, 202, 52, 62, 62, + 259, 207, 202, 62, 381, 62, 383, 207, 62, 202, + 62, 62, 52, 52, 207, 221, 222, 53, 27, 225, + 57, 221, 222, 27, 102, 225, 61, 61, 221, 222, + 52, 378, 225, 52, 52, 301, 302, 46, 52, 62, + 49, 50, 301, 302, 57, 422, 279, 394, 425, 396, + 57, 398, 57, 52, 287, 40, 41, 52, 43, 259, + 62, 52, 47, 52, 51, 62, 259, 52, 445, 446, + 52, 56, 62, 279, 59, 25, 62, 53, 30, 279, + 9, 287, 62, 349, 62, 62, 279, 287, 288, 62, + 349, 51, 62, 62, 287, 104, 387, 53, 51, 53, + 62, 301, 302, 112, 53, 62, 9, 9, 301, 302, + 424, 225, 97, 98, 51, 66, 67, 212, -1, -1, + -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 92, 93, 94, 95, 96, -1, -1, 381, 349, + 383, 160, -1, -1, 163, -1, 349, 166, -1, 168, + -1, 170, -1, -1, 173, -1, -1, 51, -1, -1, + 157, -1, 413, 51, 415, 381, 417, 383, -1, -1, + -1, 381, -1, 383, 51, -1, 386, -1, 381, 422, + 383, 424, 425, -1, 203, -1, -1, 157, -1, -1, + -1, -1, -1, -1, 157, -1, -1, 216, -1, -1, + -1, -1, 445, 446, -1, 202, 422, -1, 424, 425, + 207, -1, 422, -1, 424, 425, -1, -1, -1, 422, + -1, 424, 425, -1, 221, 222, -1, -1, 225, 445, + 446, -1, 202, -1, -1, 445, 446, 207, -1, 202, + -1, -1, 445, 446, 207, 51, -1, -1, -1, -1, + -1, 221, 222, -1, 273, 225, -1, -1, 221, 222, + -1, -1, 225, 157, -1, 284, -1, 286, -1, 157, + 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 157, -1, 279, -1, -1, -1, -1, -1, -1, -1, + 287, -1, -1, -1, -1, -1, -1, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 202, 279, + -1, -1, -1, 207, 202, 334, 279, 287, -1, 207, + -1, -1, -1, -1, 287, 202, -1, 221, 222, -1, + 207, 225, -1, 221, 222, -1, -1, 225, 357, 358, + 359, 360, -1, -1, 221, 222, -1, -1, 225, -1, + -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 382, -1, 384, 385, -1, -1, -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, + 47, -1, -1, -1, 381, 279, 383, 40, 41, 56, + 43, 279, 59, 287, 47, -1, 202, -1, -1, 287, + -1, 207, 279, 56, -1, -1, 59, 426, -1, -1, + 287, 381, -1, 383, -1, 221, 222, -1, 381, 225, + 383, -1, -1, -1, -1, 422, -1, 424, 425, -1, + 97, 98, -1, -1, 40, 41, -1, 43, -1, -1, + -1, 47, -1, -1, 97, 98, -1, -1, 445, 446, + 56, -1, 422, 59, 424, 425, -1, -1, -1, 422, + -1, 424, 425, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 279, -1, 445, 446, -1, -1, -1, + -1, 287, 445, 446, -1, -1, -1, 381, -1, 383, + -1, 97, 98, 381, -1, 383, 40, 41, -1, 43, + -1, -1, -1, 47, 381, -1, 383, 40, 41, -1, + 43, -1, 56, -1, 47, 59, -1, -1, -1, -1, + -1, -1, -1, 56, -1, -1, 59, -1, 422, -1, + 424, 425, -1, -1, 422, -1, 424, 425, -1, -1, + -1, -1, -1, -1, -1, 422, -1, 424, 425, -1, + -1, 445, 446, 97, 98, -1, -1, 445, 446, -1, + -1, -1, -1, -1, 97, 98, -1, -1, 445, 446, + 11, -1, -1, -1, -1, 381, -1, 383, 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, 54, 55, 56, 422, -1, 424, 425, + -1, -1, -1, 64, 65, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 445, + 446, -1, -1, -1, -1, -1, -1, 11, -1, -1, + -1, -1, -1, -1, -1, 19, 97, 98, 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, + 54, 55, 56, -1, -1, -1, -1, -1, -1, -1, + 64, 65, -1, -1, -1, -1, -1, -1, 40, 41, + -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, 56, 12, -1, 59, -1, -1, + -1, -1, 19, 97, 98, 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, 97, 98, 54, -1, 56, + -1, -1, -1, -1, -1, -1, -1, 64, 65, -1, + -1, -1, -1, -1, -1, 40, 41, -1, 43, -1, + -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, + -1, 56, 12, -1, 59, -1, -1, -1, -1, 19, + 97, 98, 22, 23, 24, -1, 26, 27, 28, 29, + -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 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, 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, 60, + -1, 62, -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, + 97, 98, 60, -1, -1, -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, 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, 43, -1, -1, 93, 47, + -1, 96, 97, 98, 99, 100, 101, 102, 56, -1, + -1, 59, -1, -1, -1, -1, 64, 65, -1, -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, 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, - 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, - 36, 37, 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, -1, 64, 65, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, - -1, -1, 56, 12, -1, 59, -1, -1, -1, -1, - 19, 97, 98, 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, 97, 98, 54, -1, 56, -1, -1, - -1, -1, -1, -1, -1, 64, 65, -1, -1, -1, - -1, -1, -1, 40, 41, -1, 43, -1, -1, -1, - 47, -1, -1, -1, -1, -1, -1, -1, -1, 56, - 12, -1, 59, -1, -1, -1, -1, 19, 97, 98, - 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 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, -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, -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, 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, - 43, -1, -1, 93, 47, -1, 96, 97, 98, 99, - 100, 101, 102, 56, -1, -1, 59, -1, -1, -1, - -1, 64, 65, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, - -1, -1, -1, 19, 97, 98, 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, 54, -1, - 56, -1, -1, -1, -1, -1, -1, 53, 64, 65, - -1, -1, 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, 97, 98, 89, 90, 91, 92, 93, 94, 95, - 96, 53, -1, -1, -1, -1, 58, -1, -1, -1, - -1, 63, -1, -1, 66, 67, 68, 69, 70, 71, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, -1, -1, -1, -1, -1, -1, -1, 19, 97, + 98, 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, 54, -1, 56, -1, -1, -1, -1, + -1, -1, -1, 64, 65, 40, 41, -1, 43, -1, + -1, -1, 47, -1, -1, 40, 41, -1, 43, -1, + -1, 56, 47, -1, 59, -1, -1, -1, -1, 64, + 65, 56, -1, -1, 59, -1, 97, 98, -1, -1, + -1, -1, -1, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, + -1, 53, 97, 98, -1, -1, 58, -1, -1, -1, + -1, 63, 97, 98, 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, 53, -1, -1, -1, -1, @@ -4324,8 +4376,9 @@ namespace xsk { namespace gsc { namespace h1 { -1, -1, -1, -1, 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, 53, -1, 89, 90, 91, 92, 93, - 94, 95, 96, 63, -1, -1, 66, 67, 68, 69, + -1, -1, -1, -1, -1, 89, 90, 91, 92, 93, + 94, 95, 96, 53, -1, -1, -1, -1, 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, 53, -1, 89, 90, 91, 92, 93, 94, 95, 96, 63, -1, -1, @@ -4351,60 +4404,62 @@ namespace xsk { namespace gsc { namespace h1 { -1, 53, -1, 89, 90, 91, 92, 93, 94, 95, 96, 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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 58, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 53, -1, 89, 90, 91, + 92, 93, 94, 95, 96, 63, -1, -1, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, + -1, 89, 90, 91, 92, 93, 94, 95, 96, 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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 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, 61, -1, 63, -1, -1, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, + 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, -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, 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, 66, + -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, - 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 + 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 @@ -4413,48 +4468,49 @@ namespace xsk { namespace gsc { namespace h1 { 0, 11, 12, 13, 14, 15, 47, 98, 114, 115, 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, + 99, 191, 169, 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, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 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, + 188, 189, 56, 153, 56, 57, 153, 170, 171, 188, + 153, 153, 52, 56, 101, 102, 164, 165, 173, 174, + 176, 177, 181, 182, 183, 184, 188, 189, 98, 62, + 63, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 89, 90, 91, 92, 93, 94, 95, 96, 56, + 59, 166, 167, 188, 52, 60, 62, 54, 127, 188, + 56, 52, 60, 56, 52, 60, 56, 53, 58, 153, + 58, 57, 153, 56, 59, 60, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 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 + 153, 153, 153, 153, 153, 153, 47, 98, 187, 170, + 171, 188, 11, 19, 22, 23, 24, 26, 27, 28, + 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 55, 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, 164, 165, 173, 174, 177, + 188, 153, 170, 188, 153, 170, 188, 153, 153, 57, + 153, 153, 188, 61, 57, 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, 177, 177, 55, 123, 62, 62, 62, 62, 62, + 17, 18, 20, 21, 64, 65, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 57, 53, 52, + 57, 53, 52, 57, 58, 57, 153, 170, 12, 122, + 62, 53, 153, 27, 153, 128, 155, 156, 157, 177, + 188, 153, 61, 61, 62, 170, 170, 52, 52, 52, + 52, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 57, 170, 57, 170, 57, 153, 52, 53, + 62, 53, 52, 53, 62, 30, 58, 53, 53, 53, + 153, 153, 153, 153, 52, 53, 52, 53, 52, 53, + 170, 122, 153, 122, 153, 154, 153, 188, 127, 62, + 62, 53, 53, 58, 53, 58, 53, 58, 170, 170, + 170, 53, 25, 53, 62, 53, 30, 62, 62, 171, + 62, 171, 62, 171, 53, 53, 53, 122, 62, 128, + 122, 153, 53, 53, 53, 53, 53, 62, 62, 62, + 122, 122 }; const unsigned char @@ -4476,13 +4532,13 @@ namespace xsk { namespace gsc { namespace h1 { 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, 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 + 161, 162, 162, 162, 162, 163, 164, 164, 165, 165, + 166, 166, 166, 166, 166, 166, 167, 167, 167, 167, + 168, 169, 169, 169, 170, 170, 171, 171, 172, 172, + 173, 174, 175, 176, 177, 177, 177, 177, 177, 177, + 177, 177, 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 @@ -4504,13 +4560,13 @@ namespace xsk { namespace gsc { namespace h1 { 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, - 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 + 2, 2, 2, 2, 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 }; @@ -4536,13 +4592,13 @@ namespace xsk { namespace gsc { namespace h1 { 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 + 645, 650, 652, 654, 656, 661, 666, 667, 670, 671, + 675, 677, 679, 681, 683, 685, 690, 692, 694, 696, + 701, 706, 708, 711, 715, 718, 722, 724, 729, 731, + 736, 741, 746, 751, 756, 757, 758, 759, 760, 761, + 762, 763, 764, 768, 773, 778, 783, 788, 793, 798, + 803, 808, 813, 818, 820, 825, 827, 832, 837, 842, + 847, 849, 854, 856, 861, 866 }; void @@ -4575,9 +4631,9 @@ namespace xsk { namespace gsc { namespace h1 { #line 13 "parser.ypp" } } } // xsk::gsc::h1 -#line 4579 "parser.cpp" +#line 4635 "parser.cpp" -#line 864 "parser.ypp" +#line 870 "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 fd955bb3..becf0186 100644 --- a/src/h1/xsk/parser.hpp +++ b/src/h1/xsk/parser.hpp @@ -447,7 +447,6 @@ namespace xsk { namespace gsc { namespace h1 { // expr_binary // expr_primitive // expr_object - // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -506,134 +505,137 @@ namespace xsk { namespace gsc { namespace h1 { // expr_method char dummy24[sizeof (ast::expr_method::ptr)]; + // expr_negate + char dummy25[sizeof (ast::expr_negate::ptr)]; + // expr_not - char dummy25[sizeof (ast::expr_not::ptr)]; + char dummy26[sizeof (ast::expr_not::ptr)]; // expr_parameters - char dummy26[sizeof (ast::expr_parameters::ptr)]; + char dummy27[sizeof (ast::expr_parameters::ptr)]; // expr_paren - char dummy27[sizeof (ast::expr_paren::ptr)]; + char dummy28[sizeof (ast::expr_paren::ptr)]; // expr_path - char dummy28[sizeof (ast::expr_path::ptr)]; + char dummy29[sizeof (ast::expr_path::ptr)]; // expr_reference - char dummy29[sizeof (ast::expr_reference::ptr)]; + char dummy30[sizeof (ast::expr_reference::ptr)]; // expr_self - char dummy30[sizeof (ast::expr_self::ptr)]; + char dummy31[sizeof (ast::expr_self::ptr)]; // expr_size - char dummy31[sizeof (ast::expr_size::ptr)]; + char dummy32[sizeof (ast::expr_size::ptr)]; // expr_string - char dummy32[sizeof (ast::expr_string::ptr)]; + char dummy33[sizeof (ast::expr_string::ptr)]; // expr_thisthread - char dummy33[sizeof (ast::expr_thisthread::ptr)]; + char dummy34[sizeof (ast::expr_thisthread::ptr)]; // expr_true - char dummy34[sizeof (ast::expr_true::ptr)]; + char dummy35[sizeof (ast::expr_true::ptr)]; // expr_undefined - char dummy35[sizeof (ast::expr_undefined::ptr)]; + char dummy36[sizeof (ast::expr_undefined::ptr)]; // expr_vector - char dummy36[sizeof (ast::expr_vector::ptr)]; + char dummy37[sizeof (ast::expr_vector::ptr)]; // include - char dummy37[sizeof (ast::include::ptr)]; + char dummy38[sizeof (ast::include::ptr)]; // program - char dummy38[sizeof (ast::program::ptr)]; + char dummy39[sizeof (ast::program::ptr)]; // stmt // stmt_or_dev - char dummy39[sizeof (ast::stmt)]; + char dummy40[sizeof (ast::stmt)]; // stmt_assign - char dummy40[sizeof (ast::stmt_assign::ptr)]; + char dummy41[sizeof (ast::stmt_assign::ptr)]; // stmt_break - char dummy41[sizeof (ast::stmt_break::ptr)]; + char dummy42[sizeof (ast::stmt_break::ptr)]; // stmt_breakpoint - char dummy42[sizeof (ast::stmt_breakpoint::ptr)]; + char dummy43[sizeof (ast::stmt_breakpoint::ptr)]; // stmt_call - char dummy43[sizeof (ast::stmt_call::ptr)]; + char dummy44[sizeof (ast::stmt_call::ptr)]; // stmt_case - char dummy44[sizeof (ast::stmt_case::ptr)]; + char dummy45[sizeof (ast::stmt_case::ptr)]; // stmt_continue - char dummy45[sizeof (ast::stmt_continue::ptr)]; + char dummy46[sizeof (ast::stmt_continue::ptr)]; // stmt_default - char dummy46[sizeof (ast::stmt_default::ptr)]; + char dummy47[sizeof (ast::stmt_default::ptr)]; // stmt_dev - char dummy47[sizeof (ast::stmt_dev::ptr)]; + char dummy48[sizeof (ast::stmt_dev::ptr)]; // stmt_dowhile - char dummy48[sizeof (ast::stmt_dowhile::ptr)]; + char dummy49[sizeof (ast::stmt_dowhile::ptr)]; // stmt_endon - char dummy49[sizeof (ast::stmt_endon::ptr)]; + char dummy50[sizeof (ast::stmt_endon::ptr)]; // stmt_expr - char dummy50[sizeof (ast::stmt_expr::ptr)]; + char dummy51[sizeof (ast::stmt_expr::ptr)]; // stmt_for - char dummy51[sizeof (ast::stmt_for::ptr)]; + char dummy52[sizeof (ast::stmt_for::ptr)]; // stmt_foreach - char dummy52[sizeof (ast::stmt_foreach::ptr)]; + char dummy53[sizeof (ast::stmt_foreach::ptr)]; // stmt_if - char dummy53[sizeof (ast::stmt_if::ptr)]; + char dummy54[sizeof (ast::stmt_if::ptr)]; // stmt_ifelse - char dummy54[sizeof (ast::stmt_ifelse::ptr)]; + char dummy55[sizeof (ast::stmt_ifelse::ptr)]; // stmt_list // stmt_or_dev_list // stmt_block - char dummy55[sizeof (ast::stmt_list::ptr)]; + char dummy56[sizeof (ast::stmt_list::ptr)]; // stmt_notify - char dummy56[sizeof (ast::stmt_notify::ptr)]; + char dummy57[sizeof (ast::stmt_notify::ptr)]; // stmt_prof_begin - char dummy57[sizeof (ast::stmt_prof_begin::ptr)]; + char dummy58[sizeof (ast::stmt_prof_begin::ptr)]; // stmt_prof_end - char dummy58[sizeof (ast::stmt_prof_end::ptr)]; + char dummy59[sizeof (ast::stmt_prof_end::ptr)]; // stmt_return - char dummy59[sizeof (ast::stmt_return::ptr)]; + char dummy60[sizeof (ast::stmt_return::ptr)]; // stmt_switch - char dummy60[sizeof (ast::stmt_switch::ptr)]; + char dummy61[sizeof (ast::stmt_switch::ptr)]; // stmt_wait - char dummy61[sizeof (ast::stmt_wait::ptr)]; + char dummy62[sizeof (ast::stmt_wait::ptr)]; // stmt_waitframe - char dummy62[sizeof (ast::stmt_waitframe::ptr)]; + char dummy63[sizeof (ast::stmt_waitframe::ptr)]; // stmt_waittill - char dummy63[sizeof (ast::stmt_waittill::ptr)]; + char dummy64[sizeof (ast::stmt_waittill::ptr)]; // stmt_waittillframeend - char dummy64[sizeof (ast::stmt_waittillframeend::ptr)]; + char dummy65[sizeof (ast::stmt_waittillframeend::ptr)]; // stmt_waittillmatch - char dummy65[sizeof (ast::stmt_waittillmatch::ptr)]; + char dummy66[sizeof (ast::stmt_waittillmatch::ptr)]; // stmt_while - char dummy66[sizeof (ast::stmt_while::ptr)]; + char dummy67[sizeof (ast::stmt_while::ptr)]; // "path" // "identifier" @@ -641,7 +643,7 @@ namespace xsk { namespace gsc { namespace h1 { // "localized string" // "float" // "integer" - char dummy67[sizeof (std::string)]; + char dummy68[sizeof (std::string)]; }; /// The size of the largest semantic type. @@ -984,31 +986,31 @@ namespace xsk { namespace gsc { namespace h1 { S_expr_binary = 159, // expr_binary S_expr_primitive = 160, // expr_primitive S_expr_complement = 161, // expr_complement - S_expr_not = 162, // expr_not - S_expr_call = 163, // expr_call - S_expr_method = 164, // expr_method - S_expr_function = 165, // expr_function - S_expr_pointer = 166, // expr_pointer - S_expr_add_array = 167, // expr_add_array - S_expr_parameters = 168, // expr_parameters - S_expr_arguments = 169, // expr_arguments - S_expr_arguments_no_empty = 170, // expr_arguments_no_empty - S_expr_reference = 171, // expr_reference - S_expr_array = 172, // expr_array - S_expr_field = 173, // expr_field - S_expr_size = 174, // expr_size - S_expr_paren = 175, // expr_paren - S_expr_object = 176, // expr_object - S_expr_thisthread = 177, // expr_thisthread - S_expr_empty_array = 178, // expr_empty_array - S_expr_undefined = 179, // expr_undefined - S_expr_game = 180, // expr_game - S_expr_self = 181, // expr_self - S_expr_anim = 182, // expr_anim - S_expr_level = 183, // expr_level - S_expr_animation = 184, // expr_animation - S_expr_animtree = 185, // expr_animtree - S_expr_identifier_neg = 186, // expr_identifier_neg + S_expr_negate = 162, // expr_negate + S_expr_not = 163, // expr_not + S_expr_call = 164, // expr_call + S_expr_method = 165, // expr_method + S_expr_function = 166, // expr_function + S_expr_pointer = 167, // expr_pointer + S_expr_add_array = 168, // expr_add_array + S_expr_parameters = 169, // expr_parameters + S_expr_arguments = 170, // expr_arguments + S_expr_arguments_no_empty = 171, // expr_arguments_no_empty + S_expr_reference = 172, // expr_reference + S_expr_array = 173, // expr_array + S_expr_field = 174, // expr_field + S_expr_size = 175, // expr_size + S_expr_paren = 176, // expr_paren + S_expr_object = 177, // expr_object + S_expr_thisthread = 178, // expr_thisthread + S_expr_empty_array = 179, // expr_empty_array + S_expr_undefined = 180, // expr_undefined + S_expr_game = 181, // expr_game + S_expr_self = 182, // expr_self + S_expr_anim = 183, // expr_anim + S_expr_level = 184, // expr_level + S_expr_animation = 185, // expr_animation + S_expr_animtree = 186, // expr_animtree S_expr_identifier_nosize = 187, // expr_identifier_nosize S_expr_identifier = 188, // expr_identifier S_expr_path = 189, // expr_path @@ -1085,7 +1087,6 @@ 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; @@ -1163,6 +1164,10 @@ namespace xsk { namespace gsc { namespace h1 { value.move< ast::expr_method::ptr > (std::move (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (std::move (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (std::move (that.value)); break; @@ -1702,6 +1707,20 @@ namespace xsk { namespace gsc { namespace h1 { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, ast::expr_negate::ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const ast::expr_negate::ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ast::expr_not::ptr&& v, location_type&& l) : Base (t) @@ -2358,7 +2377,6 @@ 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; @@ -2436,6 +2454,10 @@ switch (yykind) value.template destroy< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + value.template destroy< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not value.template destroy< ast::expr_not::ptr > (); break; @@ -4817,7 +4839,7 @@ switch (yykind) /// Constants. enum { - yylast_ = 2310, ///< Last index in yytable_. + yylast_ = 2419, ///< Last index in yytable_. yynnts_ = 84, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4875,7 +4897,6 @@ 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; @@ -4953,6 +4974,10 @@ switch (yykind) value.copy< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -5194,7 +5219,6 @@ 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; @@ -5272,6 +5296,10 @@ switch (yykind) value.move< ast::expr_method::ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (s.value)); break; @@ -5519,7 +5547,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::h1 -#line 5523 "parser.hpp" +#line 5551 "parser.hpp" diff --git a/src/h2/xsk/compiler.cpp b/src/h2/xsk/compiler.cpp index b8bc5fa2..00ef6722 100644 --- a/src/h2/xsk/compiler.cpp +++ b/src/h2/xsk/compiler.cpp @@ -946,6 +946,9 @@ void compiler::emit_expr(const ast::expr& expr, const block::ptr& blk) case ast::kind::expr_complement: emit_expr_complement(expr.as_complement, blk); break; + case ast::kind::expr_negate: + emit_expr_negate(expr.as_negate, blk); + break; case ast::kind::expr_not: emit_expr_not(expr.as_not, blk); break; @@ -1259,6 +1262,13 @@ void compiler::emit_expr_complement(const ast::expr_complement::ptr& expr, const emit_opcode(opcode::OP_BoolComplement); } +void compiler::emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk) +{ + emit_opcode(opcode::OP_GetZero); + emit_expr(expr->rvalue, blk); + emit_opcode(opcode::OP_minus); +} + void compiler::emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk) { emit_expr(expr->rvalue, blk); diff --git a/src/h2/xsk/compiler.hpp b/src/h2/xsk/compiler.hpp index d86c68df..e5f986dd 100644 --- a/src/h2/xsk/compiler.hpp +++ b/src/h2/xsk/compiler.hpp @@ -83,6 +83,7 @@ private: void emit_expr_and(const ast::expr_and::ptr& expr, const block::ptr& blk); void emit_expr_or(const ast::expr_or::ptr& expr, const block::ptr& blk); void emit_expr_complement(const ast::expr_complement::ptr& expr, const block::ptr& blk); + void emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk); void emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk); void emit_expr_call(const ast::expr_call::ptr& expr, const block::ptr& blk, bool is_stmt); void emit_expr_call_pointer(const ast::expr_pointer::ptr& expr, const block::ptr& blk, bool is_stmt); diff --git a/src/h2/xsk/parser.cpp b/src/h2/xsk/parser.cpp index 5e769ad0..202894b6 100644 --- a/src/h2/xsk/parser.cpp +++ b/src/h2/xsk/parser.cpp @@ -245,7 +245,6 @@ 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; @@ -323,6 +322,10 @@ namespace xsk { namespace gsc { namespace h2 { value.YY_MOVE_OR_COPY< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.YY_MOVE_OR_COPY< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.YY_MOVE_OR_COPY< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -548,7 +551,6 @@ 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; @@ -626,6 +628,10 @@ namespace xsk { namespace gsc { namespace h2 { value.move< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -851,7 +857,6 @@ 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; @@ -929,6 +934,10 @@ namespace xsk { namespace gsc { namespace h2 { value.copy< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (that.value); break; @@ -1153,7 +1162,6 @@ 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; @@ -1231,6 +1239,10 @@ namespace xsk { namespace gsc { namespace h2 { value.move< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (that.value); break; @@ -1710,7 +1722,6 @@ 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; @@ -1788,6 +1799,10 @@ namespace xsk { namespace gsc { namespace h2 { yylhs.value.emplace< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + yylhs.value.emplace< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not yylhs.value.emplace< ast::expr_not::ptr > (); break; @@ -1991,1331 +2006,1349 @@ namespace xsk { namespace gsc { namespace h2 { case 2: // root: program #line 260 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1995 "parser.cpp" +#line 2010 "parser.cpp" break; case 3: // root: %empty #line 261 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 2001 "parser.cpp" +#line 2016 "parser.cpp" break; case 4: // program: program inline #line 266 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2007 "parser.cpp" +#line 2022 "parser.cpp" break; case 5: // program: program include #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 2013 "parser.cpp" +#line 2028 "parser.cpp" break; case 6: // program: program declaration #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 2019 "parser.cpp" +#line 2034 "parser.cpp" break; case 7: // program: inline #line 272 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2025 "parser.cpp" +#line 2040 "parser.cpp" break; case 8: // program: include #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 2031 "parser.cpp" +#line 2046 "parser.cpp" break; case 9: // program: declaration #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 2037 "parser.cpp" +#line 2052 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" #line 280 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2043 "parser.cpp" +#line 2058 "parser.cpp" break; case 11: // include: "#include" expr_path ";" #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 2049 "parser.cpp" +#line 2064 "parser.cpp" break; case 12: // declaration: "/#" #line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2055 "parser.cpp" +#line 2070 "parser.cpp" break; case 13: // declaration: "#/" #line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2061 "parser.cpp" +#line 2076 "parser.cpp" break; case 14: // declaration: decl_usingtree #line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2067 "parser.cpp" +#line 2082 "parser.cpp" break; case 15: // declaration: decl_constant #line 292 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2073 "parser.cpp" +#line 2088 "parser.cpp" break; case 16: // declaration: decl_thread #line 293 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2079 "parser.cpp" +#line 2094 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" #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 2085 "parser.cpp" +#line 2100 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" #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 2091 "parser.cpp" +#line 2106 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block #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 2097 "parser.cpp" +#line 2112 "parser.cpp" break; case 20: // stmt: stmt_block #line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2103 "parser.cpp" +#line 2118 "parser.cpp" break; case 21: // stmt: stmt_call #line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2109 "parser.cpp" +#line 2124 "parser.cpp" break; case 22: // stmt: stmt_assign #line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2115 "parser.cpp" +#line 2130 "parser.cpp" break; case 23: // stmt: stmt_endon #line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2121 "parser.cpp" +#line 2136 "parser.cpp" break; case 24: // stmt: stmt_notify #line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2127 "parser.cpp" +#line 2142 "parser.cpp" break; case 25: // stmt: stmt_wait #line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2133 "parser.cpp" +#line 2148 "parser.cpp" break; case 26: // stmt: stmt_waittill #line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2139 "parser.cpp" +#line 2154 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch #line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2145 "parser.cpp" +#line 2160 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend #line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2151 "parser.cpp" +#line 2166 "parser.cpp" break; case 29: // stmt: stmt_waitframe #line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waitframe = std::move(yystack_[0].value.as < ast::stmt_waitframe::ptr > ()); } -#line 2157 "parser.cpp" +#line 2172 "parser.cpp" break; case 30: // stmt: stmt_if #line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2163 "parser.cpp" +#line 2178 "parser.cpp" break; case 31: // stmt: stmt_ifelse #line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2169 "parser.cpp" +#line 2184 "parser.cpp" break; case 32: // stmt: stmt_while #line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2175 "parser.cpp" +#line 2190 "parser.cpp" break; case 33: // stmt: stmt_dowhile #line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2181 "parser.cpp" +#line 2196 "parser.cpp" break; case 34: // stmt: stmt_for #line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2187 "parser.cpp" +#line 2202 "parser.cpp" break; case 35: // stmt: stmt_foreach #line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2193 "parser.cpp" +#line 2208 "parser.cpp" break; case 36: // stmt: stmt_switch #line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2199 "parser.cpp" +#line 2214 "parser.cpp" break; case 37: // stmt: stmt_case #line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2205 "parser.cpp" +#line 2220 "parser.cpp" break; case 38: // stmt: stmt_default #line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2211 "parser.cpp" +#line 2226 "parser.cpp" break; case 39: // stmt: stmt_break #line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2217 "parser.cpp" +#line 2232 "parser.cpp" break; case 40: // stmt: stmt_continue #line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2223 "parser.cpp" +#line 2238 "parser.cpp" break; case 41: // stmt: stmt_return #line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2229 "parser.cpp" +#line 2244 "parser.cpp" break; case 42: // stmt: stmt_breakpoint #line 334 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2235 "parser.cpp" +#line 2250 "parser.cpp" break; case 43: // stmt: stmt_prof_begin #line 335 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2241 "parser.cpp" +#line 2256 "parser.cpp" break; case 44: // stmt: stmt_prof_end #line 336 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2247 "parser.cpp" +#line 2262 "parser.cpp" break; case 45: // stmt_or_dev: stmt #line 340 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2253 "parser.cpp" +#line 2268 "parser.cpp" break; case 46: // stmt_or_dev: stmt_dev #line 341 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2259 "parser.cpp" +#line 2274 "parser.cpp" break; case 47: // stmt_list: stmt_list stmt #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 2265 "parser.cpp" +#line 2280 "parser.cpp" break; case 48: // stmt_list: stmt #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 2271 "parser.cpp" +#line 2286 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev #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 2277 "parser.cpp" +#line 2292 "parser.cpp" break; case 50: // stmt_or_dev_list: stmt_or_dev #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 2283 "parser.cpp" +#line 2298 "parser.cpp" break; case 51: // stmt_dev: "/#" stmt_list "#/" #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 2289 "parser.cpp" +#line 2304 "parser.cpp" break; case 52: // stmt_dev: "/#" "#/" #line 360 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2295 "parser.cpp" +#line 2310 "parser.cpp" break; case 53: // stmt_block: "{" stmt_or_dev_list "}" #line 364 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2301 "parser.cpp" +#line 2316 "parser.cpp" break; case 54: // stmt_block: "{" "}" #line 365 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2307 "parser.cpp" +#line 2322 "parser.cpp" break; case 55: // stmt_expr: expr_assign #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 2313 "parser.cpp" +#line 2328 "parser.cpp" break; case 56: // stmt_expr: expr_increment #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 2319 "parser.cpp" +#line 2334 "parser.cpp" break; case 57: // stmt_expr: expr_decrement #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 2325 "parser.cpp" +#line 2340 "parser.cpp" break; case 58: // stmt_expr: %empty #line 376 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2331 "parser.cpp" +#line 2346 "parser.cpp" break; case 59: // stmt_call: expr_call ";" #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 2337 "parser.cpp" +#line 2352 "parser.cpp" break; case 60: // stmt_call: expr_method ";" #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 2343 "parser.cpp" +#line 2358 "parser.cpp" break; case 61: // stmt_assign: expr_assign ";" #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 2349 "parser.cpp" +#line 2364 "parser.cpp" break; case 62: // stmt_assign: expr_increment ";" #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 2355 "parser.cpp" +#line 2370 "parser.cpp" break; case 63: // stmt_assign: expr_decrement ";" #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 2361 "parser.cpp" +#line 2376 "parser.cpp" break; case 64: // stmt_endon: expr_object "endon" "(" expr ")" ";" #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 2367 "parser.cpp" +#line 2382 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" #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 2373 "parser.cpp" +#line 2388 "parser.cpp" break; case 66: // stmt_notify: expr_object "notify" "(" expr ")" ";" #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 2379 "parser.cpp" +#line 2394 "parser.cpp" break; case 67: // stmt_wait: "wait" expr ";" #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 2385 "parser.cpp" +#line 2400 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" #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 2391 "parser.cpp" +#line 2406 "parser.cpp" break; case 69: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" #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 2397 "parser.cpp" +#line 2412 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" #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 2403 "parser.cpp" +#line 2418 "parser.cpp" break; case 71: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" #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 2409 "parser.cpp" +#line 2424 "parser.cpp" break; case 72: // stmt_waittillframeend: "waittillframeend" ";" #line 428 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2415 "parser.cpp" +#line 2430 "parser.cpp" break; case 73: // stmt_waitframe: "waitframe" ";" #line 433 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2421 "parser.cpp" +#line 2436 "parser.cpp" break; case 74: // stmt_waitframe: "waitframe" "(" ")" ";" #line 435 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2427 "parser.cpp" +#line 2442 "parser.cpp" break; case 75: // stmt_if: "if" "(" expr ")" stmt #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 2433 "parser.cpp" +#line 2448 "parser.cpp" break; case 76: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt #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 2439 "parser.cpp" +#line 2454 "parser.cpp" break; case 77: // stmt_while: "while" "(" expr ")" stmt #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 2445 "parser.cpp" +#line 2460 "parser.cpp" break; case 78: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" #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 2451 "parser.cpp" +#line 2466 "parser.cpp" break; case 79: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt #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 2457 "parser.cpp" +#line 2472 "parser.cpp" break; case 80: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt #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 2463 "parser.cpp" +#line 2478 "parser.cpp" break; case 81: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt #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 2469 "parser.cpp" +#line 2484 "parser.cpp" break; case 82: // stmt_switch: "switch" "(" expr ")" stmt_block #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 2475 "parser.cpp" +#line 2490 "parser.cpp" break; case 83: // stmt_case: "case" expr_integer ":" #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 2481 "parser.cpp" +#line 2496 "parser.cpp" break; case 84: // stmt_case: "case" expr_string ":" #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 2487 "parser.cpp" +#line 2502 "parser.cpp" break; case 85: // stmt_default: "default" ":" #line 484 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2493 "parser.cpp" +#line 2508 "parser.cpp" break; case 86: // stmt_break: "break" ";" #line 489 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2499 "parser.cpp" +#line 2514 "parser.cpp" break; case 87: // stmt_continue: "continue" ";" #line 494 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2505 "parser.cpp" +#line 2520 "parser.cpp" break; case 88: // stmt_return: "return" expr ";" #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 2511 "parser.cpp" +#line 2526 "parser.cpp" break; case 89: // stmt_return: "return" ";" #line 501 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2517 "parser.cpp" +#line 2532 "parser.cpp" break; case 90: // stmt_breakpoint: "breakpoint" ";" #line 506 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2523 "parser.cpp" +#line 2538 "parser.cpp" break; case 91: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" #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 2529 "parser.cpp" +#line 2544 "parser.cpp" break; case 92: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" #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 2535 "parser.cpp" +#line 2550 "parser.cpp" break; case 93: // expr: expr_ternary #line 520 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2541 "parser.cpp" +#line 2556 "parser.cpp" break; case 94: // expr: expr_binary #line 521 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2547 "parser.cpp" +#line 2562 "parser.cpp" break; case 95: // expr: expr_primitive #line 522 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2553 "parser.cpp" +#line 2568 "parser.cpp" break; case 96: // expr_or_empty: expr #line 526 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2559 "parser.cpp" +#line 2574 "parser.cpp" break; case 97: // expr_or_empty: %empty #line 527 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2565 "parser.cpp" +#line 2580 "parser.cpp" break; case 98: // expr_assign: expr_object "=" expr #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 2571 "parser.cpp" +#line 2586 "parser.cpp" break; case 99: // expr_assign: expr_object "|=" expr #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 2577 "parser.cpp" +#line 2592 "parser.cpp" break; case 100: // expr_assign: expr_object "&=" expr #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 2583 "parser.cpp" +#line 2598 "parser.cpp" break; case 101: // expr_assign: expr_object "^=" expr #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 2589 "parser.cpp" +#line 2604 "parser.cpp" break; case 102: // expr_assign: expr_object "<<=" expr #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 2595 "parser.cpp" +#line 2610 "parser.cpp" break; case 103: // expr_assign: expr_object ">>=" expr #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 2601 "parser.cpp" +#line 2616 "parser.cpp" break; case 104: // expr_assign: expr_object "+=" expr #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 2607 "parser.cpp" +#line 2622 "parser.cpp" break; case 105: // expr_assign: expr_object "-=" expr #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 2613 "parser.cpp" +#line 2628 "parser.cpp" break; case 106: // expr_assign: expr_object "*=" expr #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 2619 "parser.cpp" +#line 2634 "parser.cpp" break; case 107: // expr_assign: expr_object "/=" expr #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 2625 "parser.cpp" +#line 2640 "parser.cpp" break; case 108: // expr_assign: expr_object "%=" expr #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 2631 "parser.cpp" +#line 2646 "parser.cpp" break; case 109: // expr_increment: "++" expr_object #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 2637 "parser.cpp" +#line 2652 "parser.cpp" break; case 110: // expr_increment: expr_object "++" #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 2643 "parser.cpp" +#line 2658 "parser.cpp" break; case 111: // expr_decrement: "--" expr_object #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 2649 "parser.cpp" +#line 2664 "parser.cpp" break; case 112: // expr_decrement: expr_object "--" #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 2655 "parser.cpp" +#line 2670 "parser.cpp" break; case 113: // expr_ternary: expr "?" expr ":" expr #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 2661 "parser.cpp" +#line 2676 "parser.cpp" break; case 114: // expr_binary: expr "||" expr #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 2667 "parser.cpp" +#line 2682 "parser.cpp" break; case 115: // expr_binary: expr "&&" expr #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 2673 "parser.cpp" +#line 2688 "parser.cpp" break; case 116: // expr_binary: expr "==" expr #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 2679 "parser.cpp" +#line 2694 "parser.cpp" break; case 117: // expr_binary: expr "!=" expr #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 2685 "parser.cpp" +#line 2700 "parser.cpp" break; case 118: // expr_binary: expr "<=" expr #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 2691 "parser.cpp" +#line 2706 "parser.cpp" break; case 119: // expr_binary: expr ">=" expr #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 2697 "parser.cpp" +#line 2712 "parser.cpp" break; case 120: // expr_binary: expr "<" expr #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 2703 "parser.cpp" +#line 2718 "parser.cpp" break; case 121: // expr_binary: expr ">" expr #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 2709 "parser.cpp" +#line 2724 "parser.cpp" break; case 122: // expr_binary: expr "|" expr #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 2715 "parser.cpp" +#line 2730 "parser.cpp" break; case 123: // expr_binary: expr "&" expr #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 2721 "parser.cpp" +#line 2736 "parser.cpp" break; case 124: // expr_binary: expr "^" expr #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 2727 "parser.cpp" +#line 2742 "parser.cpp" break; case 125: // expr_binary: expr "<<" expr #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 2733 "parser.cpp" +#line 2748 "parser.cpp" break; case 126: // expr_binary: expr ">>" expr #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 2739 "parser.cpp" +#line 2754 "parser.cpp" break; case 127: // expr_binary: expr "+" expr #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 2745 "parser.cpp" +#line 2760 "parser.cpp" break; case 128: // expr_binary: expr "-" expr #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 2751 "parser.cpp" +#line 2766 "parser.cpp" break; case 129: // expr_binary: expr "*" expr #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 2757 "parser.cpp" +#line 2772 "parser.cpp" break; case 130: // expr_binary: expr "/" expr #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 2763 "parser.cpp" +#line 2778 "parser.cpp" break; case 131: // expr_binary: expr "%" expr #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 2769 "parser.cpp" +#line 2784 "parser.cpp" break; case 132: // expr_primitive: expr_complement #line 614 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2775 "parser.cpp" +#line 2790 "parser.cpp" break; - case 133: // expr_primitive: expr_not + case 133: // expr_primitive: expr_negate #line 615 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2781 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_negate::ptr > ()); } +#line 2796 "parser.cpp" break; - case 134: // expr_primitive: expr_call + case 134: // expr_primitive: expr_not #line 616 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2787 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } +#line 2802 "parser.cpp" break; - case 135: // expr_primitive: expr_method + case 135: // expr_primitive: expr_call #line 617 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2793 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 2808 "parser.cpp" break; - case 136: // expr_primitive: expr_add_array + case 136: // expr_primitive: expr_method #line 618 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2799 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 2814 "parser.cpp" break; - case 137: // expr_primitive: expr_reference + case 137: // expr_primitive: expr_add_array #line 619 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2805 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } +#line 2820 "parser.cpp" break; - case 138: // expr_primitive: expr_array + case 138: // expr_primitive: expr_reference #line 620 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2811 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } +#line 2826 "parser.cpp" break; - case 139: // expr_primitive: expr_field + case 139: // expr_primitive: expr_array #line 621 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2817 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 2832 "parser.cpp" break; - case 140: // expr_primitive: expr_size + case 140: // expr_primitive: expr_field #line 622 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2823 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 2838 "parser.cpp" break; - case 141: // expr_primitive: expr_paren + case 141: // expr_primitive: expr_size #line 623 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2829 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } +#line 2844 "parser.cpp" break; - case 142: // expr_primitive: expr_thisthread + case 142: // expr_primitive: expr_paren #line 624 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2835 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } +#line 2850 "parser.cpp" break; - case 143: // expr_primitive: expr_empty_array + case 143: // expr_primitive: expr_thisthread #line 625 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2841 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } +#line 2856 "parser.cpp" break; - case 144: // expr_primitive: expr_undefined + case 144: // expr_primitive: expr_empty_array #line 626 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2847 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } +#line 2862 "parser.cpp" break; - case 145: // expr_primitive: expr_game + case 145: // expr_primitive: expr_undefined #line 627 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2853 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } +#line 2868 "parser.cpp" break; - case 146: // expr_primitive: expr_self + case 146: // expr_primitive: expr_game #line 628 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2859 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 2874 "parser.cpp" break; - case 147: // expr_primitive: expr_anim + case 147: // expr_primitive: expr_self #line 629 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2865 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 2880 "parser.cpp" break; - case 148: // expr_primitive: expr_level + case 148: // expr_primitive: expr_anim #line 630 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2871 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 2886 "parser.cpp" break; - case 149: // expr_primitive: expr_animation + case 149: // expr_primitive: expr_level #line 631 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2877 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 2892 "parser.cpp" break; - case 150: // expr_primitive: expr_animtree + case 150: // expr_primitive: expr_animation #line 632 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2883 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } +#line 2898 "parser.cpp" break; - case 151: // expr_primitive: expr_identifier_neg + case 151: // expr_primitive: expr_animtree #line 633 "parser.ypp" - { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2889 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2904 "parser.cpp" break; 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_identifier::ptr > ()); } -#line 2895 "parser.cpp" +#line 2910 "parser.cpp" break; 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_istring::ptr > ()); } -#line 2901 "parser.cpp" +#line 2916 "parser.cpp" break; 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_string::ptr > ()); } -#line 2907 "parser.cpp" +#line 2922 "parser.cpp" break; 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_vector::ptr > ()); } -#line 2913 "parser.cpp" +#line 2928 "parser.cpp" break; 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_float::ptr > ()); } -#line 2919 "parser.cpp" +#line 2934 "parser.cpp" break; 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" +#line 2940 "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" +#line 2946 "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 2937 "parser.cpp" +#line 2952 "parser.cpp" break; 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 2943 "parser.cpp" +#line 2958 "parser.cpp" break; - case 161: // expr_not: "!" expr + case 161: // expr_negate: "-" expr_identifier #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 2949 "parser.cpp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()))); } +#line 2964 "parser.cpp" break; - case 162: // expr_call: expr_function + case 162: // expr_negate: "-" expr_paren +#line 653 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()))); } +#line 2970 "parser.cpp" + break; + + case 163: // expr_negate: "-" expr_array #line 655 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_array::ptr > ()))); } +#line 2976 "parser.cpp" + break; + + case 164: // expr_negate: "-" expr_field +#line 657 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_field::ptr > ()))); } +#line 2982 "parser.cpp" + break; + + case 165: // expr_not: "!" expr +#line 662 "parser.ypp" + { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } +#line 2988 "parser.cpp" + break; + + case 166: // expr_call: expr_function +#line 666 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2955 "parser.cpp" +#line 2994 "parser.cpp" break; - 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 2961 "parser.cpp" - break; - - 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 2967 "parser.cpp" - break; - - 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 2973 "parser.cpp" - break; - - 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::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: expr_path "::" expr_identifier "(" expr_arguments ")" + case 167: // expr_call: expr_pointer #line 667 "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 2985 "parser.cpp" + { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } +#line 3000 "parser.cpp" break; - 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::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" + case 168: // expr_method: expr_object expr_function +#line 670 "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 3006 "parser.cpp" break; - case 169: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 169: // expr_method: expr_object expr_pointer #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::thread); } -#line 2997 "parser.cpp" + { 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 3012 "parser.cpp" break; - 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" + case 170: // expr_function: expr_identifier "(" expr_arguments ")" +#line 676 "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 3018 "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 3009 "parser.cpp" + case 171: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" +#line 678 "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 3024 "parser.cpp" break; - case 172: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" + case 172: // expr_function: "thread" expr_identifier "(" 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::normal); } -#line 3015 "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 3030 "parser.cpp" break; - case 173: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 173: // expr_function: "thread" expr_path "::" expr_identifier "(" 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::thread); } -#line 3021 "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 3036 "parser.cpp" break; - case 174: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 174: // expr_function: "childthread" expr_identifier "(" 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" + { 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 3042 "parser.cpp" break; - case 175: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 175: // expr_function: "childthread" expr_path "::" expr_identifier "(" 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 3033 "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::childthread); } +#line 3048 "parser.cpp" break; - case 176: // expr_add_array: "[" expr_arguments_no_empty "]" + case 176: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 691 "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 3054 "parser.cpp" + break; + + case 177: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 693 "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 3060 "parser.cpp" + break; + + case 178: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 695 "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 3066 "parser.cpp" + break; + + case 179: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 697 "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 3072 "parser.cpp" + break; + + case 180: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 702 "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 3039 "parser.cpp" +#line 3078 "parser.cpp" break; - case 177: // expr_parameters: expr_parameters "," expr_identifier -#line 696 "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 3045 "parser.cpp" - break; - - 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 3057 "parser.cpp" - break; - - 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 + case 181: // expr_parameters: expr_parameters "," expr_identifier #line 707 "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 3084 "parser.cpp" + break; + + case 182: // expr_parameters: expr_identifier +#line 709 "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 3090 "parser.cpp" + break; + + case 183: // expr_parameters: %empty +#line 711 "parser.ypp" + { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } +#line 3096 "parser.cpp" + break; + + case 184: // expr_arguments: expr_arguments_no_empty +#line 716 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3102 "parser.cpp" + break; + + case 185: // expr_arguments: %empty +#line 718 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3069 "parser.cpp" +#line 3108 "parser.cpp" break; - case 182: // expr_arguments_no_empty: expr_arguments "," expr -#line 712 "parser.ypp" + case 186: // expr_arguments_no_empty: expr_arguments "," expr +#line 723 "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" +#line 3114 "parser.cpp" break; - case 183: // expr_arguments_no_empty: expr -#line 714 "parser.ypp" + case 187: // expr_arguments_no_empty: expr +#line 725 "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 3081 "parser.cpp" +#line 3120 "parser.cpp" break; - case 184: // expr_reference: "::" expr_identifier -#line 719 "parser.ypp" + case 188: // expr_reference: "::" expr_identifier +#line 730 "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" +#line 3126 "parser.cpp" break; - case 185: // expr_reference: expr_path "::" expr_identifier -#line 721 "parser.ypp" + case 189: // expr_reference: expr_path "::" expr_identifier +#line 732 "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 3093 "parser.cpp" +#line 3132 "parser.cpp" break; - case 186: // expr_array: expr_object "[" expr "]" -#line 726 "parser.ypp" + case 190: // expr_array: expr_object "[" expr "]" +#line 737 "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 3099 "parser.cpp" +#line 3138 "parser.cpp" break; - case 187: // expr_field: expr_object "." expr_identifier_nosize -#line 731 "parser.ypp" + case 191: // expr_field: expr_object "." expr_identifier_nosize +#line 742 "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 3105 "parser.cpp" +#line 3144 "parser.cpp" break; - 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 3111 "parser.cpp" - break; - - 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 3117 "parser.cpp" - break; - - 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_call::ptr > ()); } -#line 3123 "parser.cpp" - break; - - 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_method::ptr > ()); } -#line 3129 "parser.cpp" - break; - - case 192: // expr_object: expr_array + case 192: // expr_size: expr_object "." "size" #line 747 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3135 "parser.cpp" + { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } +#line 3150 "parser.cpp" break; - 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_field::ptr > ()); } -#line 3141 "parser.cpp" - break; - - 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_game::ptr > ()); } -#line 3147 "parser.cpp" - break; - - 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_self::ptr > ()); } -#line 3153 "parser.cpp" - break; - - 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 + case 193: // expr_paren: "(" expr ")" #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" + { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3156 "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 3171 "parser.cpp" + case 194: // expr_object: expr_call +#line 756 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3162 "parser.cpp" break; - case 199: // expr_thisthread: "thisthread" + case 195: // expr_object: expr_method +#line 757 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3168 "parser.cpp" + break; + + case 196: // expr_object: expr_array #line 758 "parser.ypp" - { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3177 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3174 "parser.cpp" break; - case 200: // expr_empty_array: "[" "]" + case 197: // expr_object: expr_field +#line 759 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3180 "parser.cpp" + break; + + case 198: // expr_object: expr_game +#line 760 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3186 "parser.cpp" + break; + + case 199: // expr_object: expr_self +#line 761 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3192 "parser.cpp" + break; + + case 200: // expr_object: expr_anim +#line 762 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3198 "parser.cpp" + break; + + case 201: // expr_object: expr_level #line 763 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3204 "parser.cpp" + break; + + case 202: // expr_object: expr_identifier +#line 764 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 3210 "parser.cpp" + break; + + case 203: // expr_thisthread: "thisthread" +#line 769 "parser.ypp" + { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } +#line 3216 "parser.cpp" + break; + + case 204: // expr_empty_array: "[" "]" +#line 774 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3183 "parser.cpp" +#line 3222 "parser.cpp" break; - case 201: // expr_undefined: "undefined" -#line 768 "parser.ypp" + case 205: // expr_undefined: "undefined" +#line 779 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3189 "parser.cpp" +#line 3228 "parser.cpp" break; - case 202: // expr_game: "game" -#line 773 "parser.ypp" + case 206: // expr_game: "game" +#line 784 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3195 "parser.cpp" +#line 3234 "parser.cpp" break; - case 203: // expr_self: "self" -#line 778 "parser.ypp" + case 207: // expr_self: "self" +#line 789 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3201 "parser.cpp" +#line 3240 "parser.cpp" break; - case 204: // expr_anim: "anim" -#line 783 "parser.ypp" + case 208: // expr_anim: "anim" +#line 794 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3207 "parser.cpp" +#line 3246 "parser.cpp" break; - case 205: // expr_level: "level" -#line 788 "parser.ypp" + case 209: // expr_level: "level" +#line 799 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3213 "parser.cpp" +#line 3252 "parser.cpp" break; - case 206: // expr_animation: "%" "identifier" -#line 793 "parser.ypp" + case 210: // expr_animation: "%" "identifier" +#line 804 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3219 "parser.cpp" +#line 3258 "parser.cpp" break; - case 207: // expr_animtree: "#animtree" -#line 798 "parser.ypp" + case 211: // expr_animtree: "#animtree" +#line 809 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3225 "parser.cpp" +#line 3264 "parser.cpp" break; - 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 209: // expr_identifier_nosize: "identifier" -#line 808 "parser.ypp" + case 212: // expr_identifier_nosize: "identifier" +#line 814 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3237 "parser.cpp" +#line 3270 "parser.cpp" break; - case 210: // expr_identifier: "identifier" -#line 813 "parser.ypp" + case 213: // expr_identifier: "identifier" +#line 819 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3243 "parser.cpp" +#line 3276 "parser.cpp" break; - case 211: // expr_identifier: "size" -#line 815 "parser.ypp" + case 214: // expr_identifier: "size" +#line 821 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3249 "parser.cpp" +#line 3282 "parser.cpp" break; - case 212: // expr_path: "identifier" -#line 820 "parser.ypp" + case 215: // expr_path: "identifier" +#line 826 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3255 "parser.cpp" +#line 3288 "parser.cpp" break; - case 213: // expr_path: "path" -#line 822 "parser.ypp" + case 216: // expr_path: "path" +#line 828 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3261 "parser.cpp" +#line 3294 "parser.cpp" break; - case 214: // expr_istring: "localized string" -#line 827 "parser.ypp" + case 217: // expr_istring: "localized string" +#line 833 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3267 "parser.cpp" +#line 3300 "parser.cpp" break; - case 215: // expr_string: "string literal" -#line 832 "parser.ypp" + case 218: // expr_string: "string literal" +#line 838 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3273 "parser.cpp" +#line 3306 "parser.cpp" break; - case 216: // expr_vector: "(" expr "," expr "," expr ")" -#line 837 "parser.ypp" + case 219: // expr_vector: "(" expr "," expr "," expr ")" +#line 843 "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 3279 "parser.cpp" +#line 3312 "parser.cpp" break; - case 217: // expr_float: "-" "float" -#line 842 "parser.ypp" + case 220: // expr_float: "-" "float" +#line 848 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3285 "parser.cpp" +#line 3318 "parser.cpp" break; - case 218: // expr_float: "float" -#line 844 "parser.ypp" + case 221: // expr_float: "float" +#line 850 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3291 "parser.cpp" +#line 3324 "parser.cpp" break; - case 219: // expr_integer: "-" "integer" -#line 849 "parser.ypp" + case 222: // expr_integer: "-" "integer" +#line 855 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3297 "parser.cpp" +#line 3330 "parser.cpp" break; - case 220: // expr_integer: "integer" -#line 851 "parser.ypp" + case 223: // expr_integer: "integer" +#line 857 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3303 "parser.cpp" +#line 3336 "parser.cpp" break; - case 221: // expr_false: "false" -#line 856 "parser.ypp" + case 224: // expr_false: "false" +#line 862 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3309 "parser.cpp" +#line 3342 "parser.cpp" break; - case 222: // expr_true: "true" -#line 861 "parser.ypp" + case 225: // expr_true: "true" +#line 867 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3315 "parser.cpp" +#line 3348 "parser.cpp" break; -#line 3319 "parser.cpp" +#line 3352 "parser.cpp" default: break; @@ -3523,16 +3556,16 @@ namespace xsk { namespace gsc { namespace h2 { "stmt_break", "stmt_continue", "stmt_return", "stmt_breakpoint", "stmt_prof_begin", "stmt_prof_end", "expr", "expr_or_empty", "expr_assign", "expr_increment", "expr_decrement", "expr_ternary", - "expr_binary", "expr_primitive", "expr_complement", "expr_not", - "expr_call", "expr_method", "expr_function", "expr_pointer", + "expr_binary", "expr_primitive", "expr_complement", "expr_negate", + "expr_not", "expr_call", "expr_method", "expr_function", "expr_pointer", "expr_add_array", "expr_parameters", "expr_arguments", "expr_arguments_no_empty", "expr_reference", "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_neg", "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_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]; } @@ -3801,519 +3834,538 @@ namespace xsk { namespace gsc { namespace h2 { } - const short parser::yypact_ninf_ = -271; + const short parser::yypact_ninf_ = -287; - const short parser::yytable_ninf_ = -213; + const short parser::yytable_ninf_ = -216; const short parser::yypact_[] = { - 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, 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 + 9, -287, -287, -65, -65, -40, -287, -287, 41, 9, + -287, -287, -287, -287, -287, -287, -25, -287, -287, -12, + -8, -55, -287, -287, -287, -287, -34, 1152, -287, -287, + -287, 12, -19, -287, -287, -28, -18, -287, 4, -287, + -287, -287, -287, -287, -287, -287, 1152, 1026, -34, 1152, + 1152, 35, -27, 28, -287, -287, -287, 2117, -287, -287, + -287, -287, -287, -287, 543, 557, -287, -287, -287, -287, + 604, 666, -287, -287, 677, -287, -287, -287, 878, 955, + 1113, 1176, -287, -287, 215, 33, -287, -287, -287, -287, + -287, -287, -287, 32, 57, -34, 59, 52, 62, 67, + 75, 74, 85, 1408, 1026, -287, 2200, 92, 99, -287, + -287, -287, 1152, 102, -287, -287, -287, -287, 604, 666, + -287, 1375, -287, -287, -287, -287, 215, 100, -287, -287, + 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1215, + -31, -287, -287, 109, 1152, -34, -287, 769, -287, -287, + 1152, 1152, -34, 1152, 1152, -34, 1152, -287, 1152, 1886, + 1152, -287, 1574, 1152, 65, -34, 2082, 84, 84, 2231, + 2241, 2323, 2323, 249, 249, 249, 249, 2272, 2313, 2282, + 76, 76, -287, -287, -287, 1926, -287, -287, -287, -1, + -287, 116, 923, 1152, 111, -15, 129, 1339, 131, 132, + 134, 135, -53, 130, 128, 136, 1089, 137, 142, 145, + -287, 69, 69, -287, -287, 846, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + -287, -287, 141, 143, 146, 148, 149, -287, -287, 1262, + 109, 1966, 8, 160, 2006, 15, 161, 2046, 1021, 163, + 2200, 1886, 116, 1152, -287, -287, 1152, -287, -287, 1000, + 2152, -287, 164, -287, 1152, 196, 1152, 49, -34, 1152, + 122, 165, 166, -287, -287, -287, -287, 2187, -287, 1152, + 1152, 1375, 1375, -287, -287, -287, -287, -287, -287, -287, + 178, 181, 182, 186, -287, -287, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1152, 1152, 1152, 1152, 187, -287, 1152, + 193, -287, 1152, 195, 1152, 201, 2200, 19, -287, -287, + -287, 177, 1608, 205, 1642, 198, -287, -287, -287, 1365, + 1, 1676, -287, -287, -287, 48, 50, 1152, 1152, 1152, + 1152, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, + 2200, 2200, 209, 73, 211, 77, 218, 1710, 1152, -287, + -287, 1339, 1152, 1339, 1152, 1152, -34, 57, 203, 210, + 1744, 1452, 1496, 1540, 1152, -287, 1152, -287, 1152, -287, + 87, 250, 1778, -287, 2200, 214, 1812, 248, -287, -287, + -287, 220, 222, 1152, 223, 1152, 227, 1152, 90, 91, + 101, -287, 1339, 230, 49, 1339, 1152, -287, -287, 224, + -287, 244, -287, 246, -287, -287, -287, -287, -287, 251, + -287, 1846, 231, 238, 243, 1339, 1339, -287, -287, -287, + -287, -287 }; const unsigned char parser::yydefact_[] = { - 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, + 3, 12, 13, 0, 0, 0, 214, 213, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 216, 215, 0, + 0, 0, 1, 4, 5, 6, 183, 0, 10, 11, + 218, 0, 0, 182, 211, 0, 0, 203, 0, 225, + 224, 205, 206, 207, 208, 209, 0, 185, 0, 0, + 0, 0, 0, 213, 217, 221, 223, 0, 93, 94, + 95, 132, 133, 134, 135, 136, 166, 167, 137, 138, + 139, 140, 141, 142, 0, 143, 144, 145, 146, 147, 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, 185, 204, 187, 0, 184, 188, + 165, 160, 0, 0, 220, 222, 194, 195, 163, 164, + 162, 0, 198, 199, 200, 201, 161, 0, 210, 18, 0, 0, 0, 0, 0, 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, 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, 168, 169, 0, 185, 0, 17, 0, 19, 181, + 0, 185, 0, 0, 185, 0, 0, 193, 0, 187, + 0, 180, 0, 0, 0, 0, 0, 125, 126, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 127, 128, 129, 130, 131, 0, 192, 212, 191, 0, + 184, 189, 0, 0, 0, 0, 0, 0, 0, 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 + 54, 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, + 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 186, 0, 0, 0, 190, 170, 185, 52, 48, 0, + 0, 72, 0, 73, 0, 0, 0, 58, 0, 0, + 0, 0, 0, 85, 86, 87, 89, 0, 90, 185, + 185, 109, 111, 53, 49, 61, 62, 63, 59, 60, + 0, 0, 0, 0, 110, 112, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 185, + 0, 174, 185, 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, 98, 104, 105, 106, 107, 108, 99, 100, 101, + 103, 102, 0, 0, 0, 0, 0, 0, 185, 171, + 74, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 185, 173, 185, 175, 185, 219, + 0, 75, 0, 77, 96, 0, 0, 0, 82, 91, + 92, 0, 0, 185, 0, 185, 0, 185, 0, 0, + 0, 176, 0, 0, 58, 0, 0, 64, 66, 184, + 69, 184, 71, 184, 177, 178, 179, 76, 78, 0, + 80, 0, 0, 0, 0, 0, 0, 65, 68, 70, + 79, 81 }; const short parser::yypgoto_[] = { - -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, - 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 + -287, -287, -287, 271, 297, 298, -287, -287, -287, -177, + 86, -287, -287, -287, -91, -114, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + 191, -287, -286, -285, -282, -287, -287, -287, -287, -287, + -287, -33, -6, -66, -59, -287, -287, -147, -41, -287, + 213, 240, -287, 263, 247, -287, -287, -287, 316, 322, + 333, 404, -287, -287, -287, 0, 7, -287, -17, -287, + -287, 105, -287, -287 }; const short parser::yydefgoto_[] = { - 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, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 223, + 224, 279, 225, 226, 227, 345, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 106, 405, 252, 253, 254, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 32, 107, 200, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 182, 84, 85, 86, 87, 88, + 80, 81, 82, 83, 198, 84, 85, 86, 87, 88, 89, 90, 91, 92 }; const short parser::yytable_[] = { - 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, 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, + 16, 346, 347, 158, 31, 348, 108, 199, 151, 16, + 19, 20, 21, 6, 262, 152, 196, 265, 116, 6, + 1, 2, 3, 4, 5, 278, 33, 26, 96, 6, + 285, 385, 17, 18, 94, 97, 100, 282, 99, 95, + 290, 22, 98, 101, 30, 117, 30, 283, 109, 56, + 28, 126, 275, 27, 29, 151, 6, 170, 127, 386, + 102, 328, 152, 108, 7, 93, 170, 197, 331, 17, + 53, 128, 379, 170, 153, 35, 36, 170, 38, 17, + 53, 127, 6, 42, 43, 44, 45, 112, -215, 35, + 36, 113, 38, 155, 156, 159, 6, 42, 43, 44, + 45, 388, 339, 389, 161, 113, 170, 7, 170, 35, + 36, 157, 38, 221, 222, 160, 6, 42, 43, 44, + 45, 153, 162, 163, 255, 113, 395, 164, 127, 337, + 397, 170, 17, 53, 165, 170, 114, 115, 346, 347, + 421, 166, 348, 434, 435, 170, 17, 53, 170, 170, + 170, 256, 355, 356, 436, 201, 171, 260, 173, 170, + 175, 154, 263, 197, 127, 266, 17, 53, 276, 255, + 146, 147, 148, 281, 255, 272, 144, 145, 146, 147, + 148, 284, 373, 286, 287, 375, 288, 289, 116, 116, + 294, 293, 255, 151, 299, 291, 256, 300, 295, 298, + 152, 256, 260, 305, 401, 306, 403, 260, 307, 127, + 308, 309, 329, 332, 127, 117, 117, 341, 57, 256, + 335, 260, 260, 343, 115, 260, 352, 353, 127, 127, + 357, 400, 127, 358, 359, 151, 151, 103, 360, 380, + 110, 111, 152, 152, 372, 437, 255, 418, 440, 419, + 374, 420, 376, 378, 116, -202, -202, 382, -202, 153, + 384, 394, -202, 396, 118, 409, 127, 154, 450, 451, + 398, -202, 410, 256, -202, 422, 424, 442, 426, 260, + 23, 117, 427, 151, 428, 430, 127, 260, 350, 432, + 152, 119, 438, 447, 127, 169, 408, 443, 121, 444, + 448, 153, 153, 172, 445, 449, 24, 25, 127, 127, + 439, 304, -202, -202, 120, 131, 132, 292, 0, 0, + 0, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 144, 145, 146, 147, 148, 0, 0, 255, 153, + 255, 261, 0, 0, 264, 0, 127, 267, 0, 268, + 0, 270, 0, 0, 271, 0, 0, 122, 0, 0, + 257, 0, 429, 123, 431, 256, 433, 256, 0, 0, + 0, 260, 0, 260, 124, 0, 407, 0, 127, 255, + 127, 116, 255, 0, 280, 0, 0, 258, 0, 0, + 0, 0, 0, 0, 259, 0, 0, 297, 0, 0, + 0, 0, 255, 255, 0, 257, 256, 0, 117, 256, + 257, 0, 260, 0, 260, 260, 0, 0, 0, 127, + 0, 127, 127, 0, 257, 257, 0, 0, 257, 256, + 256, 0, 258, 0, 0, 260, 260, 258, 0, 259, + 0, 0, 127, 127, 259, 125, 0, 0, 0, 0, + 0, 258, 258, 0, 336, 258, 0, 0, 301, 302, + 0, 0, 259, 122, 0, 342, 0, 344, 0, 123, + 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 124, 0, 257, 0, 0, 0, 0, 0, 0, 0, + 257, 0, 0, 0, 0, 0, 0, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 122, 258, + 0, 0, 0, 122, 123, 377, 259, 258, 0, 123, + 0, 0, 0, 0, 349, 124, 0, 122, 122, 0, + 124, 122, 0, 123, 123, 0, 0, 123, 390, 391, + 392, 393, 0, 0, 124, 124, 0, 0, 124, 0, + 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 402, 0, 404, 406, 0, 0, 0, + 0, 0, 0, -194, -194, 0, -194, 0, 0, 0, + -194, 0, 0, 0, 257, 122, 257, -195, -195, -194, + -195, 123, -194, 122, -195, 0, 125, 0, 0, 123, + 0, 125, 124, -195, 0, 0, -195, 441, 0, 0, + 124, 258, 0, 258, 0, 125, 125, 0, 259, 125, + 259, 0, 0, 0, 0, 257, 0, 257, 257, 0, + -194, -194, 0, 0, -196, -196, 0, -196, 0, 0, + 0, -196, 0, 0, -195, -195, 0, 0, 257, 257, + -196, 0, 258, -196, 258, 258, 0, 0, 0, 259, + 0, 349, 259, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 258, 258, 0, 0, 0, + 0, 125, 259, 259, 0, 0, 0, 122, 0, 122, + 0, -196, -196, 123, 0, 123, -197, -197, 0, -197, + 0, 0, 0, -197, 124, 0, 124, 35, 36, 0, + 38, 0, -197, 0, 6, -197, 0, 0, 0, 0, + 0, 0, 0, 149, 0, 0, 150, 0, 122, 0, + 122, 122, 0, 0, 123, 0, 123, 123, 0, 0, + 0, 0, 0, 0, 0, 124, 0, 124, 124, 0, + 0, 122, 122, -197, -197, 0, 0, 123, 123, 0, + 0, 0, 0, 0, 17, 53, 0, 0, 124, 124, + 202, 0, 0, 0, 0, 125, 0, 125, 203, 0, + 0, 204, 205, 206, 0, 207, 208, 209, 210, 0, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 35, + 36, 0, 38, 0, 0, 0, 6, 42, 43, 44, + 45, 0, 0, 157, 220, 113, 125, 0, 125, 125, + 0, 0, 0, 221, 222, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 125, 0, 0, 0, 0, 0, 0, 202, 0, 0, + 0, 0, 0, 0, 0, 203, 17, 53, 204, 205, + 206, 0, 207, 208, 209, 210, 0, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 35, 36, 0, 38, + 0, 0, 0, 6, 42, 43, 44, 45, 0, 0, + 157, 303, 113, 0, 0, 0, 0, 0, 0, 0, + 221, 222, 0, 0, 0, 0, 0, 0, -198, -198, + 0, -198, 0, 0, 0, -198, 0, 0, 0, 0, + 0, 0, 0, 0, -198, 277, 0, -198, 0, 0, + 0, 0, 203, 17, 53, 204, 205, 206, 0, 207, + 208, 209, 210, 0, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 35, 36, 0, 38, 0, 0, 0, + 6, 42, 43, 44, 45, -198, -198, 157, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 221, 222, 0, + 0, 0, 0, 0, 0, -199, -199, 0, -199, 0, + 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, + 0, -199, 338, 0, -199, 0, 0, 0, 0, 203, + 17, 53, 204, 205, 206, 0, 207, 208, 209, 210, + 0, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 35, 36, 34, 38, 0, 0, 0, 6, 42, 43, + 44, 45, -199, -199, 157, 0, 113, 0, 0, 0, + 0, 0, 0, 0, 221, 222, 35, 36, 37, 38, + 39, 40, 41, 6, 42, 43, 44, 45, 46, 334, + 0, 0, 104, 105, 130, 0, 48, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 17, 53, 0, + 0, 0, 49, 50, 0, 34, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 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, 296, 0, -200, -200, 0, -200, 0, 0, 0, + -200, 0, 0, 0, 0, 49, 50, 0, 34, -200, + 0, 0, -200, 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, 47, 0, + -200, -200, 48, 0, 0, 0, -201, -201, 0, -201, + 0, 0, 0, -201, 0, 0, 0, 0, 49, 50, + 0, 34, -201, 0, 0, -201, 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, 104, 0, -201, -201, 48, 0, 0, 0, 310, + 311, 0, 312, 313, 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, 149, 0, + 0, 174, 0, 0, 0, 0, 314, 315, 0, 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, - -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, 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, 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, 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, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 0, 0, 0, 0, 0, 0, 0, 203, 17, + 53, 204, 205, 206, 0, 207, 208, 209, 210, 0, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 35, + 36, 0, 38, 0, 0, 0, 6, 42, 43, 44, + 45, 0, 0, 157, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 221, 222, 35, 36, 0, 38, 0, + 0, 0, 6, 0, 0, 35, 36, 0, 38, 0, + 0, 149, 6, 0, 174, 0, 0, 0, 0, 314, + 315, 149, 0, 0, 174, 0, 17, 53, 0, 0, + 0, 0, 0, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 0, 0, 0, 0, 0, 0, + 0, 167, 17, 53, 0, 0, 168, 0, 0, 0, + 0, 130, 17, 53, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 141, 142, 143, + 144, 145, 146, 147, 148, 412, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 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, 141, 142, 143, 144, 145, 146, 147, 148, 414, + 0, 0, 0, 0, 415, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 416, 0, 0, 0, 0, 417, 0, + 0, 0, 0, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 167, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 130, 0, 0, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 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, 381, 0, 141, 142, 143, 144, 145, 146, 147, + 148, 130, 0, 0, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 383, 0, 141, 142, 143, + 144, 145, 146, 147, 148, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 387, + 0, 141, 142, 143, 144, 145, 146, 147, 148, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 399, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 411, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 130, 0, 0, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 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, 423, 0, 141, 142, 143, 144, 145, 146, 147, + 148, 130, 0, 0, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 425, 0, 141, 142, 143, + 144, 145, 146, 147, 148, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, + 0, 141, 142, 143, 144, 145, 146, 147, 148, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 269, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 274, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 327, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 330, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 333, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 273, 0, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 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, 141, 142, 143, 144, 145, 146, 147, 148, 129, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, + 145, 146, 147, 148, 340, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 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 + 0, 141, 142, 143, 144, 145, 146, 147, 148, 354, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 0, 0, 0, 0, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 131, 132, 0, + 134, 135, 136, 137, 138, 139, 140, 131, 132, 0, + 0, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 131, 132, + 0, 0, 135, 136, 137, 138, 139, 140, 131, 132, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 142, 143, 144, 145, 146, 147, 148, 0, + 0, 0, 142, 0, 144, 145, 146, 147, 148, 131, + 132, 0, 0, 135, 136, 137, 138, 139, 140, 131, + 132, 0, 0, 0, 0, 137, 138, 139, 140, 0, + 0, 0, 0, 0, 0, 144, 145, 146, 147, 148, + 0, 0, 0, 0, 0, 144, 145, 146, 147, 148 }; const short parser::yycheck_[] = { - 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, 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, + 0, 287, 287, 94, 21, 287, 47, 154, 74, 9, + 3, 4, 52, 47, 161, 74, 47, 164, 51, 47, + 11, 12, 13, 14, 15, 202, 26, 52, 56, 47, + 207, 30, 97, 98, 53, 35, 36, 52, 56, 58, + 93, 0, 35, 36, 99, 51, 99, 62, 48, 102, + 62, 51, 53, 78, 62, 121, 47, 58, 51, 58, + 56, 53, 121, 104, 98, 53, 58, 98, 53, 97, + 98, 98, 53, 58, 74, 40, 41, 58, 43, 97, + 98, 74, 47, 48, 49, 50, 51, 52, 60, 40, + 41, 56, 43, 60, 62, 95, 47, 48, 49, 50, + 51, 53, 279, 53, 52, 56, 58, 98, 58, 40, + 41, 54, 43, 64, 65, 56, 47, 48, 49, 50, + 51, 121, 60, 56, 157, 56, 53, 52, 121, 276, + 53, 58, 97, 98, 60, 58, 101, 102, 424, 424, + 53, 56, 424, 53, 53, 58, 97, 98, 58, 58, + 58, 157, 299, 300, 53, 155, 57, 157, 56, 58, + 60, 52, 162, 98, 157, 165, 97, 98, 52, 202, + 94, 95, 96, 62, 207, 175, 92, 93, 94, 95, + 96, 52, 329, 52, 52, 332, 52, 52, 221, 222, + 62, 61, 225, 259, 52, 212, 202, 52, 62, 62, + 259, 207, 202, 62, 381, 62, 383, 207, 62, 202, + 62, 62, 52, 52, 207, 221, 222, 53, 27, 225, + 57, 221, 222, 27, 102, 225, 61, 61, 221, 222, + 52, 378, 225, 52, 52, 301, 302, 46, 52, 62, + 49, 50, 301, 302, 57, 422, 279, 394, 425, 396, + 57, 398, 57, 52, 287, 40, 41, 52, 43, 259, + 62, 52, 47, 52, 51, 62, 259, 52, 445, 446, + 52, 56, 62, 279, 59, 25, 62, 53, 30, 279, + 9, 287, 62, 349, 62, 62, 279, 287, 288, 62, + 349, 51, 62, 62, 287, 104, 387, 53, 51, 53, + 62, 301, 302, 112, 53, 62, 9, 9, 301, 302, + 424, 225, 97, 98, 51, 66, 67, 212, -1, -1, + -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 92, 93, 94, 95, 96, -1, -1, 381, 349, + 383, 160, -1, -1, 163, -1, 349, 166, -1, 168, + -1, 170, -1, -1, 173, -1, -1, 51, -1, -1, + 157, -1, 413, 51, 415, 381, 417, 383, -1, -1, + -1, 381, -1, 383, 51, -1, 386, -1, 381, 422, + 383, 424, 425, -1, 203, -1, -1, 157, -1, -1, + -1, -1, -1, -1, 157, -1, -1, 216, -1, -1, + -1, -1, 445, 446, -1, 202, 422, -1, 424, 425, + 207, -1, 422, -1, 424, 425, -1, -1, -1, 422, + -1, 424, 425, -1, 221, 222, -1, -1, 225, 445, + 446, -1, 202, -1, -1, 445, 446, 207, -1, 202, + -1, -1, 445, 446, 207, 51, -1, -1, -1, -1, + -1, 221, 222, -1, 273, 225, -1, -1, 221, 222, + -1, -1, 225, 157, -1, 284, -1, 286, -1, 157, + 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 157, -1, 279, -1, -1, -1, -1, -1, -1, -1, + 287, -1, -1, -1, -1, -1, -1, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 202, 279, + -1, -1, -1, 207, 202, 334, 279, 287, -1, 207, + -1, -1, -1, -1, 287, 202, -1, 221, 222, -1, + 207, 225, -1, 221, 222, -1, -1, 225, 357, 358, + 359, 360, -1, -1, 221, 222, -1, -1, 225, -1, + -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 382, -1, 384, 385, -1, -1, -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, + 47, -1, -1, -1, 381, 279, 383, 40, 41, 56, + 43, 279, 59, 287, 47, -1, 202, -1, -1, 287, + -1, 207, 279, 56, -1, -1, 59, 426, -1, -1, + 287, 381, -1, 383, -1, 221, 222, -1, 381, 225, + 383, -1, -1, -1, -1, 422, -1, 424, 425, -1, + 97, 98, -1, -1, 40, 41, -1, 43, -1, -1, + -1, 47, -1, -1, 97, 98, -1, -1, 445, 446, + 56, -1, 422, 59, 424, 425, -1, -1, -1, 422, + -1, 424, 425, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 279, -1, 445, 446, -1, -1, -1, + -1, 287, 445, 446, -1, -1, -1, 381, -1, 383, + -1, 97, 98, 381, -1, 383, 40, 41, -1, 43, + -1, -1, -1, 47, 381, -1, 383, 40, 41, -1, + 43, -1, 56, -1, 47, 59, -1, -1, -1, -1, + -1, -1, -1, 56, -1, -1, 59, -1, 422, -1, + 424, 425, -1, -1, 422, -1, 424, 425, -1, -1, + -1, -1, -1, -1, -1, 422, -1, 424, 425, -1, + -1, 445, 446, 97, 98, -1, -1, 445, 446, -1, + -1, -1, -1, -1, 97, 98, -1, -1, 445, 446, + 11, -1, -1, -1, -1, 381, -1, 383, 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, 54, 55, 56, 422, -1, 424, 425, + -1, -1, -1, 64, 65, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 445, + 446, -1, -1, -1, -1, -1, -1, 11, -1, -1, + -1, -1, -1, -1, -1, 19, 97, 98, 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, + 54, 55, 56, -1, -1, -1, -1, -1, -1, -1, + 64, 65, -1, -1, -1, -1, -1, -1, 40, 41, + -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, 56, 12, -1, 59, -1, -1, + -1, -1, 19, 97, 98, 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, 97, 98, 54, -1, 56, + -1, -1, -1, -1, -1, -1, -1, 64, 65, -1, + -1, -1, -1, -1, -1, 40, 41, -1, 43, -1, + -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, + -1, 56, 12, -1, 59, -1, -1, -1, -1, 19, + 97, 98, 22, 23, 24, -1, 26, 27, 28, 29, + -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 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, 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, 60, + -1, 62, -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, + 97, 98, 60, -1, -1, -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, 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, 43, -1, -1, 93, 47, + -1, 96, 97, 98, 99, 100, 101, 102, 56, -1, + -1, 59, -1, -1, -1, -1, 64, 65, -1, -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, 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, - 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, - 36, 37, 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, -1, 64, 65, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, - -1, -1, 56, 12, -1, 59, -1, -1, -1, -1, - 19, 97, 98, 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, 97, 98, 54, -1, 56, -1, -1, - -1, -1, -1, -1, -1, 64, 65, -1, -1, -1, - -1, -1, -1, 40, 41, -1, 43, -1, -1, -1, - 47, -1, -1, -1, -1, -1, -1, -1, -1, 56, - 12, -1, 59, -1, -1, -1, -1, 19, 97, 98, - 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 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, -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, -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, 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, - 43, -1, -1, 93, 47, -1, 96, 97, 98, 99, - 100, 101, 102, 56, -1, -1, 59, -1, -1, -1, - -1, 64, 65, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, - -1, -1, -1, 19, 97, 98, 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, 54, -1, - 56, -1, -1, -1, -1, -1, -1, 53, 64, 65, - -1, -1, 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, 97, 98, 89, 90, 91, 92, 93, 94, 95, - 96, 53, -1, -1, -1, -1, 58, -1, -1, -1, - -1, 63, -1, -1, 66, 67, 68, 69, 70, 71, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, -1, -1, -1, -1, -1, -1, -1, 19, 97, + 98, 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, 54, -1, 56, -1, -1, -1, -1, + -1, -1, -1, 64, 65, 40, 41, -1, 43, -1, + -1, -1, 47, -1, -1, 40, 41, -1, 43, -1, + -1, 56, 47, -1, 59, -1, -1, -1, -1, 64, + 65, 56, -1, -1, 59, -1, 97, 98, -1, -1, + -1, -1, -1, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, + -1, 53, 97, 98, -1, -1, 58, -1, -1, -1, + -1, 63, 97, 98, 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, 53, -1, -1, -1, -1, @@ -4324,8 +4376,9 @@ namespace xsk { namespace gsc { namespace h2 { -1, -1, -1, -1, 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, 53, -1, 89, 90, 91, 92, 93, - 94, 95, 96, 63, -1, -1, 66, 67, 68, 69, + -1, -1, -1, -1, -1, 89, 90, 91, 92, 93, + 94, 95, 96, 53, -1, -1, -1, -1, 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, 53, -1, 89, 90, 91, 92, 93, 94, 95, 96, 63, -1, -1, @@ -4351,60 +4404,62 @@ namespace xsk { namespace gsc { namespace h2 { -1, 53, -1, 89, 90, 91, 92, 93, 94, 95, 96, 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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 58, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 53, -1, 89, 90, 91, + 92, 93, 94, 95, 96, 63, -1, -1, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, + -1, 89, 90, 91, 92, 93, 94, 95, 96, 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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 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, 61, -1, 63, -1, -1, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, + 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, -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, 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, 66, + -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, - 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 + 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 @@ -4413,48 +4468,49 @@ namespace xsk { namespace gsc { namespace h2 { 0, 11, 12, 13, 14, 15, 47, 98, 114, 115, 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, + 99, 191, 169, 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, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 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, + 188, 189, 56, 153, 56, 57, 153, 170, 171, 188, + 153, 153, 52, 56, 101, 102, 164, 165, 173, 174, + 176, 177, 181, 182, 183, 184, 188, 189, 98, 62, + 63, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 89, 90, 91, 92, 93, 94, 95, 96, 56, + 59, 166, 167, 188, 52, 60, 62, 54, 127, 188, + 56, 52, 60, 56, 52, 60, 56, 53, 58, 153, + 58, 57, 153, 56, 59, 60, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 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 + 153, 153, 153, 153, 153, 153, 47, 98, 187, 170, + 171, 188, 11, 19, 22, 23, 24, 26, 27, 28, + 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 55, 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, 164, 165, 173, 174, 177, + 188, 153, 170, 188, 153, 170, 188, 153, 153, 57, + 153, 153, 188, 61, 57, 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, 177, 177, 55, 123, 62, 62, 62, 62, 62, + 17, 18, 20, 21, 64, 65, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 57, 53, 52, + 57, 53, 52, 57, 58, 57, 153, 170, 12, 122, + 62, 53, 153, 27, 153, 128, 155, 156, 157, 177, + 188, 153, 61, 61, 62, 170, 170, 52, 52, 52, + 52, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 57, 170, 57, 170, 57, 153, 52, 53, + 62, 53, 52, 53, 62, 30, 58, 53, 53, 53, + 153, 153, 153, 153, 52, 53, 52, 53, 52, 53, + 170, 122, 153, 122, 153, 154, 153, 188, 127, 62, + 62, 53, 53, 58, 53, 58, 53, 58, 170, 170, + 170, 53, 25, 53, 62, 53, 30, 62, 62, 171, + 62, 171, 62, 171, 53, 53, 53, 122, 62, 128, + 122, 153, 53, 53, 53, 53, 53, 62, 62, 62, + 122, 122 }; const unsigned char @@ -4476,13 +4532,13 @@ namespace xsk { namespace gsc { namespace h2 { 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, 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 + 161, 162, 162, 162, 162, 163, 164, 164, 165, 165, + 166, 166, 166, 166, 166, 166, 167, 167, 167, 167, + 168, 169, 169, 169, 170, 170, 171, 171, 172, 172, + 173, 174, 175, 176, 177, 177, 177, 177, 177, 177, + 177, 177, 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 @@ -4504,13 +4560,13 @@ namespace xsk { namespace gsc { namespace h2 { 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, - 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 + 2, 2, 2, 2, 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 }; @@ -4536,13 +4592,13 @@ namespace xsk { namespace gsc { namespace h2 { 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 + 645, 650, 652, 654, 656, 661, 666, 667, 670, 671, + 675, 677, 679, 681, 683, 685, 690, 692, 694, 696, + 701, 706, 708, 711, 715, 718, 722, 724, 729, 731, + 736, 741, 746, 751, 756, 757, 758, 759, 760, 761, + 762, 763, 764, 768, 773, 778, 783, 788, 793, 798, + 803, 808, 813, 818, 820, 825, 827, 832, 837, 842, + 847, 849, 854, 856, 861, 866 }; void @@ -4575,9 +4631,9 @@ namespace xsk { namespace gsc { namespace h2 { #line 13 "parser.ypp" } } } // xsk::gsc::h2 -#line 4579 "parser.cpp" +#line 4635 "parser.cpp" -#line 864 "parser.ypp" +#line 870 "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 3b0ab6f3..49af33ab 100644 --- a/src/h2/xsk/parser.hpp +++ b/src/h2/xsk/parser.hpp @@ -447,7 +447,6 @@ namespace xsk { namespace gsc { namespace h2 { // expr_binary // expr_primitive // expr_object - // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -506,134 +505,137 @@ namespace xsk { namespace gsc { namespace h2 { // expr_method char dummy24[sizeof (ast::expr_method::ptr)]; + // expr_negate + char dummy25[sizeof (ast::expr_negate::ptr)]; + // expr_not - char dummy25[sizeof (ast::expr_not::ptr)]; + char dummy26[sizeof (ast::expr_not::ptr)]; // expr_parameters - char dummy26[sizeof (ast::expr_parameters::ptr)]; + char dummy27[sizeof (ast::expr_parameters::ptr)]; // expr_paren - char dummy27[sizeof (ast::expr_paren::ptr)]; + char dummy28[sizeof (ast::expr_paren::ptr)]; // expr_path - char dummy28[sizeof (ast::expr_path::ptr)]; + char dummy29[sizeof (ast::expr_path::ptr)]; // expr_reference - char dummy29[sizeof (ast::expr_reference::ptr)]; + char dummy30[sizeof (ast::expr_reference::ptr)]; // expr_self - char dummy30[sizeof (ast::expr_self::ptr)]; + char dummy31[sizeof (ast::expr_self::ptr)]; // expr_size - char dummy31[sizeof (ast::expr_size::ptr)]; + char dummy32[sizeof (ast::expr_size::ptr)]; // expr_string - char dummy32[sizeof (ast::expr_string::ptr)]; + char dummy33[sizeof (ast::expr_string::ptr)]; // expr_thisthread - char dummy33[sizeof (ast::expr_thisthread::ptr)]; + char dummy34[sizeof (ast::expr_thisthread::ptr)]; // expr_true - char dummy34[sizeof (ast::expr_true::ptr)]; + char dummy35[sizeof (ast::expr_true::ptr)]; // expr_undefined - char dummy35[sizeof (ast::expr_undefined::ptr)]; + char dummy36[sizeof (ast::expr_undefined::ptr)]; // expr_vector - char dummy36[sizeof (ast::expr_vector::ptr)]; + char dummy37[sizeof (ast::expr_vector::ptr)]; // include - char dummy37[sizeof (ast::include::ptr)]; + char dummy38[sizeof (ast::include::ptr)]; // program - char dummy38[sizeof (ast::program::ptr)]; + char dummy39[sizeof (ast::program::ptr)]; // stmt // stmt_or_dev - char dummy39[sizeof (ast::stmt)]; + char dummy40[sizeof (ast::stmt)]; // stmt_assign - char dummy40[sizeof (ast::stmt_assign::ptr)]; + char dummy41[sizeof (ast::stmt_assign::ptr)]; // stmt_break - char dummy41[sizeof (ast::stmt_break::ptr)]; + char dummy42[sizeof (ast::stmt_break::ptr)]; // stmt_breakpoint - char dummy42[sizeof (ast::stmt_breakpoint::ptr)]; + char dummy43[sizeof (ast::stmt_breakpoint::ptr)]; // stmt_call - char dummy43[sizeof (ast::stmt_call::ptr)]; + char dummy44[sizeof (ast::stmt_call::ptr)]; // stmt_case - char dummy44[sizeof (ast::stmt_case::ptr)]; + char dummy45[sizeof (ast::stmt_case::ptr)]; // stmt_continue - char dummy45[sizeof (ast::stmt_continue::ptr)]; + char dummy46[sizeof (ast::stmt_continue::ptr)]; // stmt_default - char dummy46[sizeof (ast::stmt_default::ptr)]; + char dummy47[sizeof (ast::stmt_default::ptr)]; // stmt_dev - char dummy47[sizeof (ast::stmt_dev::ptr)]; + char dummy48[sizeof (ast::stmt_dev::ptr)]; // stmt_dowhile - char dummy48[sizeof (ast::stmt_dowhile::ptr)]; + char dummy49[sizeof (ast::stmt_dowhile::ptr)]; // stmt_endon - char dummy49[sizeof (ast::stmt_endon::ptr)]; + char dummy50[sizeof (ast::stmt_endon::ptr)]; // stmt_expr - char dummy50[sizeof (ast::stmt_expr::ptr)]; + char dummy51[sizeof (ast::stmt_expr::ptr)]; // stmt_for - char dummy51[sizeof (ast::stmt_for::ptr)]; + char dummy52[sizeof (ast::stmt_for::ptr)]; // stmt_foreach - char dummy52[sizeof (ast::stmt_foreach::ptr)]; + char dummy53[sizeof (ast::stmt_foreach::ptr)]; // stmt_if - char dummy53[sizeof (ast::stmt_if::ptr)]; + char dummy54[sizeof (ast::stmt_if::ptr)]; // stmt_ifelse - char dummy54[sizeof (ast::stmt_ifelse::ptr)]; + char dummy55[sizeof (ast::stmt_ifelse::ptr)]; // stmt_list // stmt_or_dev_list // stmt_block - char dummy55[sizeof (ast::stmt_list::ptr)]; + char dummy56[sizeof (ast::stmt_list::ptr)]; // stmt_notify - char dummy56[sizeof (ast::stmt_notify::ptr)]; + char dummy57[sizeof (ast::stmt_notify::ptr)]; // stmt_prof_begin - char dummy57[sizeof (ast::stmt_prof_begin::ptr)]; + char dummy58[sizeof (ast::stmt_prof_begin::ptr)]; // stmt_prof_end - char dummy58[sizeof (ast::stmt_prof_end::ptr)]; + char dummy59[sizeof (ast::stmt_prof_end::ptr)]; // stmt_return - char dummy59[sizeof (ast::stmt_return::ptr)]; + char dummy60[sizeof (ast::stmt_return::ptr)]; // stmt_switch - char dummy60[sizeof (ast::stmt_switch::ptr)]; + char dummy61[sizeof (ast::stmt_switch::ptr)]; // stmt_wait - char dummy61[sizeof (ast::stmt_wait::ptr)]; + char dummy62[sizeof (ast::stmt_wait::ptr)]; // stmt_waitframe - char dummy62[sizeof (ast::stmt_waitframe::ptr)]; + char dummy63[sizeof (ast::stmt_waitframe::ptr)]; // stmt_waittill - char dummy63[sizeof (ast::stmt_waittill::ptr)]; + char dummy64[sizeof (ast::stmt_waittill::ptr)]; // stmt_waittillframeend - char dummy64[sizeof (ast::stmt_waittillframeend::ptr)]; + char dummy65[sizeof (ast::stmt_waittillframeend::ptr)]; // stmt_waittillmatch - char dummy65[sizeof (ast::stmt_waittillmatch::ptr)]; + char dummy66[sizeof (ast::stmt_waittillmatch::ptr)]; // stmt_while - char dummy66[sizeof (ast::stmt_while::ptr)]; + char dummy67[sizeof (ast::stmt_while::ptr)]; // "path" // "identifier" @@ -641,7 +643,7 @@ namespace xsk { namespace gsc { namespace h2 { // "localized string" // "float" // "integer" - char dummy67[sizeof (std::string)]; + char dummy68[sizeof (std::string)]; }; /// The size of the largest semantic type. @@ -984,31 +986,31 @@ namespace xsk { namespace gsc { namespace h2 { S_expr_binary = 159, // expr_binary S_expr_primitive = 160, // expr_primitive S_expr_complement = 161, // expr_complement - S_expr_not = 162, // expr_not - S_expr_call = 163, // expr_call - S_expr_method = 164, // expr_method - S_expr_function = 165, // expr_function - S_expr_pointer = 166, // expr_pointer - S_expr_add_array = 167, // expr_add_array - S_expr_parameters = 168, // expr_parameters - S_expr_arguments = 169, // expr_arguments - S_expr_arguments_no_empty = 170, // expr_arguments_no_empty - S_expr_reference = 171, // expr_reference - S_expr_array = 172, // expr_array - S_expr_field = 173, // expr_field - S_expr_size = 174, // expr_size - S_expr_paren = 175, // expr_paren - S_expr_object = 176, // expr_object - S_expr_thisthread = 177, // expr_thisthread - S_expr_empty_array = 178, // expr_empty_array - S_expr_undefined = 179, // expr_undefined - S_expr_game = 180, // expr_game - S_expr_self = 181, // expr_self - S_expr_anim = 182, // expr_anim - S_expr_level = 183, // expr_level - S_expr_animation = 184, // expr_animation - S_expr_animtree = 185, // expr_animtree - S_expr_identifier_neg = 186, // expr_identifier_neg + S_expr_negate = 162, // expr_negate + S_expr_not = 163, // expr_not + S_expr_call = 164, // expr_call + S_expr_method = 165, // expr_method + S_expr_function = 166, // expr_function + S_expr_pointer = 167, // expr_pointer + S_expr_add_array = 168, // expr_add_array + S_expr_parameters = 169, // expr_parameters + S_expr_arguments = 170, // expr_arguments + S_expr_arguments_no_empty = 171, // expr_arguments_no_empty + S_expr_reference = 172, // expr_reference + S_expr_array = 173, // expr_array + S_expr_field = 174, // expr_field + S_expr_size = 175, // expr_size + S_expr_paren = 176, // expr_paren + S_expr_object = 177, // expr_object + S_expr_thisthread = 178, // expr_thisthread + S_expr_empty_array = 179, // expr_empty_array + S_expr_undefined = 180, // expr_undefined + S_expr_game = 181, // expr_game + S_expr_self = 182, // expr_self + S_expr_anim = 183, // expr_anim + S_expr_level = 184, // expr_level + S_expr_animation = 185, // expr_animation + S_expr_animtree = 186, // expr_animtree S_expr_identifier_nosize = 187, // expr_identifier_nosize S_expr_identifier = 188, // expr_identifier S_expr_path = 189, // expr_path @@ -1085,7 +1087,6 @@ 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; @@ -1163,6 +1164,10 @@ namespace xsk { namespace gsc { namespace h2 { value.move< ast::expr_method::ptr > (std::move (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (std::move (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (std::move (that.value)); break; @@ -1702,6 +1707,20 @@ namespace xsk { namespace gsc { namespace h2 { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, ast::expr_negate::ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const ast::expr_negate::ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ast::expr_not::ptr&& v, location_type&& l) : Base (t) @@ -2358,7 +2377,6 @@ 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; @@ -2436,6 +2454,10 @@ switch (yykind) value.template destroy< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + value.template destroy< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not value.template destroy< ast::expr_not::ptr > (); break; @@ -4817,7 +4839,7 @@ switch (yykind) /// Constants. enum { - yylast_ = 2310, ///< Last index in yytable_. + yylast_ = 2419, ///< Last index in yytable_. yynnts_ = 84, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4875,7 +4897,6 @@ 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; @@ -4953,6 +4974,10 @@ switch (yykind) value.copy< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -5194,7 +5219,6 @@ 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; @@ -5272,6 +5296,10 @@ switch (yykind) value.move< ast::expr_method::ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (s.value)); break; @@ -5519,7 +5547,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::h2 -#line 5523 "parser.hpp" +#line 5551 "parser.hpp" diff --git a/src/iw5/xsk/compiler.cpp b/src/iw5/xsk/compiler.cpp index 81f3eebf..83b0818d 100644 --- a/src/iw5/xsk/compiler.cpp +++ b/src/iw5/xsk/compiler.cpp @@ -938,6 +938,9 @@ void compiler::emit_expr(const ast::expr& expr, const block::ptr& blk) case ast::kind::expr_complement: emit_expr_complement(expr.as_complement, blk); break; + case ast::kind::expr_negate: + emit_expr_negate(expr.as_negate, blk); + break; case ast::kind::expr_not: emit_expr_not(expr.as_not, blk); break; @@ -1251,6 +1254,13 @@ void compiler::emit_expr_complement(const ast::expr_complement::ptr& expr, const emit_opcode(opcode::OP_BoolComplement); } +void compiler::emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk) +{ + emit_opcode(opcode::OP_GetZero); + emit_expr(expr->rvalue, blk); + emit_opcode(opcode::OP_minus); +} + void compiler::emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk) { emit_expr(expr->rvalue, blk); diff --git a/src/iw5/xsk/compiler.hpp b/src/iw5/xsk/compiler.hpp index ed1aa952..7c1ced6e 100644 --- a/src/iw5/xsk/compiler.hpp +++ b/src/iw5/xsk/compiler.hpp @@ -82,6 +82,7 @@ private: void emit_expr_and(const ast::expr_and::ptr& expr, const block::ptr& blk); void emit_expr_or(const ast::expr_or::ptr& expr, const block::ptr& blk); void emit_expr_complement(const ast::expr_complement::ptr& expr, const block::ptr& blk); + void emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk); void emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk); void emit_expr_call(const ast::expr_call::ptr& expr, const block::ptr& blk, bool is_stmt); void emit_expr_call_pointer(const ast::expr_pointer::ptr& expr, const block::ptr& blk, bool is_stmt); diff --git a/src/iw5/xsk/parser.cpp b/src/iw5/xsk/parser.cpp index a1d7a74e..a9eae7aa 100644 --- a/src/iw5/xsk/parser.cpp +++ b/src/iw5/xsk/parser.cpp @@ -245,7 +245,6 @@ 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; @@ -323,6 +322,10 @@ namespace xsk { namespace gsc { namespace iw5 { value.YY_MOVE_OR_COPY< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.YY_MOVE_OR_COPY< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.YY_MOVE_OR_COPY< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -544,7 +547,6 @@ 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; @@ -622,6 +624,10 @@ namespace xsk { namespace gsc { namespace iw5 { value.move< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -843,7 +849,6 @@ 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; @@ -921,6 +926,10 @@ namespace xsk { namespace gsc { namespace iw5 { value.copy< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (that.value); break; @@ -1141,7 +1150,6 @@ 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; @@ -1219,6 +1227,10 @@ namespace xsk { namespace gsc { namespace iw5 { value.move< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (that.value); break; @@ -1694,7 +1706,6 @@ 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; @@ -1772,6 +1783,10 @@ namespace xsk { namespace gsc { namespace iw5 { yylhs.value.emplace< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + yylhs.value.emplace< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not yylhs.value.emplace< ast::expr_not::ptr > (); break; @@ -1971,1313 +1986,1331 @@ namespace xsk { namespace gsc { namespace iw5 { case 2: // root: program #line 258 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1975 "parser.cpp" +#line 1990 "parser.cpp" break; case 3: // root: %empty #line 259 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 1981 "parser.cpp" +#line 1996 "parser.cpp" break; case 4: // program: program inline #line 264 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 1987 "parser.cpp" +#line 2002 "parser.cpp" break; case 5: // program: program include #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 1993 "parser.cpp" +#line 2008 "parser.cpp" break; case 6: // program: program declaration #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 1999 "parser.cpp" +#line 2014 "parser.cpp" break; case 7: // program: inline #line 270 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2005 "parser.cpp" +#line 2020 "parser.cpp" break; case 8: // program: include #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 2011 "parser.cpp" +#line 2026 "parser.cpp" break; case 9: // program: declaration #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 2017 "parser.cpp" +#line 2032 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" #line 278 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2023 "parser.cpp" +#line 2038 "parser.cpp" break; case 11: // include: "#include" expr_path ";" #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 2029 "parser.cpp" +#line 2044 "parser.cpp" break; case 12: // declaration: "/#" #line 287 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2035 "parser.cpp" +#line 2050 "parser.cpp" break; case 13: // declaration: "#/" #line 288 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2041 "parser.cpp" +#line 2056 "parser.cpp" break; case 14: // declaration: decl_usingtree #line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2047 "parser.cpp" +#line 2062 "parser.cpp" break; case 15: // declaration: decl_constant #line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2053 "parser.cpp" +#line 2068 "parser.cpp" break; case 16: // declaration: decl_thread #line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2059 "parser.cpp" +#line 2074 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" #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 2065 "parser.cpp" +#line 2080 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" #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 2071 "parser.cpp" +#line 2086 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block #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 2077 "parser.cpp" +#line 2092 "parser.cpp" break; case 20: // stmt: stmt_block #line 310 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2083 "parser.cpp" +#line 2098 "parser.cpp" break; case 21: // stmt: stmt_call #line 311 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2089 "parser.cpp" +#line 2104 "parser.cpp" break; case 22: // stmt: stmt_assign #line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2095 "parser.cpp" +#line 2110 "parser.cpp" break; case 23: // stmt: stmt_endon #line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2101 "parser.cpp" +#line 2116 "parser.cpp" break; case 24: // stmt: stmt_notify #line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2107 "parser.cpp" +#line 2122 "parser.cpp" break; case 25: // stmt: stmt_wait #line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2113 "parser.cpp" +#line 2128 "parser.cpp" break; case 26: // stmt: stmt_waittill #line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2119 "parser.cpp" +#line 2134 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch #line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2125 "parser.cpp" +#line 2140 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend #line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2131 "parser.cpp" +#line 2146 "parser.cpp" break; case 29: // stmt: stmt_if #line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2137 "parser.cpp" +#line 2152 "parser.cpp" break; case 30: // stmt: stmt_ifelse #line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2143 "parser.cpp" +#line 2158 "parser.cpp" break; case 31: // stmt: stmt_while #line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2149 "parser.cpp" +#line 2164 "parser.cpp" break; case 32: // stmt: stmt_dowhile #line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2155 "parser.cpp" +#line 2170 "parser.cpp" break; case 33: // stmt: stmt_for #line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2161 "parser.cpp" +#line 2176 "parser.cpp" break; case 34: // stmt: stmt_foreach #line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2167 "parser.cpp" +#line 2182 "parser.cpp" break; case 35: // stmt: stmt_switch #line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2173 "parser.cpp" +#line 2188 "parser.cpp" break; case 36: // stmt: stmt_case #line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2179 "parser.cpp" +#line 2194 "parser.cpp" break; case 37: // stmt: stmt_default #line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2185 "parser.cpp" +#line 2200 "parser.cpp" break; case 38: // stmt: stmt_break #line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2191 "parser.cpp" +#line 2206 "parser.cpp" break; case 39: // stmt: stmt_continue #line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2197 "parser.cpp" +#line 2212 "parser.cpp" break; case 40: // stmt: stmt_return #line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2203 "parser.cpp" +#line 2218 "parser.cpp" break; case 41: // stmt: stmt_breakpoint #line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2209 "parser.cpp" +#line 2224 "parser.cpp" break; case 42: // stmt: stmt_prof_begin #line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2215 "parser.cpp" +#line 2230 "parser.cpp" break; case 43: // stmt: stmt_prof_end #line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2221 "parser.cpp" +#line 2236 "parser.cpp" break; case 44: // stmt_or_dev: stmt #line 337 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2227 "parser.cpp" +#line 2242 "parser.cpp" break; case 45: // stmt_or_dev: stmt_dev #line 338 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2233 "parser.cpp" +#line 2248 "parser.cpp" break; case 46: // stmt_list: stmt_list stmt #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 2239 "parser.cpp" +#line 2254 "parser.cpp" break; case 47: // stmt_list: stmt #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 2245 "parser.cpp" +#line 2260 "parser.cpp" break; case 48: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev #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 2251 "parser.cpp" +#line 2266 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev #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 2257 "parser.cpp" +#line 2272 "parser.cpp" break; case 50: // stmt_dev: "/#" stmt_list "#/" #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 2263 "parser.cpp" +#line 2278 "parser.cpp" break; case 51: // stmt_dev: "/#" "#/" #line 357 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2269 "parser.cpp" +#line 2284 "parser.cpp" break; case 52: // stmt_block: "{" stmt_or_dev_list "}" #line 361 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2275 "parser.cpp" +#line 2290 "parser.cpp" break; case 53: // stmt_block: "{" "}" #line 362 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2281 "parser.cpp" +#line 2296 "parser.cpp" break; case 54: // stmt_expr: expr_assign #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 2287 "parser.cpp" +#line 2302 "parser.cpp" break; case 55: // stmt_expr: expr_increment #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 2293 "parser.cpp" +#line 2308 "parser.cpp" break; case 56: // stmt_expr: expr_decrement #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 2299 "parser.cpp" +#line 2314 "parser.cpp" break; case 57: // stmt_expr: %empty #line 373 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2305 "parser.cpp" +#line 2320 "parser.cpp" break; case 58: // stmt_call: expr_call ";" #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 2311 "parser.cpp" +#line 2326 "parser.cpp" break; case 59: // stmt_call: expr_method ";" #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 2317 "parser.cpp" +#line 2332 "parser.cpp" break; case 60: // stmt_assign: expr_assign ";" #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 2323 "parser.cpp" +#line 2338 "parser.cpp" break; case 61: // stmt_assign: expr_increment ";" #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 2329 "parser.cpp" +#line 2344 "parser.cpp" break; case 62: // stmt_assign: expr_decrement ";" #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 2335 "parser.cpp" +#line 2350 "parser.cpp" break; case 63: // stmt_endon: expr_object "endon" "(" expr ")" ";" #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 2341 "parser.cpp" +#line 2356 "parser.cpp" break; case 64: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" #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 2347 "parser.cpp" +#line 2362 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr ")" ";" #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 2353 "parser.cpp" +#line 2368 "parser.cpp" break; case 66: // stmt_wait: "wait" expr ";" #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 2359 "parser.cpp" +#line 2374 "parser.cpp" break; case 67: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" #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 2365 "parser.cpp" +#line 2380 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" #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 2371 "parser.cpp" +#line 2386 "parser.cpp" break; case 69: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" #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 2377 "parser.cpp" +#line 2392 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" #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 2383 "parser.cpp" +#line 2398 "parser.cpp" break; case 71: // stmt_waittillframeend: "waittillframeend" ";" #line 425 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2389 "parser.cpp" +#line 2404 "parser.cpp" break; case 72: // stmt_if: "if" "(" expr ")" stmt #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 2395 "parser.cpp" +#line 2410 "parser.cpp" break; case 73: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt #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 2401 "parser.cpp" +#line 2416 "parser.cpp" break; case 74: // stmt_while: "while" "(" expr ")" stmt #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 2407 "parser.cpp" +#line 2422 "parser.cpp" break; case 75: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" #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 2413 "parser.cpp" +#line 2428 "parser.cpp" break; case 76: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt #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 2419 "parser.cpp" +#line 2434 "parser.cpp" break; case 77: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt #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 2425 "parser.cpp" +#line 2440 "parser.cpp" break; case 78: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt #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 2431 "parser.cpp" +#line 2446 "parser.cpp" break; case 79: // stmt_switch: "switch" "(" expr ")" stmt_block #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 2437 "parser.cpp" +#line 2452 "parser.cpp" break; case 80: // stmt_case: "case" expr_integer ":" #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 2443 "parser.cpp" +#line 2458 "parser.cpp" break; case 81: // stmt_case: "case" expr_string ":" #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 2449 "parser.cpp" +#line 2464 "parser.cpp" break; case 82: // stmt_default: "default" ":" #line 474 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2455 "parser.cpp" +#line 2470 "parser.cpp" break; case 83: // stmt_break: "break" ";" #line 479 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2461 "parser.cpp" +#line 2476 "parser.cpp" break; case 84: // stmt_continue: "continue" ";" #line 484 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2467 "parser.cpp" +#line 2482 "parser.cpp" break; case 85: // stmt_return: "return" expr ";" #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 2473 "parser.cpp" +#line 2488 "parser.cpp" break; case 86: // stmt_return: "return" ";" #line 491 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2479 "parser.cpp" +#line 2494 "parser.cpp" break; case 87: // stmt_breakpoint: "breakpoint" ";" #line 496 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2485 "parser.cpp" +#line 2500 "parser.cpp" break; case 88: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" #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 2491 "parser.cpp" +#line 2506 "parser.cpp" break; case 89: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" #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 2497 "parser.cpp" +#line 2512 "parser.cpp" break; case 90: // expr: expr_ternary #line 510 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2503 "parser.cpp" +#line 2518 "parser.cpp" break; case 91: // expr: expr_binary #line 511 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2509 "parser.cpp" +#line 2524 "parser.cpp" break; case 92: // expr: expr_primitive #line 512 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2515 "parser.cpp" +#line 2530 "parser.cpp" break; case 93: // expr_or_empty: expr #line 516 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2521 "parser.cpp" +#line 2536 "parser.cpp" break; case 94: // expr_or_empty: %empty #line 517 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2527 "parser.cpp" +#line 2542 "parser.cpp" break; case 95: // expr_assign: expr_object "=" expr #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 2533 "parser.cpp" +#line 2548 "parser.cpp" break; case 96: // expr_assign: expr_object "|=" expr #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 2539 "parser.cpp" +#line 2554 "parser.cpp" break; case 97: // expr_assign: expr_object "&=" expr #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 2545 "parser.cpp" +#line 2560 "parser.cpp" break; case 98: // expr_assign: expr_object "^=" expr #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 2551 "parser.cpp" +#line 2566 "parser.cpp" break; case 99: // expr_assign: expr_object "<<=" expr #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 2557 "parser.cpp" +#line 2572 "parser.cpp" break; case 100: // expr_assign: expr_object ">>=" expr #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 2563 "parser.cpp" +#line 2578 "parser.cpp" break; case 101: // expr_assign: expr_object "+=" expr #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 2569 "parser.cpp" +#line 2584 "parser.cpp" break; case 102: // expr_assign: expr_object "-=" expr #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 2575 "parser.cpp" +#line 2590 "parser.cpp" break; case 103: // expr_assign: expr_object "*=" expr #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 2581 "parser.cpp" +#line 2596 "parser.cpp" break; case 104: // expr_assign: expr_object "/=" expr #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 2587 "parser.cpp" +#line 2602 "parser.cpp" break; case 105: // expr_assign: expr_object "%=" expr #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 2593 "parser.cpp" +#line 2608 "parser.cpp" break; case 106: // expr_increment: "++" expr_object #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 2599 "parser.cpp" +#line 2614 "parser.cpp" break; case 107: // expr_increment: expr_object "++" #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 2605 "parser.cpp" +#line 2620 "parser.cpp" break; case 108: // expr_decrement: "--" expr_object #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 2611 "parser.cpp" +#line 2626 "parser.cpp" break; case 109: // expr_decrement: expr_object "--" #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 2617 "parser.cpp" +#line 2632 "parser.cpp" break; case 110: // expr_ternary: expr "?" expr ":" expr #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 2623 "parser.cpp" +#line 2638 "parser.cpp" break; case 111: // expr_binary: expr "||" expr #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 2629 "parser.cpp" +#line 2644 "parser.cpp" break; case 112: // expr_binary: expr "&&" expr #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 2635 "parser.cpp" +#line 2650 "parser.cpp" break; case 113: // expr_binary: expr "==" expr #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 2641 "parser.cpp" +#line 2656 "parser.cpp" break; case 114: // expr_binary: expr "!=" expr #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 2647 "parser.cpp" +#line 2662 "parser.cpp" break; case 115: // expr_binary: expr "<=" expr #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 2653 "parser.cpp" +#line 2668 "parser.cpp" break; case 116: // expr_binary: expr ">=" expr #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 2659 "parser.cpp" +#line 2674 "parser.cpp" break; case 117: // expr_binary: expr "<" expr #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 2665 "parser.cpp" +#line 2680 "parser.cpp" break; case 118: // expr_binary: expr ">" expr #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 2671 "parser.cpp" +#line 2686 "parser.cpp" break; case 119: // expr_binary: expr "|" expr #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 2677 "parser.cpp" +#line 2692 "parser.cpp" break; case 120: // expr_binary: expr "&" expr #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 2683 "parser.cpp" +#line 2698 "parser.cpp" break; case 121: // expr_binary: expr "^" expr #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 2689 "parser.cpp" +#line 2704 "parser.cpp" break; case 122: // expr_binary: expr "<<" expr #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 2695 "parser.cpp" +#line 2710 "parser.cpp" break; case 123: // expr_binary: expr ">>" expr #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 2701 "parser.cpp" +#line 2716 "parser.cpp" break; case 124: // expr_binary: expr "+" expr #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 2707 "parser.cpp" +#line 2722 "parser.cpp" break; case 125: // expr_binary: expr "-" expr #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 2713 "parser.cpp" +#line 2728 "parser.cpp" break; case 126: // expr_binary: expr "*" expr #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 2719 "parser.cpp" +#line 2734 "parser.cpp" break; case 127: // expr_binary: expr "/" expr #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 2725 "parser.cpp" +#line 2740 "parser.cpp" break; case 128: // expr_binary: expr "%" expr #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 2731 "parser.cpp" +#line 2746 "parser.cpp" break; case 129: // expr_primitive: expr_complement #line 604 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2737 "parser.cpp" +#line 2752 "parser.cpp" break; - case 130: // expr_primitive: expr_not + case 130: // expr_primitive: expr_negate #line 605 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2743 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_negate::ptr > ()); } +#line 2758 "parser.cpp" break; - case 131: // expr_primitive: expr_call + case 131: // expr_primitive: expr_not #line 606 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2749 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } +#line 2764 "parser.cpp" break; - case 132: // expr_primitive: expr_method + case 132: // expr_primitive: expr_call #line 607 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2755 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 2770 "parser.cpp" break; - case 133: // expr_primitive: expr_add_array + case 133: // expr_primitive: expr_method #line 608 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2761 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 2776 "parser.cpp" break; - case 134: // expr_primitive: expr_reference + case 134: // expr_primitive: expr_add_array #line 609 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2767 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } +#line 2782 "parser.cpp" break; - case 135: // expr_primitive: expr_array + case 135: // expr_primitive: expr_reference #line 610 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2773 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } +#line 2788 "parser.cpp" break; - case 136: // expr_primitive: expr_field + case 136: // expr_primitive: expr_array #line 611 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2779 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 2794 "parser.cpp" break; - case 137: // expr_primitive: expr_size + case 137: // expr_primitive: expr_field #line 612 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2785 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 2800 "parser.cpp" break; - case 138: // expr_primitive: expr_paren + case 138: // expr_primitive: expr_size #line 613 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2791 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } +#line 2806 "parser.cpp" break; - case 139: // expr_primitive: expr_thisthread + case 139: // expr_primitive: expr_paren #line 614 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2797 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } +#line 2812 "parser.cpp" break; - case 140: // expr_primitive: expr_empty_array + case 140: // expr_primitive: expr_thisthread #line 615 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2803 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } +#line 2818 "parser.cpp" break; - case 141: // expr_primitive: expr_undefined + case 141: // expr_primitive: expr_empty_array #line 616 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2809 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } +#line 2824 "parser.cpp" break; - case 142: // expr_primitive: expr_game + case 142: // expr_primitive: expr_undefined #line 617 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2815 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } +#line 2830 "parser.cpp" break; - case 143: // expr_primitive: expr_self + case 143: // expr_primitive: expr_game #line 618 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2821 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 2836 "parser.cpp" break; - case 144: // expr_primitive: expr_anim + case 144: // expr_primitive: expr_self #line 619 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2827 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 2842 "parser.cpp" break; - case 145: // expr_primitive: expr_level + case 145: // expr_primitive: expr_anim #line 620 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2833 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 2848 "parser.cpp" break; - case 146: // expr_primitive: expr_animation + case 146: // expr_primitive: expr_level #line 621 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2839 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 2854 "parser.cpp" break; - case 147: // expr_primitive: expr_animtree + case 147: // expr_primitive: expr_animation #line 622 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2845 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } +#line 2860 "parser.cpp" break; - case 148: // expr_primitive: expr_identifier_neg + case 148: // expr_primitive: expr_animtree #line 623 "parser.ypp" - { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2851 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2866 "parser.cpp" break; 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_identifier::ptr > ()); } -#line 2857 "parser.cpp" +#line 2872 "parser.cpp" break; 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_istring::ptr > ()); } -#line 2863 "parser.cpp" +#line 2878 "parser.cpp" break; 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_string::ptr > ()); } -#line 2869 "parser.cpp" +#line 2884 "parser.cpp" break; 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_vector::ptr > ()); } -#line 2875 "parser.cpp" +#line 2890 "parser.cpp" break; 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_float::ptr > ()); } -#line 2881 "parser.cpp" +#line 2896 "parser.cpp" break; 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" +#line 2902 "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" +#line 2908 "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 2899 "parser.cpp" +#line 2914 "parser.cpp" break; 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 2905 "parser.cpp" +#line 2920 "parser.cpp" break; - case 158: // expr_not: "!" expr + case 158: // expr_negate: "-" expr_identifier #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 2911 "parser.cpp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()))); } +#line 2926 "parser.cpp" break; - case 159: // expr_call: expr_function + case 159: // expr_negate: "-" expr_paren +#line 643 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()))); } +#line 2932 "parser.cpp" + break; + + case 160: // expr_negate: "-" expr_array #line 645 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_array::ptr > ()))); } +#line 2938 "parser.cpp" + break; + + case 161: // expr_negate: "-" expr_field +#line 647 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_field::ptr > ()))); } +#line 2944 "parser.cpp" + break; + + case 162: // expr_not: "!" expr +#line 652 "parser.ypp" + { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } +#line 2950 "parser.cpp" + break; + + case 163: // expr_call: expr_function +#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 2917 "parser.cpp" +#line 2956 "parser.cpp" break; - 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 2923 "parser.cpp" - break; - - 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 2929 "parser.cpp" - break; - - 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 2935 "parser.cpp" - break; - - 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::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: expr_path "::" expr_identifier "(" expr_arguments ")" + case 164: // expr_call: expr_pointer #line 657 "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 2947 "parser.cpp" + { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } +#line 2962 "parser.cpp" break; - 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::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" + case 165: // expr_method: expr_object expr_function +#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 2968 "parser.cpp" break; - case 166: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 166: // expr_method: expr_object expr_pointer #line 661 "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 2959 "parser.cpp" + { 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 2974 "parser.cpp" break; - 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" + case 167: // expr_function: expr_identifier "(" expr_arguments ")" +#line 666 "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 2980 "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 2971 "parser.cpp" + case 168: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" +#line 668 "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 2986 "parser.cpp" break; - case 169: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" + case 169: // expr_function: "thread" expr_identifier "(" 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::normal); } -#line 2977 "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 2992 "parser.cpp" break; - case 170: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 170: // expr_function: "thread" expr_path "::" expr_identifier "(" 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::thread); } -#line 2983 "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 2998 "parser.cpp" break; - case 171: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 171: // expr_function: "childthread" expr_identifier "(" 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" + { 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 3004 "parser.cpp" break; - case 172: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 172: // expr_function: "childthread" expr_path "::" expr_identifier "(" 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 2995 "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::childthread); } +#line 3010 "parser.cpp" break; - case 173: // expr_add_array: "[" expr_arguments_no_empty "]" + case 173: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 681 "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 3016 "parser.cpp" + break; + + case 174: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 683 "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 3022 "parser.cpp" + break; + + case 175: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 685 "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 3028 "parser.cpp" + break; + + case 176: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 687 "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 3034 "parser.cpp" + break; + + case 177: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 692 "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 3001 "parser.cpp" +#line 3040 "parser.cpp" break; - case 174: // expr_parameters: expr_parameters "," expr_identifier -#line 686 "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 3007 "parser.cpp" - break; - - 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 3019 "parser.cpp" - break; - - 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 + case 178: // expr_parameters: expr_parameters "," expr_identifier #line 697 "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 3046 "parser.cpp" + break; + + case 179: // expr_parameters: expr_identifier +#line 699 "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 3052 "parser.cpp" + break; + + case 180: // expr_parameters: %empty +#line 701 "parser.ypp" + { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } +#line 3058 "parser.cpp" + break; + + case 181: // expr_arguments: expr_arguments_no_empty +#line 706 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3064 "parser.cpp" + break; + + case 182: // expr_arguments: %empty +#line 708 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3031 "parser.cpp" +#line 3070 "parser.cpp" break; - case 179: // expr_arguments_no_empty: expr_arguments "," expr -#line 702 "parser.ypp" + case 183: // expr_arguments_no_empty: expr_arguments "," expr +#line 713 "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" +#line 3076 "parser.cpp" break; - case 180: // expr_arguments_no_empty: expr -#line 704 "parser.ypp" + case 184: // expr_arguments_no_empty: expr +#line 715 "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 3043 "parser.cpp" +#line 3082 "parser.cpp" break; - case 181: // expr_reference: "::" expr_identifier -#line 709 "parser.ypp" + case 185: // expr_reference: "::" expr_identifier +#line 720 "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" +#line 3088 "parser.cpp" break; - case 182: // expr_reference: expr_path "::" expr_identifier -#line 711 "parser.ypp" + case 186: // expr_reference: expr_path "::" expr_identifier +#line 722 "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 3055 "parser.cpp" +#line 3094 "parser.cpp" break; - case 183: // expr_array: expr_object "[" expr "]" -#line 716 "parser.ypp" + case 187: // expr_array: expr_object "[" expr "]" +#line 727 "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 3061 "parser.cpp" +#line 3100 "parser.cpp" break; - case 184: // expr_field: expr_object "." expr_identifier_nosize -#line 721 "parser.ypp" + case 188: // expr_field: expr_object "." expr_identifier_nosize +#line 732 "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 3067 "parser.cpp" +#line 3106 "parser.cpp" break; - 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 3073 "parser.cpp" - break; - - 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 3079 "parser.cpp" - break; - - 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_call::ptr > ()); } -#line 3085 "parser.cpp" - break; - - 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_method::ptr > ()); } -#line 3091 "parser.cpp" - break; - - case 189: // expr_object: expr_array + case 189: // expr_size: expr_object "." "size" #line 737 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3097 "parser.cpp" + { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } +#line 3112 "parser.cpp" break; - 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_field::ptr > ()); } -#line 3103 "parser.cpp" - break; - - 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_game::ptr > ()); } -#line 3109 "parser.cpp" - break; - - 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_self::ptr > ()); } -#line 3115 "parser.cpp" - break; - - 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 + case 190: // expr_paren: "(" expr ")" #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" + { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3118 "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 3133 "parser.cpp" + case 191: // expr_object: expr_call +#line 746 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3124 "parser.cpp" break; - case 196: // expr_thisthread: "thisthread" + case 192: // expr_object: expr_method +#line 747 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3130 "parser.cpp" + break; + + case 193: // expr_object: expr_array #line 748 "parser.ypp" - { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3139 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3136 "parser.cpp" break; - case 197: // expr_empty_array: "[" "]" + case 194: // expr_object: expr_field +#line 749 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3142 "parser.cpp" + break; + + case 195: // expr_object: expr_game +#line 750 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3148 "parser.cpp" + break; + + case 196: // expr_object: expr_self +#line 751 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3154 "parser.cpp" + break; + + case 197: // expr_object: expr_anim +#line 752 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3160 "parser.cpp" + break; + + case 198: // expr_object: expr_level #line 753 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3166 "parser.cpp" + break; + + case 199: // expr_object: expr_identifier +#line 754 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 3172 "parser.cpp" + break; + + case 200: // expr_thisthread: "thisthread" +#line 759 "parser.ypp" + { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } +#line 3178 "parser.cpp" + break; + + case 201: // expr_empty_array: "[" "]" +#line 764 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3145 "parser.cpp" +#line 3184 "parser.cpp" break; - case 198: // expr_undefined: "undefined" -#line 758 "parser.ypp" + case 202: // expr_undefined: "undefined" +#line 769 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3151 "parser.cpp" +#line 3190 "parser.cpp" break; - case 199: // expr_game: "game" -#line 763 "parser.ypp" + case 203: // expr_game: "game" +#line 774 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3157 "parser.cpp" +#line 3196 "parser.cpp" break; - case 200: // expr_self: "self" -#line 768 "parser.ypp" + case 204: // expr_self: "self" +#line 779 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3163 "parser.cpp" +#line 3202 "parser.cpp" break; - case 201: // expr_anim: "anim" -#line 773 "parser.ypp" + case 205: // expr_anim: "anim" +#line 784 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3169 "parser.cpp" +#line 3208 "parser.cpp" break; - case 202: // expr_level: "level" -#line 778 "parser.ypp" + case 206: // expr_level: "level" +#line 789 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3175 "parser.cpp" +#line 3214 "parser.cpp" break; - case 203: // expr_animation: "%" "identifier" -#line 783 "parser.ypp" + case 207: // expr_animation: "%" "identifier" +#line 794 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3181 "parser.cpp" +#line 3220 "parser.cpp" break; - case 204: // expr_animtree: "#animtree" -#line 788 "parser.ypp" + case 208: // expr_animtree: "#animtree" +#line 799 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3187 "parser.cpp" +#line 3226 "parser.cpp" break; - 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 206: // expr_identifier_nosize: "identifier" -#line 798 "parser.ypp" + case 209: // expr_identifier_nosize: "identifier" +#line 804 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3199 "parser.cpp" +#line 3232 "parser.cpp" break; - case 207: // expr_identifier: "identifier" -#line 803 "parser.ypp" + case 210: // expr_identifier: "identifier" +#line 809 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3205 "parser.cpp" +#line 3238 "parser.cpp" break; - case 208: // expr_identifier: "size" -#line 805 "parser.ypp" + case 211: // expr_identifier: "size" +#line 811 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3211 "parser.cpp" +#line 3244 "parser.cpp" break; - case 209: // expr_path: "identifier" -#line 810 "parser.ypp" + case 212: // expr_path: "identifier" +#line 816 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3217 "parser.cpp" +#line 3250 "parser.cpp" break; - case 210: // expr_path: "path" -#line 812 "parser.ypp" + case 213: // expr_path: "path" +#line 818 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3223 "parser.cpp" +#line 3256 "parser.cpp" break; - case 211: // expr_istring: "localized string" -#line 817 "parser.ypp" + case 214: // expr_istring: "localized string" +#line 823 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3229 "parser.cpp" +#line 3262 "parser.cpp" break; - case 212: // expr_string: "string literal" -#line 822 "parser.ypp" + case 215: // expr_string: "string literal" +#line 828 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3235 "parser.cpp" +#line 3268 "parser.cpp" break; - case 213: // expr_vector: "(" expr "," expr "," expr ")" -#line 827 "parser.ypp" + case 216: // expr_vector: "(" expr "," expr "," expr ")" +#line 833 "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 3241 "parser.cpp" +#line 3274 "parser.cpp" break; - case 214: // expr_float: "-" "float" -#line 832 "parser.ypp" + case 217: // expr_float: "-" "float" +#line 838 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3247 "parser.cpp" +#line 3280 "parser.cpp" break; - case 215: // expr_float: "float" -#line 834 "parser.ypp" + case 218: // expr_float: "float" +#line 840 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3253 "parser.cpp" +#line 3286 "parser.cpp" break; - case 216: // expr_integer: "-" "integer" -#line 839 "parser.ypp" + case 219: // expr_integer: "-" "integer" +#line 845 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3259 "parser.cpp" +#line 3292 "parser.cpp" break; - case 217: // expr_integer: "integer" -#line 841 "parser.ypp" + case 220: // expr_integer: "integer" +#line 847 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3265 "parser.cpp" +#line 3298 "parser.cpp" break; - case 218: // expr_false: "false" -#line 846 "parser.ypp" + case 221: // expr_false: "false" +#line 852 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3271 "parser.cpp" +#line 3304 "parser.cpp" break; - case 219: // expr_true: "true" -#line 851 "parser.ypp" + case 222: // expr_true: "true" +#line 857 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3277 "parser.cpp" +#line 3310 "parser.cpp" break; -#line 3281 "parser.cpp" +#line 3314 "parser.cpp" default: break; @@ -3485,15 +3518,15 @@ namespace xsk { namespace gsc { namespace iw5 { "stmt_return", "stmt_breakpoint", "stmt_prof_begin", "stmt_prof_end", "expr", "expr_or_empty", "expr_assign", "expr_increment", "expr_decrement", "expr_ternary", "expr_binary", "expr_primitive", - "expr_complement", "expr_not", "expr_call", "expr_method", + "expr_complement", "expr_negate", "expr_not", "expr_call", "expr_method", "expr_function", "expr_pointer", "expr_add_array", "expr_parameters", "expr_arguments", "expr_arguments_no_empty", "expr_reference", "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_neg", "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_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]; } @@ -3762,592 +3795,620 @@ namespace xsk { namespace gsc { namespace iw5 { } - const short parser::yypact_ninf_ = -266; + const short parser::yypact_ninf_ = -280; - const short parser::yytable_ninf_ = -210; + const short parser::yytable_ninf_ = -213; const short parser::yypact_[] = { - 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, 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 + 26, -280, -280, -44, -44, -8, -280, -280, 19, 26, + -280, -280, -280, -280, -280, -280, -30, -280, -280, -11, + 2, -75, -280, -280, -280, -280, -38, 1168, -280, -280, + -280, -6, -41, -280, -280, -31, -28, -280, 12, -280, + -280, -280, -280, -280, -280, -280, 1168, 1042, -38, 1168, + 1168, 51, -24, 23, -280, -280, -280, 2072, -280, -280, + -280, -280, -280, -280, 324, 440, -280, -280, -280, -280, + 515, 550, -280, -280, 651, -280, -280, -280, 661, 862, + 867, 1065, -280, -280, 71, 33, -280, -280, -280, -280, + -280, -280, -280, 35, 31, -38, 48, 57, 59, 61, + 73, 66, 76, 1364, 1042, -280, 2155, 77, 87, -280, + -280, -280, 1168, 82, -280, -280, -280, -280, 515, 550, + -280, 1073, -280, -280, -280, -280, 71, 91, -280, -280, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1231, + -36, -280, -280, 105, 1168, -38, -280, 831, -280, -280, + 1168, 1168, -38, 1168, 1168, -38, 1168, -280, 1168, 1164, + 1168, -280, 1530, 1168, 49, -38, 2037, 95, 95, 2186, + 2196, 187, 187, -37, -37, -37, -37, 2227, 2268, 2237, + -62, -62, -280, -280, -280, 1842, -280, -280, -280, -32, + -280, 109, 960, 1168, 100, 112, 1354, 113, 119, 120, + 121, -21, 114, 117, 122, 1105, 123, 129, 130, -280, + 39, 39, -280, -280, 907, -280, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + 133, 135, 136, 137, 138, -280, -280, 1278, 105, 1882, + 18, 150, 1922, 52, 153, 1962, 2001, 151, 2155, 1164, + 109, 1168, -280, -280, 1168, -280, -280, 1013, 2107, -280, + 1168, 182, 1168, 618, -38, 1168, 108, 152, 154, -280, + -280, -280, -280, 2142, -280, 1168, 1168, 1073, 1073, -280, + -280, -280, -280, -280, -280, -280, 159, 162, 166, 167, + -280, -280, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 163, -280, 1168, 172, -280, 1168, 176, + 1168, 171, 2155, 55, -280, -280, -280, 1564, 183, 1598, + 175, -280, -280, -280, 696, -15, 1632, -280, -280, -280, + 62, 63, 1168, 1168, 1168, 1168, 2155, 2155, 2155, 2155, + 2155, 2155, 2155, 2155, 2155, 2155, 2155, 186, 75, 191, + 81, 192, 1666, 1168, -280, 1354, 1168, 1354, 1168, 1168, + -38, 31, 190, 194, 1700, 1408, 1452, 1496, 1168, -280, + 1168, -280, 1168, -280, 88, 199, 1734, -280, 2155, 195, + 1768, 221, -280, -280, -280, 202, 203, 1168, 204, 1168, + 208, 1168, 92, 101, 102, -280, 1354, 209, 618, 1354, + 1168, -280, -280, 219, -280, 222, -280, 223, -280, -280, + -280, -280, -280, 224, -280, 1802, 212, 229, 230, 1354, + 1354, -280, -280, -280, -280, -280 }; const unsigned char parser::yydefact_[] = { - 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, + 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, 180, 0, 10, 11, + 215, 0, 0, 179, 208, 0, 0, 200, 0, 222, + 221, 202, 203, 204, 205, 206, 0, 182, 0, 0, + 0, 0, 0, 210, 214, 218, 220, 0, 90, 91, + 92, 129, 130, 131, 132, 133, 163, 164, 134, 135, + 136, 137, 138, 139, 0, 140, 141, 142, 143, 144, 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, 182, 201, 184, 0, 181, 185, + 162, 157, 0, 0, 217, 219, 191, 192, 160, 161, + 159, 0, 195, 196, 197, 198, 158, 0, 207, 18, 0, 0, 0, 0, 0, 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, 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 + 0, 165, 166, 0, 182, 0, 17, 0, 19, 178, + 0, 182, 0, 0, 182, 0, 0, 190, 0, 184, + 0, 177, 0, 0, 0, 0, 0, 122, 123, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 124, 125, 126, 127, 128, 0, 189, 209, 188, 0, + 181, 186, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 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, 191, 192, 193, 194, 0, 199, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, + 0, 0, 187, 167, 182, 51, 47, 0, 0, 71, + 0, 0, 0, 57, 0, 0, 0, 0, 0, 82, + 83, 84, 86, 0, 87, 182, 182, 106, 108, 52, + 48, 60, 61, 62, 58, 59, 0, 0, 0, 0, + 107, 109, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 169, 182, 0, 171, 182, 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, 95, 101, 102, 103, + 104, 105, 96, 97, 98, 100, 99, 0, 0, 0, + 0, 0, 0, 182, 168, 0, 0, 0, 94, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 182, 170, + 182, 172, 182, 216, 0, 72, 0, 74, 93, 0, + 0, 0, 79, 88, 89, 0, 0, 182, 0, 182, + 0, 182, 0, 0, 0, 173, 0, 0, 57, 0, + 0, 63, 65, 181, 68, 181, 70, 181, 174, 175, + 176, 73, 75, 0, 77, 0, 0, 0, 0, 0, + 0, 64, 67, 69, 76, 78 }; const short parser::yypgoto_[] = { - -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, 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 + -280, -280, -280, 276, 285, 286, -280, -280, -280, -172, + 72, -280, -280, -280, -93, -119, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, 189, + -280, -279, -277, -276, -280, -280, -280, -280, -280, -280, + -29, 25, -72, -57, -280, -280, 15, -42, -280, 211, + 294, -280, 249, 310, -280, -280, -280, 327, 378, 395, + 412, -280, -280, -280, 0, 9, -280, -18, -280, -280, + 93, -280, -280 }; const short parser::yydefgoto_[] = { - 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, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 222, + 223, 277, 224, 225, 226, 340, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 106, + 399, 250, 251, 252, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 32, 107, 200, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 182, 84, 85, 86, 87, 88, 89, + 81, 82, 83, 198, 84, 85, 86, 87, 88, 89, 90, 91, 92 }; const short parser::yytable_[] = { - 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, 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, 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, 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, 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, + 16, 158, 151, 31, 341, 108, 342, 343, 6, 16, + 196, 94, 19, 20, 379, 6, 95, 152, 6, 22, + 273, 26, 116, 30, 96, 170, 33, 99, 131, 132, + 276, 146, 147, 148, 281, 97, 100, 1, 2, 3, + 4, 5, 380, 21, 98, 101, 93, 27, 109, 151, + 28, 126, 17, 18, 144, 145, 146, 147, 148, 7, + 127, 197, 108, 29, 152, 17, 53, 102, 17, 53, + 324, 286, 6, 128, 153, 170, 117, 30, 35, 36, + 56, 38, -212, 127, 157, 6, 42, 43, 44, 45, + 35, 36, 155, 38, 113, 159, 156, 6, 42, 43, + 44, 45, 112, 160, 327, 335, 113, 374, 161, 170, + -199, -199, 170, -199, 382, 383, 163, -199, 162, 170, + 170, 153, 154, 7, 164, 165, -199, 389, 253, -199, + 127, 166, 170, 391, 170, 17, 53, 173, 170, 341, + 415, 342, 343, 171, 428, 170, 197, 17, 53, 170, + 175, 114, 115, 429, 430, 201, 154, 258, 170, 170, + 274, 279, 261, 280, 282, 264, 127, -199, -199, 199, + 283, 284, 285, 253, 289, 270, 260, 253, 290, 263, + 295, 296, 254, 291, 294, 151, 144, 145, 146, 147, + 148, 116, 116, 287, 301, 253, 302, 303, 304, 305, + 152, 325, 258, 395, 328, 397, 258, 331, 338, 115, + 352, 127, 347, 353, 348, 127, 57, 354, 355, 367, + 258, 258, 373, 416, 258, 151, 151, 254, 369, 127, + 127, 254, 371, 127, 376, 103, 378, 388, 110, 111, + 152, 152, 390, 392, 431, 117, 117, 434, 253, 254, + 420, 403, 131, 132, 116, 404, 418, 153, 137, 138, + 139, 140, 118, 421, 422, 424, 127, 444, 445, 426, + 432, 436, 151, 441, 437, 438, 439, 258, 144, 145, + 146, 147, 148, 258, 345, 23, 127, 152, 402, 333, + 442, 443, 127, 169, 24, 25, 300, 153, 153, 433, + 120, 172, 254, 0, 288, 0, 127, 127, 117, 0, + 350, 351, 0, 0, 0, 0, 0, 0, 0, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, + 368, 0, 0, 370, 153, 119, 253, 0, 253, 259, + 0, 0, 262, 127, 0, 265, 0, 266, 0, 268, + 0, 121, 269, -191, -191, 423, -191, 425, 255, 427, + -191, 0, 0, 0, 0, 258, 0, 258, 122, -191, + 401, 0, -191, 0, 127, 0, 127, 253, 394, 116, + 253, 0, 278, 0, 0, 0, 0, 0, 0, 0, + 254, 0, 254, 412, 293, 413, 0, 414, 0, 0, + 253, 253, 0, 255, 0, 0, 258, 255, 258, 258, + -191, -191, 0, 0, 0, 127, 0, 127, 127, 123, + 0, 255, 255, 0, 0, 255, 0, 0, 0, 258, + 258, 254, 0, 117, 254, 0, 124, 0, 127, 127, + 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, + 332, 0, 0, 125, 254, 254, 0, 257, 0, 337, + 0, 339, 0, 0, 346, 0, 0, 0, 0, -192, + -192, 0, -192, 0, 122, 0, -192, 0, 255, 0, + 0, 0, 0, 0, 255, -192, 256, 0, -192, 0, + 256, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 257, 0, 256, 256, 257, 0, 256, 372, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, + 297, 298, 0, 122, 257, 123, -192, -192, 0, 0, + 0, 384, 385, 386, 387, 0, 0, 122, 122, 0, + 0, 122, 124, 0, -193, -193, 0, -193, 0, 0, + 0, -193, 0, 0, 0, 396, 0, 398, 400, 125, + -193, 256, 0, -193, 0, 0, 0, 256, 0, 0, + 123, 0, 0, 0, 123, 0, 255, 257, 255, -194, + -194, 0, -194, 344, 0, 0, -194, 124, 123, 123, + 0, 124, 123, 0, 122, -194, 0, 0, -194, 435, + 122, -193, -193, 0, 125, 124, 124, 0, 125, 124, + 0, 0, 0, 0, 0, 0, 0, 255, 0, 255, + 255, 0, 125, 125, 0, 0, 125, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -194, -194, 0, 0, + 255, 255, 0, 0, 0, 123, 0, 35, 36, 0, + 38, 123, 0, 0, 6, 42, 43, 44, 45, 256, + 0, 256, 124, 113, 0, 0, 0, 0, 124, 0, + 0, 220, 221, 0, 0, 257, 0, 257, 0, 125, + 35, 36, 0, 38, 0, 125, 0, 6, 0, 0, + -195, -195, 122, -195, 122, 0, 149, -195, 0, 150, + 256, 0, 256, 256, 17, 53, -195, 0, 0, -195, + 0, 0, 0, 0, 0, 0, 257, 0, 344, 257, + 0, 0, 0, 256, 256, 35, 36, 0, 38, 0, + 0, 0, 6, 122, 0, 122, 122, 17, 53, 257, + 257, 149, 0, 123, 174, 123, 0, -195, -195, 310, + 311, 0, 0, 0, 0, 0, 122, 122, 0, 0, + 124, 0, 124, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 0, 0, 0, 125, 0, 125, + 0, 0, 17, 53, 123, 0, 123, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 124, 0, 124, 124, 0, 0, 123, 123, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, + 125, 125, 0, 0, 124, 124, 0, 0, 0, 0, + 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, + 203, 125, 125, 204, 205, 0, 206, 207, 208, 209, + 0, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 35, 36, 0, 38, 0, 0, 0, 6, 42, 43, + 44, 45, 0, 0, 157, 219, 113, 0, 0, 0, + 0, 0, 0, 0, 220, 221, 0, 0, 0, 0, + 0, -196, -196, 0, -196, 0, -197, -197, -196, -197, + 0, 0, 0, -197, 0, 0, 0, -196, 202, 0, + -196, 0, -197, 0, 0, -197, 203, 17, 53, 204, + 205, 0, 206, 207, 208, 209, 0, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 35, 36, 0, 38, + 0, 0, 0, 6, 42, 43, 44, 45, -196, -196, + 157, 299, 113, -197, -197, 0, 0, 0, 0, 0, + 220, 221, 275, 0, 0, 0, 0, 0, 0, 203, + 0, 0, 204, 205, 0, 206, 207, 208, 209, 0, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 35, + 36, 0, 38, 17, 53, 0, 6, 42, 43, 44, + 45, 0, 0, 157, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 220, 221, 334, 0, 0, 0, 0, + 0, 0, 203, 0, 0, 204, 205, 0, 206, 207, + 208, 209, 0, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 35, 36, 0, 38, 17, 53, 34, 6, + 42, 43, 44, 45, 0, 0, 157, 0, 113, 0, + 0, 0, 0, 0, 0, 0, 220, 221, 0, 0, + 0, 35, 36, 37, 38, 39, 40, 41, 6, 42, + 43, 44, 45, 46, 0, 0, 0, 104, 105, 0, + 0, 48, 0, 0, -198, -198, 0, -198, 0, 17, + 53, -198, 35, 36, 0, 38, 0, 49, 50, 6, + -198, 34, 0, -198, 0, 0, 0, 0, 149, 0, + 0, 174, 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, -198, -198, 0, 48, 0, 292, 0, 0, 17, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 50, 0, 0, 34, 0, 0, 0, 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, + 267, 0, 0, 47, 0, 0, 130, 48, 0, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 0, + 0, 0, 0, 49, 50, 0, 0, 34, 0, 0, + 0, 0, 141, 142, 143, 144, 145, 146, 147, 148, + 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, 104, 0, 0, 0, + 48, 0, 0, 0, 0, 306, 307, 0, 308, 309, + 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, 149, 0, 0, 174, 0, 0, 0, + 0, 310, 311, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 0, 0, 0, 0, + 0, 0, 0, 203, 17, 53, 204, 205, 0, 206, + 207, 208, 209, 0, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 35, 36, 0, 38, 0, 0, 0, + 6, 42, 43, 44, 45, 0, 0, 157, 0, 113, + 0, 0, 0, 0, 0, 0, 167, 220, 221, 0, + 0, 168, 0, 0, 0, 0, 130, 0, 0, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 17, 53, 141, 142, 143, 144, 145, 146, 147, 148, + 406, 0, 0, 0, 0, 407, 0, 0, 0, 0, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, + 145, 146, 147, 148, 408, 0, 0, 0, 0, 409, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, 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, 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, + 141, 142, 143, 144, 145, 146, 147, 148, 410, 0, + 0, 0, 0, 411, 0, 0, 0, 0, 130, 0, + 0, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 167, 0, 141, 142, 143, 144, 145, 146, + 147, 148, 130, 0, 0, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 375, 0, 141, 142, + 143, 144, 145, 146, 147, 148, 130, 0, 0, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 377, 0, 141, 142, 143, 144, 145, 146, 147, 148, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 381, 0, 141, 142, 143, 144, + 145, 146, 147, 148, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 130, 0, + 0, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 405, 0, 141, 142, 143, 144, 145, 146, + 147, 148, 130, 0, 0, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 417, 0, 141, 142, + 143, 144, 145, 146, 147, 148, 130, 0, 0, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 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, 329, 117, 0, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, + 419, 0, 141, 142, 143, 144, 145, 146, 147, 148, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 440, 0, 141, 142, 143, 144, + 145, 146, 147, 148, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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 + 141, 142, 143, 144, 145, 146, 147, 148, 272, 0, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 323, 0, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 326, 0, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 329, 0, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 330, 0, + 0, 0, 0, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 271, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 129, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 336, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 349, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 130, 0, 0, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, + 0, 0, 0, 141, 142, 143, 144, 145, 146, 147, + 148, 131, 132, 0, 134, 135, 136, 137, 138, 139, + 140, 131, 132, 0, 0, 135, 136, 137, 138, 139, + 140, 0, 0, 0, 141, 142, 143, 144, 145, 146, + 147, 148, 0, 0, 141, 142, 143, 144, 145, 146, + 147, 148, 131, 132, 0, 0, 135, 136, 137, 138, + 139, 140, 131, 132, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 142, 143, 144, 145, + 146, 147, 148, 0, 0, 0, 142, 0, 144, 145, + 146, 147, 148, 131, 132, 0, 0, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, + 145, 146, 147, 148 }; const short parser::yycheck_[] = { - 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, + 0, 94, 74, 21, 283, 47, 283, 283, 46, 9, + 46, 52, 3, 4, 29, 46, 57, 74, 46, 0, + 52, 51, 51, 98, 55, 57, 26, 55, 65, 66, + 202, 93, 94, 95, 206, 35, 36, 11, 12, 13, + 14, 15, 57, 51, 35, 36, 52, 77, 48, 121, + 61, 51, 96, 97, 91, 92, 93, 94, 95, 97, + 51, 97, 104, 61, 121, 96, 97, 55, 96, 97, + 52, 92, 46, 97, 74, 57, 51, 98, 39, 40, + 101, 42, 59, 74, 53, 46, 47, 48, 49, 50, + 39, 40, 59, 42, 55, 95, 61, 46, 47, 48, + 49, 50, 51, 55, 52, 277, 55, 52, 51, 57, + 39, 40, 57, 42, 52, 52, 55, 46, 59, 57, + 57, 121, 51, 97, 51, 59, 55, 52, 157, 58, + 121, 55, 57, 52, 57, 96, 97, 55, 57, 418, + 52, 418, 418, 56, 52, 57, 97, 96, 97, 57, + 59, 100, 101, 52, 52, 155, 51, 157, 57, 57, + 51, 61, 162, 51, 51, 165, 157, 96, 97, 154, + 51, 51, 51, 202, 60, 175, 161, 206, 61, 164, + 51, 51, 157, 61, 61, 257, 91, 92, 93, 94, + 95, 220, 221, 211, 61, 224, 61, 61, 61, 61, + 257, 51, 202, 375, 51, 377, 206, 56, 26, 101, + 51, 202, 60, 51, 60, 206, 27, 51, 51, 56, + 220, 221, 51, 24, 224, 297, 298, 202, 56, 220, + 221, 206, 56, 224, 51, 46, 61, 51, 49, 50, + 297, 298, 51, 51, 416, 220, 221, 419, 277, 224, + 29, 61, 65, 66, 283, 61, 61, 257, 71, 72, + 73, 74, 51, 61, 61, 61, 257, 439, 440, 61, + 61, 52, 344, 61, 52, 52, 52, 277, 91, 92, + 93, 94, 95, 283, 284, 9, 277, 344, 381, 274, + 61, 61, 283, 104, 9, 9, 224, 297, 298, 418, + 51, 112, 277, -1, 211, -1, 297, 298, 283, -1, + 295, 296, -1, -1, -1, -1, -1, -1, -1, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, + 325, -1, -1, 328, 344, 51, 375, -1, 377, 160, + -1, -1, 163, 344, -1, 166, -1, 168, -1, 170, + -1, 51, 173, 39, 40, 407, 42, 409, 157, 411, + 46, -1, -1, -1, -1, 375, -1, 377, 51, 55, + 380, -1, 58, -1, 375, -1, 377, 416, 373, 418, + 419, -1, 203, -1, -1, -1, -1, -1, -1, -1, + 375, -1, 377, 388, 215, 390, -1, 392, -1, -1, + 439, 440, -1, 202, -1, -1, 416, 206, 418, 419, + 96, 97, -1, -1, -1, 416, -1, 418, 419, 51, + -1, 220, 221, -1, -1, 224, -1, -1, -1, 439, + 440, 416, -1, 418, 419, -1, 51, -1, 439, 440, + -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, + 271, -1, -1, 51, 439, 440, -1, 157, -1, 280, + -1, 282, -1, -1, 285, -1, -1, -1, -1, 39, + 40, -1, 42, -1, 157, -1, 46, -1, 277, -1, + -1, -1, -1, -1, 283, 55, 202, -1, 58, -1, + 206, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 202, -1, 220, 221, 206, -1, 224, 330, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 202, + 220, 221, -1, 206, 224, 157, 96, 97, -1, -1, + -1, 352, 353, 354, 355, -1, -1, 220, 221, -1, + -1, 224, 157, -1, 39, 40, -1, 42, -1, -1, + -1, 46, -1, -1, -1, 376, -1, 378, 379, 157, + 55, 277, -1, 58, -1, -1, -1, 283, -1, -1, + 202, -1, -1, -1, 206, -1, 375, 277, 377, 39, + 40, -1, 42, 283, -1, -1, 46, 202, 220, 221, + -1, 206, 224, -1, 277, 55, -1, -1, 58, 420, + 283, 96, 97, -1, 202, 220, 221, -1, 206, 224, + -1, -1, -1, -1, -1, -1, -1, 416, -1, 418, + 419, -1, 220, 221, -1, -1, 224, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 96, 97, -1, -1, + 439, 440, -1, -1, -1, 277, -1, 39, 40, -1, + 42, 283, -1, -1, 46, 47, 48, 49, 50, 375, + -1, 377, 277, 55, -1, -1, -1, -1, 283, -1, + -1, 63, 64, -1, -1, 375, -1, 377, -1, 277, + 39, 40, -1, 42, -1, 283, -1, 46, -1, -1, + 39, 40, 375, 42, 377, -1, 55, 46, -1, 58, + 416, -1, 418, 419, 96, 97, 55, -1, -1, 58, + -1, -1, -1, -1, -1, -1, 416, -1, 418, 419, + -1, -1, -1, 439, 440, 39, 40, -1, 42, -1, + -1, -1, 46, 416, -1, 418, 419, 96, 97, 439, + 440, 55, -1, 375, 58, 377, -1, 96, 97, 63, + 64, -1, -1, -1, -1, -1, 439, 440, -1, -1, + 375, -1, 377, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, -1, -1, -1, 375, -1, 377, + -1, -1, 96, 97, 416, -1, 418, 419, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 416, -1, 418, 419, -1, -1, 439, 440, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 416, -1, + 418, 419, -1, -1, 439, 440, -1, -1, -1, -1, + -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, + 19, 439, 440, 22, 23, -1, 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 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, + 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, -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, 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, 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, 44, 45, 46, 47, + 48, 49, 50, 51, -1, -1, -1, 55, 56, -1, + -1, 59, -1, -1, 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, 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, 61, -1, -1, 96, + 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 75, 76, -1, -1, 16, -1, -1, -1, -1, -1, + -1, -1, -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, + 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, -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, 98, + 99, 100, 101, 55, -1, -1, 58, -1, -1, -1, + -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, -1, -1, -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, 96, 97, 16, + 36, 37, 38, 39, 40, -1, 42, -1, -1, -1, 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, 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, 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, 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, -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, - 98, 99, 100, 101, 55, -1, -1, 58, -1, -1, - -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, -1, -1, -1, - -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, -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, + -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, -1, -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, + 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, 60, -1, 62, -1, -1, 65, + 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, - -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, + 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, - 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 + 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, 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, 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, + 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + 92, 93, 94, 95 }; const unsigned char @@ -4356,47 +4417,48 @@ namespace xsk { namespace gsc { namespace iw5 { 0, 11, 12, 13, 14, 15, 46, 97, 113, 114, 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, + 98, 189, 167, 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, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 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, + 186, 187, 55, 151, 55, 56, 151, 168, 169, 186, + 151, 151, 51, 55, 100, 101, 162, 163, 171, 172, + 174, 175, 179, 180, 181, 182, 186, 187, 97, 61, + 62, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 88, 89, 90, 91, 92, 93, 94, 95, 55, + 58, 164, 165, 186, 51, 59, 61, 53, 126, 186, + 55, 51, 59, 55, 51, 59, 55, 52, 57, 151, + 57, 56, 151, 55, 58, 59, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 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 + 151, 151, 151, 151, 151, 151, 46, 97, 185, 168, + 169, 186, 11, 19, 22, 23, 25, 26, 27, 28, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 54, + 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, 162, 163, 171, 172, 175, 186, 151, + 168, 186, 151, 168, 186, 151, 151, 56, 151, 151, + 186, 60, 56, 52, 51, 12, 121, 123, 151, 61, + 51, 121, 51, 51, 51, 51, 92, 189, 192, 60, + 61, 61, 61, 151, 61, 51, 51, 175, 175, 54, + 122, 61, 61, 61, 61, 61, 17, 18, 20, 21, + 63, 64, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 56, 52, 51, 56, 52, 51, 56, + 57, 56, 151, 168, 12, 121, 61, 151, 26, 151, + 127, 153, 154, 155, 175, 186, 151, 60, 60, 61, + 168, 168, 51, 51, 51, 51, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 56, 168, 56, + 168, 56, 151, 51, 52, 52, 51, 52, 61, 29, + 57, 52, 52, 52, 151, 151, 151, 151, 51, 52, + 51, 52, 51, 52, 168, 121, 151, 121, 151, 152, + 151, 186, 126, 61, 61, 52, 52, 57, 52, 57, + 52, 57, 168, 168, 168, 52, 24, 52, 61, 52, + 29, 61, 61, 169, 61, 169, 61, 169, 52, 52, + 52, 121, 61, 127, 121, 151, 52, 52, 52, 52, + 52, 61, 61, 61, 121, 121 }; const unsigned char @@ -4417,13 +4479,14 @@ 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, 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 + 158, 158, 158, 158, 158, 158, 158, 159, 160, 160, + 160, 160, 161, 162, 162, 163, 163, 164, 164, 164, + 164, 164, 164, 165, 165, 165, 165, 166, 167, 167, + 167, 168, 168, 169, 169, 170, 170, 171, 172, 173, + 174, 175, 175, 175, 175, 175, 175, 175, 175, 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 @@ -4444,13 +4507,14 @@ 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, 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 + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 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 }; @@ -4475,13 +4539,14 @@ namespace xsk { namespace gsc { namespace iw5 { 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 + 625, 626, 627, 628, 629, 630, 631, 635, 640, 642, + 644, 646, 651, 656, 657, 660, 661, 665, 667, 669, + 671, 673, 675, 680, 682, 684, 686, 691, 696, 698, + 701, 705, 708, 712, 714, 719, 721, 726, 731, 736, + 741, 746, 747, 748, 749, 750, 751, 752, 753, 754, + 758, 763, 768, 773, 778, 783, 788, 793, 798, 803, + 808, 810, 815, 817, 822, 827, 832, 837, 839, 844, + 846, 851, 856 }; void @@ -4514,9 +4579,9 @@ namespace xsk { namespace gsc { namespace iw5 { #line 13 "parser.ypp" } } } // xsk::gsc::iw5 -#line 4518 "parser.cpp" +#line 4583 "parser.cpp" -#line 854 "parser.ypp" +#line 860 "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 7081bb72..4111285e 100644 --- a/src/iw5/xsk/parser.hpp +++ b/src/iw5/xsk/parser.hpp @@ -447,7 +447,6 @@ namespace xsk { namespace gsc { namespace iw5 { // expr_binary // expr_primitive // expr_object - // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -506,131 +505,134 @@ namespace xsk { namespace gsc { namespace iw5 { // expr_method char dummy24[sizeof (ast::expr_method::ptr)]; + // expr_negate + char dummy25[sizeof (ast::expr_negate::ptr)]; + // expr_not - char dummy25[sizeof (ast::expr_not::ptr)]; + char dummy26[sizeof (ast::expr_not::ptr)]; // expr_parameters - char dummy26[sizeof (ast::expr_parameters::ptr)]; + char dummy27[sizeof (ast::expr_parameters::ptr)]; // expr_paren - char dummy27[sizeof (ast::expr_paren::ptr)]; + char dummy28[sizeof (ast::expr_paren::ptr)]; // expr_path - char dummy28[sizeof (ast::expr_path::ptr)]; + char dummy29[sizeof (ast::expr_path::ptr)]; // expr_reference - char dummy29[sizeof (ast::expr_reference::ptr)]; + char dummy30[sizeof (ast::expr_reference::ptr)]; // expr_self - char dummy30[sizeof (ast::expr_self::ptr)]; + char dummy31[sizeof (ast::expr_self::ptr)]; // expr_size - char dummy31[sizeof (ast::expr_size::ptr)]; + char dummy32[sizeof (ast::expr_size::ptr)]; // expr_string - char dummy32[sizeof (ast::expr_string::ptr)]; + char dummy33[sizeof (ast::expr_string::ptr)]; // expr_thisthread - char dummy33[sizeof (ast::expr_thisthread::ptr)]; + char dummy34[sizeof (ast::expr_thisthread::ptr)]; // expr_true - char dummy34[sizeof (ast::expr_true::ptr)]; + char dummy35[sizeof (ast::expr_true::ptr)]; // expr_undefined - char dummy35[sizeof (ast::expr_undefined::ptr)]; + char dummy36[sizeof (ast::expr_undefined::ptr)]; // expr_vector - char dummy36[sizeof (ast::expr_vector::ptr)]; + char dummy37[sizeof (ast::expr_vector::ptr)]; // include - char dummy37[sizeof (ast::include::ptr)]; + char dummy38[sizeof (ast::include::ptr)]; // program - char dummy38[sizeof (ast::program::ptr)]; + char dummy39[sizeof (ast::program::ptr)]; // stmt // stmt_or_dev - char dummy39[sizeof (ast::stmt)]; + char dummy40[sizeof (ast::stmt)]; // stmt_assign - char dummy40[sizeof (ast::stmt_assign::ptr)]; + char dummy41[sizeof (ast::stmt_assign::ptr)]; // stmt_break - char dummy41[sizeof (ast::stmt_break::ptr)]; + char dummy42[sizeof (ast::stmt_break::ptr)]; // stmt_breakpoint - char dummy42[sizeof (ast::stmt_breakpoint::ptr)]; + char dummy43[sizeof (ast::stmt_breakpoint::ptr)]; // stmt_call - char dummy43[sizeof (ast::stmt_call::ptr)]; + char dummy44[sizeof (ast::stmt_call::ptr)]; // stmt_case - char dummy44[sizeof (ast::stmt_case::ptr)]; + char dummy45[sizeof (ast::stmt_case::ptr)]; // stmt_continue - char dummy45[sizeof (ast::stmt_continue::ptr)]; + char dummy46[sizeof (ast::stmt_continue::ptr)]; // stmt_default - char dummy46[sizeof (ast::stmt_default::ptr)]; + char dummy47[sizeof (ast::stmt_default::ptr)]; // stmt_dev - char dummy47[sizeof (ast::stmt_dev::ptr)]; + char dummy48[sizeof (ast::stmt_dev::ptr)]; // stmt_dowhile - char dummy48[sizeof (ast::stmt_dowhile::ptr)]; + char dummy49[sizeof (ast::stmt_dowhile::ptr)]; // stmt_endon - char dummy49[sizeof (ast::stmt_endon::ptr)]; + char dummy50[sizeof (ast::stmt_endon::ptr)]; // stmt_expr - char dummy50[sizeof (ast::stmt_expr::ptr)]; + char dummy51[sizeof (ast::stmt_expr::ptr)]; // stmt_for - char dummy51[sizeof (ast::stmt_for::ptr)]; + char dummy52[sizeof (ast::stmt_for::ptr)]; // stmt_foreach - char dummy52[sizeof (ast::stmt_foreach::ptr)]; + char dummy53[sizeof (ast::stmt_foreach::ptr)]; // stmt_if - char dummy53[sizeof (ast::stmt_if::ptr)]; + char dummy54[sizeof (ast::stmt_if::ptr)]; // stmt_ifelse - char dummy54[sizeof (ast::stmt_ifelse::ptr)]; + char dummy55[sizeof (ast::stmt_ifelse::ptr)]; // stmt_list // stmt_or_dev_list // stmt_block - char dummy55[sizeof (ast::stmt_list::ptr)]; + char dummy56[sizeof (ast::stmt_list::ptr)]; // stmt_notify - char dummy56[sizeof (ast::stmt_notify::ptr)]; + char dummy57[sizeof (ast::stmt_notify::ptr)]; // stmt_prof_begin - char dummy57[sizeof (ast::stmt_prof_begin::ptr)]; + char dummy58[sizeof (ast::stmt_prof_begin::ptr)]; // stmt_prof_end - char dummy58[sizeof (ast::stmt_prof_end::ptr)]; + char dummy59[sizeof (ast::stmt_prof_end::ptr)]; // stmt_return - char dummy59[sizeof (ast::stmt_return::ptr)]; + char dummy60[sizeof (ast::stmt_return::ptr)]; // stmt_switch - char dummy60[sizeof (ast::stmt_switch::ptr)]; + char dummy61[sizeof (ast::stmt_switch::ptr)]; // stmt_wait - char dummy61[sizeof (ast::stmt_wait::ptr)]; + char dummy62[sizeof (ast::stmt_wait::ptr)]; // stmt_waittill - char dummy62[sizeof (ast::stmt_waittill::ptr)]; + char dummy63[sizeof (ast::stmt_waittill::ptr)]; // stmt_waittillframeend - char dummy63[sizeof (ast::stmt_waittillframeend::ptr)]; + char dummy64[sizeof (ast::stmt_waittillframeend::ptr)]; // stmt_waittillmatch - char dummy64[sizeof (ast::stmt_waittillmatch::ptr)]; + char dummy65[sizeof (ast::stmt_waittillmatch::ptr)]; // stmt_while - char dummy65[sizeof (ast::stmt_while::ptr)]; + char dummy66[sizeof (ast::stmt_while::ptr)]; // "path" // "identifier" @@ -638,7 +640,7 @@ namespace xsk { namespace gsc { namespace iw5 { // "localized string" // "float" // "integer" - char dummy66[sizeof (std::string)]; + char dummy67[sizeof (std::string)]; }; /// The size of the largest semantic type. @@ -978,31 +980,31 @@ namespace xsk { namespace gsc { namespace iw5 { S_expr_binary = 157, // expr_binary S_expr_primitive = 158, // expr_primitive S_expr_complement = 159, // expr_complement - S_expr_not = 160, // expr_not - S_expr_call = 161, // expr_call - S_expr_method = 162, // expr_method - S_expr_function = 163, // expr_function - S_expr_pointer = 164, // expr_pointer - S_expr_add_array = 165, // expr_add_array - S_expr_parameters = 166, // expr_parameters - S_expr_arguments = 167, // expr_arguments - S_expr_arguments_no_empty = 168, // expr_arguments_no_empty - S_expr_reference = 169, // expr_reference - S_expr_array = 170, // expr_array - S_expr_field = 171, // expr_field - S_expr_size = 172, // expr_size - S_expr_paren = 173, // expr_paren - S_expr_object = 174, // expr_object - S_expr_thisthread = 175, // expr_thisthread - S_expr_empty_array = 176, // expr_empty_array - S_expr_undefined = 177, // expr_undefined - S_expr_game = 178, // expr_game - S_expr_self = 179, // expr_self - S_expr_anim = 180, // expr_anim - S_expr_level = 181, // expr_level - S_expr_animation = 182, // expr_animation - S_expr_animtree = 183, // expr_animtree - S_expr_identifier_neg = 184, // expr_identifier_neg + S_expr_negate = 160, // expr_negate + S_expr_not = 161, // expr_not + S_expr_call = 162, // expr_call + S_expr_method = 163, // expr_method + S_expr_function = 164, // expr_function + S_expr_pointer = 165, // expr_pointer + S_expr_add_array = 166, // expr_add_array + S_expr_parameters = 167, // expr_parameters + S_expr_arguments = 168, // expr_arguments + S_expr_arguments_no_empty = 169, // expr_arguments_no_empty + S_expr_reference = 170, // expr_reference + S_expr_array = 171, // expr_array + S_expr_field = 172, // expr_field + S_expr_size = 173, // expr_size + S_expr_paren = 174, // expr_paren + S_expr_object = 175, // expr_object + S_expr_thisthread = 176, // expr_thisthread + S_expr_empty_array = 177, // expr_empty_array + S_expr_undefined = 178, // expr_undefined + S_expr_game = 179, // expr_game + S_expr_self = 180, // expr_self + S_expr_anim = 181, // expr_anim + S_expr_level = 182, // expr_level + S_expr_animation = 183, // expr_animation + S_expr_animtree = 184, // expr_animtree S_expr_identifier_nosize = 185, // expr_identifier_nosize S_expr_identifier = 186, // expr_identifier S_expr_path = 187, // expr_path @@ -1079,7 +1081,6 @@ 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; @@ -1157,6 +1158,10 @@ namespace xsk { namespace gsc { namespace iw5 { value.move< ast::expr_method::ptr > (std::move (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (std::move (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (std::move (that.value)); break; @@ -1692,6 +1697,20 @@ namespace xsk { namespace gsc { namespace iw5 { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, ast::expr_negate::ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const ast::expr_negate::ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ast::expr_not::ptr&& v, location_type&& l) : Base (t) @@ -2334,7 +2353,6 @@ 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; @@ -2412,6 +2430,10 @@ switch (yykind) value.template destroy< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + value.template destroy< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not value.template destroy< ast::expr_not::ptr > (); break; @@ -4774,7 +4796,7 @@ switch (yykind) /// Constants. enum { - yylast_ = 2239, ///< Last index in yytable_. + yylast_ = 2363, ///< Last index in yytable_. yynnts_ = 83, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4832,7 +4854,6 @@ 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; @@ -4910,6 +4931,10 @@ switch (yykind) value.copy< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -5147,7 +5172,6 @@ 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; @@ -5225,6 +5249,10 @@ switch (yykind) value.move< ast::expr_method::ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (s.value)); break; @@ -5468,7 +5496,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::iw5 -#line 5472 "parser.hpp" +#line 5500 "parser.hpp" diff --git a/src/iw6/xsk/compiler.cpp b/src/iw6/xsk/compiler.cpp index 5c73ab9c..c22dd955 100644 --- a/src/iw6/xsk/compiler.cpp +++ b/src/iw6/xsk/compiler.cpp @@ -938,6 +938,9 @@ void compiler::emit_expr(const ast::expr& expr, const block::ptr& blk) case ast::kind::expr_complement: emit_expr_complement(expr.as_complement, blk); break; + case ast::kind::expr_negate: + emit_expr_negate(expr.as_negate, blk); + break; case ast::kind::expr_not: emit_expr_not(expr.as_not, blk); break; @@ -1251,6 +1254,13 @@ void compiler::emit_expr_complement(const ast::expr_complement::ptr& expr, const emit_opcode(opcode::OP_BoolComplement); } +void compiler::emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk) +{ + emit_opcode(opcode::OP_GetZero); + emit_expr(expr->rvalue, blk); + emit_opcode(opcode::OP_minus); +} + void compiler::emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk) { emit_expr(expr->rvalue, blk); diff --git a/src/iw6/xsk/compiler.hpp b/src/iw6/xsk/compiler.hpp index 18d91301..3ed11b50 100644 --- a/src/iw6/xsk/compiler.hpp +++ b/src/iw6/xsk/compiler.hpp @@ -82,6 +82,7 @@ private: void emit_expr_and(const ast::expr_and::ptr& expr, const block::ptr& blk); void emit_expr_or(const ast::expr_or::ptr& expr, const block::ptr& blk); void emit_expr_complement(const ast::expr_complement::ptr& expr, const block::ptr& blk); + void emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk); void emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk); void emit_expr_call(const ast::expr_call::ptr& expr, const block::ptr& blk, bool is_stmt); void emit_expr_call_pointer(const ast::expr_pointer::ptr& expr, const block::ptr& blk, bool is_stmt); diff --git a/src/iw6/xsk/parser.cpp b/src/iw6/xsk/parser.cpp index d3a728ea..4d9ed4f7 100644 --- a/src/iw6/xsk/parser.cpp +++ b/src/iw6/xsk/parser.cpp @@ -245,7 +245,6 @@ 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; @@ -323,6 +322,10 @@ namespace xsk { namespace gsc { namespace iw6 { value.YY_MOVE_OR_COPY< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.YY_MOVE_OR_COPY< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.YY_MOVE_OR_COPY< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -544,7 +547,6 @@ 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; @@ -622,6 +624,10 @@ namespace xsk { namespace gsc { namespace iw6 { value.move< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -843,7 +849,6 @@ 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; @@ -921,6 +926,10 @@ namespace xsk { namespace gsc { namespace iw6 { value.copy< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (that.value); break; @@ -1141,7 +1150,6 @@ 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; @@ -1219,6 +1227,10 @@ namespace xsk { namespace gsc { namespace iw6 { value.move< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (that.value); break; @@ -1694,7 +1706,6 @@ 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; @@ -1772,6 +1783,10 @@ namespace xsk { namespace gsc { namespace iw6 { yylhs.value.emplace< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + yylhs.value.emplace< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not yylhs.value.emplace< ast::expr_not::ptr > (); break; @@ -1971,1313 +1986,1331 @@ namespace xsk { namespace gsc { namespace iw6 { case 2: // root: program #line 258 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1975 "parser.cpp" +#line 1990 "parser.cpp" break; case 3: // root: %empty #line 259 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 1981 "parser.cpp" +#line 1996 "parser.cpp" break; case 4: // program: program inline #line 264 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 1987 "parser.cpp" +#line 2002 "parser.cpp" break; case 5: // program: program include #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 1993 "parser.cpp" +#line 2008 "parser.cpp" break; case 6: // program: program declaration #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 1999 "parser.cpp" +#line 2014 "parser.cpp" break; case 7: // program: inline #line 270 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2005 "parser.cpp" +#line 2020 "parser.cpp" break; case 8: // program: include #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 2011 "parser.cpp" +#line 2026 "parser.cpp" break; case 9: // program: declaration #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 2017 "parser.cpp" +#line 2032 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" #line 278 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2023 "parser.cpp" +#line 2038 "parser.cpp" break; case 11: // include: "#include" expr_path ";" #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 2029 "parser.cpp" +#line 2044 "parser.cpp" break; case 12: // declaration: "/#" #line 287 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2035 "parser.cpp" +#line 2050 "parser.cpp" break; case 13: // declaration: "#/" #line 288 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2041 "parser.cpp" +#line 2056 "parser.cpp" break; case 14: // declaration: decl_usingtree #line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2047 "parser.cpp" +#line 2062 "parser.cpp" break; case 15: // declaration: decl_constant #line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2053 "parser.cpp" +#line 2068 "parser.cpp" break; case 16: // declaration: decl_thread #line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2059 "parser.cpp" +#line 2074 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" #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 2065 "parser.cpp" +#line 2080 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" #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 2071 "parser.cpp" +#line 2086 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block #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 2077 "parser.cpp" +#line 2092 "parser.cpp" break; case 20: // stmt: stmt_block #line 310 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2083 "parser.cpp" +#line 2098 "parser.cpp" break; case 21: // stmt: stmt_call #line 311 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2089 "parser.cpp" +#line 2104 "parser.cpp" break; case 22: // stmt: stmt_assign #line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2095 "parser.cpp" +#line 2110 "parser.cpp" break; case 23: // stmt: stmt_endon #line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2101 "parser.cpp" +#line 2116 "parser.cpp" break; case 24: // stmt: stmt_notify #line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2107 "parser.cpp" +#line 2122 "parser.cpp" break; case 25: // stmt: stmt_wait #line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2113 "parser.cpp" +#line 2128 "parser.cpp" break; case 26: // stmt: stmt_waittill #line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2119 "parser.cpp" +#line 2134 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch #line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2125 "parser.cpp" +#line 2140 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend #line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2131 "parser.cpp" +#line 2146 "parser.cpp" break; case 29: // stmt: stmt_if #line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2137 "parser.cpp" +#line 2152 "parser.cpp" break; case 30: // stmt: stmt_ifelse #line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2143 "parser.cpp" +#line 2158 "parser.cpp" break; case 31: // stmt: stmt_while #line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2149 "parser.cpp" +#line 2164 "parser.cpp" break; case 32: // stmt: stmt_dowhile #line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2155 "parser.cpp" +#line 2170 "parser.cpp" break; case 33: // stmt: stmt_for #line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2161 "parser.cpp" +#line 2176 "parser.cpp" break; case 34: // stmt: stmt_foreach #line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2167 "parser.cpp" +#line 2182 "parser.cpp" break; case 35: // stmt: stmt_switch #line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2173 "parser.cpp" +#line 2188 "parser.cpp" break; case 36: // stmt: stmt_case #line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2179 "parser.cpp" +#line 2194 "parser.cpp" break; case 37: // stmt: stmt_default #line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2185 "parser.cpp" +#line 2200 "parser.cpp" break; case 38: // stmt: stmt_break #line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2191 "parser.cpp" +#line 2206 "parser.cpp" break; case 39: // stmt: stmt_continue #line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2197 "parser.cpp" +#line 2212 "parser.cpp" break; case 40: // stmt: stmt_return #line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2203 "parser.cpp" +#line 2218 "parser.cpp" break; case 41: // stmt: stmt_breakpoint #line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2209 "parser.cpp" +#line 2224 "parser.cpp" break; case 42: // stmt: stmt_prof_begin #line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2215 "parser.cpp" +#line 2230 "parser.cpp" break; case 43: // stmt: stmt_prof_end #line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2221 "parser.cpp" +#line 2236 "parser.cpp" break; case 44: // stmt_or_dev: stmt #line 337 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2227 "parser.cpp" +#line 2242 "parser.cpp" break; case 45: // stmt_or_dev: stmt_dev #line 338 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2233 "parser.cpp" +#line 2248 "parser.cpp" break; case 46: // stmt_list: stmt_list stmt #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 2239 "parser.cpp" +#line 2254 "parser.cpp" break; case 47: // stmt_list: stmt #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 2245 "parser.cpp" +#line 2260 "parser.cpp" break; case 48: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev #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 2251 "parser.cpp" +#line 2266 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev #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 2257 "parser.cpp" +#line 2272 "parser.cpp" break; case 50: // stmt_dev: "/#" stmt_list "#/" #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 2263 "parser.cpp" +#line 2278 "parser.cpp" break; case 51: // stmt_dev: "/#" "#/" #line 357 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2269 "parser.cpp" +#line 2284 "parser.cpp" break; case 52: // stmt_block: "{" stmt_or_dev_list "}" #line 361 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2275 "parser.cpp" +#line 2290 "parser.cpp" break; case 53: // stmt_block: "{" "}" #line 362 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2281 "parser.cpp" +#line 2296 "parser.cpp" break; case 54: // stmt_expr: expr_assign #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 2287 "parser.cpp" +#line 2302 "parser.cpp" break; case 55: // stmt_expr: expr_increment #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 2293 "parser.cpp" +#line 2308 "parser.cpp" break; case 56: // stmt_expr: expr_decrement #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 2299 "parser.cpp" +#line 2314 "parser.cpp" break; case 57: // stmt_expr: %empty #line 373 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2305 "parser.cpp" +#line 2320 "parser.cpp" break; case 58: // stmt_call: expr_call ";" #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 2311 "parser.cpp" +#line 2326 "parser.cpp" break; case 59: // stmt_call: expr_method ";" #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 2317 "parser.cpp" +#line 2332 "parser.cpp" break; case 60: // stmt_assign: expr_assign ";" #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 2323 "parser.cpp" +#line 2338 "parser.cpp" break; case 61: // stmt_assign: expr_increment ";" #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 2329 "parser.cpp" +#line 2344 "parser.cpp" break; case 62: // stmt_assign: expr_decrement ";" #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 2335 "parser.cpp" +#line 2350 "parser.cpp" break; case 63: // stmt_endon: expr_object "endon" "(" expr ")" ";" #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 2341 "parser.cpp" +#line 2356 "parser.cpp" break; case 64: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" #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 2347 "parser.cpp" +#line 2362 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr ")" ";" #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 2353 "parser.cpp" +#line 2368 "parser.cpp" break; case 66: // stmt_wait: "wait" expr ";" #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 2359 "parser.cpp" +#line 2374 "parser.cpp" break; case 67: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" #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 2365 "parser.cpp" +#line 2380 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" #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 2371 "parser.cpp" +#line 2386 "parser.cpp" break; case 69: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" #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 2377 "parser.cpp" +#line 2392 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" #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 2383 "parser.cpp" +#line 2398 "parser.cpp" break; case 71: // stmt_waittillframeend: "waittillframeend" ";" #line 425 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2389 "parser.cpp" +#line 2404 "parser.cpp" break; case 72: // stmt_if: "if" "(" expr ")" stmt #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 2395 "parser.cpp" +#line 2410 "parser.cpp" break; case 73: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt #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 2401 "parser.cpp" +#line 2416 "parser.cpp" break; case 74: // stmt_while: "while" "(" expr ")" stmt #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 2407 "parser.cpp" +#line 2422 "parser.cpp" break; case 75: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" #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 2413 "parser.cpp" +#line 2428 "parser.cpp" break; case 76: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt #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 2419 "parser.cpp" +#line 2434 "parser.cpp" break; case 77: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt #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 2425 "parser.cpp" +#line 2440 "parser.cpp" break; case 78: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt #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 2431 "parser.cpp" +#line 2446 "parser.cpp" break; case 79: // stmt_switch: "switch" "(" expr ")" stmt_block #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 2437 "parser.cpp" +#line 2452 "parser.cpp" break; case 80: // stmt_case: "case" expr_integer ":" #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 2443 "parser.cpp" +#line 2458 "parser.cpp" break; case 81: // stmt_case: "case" expr_string ":" #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 2449 "parser.cpp" +#line 2464 "parser.cpp" break; case 82: // stmt_default: "default" ":" #line 474 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2455 "parser.cpp" +#line 2470 "parser.cpp" break; case 83: // stmt_break: "break" ";" #line 479 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2461 "parser.cpp" +#line 2476 "parser.cpp" break; case 84: // stmt_continue: "continue" ";" #line 484 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2467 "parser.cpp" +#line 2482 "parser.cpp" break; case 85: // stmt_return: "return" expr ";" #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 2473 "parser.cpp" +#line 2488 "parser.cpp" break; case 86: // stmt_return: "return" ";" #line 491 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2479 "parser.cpp" +#line 2494 "parser.cpp" break; case 87: // stmt_breakpoint: "breakpoint" ";" #line 496 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2485 "parser.cpp" +#line 2500 "parser.cpp" break; case 88: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" #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 2491 "parser.cpp" +#line 2506 "parser.cpp" break; case 89: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" #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 2497 "parser.cpp" +#line 2512 "parser.cpp" break; case 90: // expr: expr_ternary #line 510 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2503 "parser.cpp" +#line 2518 "parser.cpp" break; case 91: // expr: expr_binary #line 511 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2509 "parser.cpp" +#line 2524 "parser.cpp" break; case 92: // expr: expr_primitive #line 512 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2515 "parser.cpp" +#line 2530 "parser.cpp" break; case 93: // expr_or_empty: expr #line 516 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2521 "parser.cpp" +#line 2536 "parser.cpp" break; case 94: // expr_or_empty: %empty #line 517 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2527 "parser.cpp" +#line 2542 "parser.cpp" break; case 95: // expr_assign: expr_object "=" expr #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 2533 "parser.cpp" +#line 2548 "parser.cpp" break; case 96: // expr_assign: expr_object "|=" expr #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 2539 "parser.cpp" +#line 2554 "parser.cpp" break; case 97: // expr_assign: expr_object "&=" expr #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 2545 "parser.cpp" +#line 2560 "parser.cpp" break; case 98: // expr_assign: expr_object "^=" expr #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 2551 "parser.cpp" +#line 2566 "parser.cpp" break; case 99: // expr_assign: expr_object "<<=" expr #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 2557 "parser.cpp" +#line 2572 "parser.cpp" break; case 100: // expr_assign: expr_object ">>=" expr #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 2563 "parser.cpp" +#line 2578 "parser.cpp" break; case 101: // expr_assign: expr_object "+=" expr #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 2569 "parser.cpp" +#line 2584 "parser.cpp" break; case 102: // expr_assign: expr_object "-=" expr #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 2575 "parser.cpp" +#line 2590 "parser.cpp" break; case 103: // expr_assign: expr_object "*=" expr #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 2581 "parser.cpp" +#line 2596 "parser.cpp" break; case 104: // expr_assign: expr_object "/=" expr #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 2587 "parser.cpp" +#line 2602 "parser.cpp" break; case 105: // expr_assign: expr_object "%=" expr #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 2593 "parser.cpp" +#line 2608 "parser.cpp" break; case 106: // expr_increment: "++" expr_object #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 2599 "parser.cpp" +#line 2614 "parser.cpp" break; case 107: // expr_increment: expr_object "++" #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 2605 "parser.cpp" +#line 2620 "parser.cpp" break; case 108: // expr_decrement: "--" expr_object #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 2611 "parser.cpp" +#line 2626 "parser.cpp" break; case 109: // expr_decrement: expr_object "--" #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 2617 "parser.cpp" +#line 2632 "parser.cpp" break; case 110: // expr_ternary: expr "?" expr ":" expr #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 2623 "parser.cpp" +#line 2638 "parser.cpp" break; case 111: // expr_binary: expr "||" expr #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 2629 "parser.cpp" +#line 2644 "parser.cpp" break; case 112: // expr_binary: expr "&&" expr #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 2635 "parser.cpp" +#line 2650 "parser.cpp" break; case 113: // expr_binary: expr "==" expr #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 2641 "parser.cpp" +#line 2656 "parser.cpp" break; case 114: // expr_binary: expr "!=" expr #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 2647 "parser.cpp" +#line 2662 "parser.cpp" break; case 115: // expr_binary: expr "<=" expr #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 2653 "parser.cpp" +#line 2668 "parser.cpp" break; case 116: // expr_binary: expr ">=" expr #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 2659 "parser.cpp" +#line 2674 "parser.cpp" break; case 117: // expr_binary: expr "<" expr #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 2665 "parser.cpp" +#line 2680 "parser.cpp" break; case 118: // expr_binary: expr ">" expr #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 2671 "parser.cpp" +#line 2686 "parser.cpp" break; case 119: // expr_binary: expr "|" expr #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 2677 "parser.cpp" +#line 2692 "parser.cpp" break; case 120: // expr_binary: expr "&" expr #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 2683 "parser.cpp" +#line 2698 "parser.cpp" break; case 121: // expr_binary: expr "^" expr #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 2689 "parser.cpp" +#line 2704 "parser.cpp" break; case 122: // expr_binary: expr "<<" expr #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 2695 "parser.cpp" +#line 2710 "parser.cpp" break; case 123: // expr_binary: expr ">>" expr #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 2701 "parser.cpp" +#line 2716 "parser.cpp" break; case 124: // expr_binary: expr "+" expr #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 2707 "parser.cpp" +#line 2722 "parser.cpp" break; case 125: // expr_binary: expr "-" expr #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 2713 "parser.cpp" +#line 2728 "parser.cpp" break; case 126: // expr_binary: expr "*" expr #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 2719 "parser.cpp" +#line 2734 "parser.cpp" break; case 127: // expr_binary: expr "/" expr #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 2725 "parser.cpp" +#line 2740 "parser.cpp" break; case 128: // expr_binary: expr "%" expr #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 2731 "parser.cpp" +#line 2746 "parser.cpp" break; case 129: // expr_primitive: expr_complement #line 604 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2737 "parser.cpp" +#line 2752 "parser.cpp" break; - case 130: // expr_primitive: expr_not + case 130: // expr_primitive: expr_negate #line 605 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2743 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_negate::ptr > ()); } +#line 2758 "parser.cpp" break; - case 131: // expr_primitive: expr_call + case 131: // expr_primitive: expr_not #line 606 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2749 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } +#line 2764 "parser.cpp" break; - case 132: // expr_primitive: expr_method + case 132: // expr_primitive: expr_call #line 607 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2755 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 2770 "parser.cpp" break; - case 133: // expr_primitive: expr_add_array + case 133: // expr_primitive: expr_method #line 608 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2761 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 2776 "parser.cpp" break; - case 134: // expr_primitive: expr_reference + case 134: // expr_primitive: expr_add_array #line 609 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2767 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } +#line 2782 "parser.cpp" break; - case 135: // expr_primitive: expr_array + case 135: // expr_primitive: expr_reference #line 610 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2773 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } +#line 2788 "parser.cpp" break; - case 136: // expr_primitive: expr_field + case 136: // expr_primitive: expr_array #line 611 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2779 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 2794 "parser.cpp" break; - case 137: // expr_primitive: expr_size + case 137: // expr_primitive: expr_field #line 612 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2785 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 2800 "parser.cpp" break; - case 138: // expr_primitive: expr_paren + case 138: // expr_primitive: expr_size #line 613 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2791 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } +#line 2806 "parser.cpp" break; - case 139: // expr_primitive: expr_thisthread + case 139: // expr_primitive: expr_paren #line 614 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2797 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } +#line 2812 "parser.cpp" break; - case 140: // expr_primitive: expr_empty_array + case 140: // expr_primitive: expr_thisthread #line 615 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2803 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } +#line 2818 "parser.cpp" break; - case 141: // expr_primitive: expr_undefined + case 141: // expr_primitive: expr_empty_array #line 616 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2809 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } +#line 2824 "parser.cpp" break; - case 142: // expr_primitive: expr_game + case 142: // expr_primitive: expr_undefined #line 617 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2815 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } +#line 2830 "parser.cpp" break; - case 143: // expr_primitive: expr_self + case 143: // expr_primitive: expr_game #line 618 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2821 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 2836 "parser.cpp" break; - case 144: // expr_primitive: expr_anim + case 144: // expr_primitive: expr_self #line 619 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2827 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 2842 "parser.cpp" break; - case 145: // expr_primitive: expr_level + case 145: // expr_primitive: expr_anim #line 620 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2833 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 2848 "parser.cpp" break; - case 146: // expr_primitive: expr_animation + case 146: // expr_primitive: expr_level #line 621 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2839 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 2854 "parser.cpp" break; - case 147: // expr_primitive: expr_animtree + case 147: // expr_primitive: expr_animation #line 622 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2845 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } +#line 2860 "parser.cpp" break; - case 148: // expr_primitive: expr_identifier_neg + case 148: // expr_primitive: expr_animtree #line 623 "parser.ypp" - { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2851 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2866 "parser.cpp" break; 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_identifier::ptr > ()); } -#line 2857 "parser.cpp" +#line 2872 "parser.cpp" break; 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_istring::ptr > ()); } -#line 2863 "parser.cpp" +#line 2878 "parser.cpp" break; 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_string::ptr > ()); } -#line 2869 "parser.cpp" +#line 2884 "parser.cpp" break; 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_vector::ptr > ()); } -#line 2875 "parser.cpp" +#line 2890 "parser.cpp" break; 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_float::ptr > ()); } -#line 2881 "parser.cpp" +#line 2896 "parser.cpp" break; 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" +#line 2902 "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" +#line 2908 "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 2899 "parser.cpp" +#line 2914 "parser.cpp" break; 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 2905 "parser.cpp" +#line 2920 "parser.cpp" break; - case 158: // expr_not: "!" expr + case 158: // expr_negate: "-" expr_identifier #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 2911 "parser.cpp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()))); } +#line 2926 "parser.cpp" break; - case 159: // expr_call: expr_function + case 159: // expr_negate: "-" expr_paren +#line 643 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()))); } +#line 2932 "parser.cpp" + break; + + case 160: // expr_negate: "-" expr_array #line 645 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_array::ptr > ()))); } +#line 2938 "parser.cpp" + break; + + case 161: // expr_negate: "-" expr_field +#line 647 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_field::ptr > ()))); } +#line 2944 "parser.cpp" + break; + + case 162: // expr_not: "!" expr +#line 652 "parser.ypp" + { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } +#line 2950 "parser.cpp" + break; + + case 163: // expr_call: expr_function +#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 2917 "parser.cpp" +#line 2956 "parser.cpp" break; - 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 2923 "parser.cpp" - break; - - 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 2929 "parser.cpp" - break; - - 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 2935 "parser.cpp" - break; - - 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::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: expr_path "::" expr_identifier "(" expr_arguments ")" + case 164: // expr_call: expr_pointer #line 657 "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 2947 "parser.cpp" + { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } +#line 2962 "parser.cpp" break; - 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::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" + case 165: // expr_method: expr_object expr_function +#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 2968 "parser.cpp" break; - case 166: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 166: // expr_method: expr_object expr_pointer #line 661 "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 2959 "parser.cpp" + { 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 2974 "parser.cpp" break; - 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" + case 167: // expr_function: expr_identifier "(" expr_arguments ")" +#line 666 "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 2980 "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 2971 "parser.cpp" + case 168: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" +#line 668 "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 2986 "parser.cpp" break; - case 169: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" + case 169: // expr_function: "thread" expr_identifier "(" 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::normal); } -#line 2977 "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 2992 "parser.cpp" break; - case 170: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 170: // expr_function: "thread" expr_path "::" expr_identifier "(" 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::thread); } -#line 2983 "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 2998 "parser.cpp" break; - case 171: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 171: // expr_function: "childthread" expr_identifier "(" 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" + { 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 3004 "parser.cpp" break; - case 172: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 172: // expr_function: "childthread" expr_path "::" expr_identifier "(" 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 2995 "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::childthread); } +#line 3010 "parser.cpp" break; - case 173: // expr_add_array: "[" expr_arguments_no_empty "]" + case 173: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 681 "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 3016 "parser.cpp" + break; + + case 174: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 683 "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 3022 "parser.cpp" + break; + + case 175: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 685 "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 3028 "parser.cpp" + break; + + case 176: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 687 "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 3034 "parser.cpp" + break; + + case 177: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 692 "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 3001 "parser.cpp" +#line 3040 "parser.cpp" break; - case 174: // expr_parameters: expr_parameters "," expr_identifier -#line 686 "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 3007 "parser.cpp" - break; - - 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 3019 "parser.cpp" - break; - - 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 + case 178: // expr_parameters: expr_parameters "," expr_identifier #line 697 "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 3046 "parser.cpp" + break; + + case 179: // expr_parameters: expr_identifier +#line 699 "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 3052 "parser.cpp" + break; + + case 180: // expr_parameters: %empty +#line 701 "parser.ypp" + { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } +#line 3058 "parser.cpp" + break; + + case 181: // expr_arguments: expr_arguments_no_empty +#line 706 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3064 "parser.cpp" + break; + + case 182: // expr_arguments: %empty +#line 708 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3031 "parser.cpp" +#line 3070 "parser.cpp" break; - case 179: // expr_arguments_no_empty: expr_arguments "," expr -#line 702 "parser.ypp" + case 183: // expr_arguments_no_empty: expr_arguments "," expr +#line 713 "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" +#line 3076 "parser.cpp" break; - case 180: // expr_arguments_no_empty: expr -#line 704 "parser.ypp" + case 184: // expr_arguments_no_empty: expr +#line 715 "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 3043 "parser.cpp" +#line 3082 "parser.cpp" break; - case 181: // expr_reference: "::" expr_identifier -#line 709 "parser.ypp" + case 185: // expr_reference: "::" expr_identifier +#line 720 "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" +#line 3088 "parser.cpp" break; - case 182: // expr_reference: expr_path "::" expr_identifier -#line 711 "parser.ypp" + case 186: // expr_reference: expr_path "::" expr_identifier +#line 722 "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 3055 "parser.cpp" +#line 3094 "parser.cpp" break; - case 183: // expr_array: expr_object "[" expr "]" -#line 716 "parser.ypp" + case 187: // expr_array: expr_object "[" expr "]" +#line 727 "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 3061 "parser.cpp" +#line 3100 "parser.cpp" break; - case 184: // expr_field: expr_object "." expr_identifier_nosize -#line 721 "parser.ypp" + case 188: // expr_field: expr_object "." expr_identifier_nosize +#line 732 "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 3067 "parser.cpp" +#line 3106 "parser.cpp" break; - 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 3073 "parser.cpp" - break; - - 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 3079 "parser.cpp" - break; - - 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_call::ptr > ()); } -#line 3085 "parser.cpp" - break; - - 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_method::ptr > ()); } -#line 3091 "parser.cpp" - break; - - case 189: // expr_object: expr_array + case 189: // expr_size: expr_object "." "size" #line 737 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3097 "parser.cpp" + { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } +#line 3112 "parser.cpp" break; - 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_field::ptr > ()); } -#line 3103 "parser.cpp" - break; - - 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_game::ptr > ()); } -#line 3109 "parser.cpp" - break; - - 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_self::ptr > ()); } -#line 3115 "parser.cpp" - break; - - 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 + case 190: // expr_paren: "(" expr ")" #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" + { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3118 "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 3133 "parser.cpp" + case 191: // expr_object: expr_call +#line 746 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3124 "parser.cpp" break; - case 196: // expr_thisthread: "thisthread" + case 192: // expr_object: expr_method +#line 747 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3130 "parser.cpp" + break; + + case 193: // expr_object: expr_array #line 748 "parser.ypp" - { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3139 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3136 "parser.cpp" break; - case 197: // expr_empty_array: "[" "]" + case 194: // expr_object: expr_field +#line 749 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3142 "parser.cpp" + break; + + case 195: // expr_object: expr_game +#line 750 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3148 "parser.cpp" + break; + + case 196: // expr_object: expr_self +#line 751 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3154 "parser.cpp" + break; + + case 197: // expr_object: expr_anim +#line 752 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3160 "parser.cpp" + break; + + case 198: // expr_object: expr_level #line 753 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3166 "parser.cpp" + break; + + case 199: // expr_object: expr_identifier +#line 754 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 3172 "parser.cpp" + break; + + case 200: // expr_thisthread: "thisthread" +#line 759 "parser.ypp" + { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } +#line 3178 "parser.cpp" + break; + + case 201: // expr_empty_array: "[" "]" +#line 764 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3145 "parser.cpp" +#line 3184 "parser.cpp" break; - case 198: // expr_undefined: "undefined" -#line 758 "parser.ypp" + case 202: // expr_undefined: "undefined" +#line 769 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3151 "parser.cpp" +#line 3190 "parser.cpp" break; - case 199: // expr_game: "game" -#line 763 "parser.ypp" + case 203: // expr_game: "game" +#line 774 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3157 "parser.cpp" +#line 3196 "parser.cpp" break; - case 200: // expr_self: "self" -#line 768 "parser.ypp" + case 204: // expr_self: "self" +#line 779 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3163 "parser.cpp" +#line 3202 "parser.cpp" break; - case 201: // expr_anim: "anim" -#line 773 "parser.ypp" + case 205: // expr_anim: "anim" +#line 784 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3169 "parser.cpp" +#line 3208 "parser.cpp" break; - case 202: // expr_level: "level" -#line 778 "parser.ypp" + case 206: // expr_level: "level" +#line 789 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3175 "parser.cpp" +#line 3214 "parser.cpp" break; - case 203: // expr_animation: "%" "identifier" -#line 783 "parser.ypp" + case 207: // expr_animation: "%" "identifier" +#line 794 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3181 "parser.cpp" +#line 3220 "parser.cpp" break; - case 204: // expr_animtree: "#animtree" -#line 788 "parser.ypp" + case 208: // expr_animtree: "#animtree" +#line 799 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3187 "parser.cpp" +#line 3226 "parser.cpp" break; - 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 206: // expr_identifier_nosize: "identifier" -#line 798 "parser.ypp" + case 209: // expr_identifier_nosize: "identifier" +#line 804 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3199 "parser.cpp" +#line 3232 "parser.cpp" break; - case 207: // expr_identifier: "identifier" -#line 803 "parser.ypp" + case 210: // expr_identifier: "identifier" +#line 809 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3205 "parser.cpp" +#line 3238 "parser.cpp" break; - case 208: // expr_identifier: "size" -#line 805 "parser.ypp" + case 211: // expr_identifier: "size" +#line 811 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3211 "parser.cpp" +#line 3244 "parser.cpp" break; - case 209: // expr_path: "identifier" -#line 810 "parser.ypp" + case 212: // expr_path: "identifier" +#line 816 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3217 "parser.cpp" +#line 3250 "parser.cpp" break; - case 210: // expr_path: "path" -#line 812 "parser.ypp" + case 213: // expr_path: "path" +#line 818 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3223 "parser.cpp" +#line 3256 "parser.cpp" break; - case 211: // expr_istring: "localized string" -#line 817 "parser.ypp" + case 214: // expr_istring: "localized string" +#line 823 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3229 "parser.cpp" +#line 3262 "parser.cpp" break; - case 212: // expr_string: "string literal" -#line 822 "parser.ypp" + case 215: // expr_string: "string literal" +#line 828 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3235 "parser.cpp" +#line 3268 "parser.cpp" break; - case 213: // expr_vector: "(" expr "," expr "," expr ")" -#line 827 "parser.ypp" + case 216: // expr_vector: "(" expr "," expr "," expr ")" +#line 833 "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 3241 "parser.cpp" +#line 3274 "parser.cpp" break; - case 214: // expr_float: "-" "float" -#line 832 "parser.ypp" + case 217: // expr_float: "-" "float" +#line 838 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3247 "parser.cpp" +#line 3280 "parser.cpp" break; - case 215: // expr_float: "float" -#line 834 "parser.ypp" + case 218: // expr_float: "float" +#line 840 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3253 "parser.cpp" +#line 3286 "parser.cpp" break; - case 216: // expr_integer: "-" "integer" -#line 839 "parser.ypp" + case 219: // expr_integer: "-" "integer" +#line 845 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3259 "parser.cpp" +#line 3292 "parser.cpp" break; - case 217: // expr_integer: "integer" -#line 841 "parser.ypp" + case 220: // expr_integer: "integer" +#line 847 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3265 "parser.cpp" +#line 3298 "parser.cpp" break; - case 218: // expr_false: "false" -#line 846 "parser.ypp" + case 221: // expr_false: "false" +#line 852 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3271 "parser.cpp" +#line 3304 "parser.cpp" break; - case 219: // expr_true: "true" -#line 851 "parser.ypp" + case 222: // expr_true: "true" +#line 857 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3277 "parser.cpp" +#line 3310 "parser.cpp" break; -#line 3281 "parser.cpp" +#line 3314 "parser.cpp" default: break; @@ -3485,15 +3518,15 @@ namespace xsk { namespace gsc { namespace iw6 { "stmt_return", "stmt_breakpoint", "stmt_prof_begin", "stmt_prof_end", "expr", "expr_or_empty", "expr_assign", "expr_increment", "expr_decrement", "expr_ternary", "expr_binary", "expr_primitive", - "expr_complement", "expr_not", "expr_call", "expr_method", + "expr_complement", "expr_negate", "expr_not", "expr_call", "expr_method", "expr_function", "expr_pointer", "expr_add_array", "expr_parameters", "expr_arguments", "expr_arguments_no_empty", "expr_reference", "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_neg", "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_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]; } @@ -3762,592 +3795,620 @@ namespace xsk { namespace gsc { namespace iw6 { } - const short parser::yypact_ninf_ = -266; + const short parser::yypact_ninf_ = -280; - const short parser::yytable_ninf_ = -210; + const short parser::yytable_ninf_ = -213; const short parser::yypact_[] = { - 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, 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 + 26, -280, -280, -44, -44, -8, -280, -280, 19, 26, + -280, -280, -280, -280, -280, -280, -30, -280, -280, -11, + 2, -75, -280, -280, -280, -280, -38, 1168, -280, -280, + -280, -6, -41, -280, -280, -31, -28, -280, 12, -280, + -280, -280, -280, -280, -280, -280, 1168, 1042, -38, 1168, + 1168, 51, -24, 23, -280, -280, -280, 2072, -280, -280, + -280, -280, -280, -280, 324, 440, -280, -280, -280, -280, + 515, 550, -280, -280, 651, -280, -280, -280, 661, 862, + 867, 1065, -280, -280, 71, 33, -280, -280, -280, -280, + -280, -280, -280, 35, 31, -38, 48, 57, 59, 61, + 73, 66, 76, 1364, 1042, -280, 2155, 77, 87, -280, + -280, -280, 1168, 82, -280, -280, -280, -280, 515, 550, + -280, 1073, -280, -280, -280, -280, 71, 91, -280, -280, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1231, + -36, -280, -280, 105, 1168, -38, -280, 831, -280, -280, + 1168, 1168, -38, 1168, 1168, -38, 1168, -280, 1168, 1164, + 1168, -280, 1530, 1168, 49, -38, 2037, 95, 95, 2186, + 2196, 187, 187, -37, -37, -37, -37, 2227, 2268, 2237, + -62, -62, -280, -280, -280, 1842, -280, -280, -280, -32, + -280, 109, 960, 1168, 100, 112, 1354, 113, 119, 120, + 121, -21, 114, 117, 122, 1105, 123, 129, 130, -280, + 39, 39, -280, -280, 907, -280, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + 133, 135, 136, 137, 138, -280, -280, 1278, 105, 1882, + 18, 150, 1922, 52, 153, 1962, 2001, 151, 2155, 1164, + 109, 1168, -280, -280, 1168, -280, -280, 1013, 2107, -280, + 1168, 182, 1168, 618, -38, 1168, 108, 152, 154, -280, + -280, -280, -280, 2142, -280, 1168, 1168, 1073, 1073, -280, + -280, -280, -280, -280, -280, -280, 159, 162, 166, 167, + -280, -280, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 163, -280, 1168, 172, -280, 1168, 176, + 1168, 171, 2155, 55, -280, -280, -280, 1564, 183, 1598, + 175, -280, -280, -280, 696, -15, 1632, -280, -280, -280, + 62, 63, 1168, 1168, 1168, 1168, 2155, 2155, 2155, 2155, + 2155, 2155, 2155, 2155, 2155, 2155, 2155, 186, 75, 191, + 81, 192, 1666, 1168, -280, 1354, 1168, 1354, 1168, 1168, + -38, 31, 190, 194, 1700, 1408, 1452, 1496, 1168, -280, + 1168, -280, 1168, -280, 88, 199, 1734, -280, 2155, 195, + 1768, 221, -280, -280, -280, 202, 203, 1168, 204, 1168, + 208, 1168, 92, 101, 102, -280, 1354, 209, 618, 1354, + 1168, -280, -280, 219, -280, 222, -280, 223, -280, -280, + -280, -280, -280, 224, -280, 1802, 212, 229, 230, 1354, + 1354, -280, -280, -280, -280, -280 }; const unsigned char parser::yydefact_[] = { - 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, + 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, 180, 0, 10, 11, + 215, 0, 0, 179, 208, 0, 0, 200, 0, 222, + 221, 202, 203, 204, 205, 206, 0, 182, 0, 0, + 0, 0, 0, 210, 214, 218, 220, 0, 90, 91, + 92, 129, 130, 131, 132, 133, 163, 164, 134, 135, + 136, 137, 138, 139, 0, 140, 141, 142, 143, 144, 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, 182, 201, 184, 0, 181, 185, + 162, 157, 0, 0, 217, 219, 191, 192, 160, 161, + 159, 0, 195, 196, 197, 198, 158, 0, 207, 18, 0, 0, 0, 0, 0, 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, 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 + 0, 165, 166, 0, 182, 0, 17, 0, 19, 178, + 0, 182, 0, 0, 182, 0, 0, 190, 0, 184, + 0, 177, 0, 0, 0, 0, 0, 122, 123, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 124, 125, 126, 127, 128, 0, 189, 209, 188, 0, + 181, 186, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 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, 191, 192, 193, 194, 0, 199, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, + 0, 0, 187, 167, 182, 51, 47, 0, 0, 71, + 0, 0, 0, 57, 0, 0, 0, 0, 0, 82, + 83, 84, 86, 0, 87, 182, 182, 106, 108, 52, + 48, 60, 61, 62, 58, 59, 0, 0, 0, 0, + 107, 109, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 169, 182, 0, 171, 182, 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, 95, 101, 102, 103, + 104, 105, 96, 97, 98, 100, 99, 0, 0, 0, + 0, 0, 0, 182, 168, 0, 0, 0, 94, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 182, 170, + 182, 172, 182, 216, 0, 72, 0, 74, 93, 0, + 0, 0, 79, 88, 89, 0, 0, 182, 0, 182, + 0, 182, 0, 0, 0, 173, 0, 0, 57, 0, + 0, 63, 65, 181, 68, 181, 70, 181, 174, 175, + 176, 73, 75, 0, 77, 0, 0, 0, 0, 0, + 0, 64, 67, 69, 76, 78 }; const short parser::yypgoto_[] = { - -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, 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 + -280, -280, -280, 276, 285, 286, -280, -280, -280, -172, + 72, -280, -280, -280, -93, -119, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, 189, + -280, -279, -277, -276, -280, -280, -280, -280, -280, -280, + -29, 25, -72, -57, -280, -280, 15, -42, -280, 211, + 294, -280, 249, 310, -280, -280, -280, 327, 378, 395, + 412, -280, -280, -280, 0, 9, -280, -18, -280, -280, + 93, -280, -280 }; const short parser::yydefgoto_[] = { - 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, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 222, + 223, 277, 224, 225, 226, 340, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 106, + 399, 250, 251, 252, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 32, 107, 200, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 182, 84, 85, 86, 87, 88, 89, + 81, 82, 83, 198, 84, 85, 86, 87, 88, 89, 90, 91, 92 }; const short parser::yytable_[] = { - 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, 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, 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, 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, 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, + 16, 158, 151, 31, 341, 108, 342, 343, 6, 16, + 196, 94, 19, 20, 379, 6, 95, 152, 6, 22, + 273, 26, 116, 30, 96, 170, 33, 99, 131, 132, + 276, 146, 147, 148, 281, 97, 100, 1, 2, 3, + 4, 5, 380, 21, 98, 101, 93, 27, 109, 151, + 28, 126, 17, 18, 144, 145, 146, 147, 148, 7, + 127, 197, 108, 29, 152, 17, 53, 102, 17, 53, + 324, 286, 6, 128, 153, 170, 117, 30, 35, 36, + 56, 38, -212, 127, 157, 6, 42, 43, 44, 45, + 35, 36, 155, 38, 113, 159, 156, 6, 42, 43, + 44, 45, 112, 160, 327, 335, 113, 374, 161, 170, + -199, -199, 170, -199, 382, 383, 163, -199, 162, 170, + 170, 153, 154, 7, 164, 165, -199, 389, 253, -199, + 127, 166, 170, 391, 170, 17, 53, 173, 170, 341, + 415, 342, 343, 171, 428, 170, 197, 17, 53, 170, + 175, 114, 115, 429, 430, 201, 154, 258, 170, 170, + 274, 279, 261, 280, 282, 264, 127, -199, -199, 199, + 283, 284, 285, 253, 289, 270, 260, 253, 290, 263, + 295, 296, 254, 291, 294, 151, 144, 145, 146, 147, + 148, 116, 116, 287, 301, 253, 302, 303, 304, 305, + 152, 325, 258, 395, 328, 397, 258, 331, 338, 115, + 352, 127, 347, 353, 348, 127, 57, 354, 355, 367, + 258, 258, 373, 416, 258, 151, 151, 254, 369, 127, + 127, 254, 371, 127, 376, 103, 378, 388, 110, 111, + 152, 152, 390, 392, 431, 117, 117, 434, 253, 254, + 420, 403, 131, 132, 116, 404, 418, 153, 137, 138, + 139, 140, 118, 421, 422, 424, 127, 444, 445, 426, + 432, 436, 151, 441, 437, 438, 439, 258, 144, 145, + 146, 147, 148, 258, 345, 23, 127, 152, 402, 333, + 442, 443, 127, 169, 24, 25, 300, 153, 153, 433, + 120, 172, 254, 0, 288, 0, 127, 127, 117, 0, + 350, 351, 0, 0, 0, 0, 0, 0, 0, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, + 368, 0, 0, 370, 153, 119, 253, 0, 253, 259, + 0, 0, 262, 127, 0, 265, 0, 266, 0, 268, + 0, 121, 269, -191, -191, 423, -191, 425, 255, 427, + -191, 0, 0, 0, 0, 258, 0, 258, 122, -191, + 401, 0, -191, 0, 127, 0, 127, 253, 394, 116, + 253, 0, 278, 0, 0, 0, 0, 0, 0, 0, + 254, 0, 254, 412, 293, 413, 0, 414, 0, 0, + 253, 253, 0, 255, 0, 0, 258, 255, 258, 258, + -191, -191, 0, 0, 0, 127, 0, 127, 127, 123, + 0, 255, 255, 0, 0, 255, 0, 0, 0, 258, + 258, 254, 0, 117, 254, 0, 124, 0, 127, 127, + 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, + 332, 0, 0, 125, 254, 254, 0, 257, 0, 337, + 0, 339, 0, 0, 346, 0, 0, 0, 0, -192, + -192, 0, -192, 0, 122, 0, -192, 0, 255, 0, + 0, 0, 0, 0, 255, -192, 256, 0, -192, 0, + 256, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 257, 0, 256, 256, 257, 0, 256, 372, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, + 297, 298, 0, 122, 257, 123, -192, -192, 0, 0, + 0, 384, 385, 386, 387, 0, 0, 122, 122, 0, + 0, 122, 124, 0, -193, -193, 0, -193, 0, 0, + 0, -193, 0, 0, 0, 396, 0, 398, 400, 125, + -193, 256, 0, -193, 0, 0, 0, 256, 0, 0, + 123, 0, 0, 0, 123, 0, 255, 257, 255, -194, + -194, 0, -194, 344, 0, 0, -194, 124, 123, 123, + 0, 124, 123, 0, 122, -194, 0, 0, -194, 435, + 122, -193, -193, 0, 125, 124, 124, 0, 125, 124, + 0, 0, 0, 0, 0, 0, 0, 255, 0, 255, + 255, 0, 125, 125, 0, 0, 125, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -194, -194, 0, 0, + 255, 255, 0, 0, 0, 123, 0, 35, 36, 0, + 38, 123, 0, 0, 6, 42, 43, 44, 45, 256, + 0, 256, 124, 113, 0, 0, 0, 0, 124, 0, + 0, 220, 221, 0, 0, 257, 0, 257, 0, 125, + 35, 36, 0, 38, 0, 125, 0, 6, 0, 0, + -195, -195, 122, -195, 122, 0, 149, -195, 0, 150, + 256, 0, 256, 256, 17, 53, -195, 0, 0, -195, + 0, 0, 0, 0, 0, 0, 257, 0, 344, 257, + 0, 0, 0, 256, 256, 35, 36, 0, 38, 0, + 0, 0, 6, 122, 0, 122, 122, 17, 53, 257, + 257, 149, 0, 123, 174, 123, 0, -195, -195, 310, + 311, 0, 0, 0, 0, 0, 122, 122, 0, 0, + 124, 0, 124, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 0, 0, 0, 125, 0, 125, + 0, 0, 17, 53, 123, 0, 123, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 124, 0, 124, 124, 0, 0, 123, 123, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, + 125, 125, 0, 0, 124, 124, 0, 0, 0, 0, + 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, + 203, 125, 125, 204, 205, 0, 206, 207, 208, 209, + 0, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 35, 36, 0, 38, 0, 0, 0, 6, 42, 43, + 44, 45, 0, 0, 157, 219, 113, 0, 0, 0, + 0, 0, 0, 0, 220, 221, 0, 0, 0, 0, + 0, -196, -196, 0, -196, 0, -197, -197, -196, -197, + 0, 0, 0, -197, 0, 0, 0, -196, 202, 0, + -196, 0, -197, 0, 0, -197, 203, 17, 53, 204, + 205, 0, 206, 207, 208, 209, 0, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 35, 36, 0, 38, + 0, 0, 0, 6, 42, 43, 44, 45, -196, -196, + 157, 299, 113, -197, -197, 0, 0, 0, 0, 0, + 220, 221, 275, 0, 0, 0, 0, 0, 0, 203, + 0, 0, 204, 205, 0, 206, 207, 208, 209, 0, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 35, + 36, 0, 38, 17, 53, 0, 6, 42, 43, 44, + 45, 0, 0, 157, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 220, 221, 334, 0, 0, 0, 0, + 0, 0, 203, 0, 0, 204, 205, 0, 206, 207, + 208, 209, 0, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 35, 36, 0, 38, 17, 53, 34, 6, + 42, 43, 44, 45, 0, 0, 157, 0, 113, 0, + 0, 0, 0, 0, 0, 0, 220, 221, 0, 0, + 0, 35, 36, 37, 38, 39, 40, 41, 6, 42, + 43, 44, 45, 46, 0, 0, 0, 104, 105, 0, + 0, 48, 0, 0, -198, -198, 0, -198, 0, 17, + 53, -198, 35, 36, 0, 38, 0, 49, 50, 6, + -198, 34, 0, -198, 0, 0, 0, 0, 149, 0, + 0, 174, 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, -198, -198, 0, 48, 0, 292, 0, 0, 17, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 50, 0, 0, 34, 0, 0, 0, 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, + 267, 0, 0, 47, 0, 0, 130, 48, 0, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 0, + 0, 0, 0, 49, 50, 0, 0, 34, 0, 0, + 0, 0, 141, 142, 143, 144, 145, 146, 147, 148, + 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, 104, 0, 0, 0, + 48, 0, 0, 0, 0, 306, 307, 0, 308, 309, + 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, 149, 0, 0, 174, 0, 0, 0, + 0, 310, 311, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 0, 0, 0, 0, + 0, 0, 0, 203, 17, 53, 204, 205, 0, 206, + 207, 208, 209, 0, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 35, 36, 0, 38, 0, 0, 0, + 6, 42, 43, 44, 45, 0, 0, 157, 0, 113, + 0, 0, 0, 0, 0, 0, 167, 220, 221, 0, + 0, 168, 0, 0, 0, 0, 130, 0, 0, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 17, 53, 141, 142, 143, 144, 145, 146, 147, 148, + 406, 0, 0, 0, 0, 407, 0, 0, 0, 0, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, + 145, 146, 147, 148, 408, 0, 0, 0, 0, 409, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, 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, 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, + 141, 142, 143, 144, 145, 146, 147, 148, 410, 0, + 0, 0, 0, 411, 0, 0, 0, 0, 130, 0, + 0, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 167, 0, 141, 142, 143, 144, 145, 146, + 147, 148, 130, 0, 0, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 375, 0, 141, 142, + 143, 144, 145, 146, 147, 148, 130, 0, 0, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 377, 0, 141, 142, 143, 144, 145, 146, 147, 148, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 381, 0, 141, 142, 143, 144, + 145, 146, 147, 148, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 130, 0, + 0, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 405, 0, 141, 142, 143, 144, 145, 146, + 147, 148, 130, 0, 0, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 417, 0, 141, 142, + 143, 144, 145, 146, 147, 148, 130, 0, 0, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 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, 329, 117, 0, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, + 419, 0, 141, 142, 143, 144, 145, 146, 147, 148, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 440, 0, 141, 142, 143, 144, + 145, 146, 147, 148, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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 + 141, 142, 143, 144, 145, 146, 147, 148, 272, 0, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 323, 0, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 326, 0, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 329, 0, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 330, 0, + 0, 0, 0, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 271, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 129, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 336, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 349, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 130, 0, 0, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, + 0, 0, 0, 141, 142, 143, 144, 145, 146, 147, + 148, 131, 132, 0, 134, 135, 136, 137, 138, 139, + 140, 131, 132, 0, 0, 135, 136, 137, 138, 139, + 140, 0, 0, 0, 141, 142, 143, 144, 145, 146, + 147, 148, 0, 0, 141, 142, 143, 144, 145, 146, + 147, 148, 131, 132, 0, 0, 135, 136, 137, 138, + 139, 140, 131, 132, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 142, 143, 144, 145, + 146, 147, 148, 0, 0, 0, 142, 0, 144, 145, + 146, 147, 148, 131, 132, 0, 0, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, + 145, 146, 147, 148 }; const short parser::yycheck_[] = { - 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, + 0, 94, 74, 21, 283, 47, 283, 283, 46, 9, + 46, 52, 3, 4, 29, 46, 57, 74, 46, 0, + 52, 51, 51, 98, 55, 57, 26, 55, 65, 66, + 202, 93, 94, 95, 206, 35, 36, 11, 12, 13, + 14, 15, 57, 51, 35, 36, 52, 77, 48, 121, + 61, 51, 96, 97, 91, 92, 93, 94, 95, 97, + 51, 97, 104, 61, 121, 96, 97, 55, 96, 97, + 52, 92, 46, 97, 74, 57, 51, 98, 39, 40, + 101, 42, 59, 74, 53, 46, 47, 48, 49, 50, + 39, 40, 59, 42, 55, 95, 61, 46, 47, 48, + 49, 50, 51, 55, 52, 277, 55, 52, 51, 57, + 39, 40, 57, 42, 52, 52, 55, 46, 59, 57, + 57, 121, 51, 97, 51, 59, 55, 52, 157, 58, + 121, 55, 57, 52, 57, 96, 97, 55, 57, 418, + 52, 418, 418, 56, 52, 57, 97, 96, 97, 57, + 59, 100, 101, 52, 52, 155, 51, 157, 57, 57, + 51, 61, 162, 51, 51, 165, 157, 96, 97, 154, + 51, 51, 51, 202, 60, 175, 161, 206, 61, 164, + 51, 51, 157, 61, 61, 257, 91, 92, 93, 94, + 95, 220, 221, 211, 61, 224, 61, 61, 61, 61, + 257, 51, 202, 375, 51, 377, 206, 56, 26, 101, + 51, 202, 60, 51, 60, 206, 27, 51, 51, 56, + 220, 221, 51, 24, 224, 297, 298, 202, 56, 220, + 221, 206, 56, 224, 51, 46, 61, 51, 49, 50, + 297, 298, 51, 51, 416, 220, 221, 419, 277, 224, + 29, 61, 65, 66, 283, 61, 61, 257, 71, 72, + 73, 74, 51, 61, 61, 61, 257, 439, 440, 61, + 61, 52, 344, 61, 52, 52, 52, 277, 91, 92, + 93, 94, 95, 283, 284, 9, 277, 344, 381, 274, + 61, 61, 283, 104, 9, 9, 224, 297, 298, 418, + 51, 112, 277, -1, 211, -1, 297, 298, 283, -1, + 295, 296, -1, -1, -1, -1, -1, -1, -1, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, + 325, -1, -1, 328, 344, 51, 375, -1, 377, 160, + -1, -1, 163, 344, -1, 166, -1, 168, -1, 170, + -1, 51, 173, 39, 40, 407, 42, 409, 157, 411, + 46, -1, -1, -1, -1, 375, -1, 377, 51, 55, + 380, -1, 58, -1, 375, -1, 377, 416, 373, 418, + 419, -1, 203, -1, -1, -1, -1, -1, -1, -1, + 375, -1, 377, 388, 215, 390, -1, 392, -1, -1, + 439, 440, -1, 202, -1, -1, 416, 206, 418, 419, + 96, 97, -1, -1, -1, 416, -1, 418, 419, 51, + -1, 220, 221, -1, -1, 224, -1, -1, -1, 439, + 440, 416, -1, 418, 419, -1, 51, -1, 439, 440, + -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, + 271, -1, -1, 51, 439, 440, -1, 157, -1, 280, + -1, 282, -1, -1, 285, -1, -1, -1, -1, 39, + 40, -1, 42, -1, 157, -1, 46, -1, 277, -1, + -1, -1, -1, -1, 283, 55, 202, -1, 58, -1, + 206, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 202, -1, 220, 221, 206, -1, 224, 330, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 202, + 220, 221, -1, 206, 224, 157, 96, 97, -1, -1, + -1, 352, 353, 354, 355, -1, -1, 220, 221, -1, + -1, 224, 157, -1, 39, 40, -1, 42, -1, -1, + -1, 46, -1, -1, -1, 376, -1, 378, 379, 157, + 55, 277, -1, 58, -1, -1, -1, 283, -1, -1, + 202, -1, -1, -1, 206, -1, 375, 277, 377, 39, + 40, -1, 42, 283, -1, -1, 46, 202, 220, 221, + -1, 206, 224, -1, 277, 55, -1, -1, 58, 420, + 283, 96, 97, -1, 202, 220, 221, -1, 206, 224, + -1, -1, -1, -1, -1, -1, -1, 416, -1, 418, + 419, -1, 220, 221, -1, -1, 224, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 96, 97, -1, -1, + 439, 440, -1, -1, -1, 277, -1, 39, 40, -1, + 42, 283, -1, -1, 46, 47, 48, 49, 50, 375, + -1, 377, 277, 55, -1, -1, -1, -1, 283, -1, + -1, 63, 64, -1, -1, 375, -1, 377, -1, 277, + 39, 40, -1, 42, -1, 283, -1, 46, -1, -1, + 39, 40, 375, 42, 377, -1, 55, 46, -1, 58, + 416, -1, 418, 419, 96, 97, 55, -1, -1, 58, + -1, -1, -1, -1, -1, -1, 416, -1, 418, 419, + -1, -1, -1, 439, 440, 39, 40, -1, 42, -1, + -1, -1, 46, 416, -1, 418, 419, 96, 97, 439, + 440, 55, -1, 375, 58, 377, -1, 96, 97, 63, + 64, -1, -1, -1, -1, -1, 439, 440, -1, -1, + 375, -1, 377, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, -1, -1, -1, 375, -1, 377, + -1, -1, 96, 97, 416, -1, 418, 419, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 416, -1, 418, 419, -1, -1, 439, 440, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 416, -1, + 418, 419, -1, -1, 439, 440, -1, -1, -1, -1, + -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, + 19, 439, 440, 22, 23, -1, 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 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, + 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, -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, 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, 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, 44, 45, 46, 47, + 48, 49, 50, 51, -1, -1, -1, 55, 56, -1, + -1, 59, -1, -1, 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, 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, 61, -1, -1, 96, + 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 75, 76, -1, -1, 16, -1, -1, -1, -1, -1, + -1, -1, -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, + 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, -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, 98, + 99, 100, 101, 55, -1, -1, 58, -1, -1, -1, + -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, -1, -1, -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, 96, 97, 16, + 36, 37, 38, 39, 40, -1, 42, -1, -1, -1, 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, 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, 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, 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, -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, - 98, 99, 100, 101, 55, -1, -1, 58, -1, -1, - -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, -1, -1, -1, - -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, -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, + -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, -1, -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, + 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, 60, -1, 62, -1, -1, 65, + 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, - -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, + 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, - 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 + 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, 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, 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, + 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + 92, 93, 94, 95 }; const unsigned char @@ -4356,47 +4417,48 @@ namespace xsk { namespace gsc { namespace iw6 { 0, 11, 12, 13, 14, 15, 46, 97, 113, 114, 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, + 98, 189, 167, 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, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 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, + 186, 187, 55, 151, 55, 56, 151, 168, 169, 186, + 151, 151, 51, 55, 100, 101, 162, 163, 171, 172, + 174, 175, 179, 180, 181, 182, 186, 187, 97, 61, + 62, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 88, 89, 90, 91, 92, 93, 94, 95, 55, + 58, 164, 165, 186, 51, 59, 61, 53, 126, 186, + 55, 51, 59, 55, 51, 59, 55, 52, 57, 151, + 57, 56, 151, 55, 58, 59, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 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 + 151, 151, 151, 151, 151, 151, 46, 97, 185, 168, + 169, 186, 11, 19, 22, 23, 25, 26, 27, 28, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 54, + 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, 162, 163, 171, 172, 175, 186, 151, + 168, 186, 151, 168, 186, 151, 151, 56, 151, 151, + 186, 60, 56, 52, 51, 12, 121, 123, 151, 61, + 51, 121, 51, 51, 51, 51, 92, 189, 192, 60, + 61, 61, 61, 151, 61, 51, 51, 175, 175, 54, + 122, 61, 61, 61, 61, 61, 17, 18, 20, 21, + 63, 64, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 56, 52, 51, 56, 52, 51, 56, + 57, 56, 151, 168, 12, 121, 61, 151, 26, 151, + 127, 153, 154, 155, 175, 186, 151, 60, 60, 61, + 168, 168, 51, 51, 51, 51, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 56, 168, 56, + 168, 56, 151, 51, 52, 52, 51, 52, 61, 29, + 57, 52, 52, 52, 151, 151, 151, 151, 51, 52, + 51, 52, 51, 52, 168, 121, 151, 121, 151, 152, + 151, 186, 126, 61, 61, 52, 52, 57, 52, 57, + 52, 57, 168, 168, 168, 52, 24, 52, 61, 52, + 29, 61, 61, 169, 61, 169, 61, 169, 52, 52, + 52, 121, 61, 127, 121, 151, 52, 52, 52, 52, + 52, 61, 61, 61, 121, 121 }; const unsigned char @@ -4417,13 +4479,14 @@ 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, 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 + 158, 158, 158, 158, 158, 158, 158, 159, 160, 160, + 160, 160, 161, 162, 162, 163, 163, 164, 164, 164, + 164, 164, 164, 165, 165, 165, 165, 166, 167, 167, + 167, 168, 168, 169, 169, 170, 170, 171, 172, 173, + 174, 175, 175, 175, 175, 175, 175, 175, 175, 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 @@ -4444,13 +4507,14 @@ 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, 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 + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 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 }; @@ -4475,13 +4539,14 @@ namespace xsk { namespace gsc { namespace iw6 { 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 + 625, 626, 627, 628, 629, 630, 631, 635, 640, 642, + 644, 646, 651, 656, 657, 660, 661, 665, 667, 669, + 671, 673, 675, 680, 682, 684, 686, 691, 696, 698, + 701, 705, 708, 712, 714, 719, 721, 726, 731, 736, + 741, 746, 747, 748, 749, 750, 751, 752, 753, 754, + 758, 763, 768, 773, 778, 783, 788, 793, 798, 803, + 808, 810, 815, 817, 822, 827, 832, 837, 839, 844, + 846, 851, 856 }; void @@ -4514,9 +4579,9 @@ namespace xsk { namespace gsc { namespace iw6 { #line 13 "parser.ypp" } } } // xsk::gsc::iw6 -#line 4518 "parser.cpp" +#line 4583 "parser.cpp" -#line 854 "parser.ypp" +#line 860 "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 003a6e11..e9e84f2e 100644 --- a/src/iw6/xsk/parser.hpp +++ b/src/iw6/xsk/parser.hpp @@ -447,7 +447,6 @@ namespace xsk { namespace gsc { namespace iw6 { // expr_binary // expr_primitive // expr_object - // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -506,131 +505,134 @@ namespace xsk { namespace gsc { namespace iw6 { // expr_method char dummy24[sizeof (ast::expr_method::ptr)]; + // expr_negate + char dummy25[sizeof (ast::expr_negate::ptr)]; + // expr_not - char dummy25[sizeof (ast::expr_not::ptr)]; + char dummy26[sizeof (ast::expr_not::ptr)]; // expr_parameters - char dummy26[sizeof (ast::expr_parameters::ptr)]; + char dummy27[sizeof (ast::expr_parameters::ptr)]; // expr_paren - char dummy27[sizeof (ast::expr_paren::ptr)]; + char dummy28[sizeof (ast::expr_paren::ptr)]; // expr_path - char dummy28[sizeof (ast::expr_path::ptr)]; + char dummy29[sizeof (ast::expr_path::ptr)]; // expr_reference - char dummy29[sizeof (ast::expr_reference::ptr)]; + char dummy30[sizeof (ast::expr_reference::ptr)]; // expr_self - char dummy30[sizeof (ast::expr_self::ptr)]; + char dummy31[sizeof (ast::expr_self::ptr)]; // expr_size - char dummy31[sizeof (ast::expr_size::ptr)]; + char dummy32[sizeof (ast::expr_size::ptr)]; // expr_string - char dummy32[sizeof (ast::expr_string::ptr)]; + char dummy33[sizeof (ast::expr_string::ptr)]; // expr_thisthread - char dummy33[sizeof (ast::expr_thisthread::ptr)]; + char dummy34[sizeof (ast::expr_thisthread::ptr)]; // expr_true - char dummy34[sizeof (ast::expr_true::ptr)]; + char dummy35[sizeof (ast::expr_true::ptr)]; // expr_undefined - char dummy35[sizeof (ast::expr_undefined::ptr)]; + char dummy36[sizeof (ast::expr_undefined::ptr)]; // expr_vector - char dummy36[sizeof (ast::expr_vector::ptr)]; + char dummy37[sizeof (ast::expr_vector::ptr)]; // include - char dummy37[sizeof (ast::include::ptr)]; + char dummy38[sizeof (ast::include::ptr)]; // program - char dummy38[sizeof (ast::program::ptr)]; + char dummy39[sizeof (ast::program::ptr)]; // stmt // stmt_or_dev - char dummy39[sizeof (ast::stmt)]; + char dummy40[sizeof (ast::stmt)]; // stmt_assign - char dummy40[sizeof (ast::stmt_assign::ptr)]; + char dummy41[sizeof (ast::stmt_assign::ptr)]; // stmt_break - char dummy41[sizeof (ast::stmt_break::ptr)]; + char dummy42[sizeof (ast::stmt_break::ptr)]; // stmt_breakpoint - char dummy42[sizeof (ast::stmt_breakpoint::ptr)]; + char dummy43[sizeof (ast::stmt_breakpoint::ptr)]; // stmt_call - char dummy43[sizeof (ast::stmt_call::ptr)]; + char dummy44[sizeof (ast::stmt_call::ptr)]; // stmt_case - char dummy44[sizeof (ast::stmt_case::ptr)]; + char dummy45[sizeof (ast::stmt_case::ptr)]; // stmt_continue - char dummy45[sizeof (ast::stmt_continue::ptr)]; + char dummy46[sizeof (ast::stmt_continue::ptr)]; // stmt_default - char dummy46[sizeof (ast::stmt_default::ptr)]; + char dummy47[sizeof (ast::stmt_default::ptr)]; // stmt_dev - char dummy47[sizeof (ast::stmt_dev::ptr)]; + char dummy48[sizeof (ast::stmt_dev::ptr)]; // stmt_dowhile - char dummy48[sizeof (ast::stmt_dowhile::ptr)]; + char dummy49[sizeof (ast::stmt_dowhile::ptr)]; // stmt_endon - char dummy49[sizeof (ast::stmt_endon::ptr)]; + char dummy50[sizeof (ast::stmt_endon::ptr)]; // stmt_expr - char dummy50[sizeof (ast::stmt_expr::ptr)]; + char dummy51[sizeof (ast::stmt_expr::ptr)]; // stmt_for - char dummy51[sizeof (ast::stmt_for::ptr)]; + char dummy52[sizeof (ast::stmt_for::ptr)]; // stmt_foreach - char dummy52[sizeof (ast::stmt_foreach::ptr)]; + char dummy53[sizeof (ast::stmt_foreach::ptr)]; // stmt_if - char dummy53[sizeof (ast::stmt_if::ptr)]; + char dummy54[sizeof (ast::stmt_if::ptr)]; // stmt_ifelse - char dummy54[sizeof (ast::stmt_ifelse::ptr)]; + char dummy55[sizeof (ast::stmt_ifelse::ptr)]; // stmt_list // stmt_or_dev_list // stmt_block - char dummy55[sizeof (ast::stmt_list::ptr)]; + char dummy56[sizeof (ast::stmt_list::ptr)]; // stmt_notify - char dummy56[sizeof (ast::stmt_notify::ptr)]; + char dummy57[sizeof (ast::stmt_notify::ptr)]; // stmt_prof_begin - char dummy57[sizeof (ast::stmt_prof_begin::ptr)]; + char dummy58[sizeof (ast::stmt_prof_begin::ptr)]; // stmt_prof_end - char dummy58[sizeof (ast::stmt_prof_end::ptr)]; + char dummy59[sizeof (ast::stmt_prof_end::ptr)]; // stmt_return - char dummy59[sizeof (ast::stmt_return::ptr)]; + char dummy60[sizeof (ast::stmt_return::ptr)]; // stmt_switch - char dummy60[sizeof (ast::stmt_switch::ptr)]; + char dummy61[sizeof (ast::stmt_switch::ptr)]; // stmt_wait - char dummy61[sizeof (ast::stmt_wait::ptr)]; + char dummy62[sizeof (ast::stmt_wait::ptr)]; // stmt_waittill - char dummy62[sizeof (ast::stmt_waittill::ptr)]; + char dummy63[sizeof (ast::stmt_waittill::ptr)]; // stmt_waittillframeend - char dummy63[sizeof (ast::stmt_waittillframeend::ptr)]; + char dummy64[sizeof (ast::stmt_waittillframeend::ptr)]; // stmt_waittillmatch - char dummy64[sizeof (ast::stmt_waittillmatch::ptr)]; + char dummy65[sizeof (ast::stmt_waittillmatch::ptr)]; // stmt_while - char dummy65[sizeof (ast::stmt_while::ptr)]; + char dummy66[sizeof (ast::stmt_while::ptr)]; // "path" // "identifier" @@ -638,7 +640,7 @@ namespace xsk { namespace gsc { namespace iw6 { // "localized string" // "float" // "integer" - char dummy66[sizeof (std::string)]; + char dummy67[sizeof (std::string)]; }; /// The size of the largest semantic type. @@ -978,31 +980,31 @@ namespace xsk { namespace gsc { namespace iw6 { S_expr_binary = 157, // expr_binary S_expr_primitive = 158, // expr_primitive S_expr_complement = 159, // expr_complement - S_expr_not = 160, // expr_not - S_expr_call = 161, // expr_call - S_expr_method = 162, // expr_method - S_expr_function = 163, // expr_function - S_expr_pointer = 164, // expr_pointer - S_expr_add_array = 165, // expr_add_array - S_expr_parameters = 166, // expr_parameters - S_expr_arguments = 167, // expr_arguments - S_expr_arguments_no_empty = 168, // expr_arguments_no_empty - S_expr_reference = 169, // expr_reference - S_expr_array = 170, // expr_array - S_expr_field = 171, // expr_field - S_expr_size = 172, // expr_size - S_expr_paren = 173, // expr_paren - S_expr_object = 174, // expr_object - S_expr_thisthread = 175, // expr_thisthread - S_expr_empty_array = 176, // expr_empty_array - S_expr_undefined = 177, // expr_undefined - S_expr_game = 178, // expr_game - S_expr_self = 179, // expr_self - S_expr_anim = 180, // expr_anim - S_expr_level = 181, // expr_level - S_expr_animation = 182, // expr_animation - S_expr_animtree = 183, // expr_animtree - S_expr_identifier_neg = 184, // expr_identifier_neg + S_expr_negate = 160, // expr_negate + S_expr_not = 161, // expr_not + S_expr_call = 162, // expr_call + S_expr_method = 163, // expr_method + S_expr_function = 164, // expr_function + S_expr_pointer = 165, // expr_pointer + S_expr_add_array = 166, // expr_add_array + S_expr_parameters = 167, // expr_parameters + S_expr_arguments = 168, // expr_arguments + S_expr_arguments_no_empty = 169, // expr_arguments_no_empty + S_expr_reference = 170, // expr_reference + S_expr_array = 171, // expr_array + S_expr_field = 172, // expr_field + S_expr_size = 173, // expr_size + S_expr_paren = 174, // expr_paren + S_expr_object = 175, // expr_object + S_expr_thisthread = 176, // expr_thisthread + S_expr_empty_array = 177, // expr_empty_array + S_expr_undefined = 178, // expr_undefined + S_expr_game = 179, // expr_game + S_expr_self = 180, // expr_self + S_expr_anim = 181, // expr_anim + S_expr_level = 182, // expr_level + S_expr_animation = 183, // expr_animation + S_expr_animtree = 184, // expr_animtree S_expr_identifier_nosize = 185, // expr_identifier_nosize S_expr_identifier = 186, // expr_identifier S_expr_path = 187, // expr_path @@ -1079,7 +1081,6 @@ 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; @@ -1157,6 +1158,10 @@ namespace xsk { namespace gsc { namespace iw6 { value.move< ast::expr_method::ptr > (std::move (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (std::move (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (std::move (that.value)); break; @@ -1692,6 +1697,20 @@ namespace xsk { namespace gsc { namespace iw6 { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, ast::expr_negate::ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const ast::expr_negate::ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ast::expr_not::ptr&& v, location_type&& l) : Base (t) @@ -2334,7 +2353,6 @@ 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; @@ -2412,6 +2430,10 @@ switch (yykind) value.template destroy< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + value.template destroy< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not value.template destroy< ast::expr_not::ptr > (); break; @@ -4774,7 +4796,7 @@ switch (yykind) /// Constants. enum { - yylast_ = 2239, ///< Last index in yytable_. + yylast_ = 2363, ///< Last index in yytable_. yynnts_ = 83, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4832,7 +4854,6 @@ 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; @@ -4910,6 +4931,10 @@ switch (yykind) value.copy< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -5147,7 +5172,6 @@ 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; @@ -5225,6 +5249,10 @@ switch (yykind) value.move< ast::expr_method::ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (s.value)); break; @@ -5468,7 +5496,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::iw6 -#line 5472 "parser.hpp" +#line 5500 "parser.hpp" diff --git a/src/iw7/xsk/compiler.cpp b/src/iw7/xsk/compiler.cpp index 67c120b1..66cab5d4 100644 --- a/src/iw7/xsk/compiler.cpp +++ b/src/iw7/xsk/compiler.cpp @@ -938,6 +938,9 @@ void compiler::emit_expr(const ast::expr& expr, const block::ptr& blk) case ast::kind::expr_complement: emit_expr_complement(expr.as_complement, blk); break; + case ast::kind::expr_negate: + emit_expr_negate(expr.as_negate, blk); + break; case ast::kind::expr_not: emit_expr_not(expr.as_not, blk); break; @@ -1251,6 +1254,13 @@ void compiler::emit_expr_complement(const ast::expr_complement::ptr& expr, const emit_opcode(opcode::OP_BoolComplement); } +void compiler::emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk) +{ + emit_opcode(opcode::OP_GetZero); + emit_expr(expr->rvalue, blk); + emit_opcode(opcode::OP_minus); +} + void compiler::emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk) { emit_expr(expr->rvalue, blk); diff --git a/src/iw7/xsk/compiler.hpp b/src/iw7/xsk/compiler.hpp index f717c496..71fb2464 100644 --- a/src/iw7/xsk/compiler.hpp +++ b/src/iw7/xsk/compiler.hpp @@ -82,6 +82,7 @@ private: void emit_expr_and(const ast::expr_and::ptr& expr, const block::ptr& blk); void emit_expr_or(const ast::expr_or::ptr& expr, const block::ptr& blk); void emit_expr_complement(const ast::expr_complement::ptr& expr, const block::ptr& blk); + void emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk); void emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk); void emit_expr_call(const ast::expr_call::ptr& expr, const block::ptr& blk, bool is_stmt); void emit_expr_call_pointer(const ast::expr_pointer::ptr& expr, const block::ptr& blk, bool is_stmt); diff --git a/src/iw7/xsk/parser.cpp b/src/iw7/xsk/parser.cpp index b94850c3..ef720b29 100644 --- a/src/iw7/xsk/parser.cpp +++ b/src/iw7/xsk/parser.cpp @@ -245,7 +245,6 @@ 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; @@ -323,6 +322,10 @@ namespace xsk { namespace gsc { namespace iw7 { value.YY_MOVE_OR_COPY< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.YY_MOVE_OR_COPY< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.YY_MOVE_OR_COPY< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -544,7 +547,6 @@ 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; @@ -622,6 +624,10 @@ namespace xsk { namespace gsc { namespace iw7 { value.move< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -843,7 +849,6 @@ 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; @@ -921,6 +926,10 @@ namespace xsk { namespace gsc { namespace iw7 { value.copy< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (that.value); break; @@ -1141,7 +1150,6 @@ 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; @@ -1219,6 +1227,10 @@ namespace xsk { namespace gsc { namespace iw7 { value.move< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (that.value); break; @@ -1694,7 +1706,6 @@ 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; @@ -1772,6 +1783,10 @@ namespace xsk { namespace gsc { namespace iw7 { yylhs.value.emplace< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + yylhs.value.emplace< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not yylhs.value.emplace< ast::expr_not::ptr > (); break; @@ -1971,1313 +1986,1331 @@ namespace xsk { namespace gsc { namespace iw7 { case 2: // root: program #line 258 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1975 "parser.cpp" +#line 1990 "parser.cpp" break; case 3: // root: %empty #line 259 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 1981 "parser.cpp" +#line 1996 "parser.cpp" break; case 4: // program: program inline #line 264 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 1987 "parser.cpp" +#line 2002 "parser.cpp" break; case 5: // program: program include #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 1993 "parser.cpp" +#line 2008 "parser.cpp" break; case 6: // program: program declaration #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 1999 "parser.cpp" +#line 2014 "parser.cpp" break; case 7: // program: inline #line 270 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2005 "parser.cpp" +#line 2020 "parser.cpp" break; case 8: // program: include #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 2011 "parser.cpp" +#line 2026 "parser.cpp" break; case 9: // program: declaration #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 2017 "parser.cpp" +#line 2032 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" #line 278 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2023 "parser.cpp" +#line 2038 "parser.cpp" break; case 11: // include: "#include" expr_path ";" #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 2029 "parser.cpp" +#line 2044 "parser.cpp" break; case 12: // declaration: "/#" #line 287 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2035 "parser.cpp" +#line 2050 "parser.cpp" break; case 13: // declaration: "#/" #line 288 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2041 "parser.cpp" +#line 2056 "parser.cpp" break; case 14: // declaration: decl_usingtree #line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2047 "parser.cpp" +#line 2062 "parser.cpp" break; case 15: // declaration: decl_constant #line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2053 "parser.cpp" +#line 2068 "parser.cpp" break; case 16: // declaration: decl_thread #line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2059 "parser.cpp" +#line 2074 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" #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 2065 "parser.cpp" +#line 2080 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" #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 2071 "parser.cpp" +#line 2086 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block #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 2077 "parser.cpp" +#line 2092 "parser.cpp" break; case 20: // stmt: stmt_block #line 310 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2083 "parser.cpp" +#line 2098 "parser.cpp" break; case 21: // stmt: stmt_call #line 311 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2089 "parser.cpp" +#line 2104 "parser.cpp" break; case 22: // stmt: stmt_assign #line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2095 "parser.cpp" +#line 2110 "parser.cpp" break; case 23: // stmt: stmt_endon #line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2101 "parser.cpp" +#line 2116 "parser.cpp" break; case 24: // stmt: stmt_notify #line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2107 "parser.cpp" +#line 2122 "parser.cpp" break; case 25: // stmt: stmt_wait #line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2113 "parser.cpp" +#line 2128 "parser.cpp" break; case 26: // stmt: stmt_waittill #line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2119 "parser.cpp" +#line 2134 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch #line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2125 "parser.cpp" +#line 2140 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend #line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2131 "parser.cpp" +#line 2146 "parser.cpp" break; case 29: // stmt: stmt_if #line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2137 "parser.cpp" +#line 2152 "parser.cpp" break; case 30: // stmt: stmt_ifelse #line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2143 "parser.cpp" +#line 2158 "parser.cpp" break; case 31: // stmt: stmt_while #line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2149 "parser.cpp" +#line 2164 "parser.cpp" break; case 32: // stmt: stmt_dowhile #line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2155 "parser.cpp" +#line 2170 "parser.cpp" break; case 33: // stmt: stmt_for #line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2161 "parser.cpp" +#line 2176 "parser.cpp" break; case 34: // stmt: stmt_foreach #line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2167 "parser.cpp" +#line 2182 "parser.cpp" break; case 35: // stmt: stmt_switch #line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2173 "parser.cpp" +#line 2188 "parser.cpp" break; case 36: // stmt: stmt_case #line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2179 "parser.cpp" +#line 2194 "parser.cpp" break; case 37: // stmt: stmt_default #line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2185 "parser.cpp" +#line 2200 "parser.cpp" break; case 38: // stmt: stmt_break #line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2191 "parser.cpp" +#line 2206 "parser.cpp" break; case 39: // stmt: stmt_continue #line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2197 "parser.cpp" +#line 2212 "parser.cpp" break; case 40: // stmt: stmt_return #line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2203 "parser.cpp" +#line 2218 "parser.cpp" break; case 41: // stmt: stmt_breakpoint #line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2209 "parser.cpp" +#line 2224 "parser.cpp" break; case 42: // stmt: stmt_prof_begin #line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2215 "parser.cpp" +#line 2230 "parser.cpp" break; case 43: // stmt: stmt_prof_end #line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2221 "parser.cpp" +#line 2236 "parser.cpp" break; case 44: // stmt_or_dev: stmt #line 337 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2227 "parser.cpp" +#line 2242 "parser.cpp" break; case 45: // stmt_or_dev: stmt_dev #line 338 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2233 "parser.cpp" +#line 2248 "parser.cpp" break; case 46: // stmt_list: stmt_list stmt #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 2239 "parser.cpp" +#line 2254 "parser.cpp" break; case 47: // stmt_list: stmt #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 2245 "parser.cpp" +#line 2260 "parser.cpp" break; case 48: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev #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 2251 "parser.cpp" +#line 2266 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev #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 2257 "parser.cpp" +#line 2272 "parser.cpp" break; case 50: // stmt_dev: "/#" stmt_list "#/" #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 2263 "parser.cpp" +#line 2278 "parser.cpp" break; case 51: // stmt_dev: "/#" "#/" #line 357 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2269 "parser.cpp" +#line 2284 "parser.cpp" break; case 52: // stmt_block: "{" stmt_or_dev_list "}" #line 361 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2275 "parser.cpp" +#line 2290 "parser.cpp" break; case 53: // stmt_block: "{" "}" #line 362 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2281 "parser.cpp" +#line 2296 "parser.cpp" break; case 54: // stmt_expr: expr_assign #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 2287 "parser.cpp" +#line 2302 "parser.cpp" break; case 55: // stmt_expr: expr_increment #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 2293 "parser.cpp" +#line 2308 "parser.cpp" break; case 56: // stmt_expr: expr_decrement #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 2299 "parser.cpp" +#line 2314 "parser.cpp" break; case 57: // stmt_expr: %empty #line 373 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2305 "parser.cpp" +#line 2320 "parser.cpp" break; case 58: // stmt_call: expr_call ";" #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 2311 "parser.cpp" +#line 2326 "parser.cpp" break; case 59: // stmt_call: expr_method ";" #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 2317 "parser.cpp" +#line 2332 "parser.cpp" break; case 60: // stmt_assign: expr_assign ";" #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 2323 "parser.cpp" +#line 2338 "parser.cpp" break; case 61: // stmt_assign: expr_increment ";" #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 2329 "parser.cpp" +#line 2344 "parser.cpp" break; case 62: // stmt_assign: expr_decrement ";" #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 2335 "parser.cpp" +#line 2350 "parser.cpp" break; case 63: // stmt_endon: expr_object "endon" "(" expr ")" ";" #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 2341 "parser.cpp" +#line 2356 "parser.cpp" break; case 64: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" #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 2347 "parser.cpp" +#line 2362 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr ")" ";" #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 2353 "parser.cpp" +#line 2368 "parser.cpp" break; case 66: // stmt_wait: "wait" expr ";" #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 2359 "parser.cpp" +#line 2374 "parser.cpp" break; case 67: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" #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 2365 "parser.cpp" +#line 2380 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" #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 2371 "parser.cpp" +#line 2386 "parser.cpp" break; case 69: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" #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 2377 "parser.cpp" +#line 2392 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" #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 2383 "parser.cpp" +#line 2398 "parser.cpp" break; case 71: // stmt_waittillframeend: "waittillframeend" ";" #line 425 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2389 "parser.cpp" +#line 2404 "parser.cpp" break; case 72: // stmt_if: "if" "(" expr ")" stmt #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 2395 "parser.cpp" +#line 2410 "parser.cpp" break; case 73: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt #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 2401 "parser.cpp" +#line 2416 "parser.cpp" break; case 74: // stmt_while: "while" "(" expr ")" stmt #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 2407 "parser.cpp" +#line 2422 "parser.cpp" break; case 75: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" #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 2413 "parser.cpp" +#line 2428 "parser.cpp" break; case 76: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt #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 2419 "parser.cpp" +#line 2434 "parser.cpp" break; case 77: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt #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 2425 "parser.cpp" +#line 2440 "parser.cpp" break; case 78: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt #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 2431 "parser.cpp" +#line 2446 "parser.cpp" break; case 79: // stmt_switch: "switch" "(" expr ")" stmt_block #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 2437 "parser.cpp" +#line 2452 "parser.cpp" break; case 80: // stmt_case: "case" expr_integer ":" #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 2443 "parser.cpp" +#line 2458 "parser.cpp" break; case 81: // stmt_case: "case" expr_string ":" #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 2449 "parser.cpp" +#line 2464 "parser.cpp" break; case 82: // stmt_default: "default" ":" #line 474 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2455 "parser.cpp" +#line 2470 "parser.cpp" break; case 83: // stmt_break: "break" ";" #line 479 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2461 "parser.cpp" +#line 2476 "parser.cpp" break; case 84: // stmt_continue: "continue" ";" #line 484 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2467 "parser.cpp" +#line 2482 "parser.cpp" break; case 85: // stmt_return: "return" expr ";" #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 2473 "parser.cpp" +#line 2488 "parser.cpp" break; case 86: // stmt_return: "return" ";" #line 491 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2479 "parser.cpp" +#line 2494 "parser.cpp" break; case 87: // stmt_breakpoint: "breakpoint" ";" #line 496 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2485 "parser.cpp" +#line 2500 "parser.cpp" break; case 88: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" #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 2491 "parser.cpp" +#line 2506 "parser.cpp" break; case 89: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" #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 2497 "parser.cpp" +#line 2512 "parser.cpp" break; case 90: // expr: expr_ternary #line 510 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2503 "parser.cpp" +#line 2518 "parser.cpp" break; case 91: // expr: expr_binary #line 511 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2509 "parser.cpp" +#line 2524 "parser.cpp" break; case 92: // expr: expr_primitive #line 512 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2515 "parser.cpp" +#line 2530 "parser.cpp" break; case 93: // expr_or_empty: expr #line 516 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2521 "parser.cpp" +#line 2536 "parser.cpp" break; case 94: // expr_or_empty: %empty #line 517 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2527 "parser.cpp" +#line 2542 "parser.cpp" break; case 95: // expr_assign: expr_object "=" expr #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 2533 "parser.cpp" +#line 2548 "parser.cpp" break; case 96: // expr_assign: expr_object "|=" expr #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 2539 "parser.cpp" +#line 2554 "parser.cpp" break; case 97: // expr_assign: expr_object "&=" expr #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 2545 "parser.cpp" +#line 2560 "parser.cpp" break; case 98: // expr_assign: expr_object "^=" expr #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 2551 "parser.cpp" +#line 2566 "parser.cpp" break; case 99: // expr_assign: expr_object "<<=" expr #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 2557 "parser.cpp" +#line 2572 "parser.cpp" break; case 100: // expr_assign: expr_object ">>=" expr #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 2563 "parser.cpp" +#line 2578 "parser.cpp" break; case 101: // expr_assign: expr_object "+=" expr #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 2569 "parser.cpp" +#line 2584 "parser.cpp" break; case 102: // expr_assign: expr_object "-=" expr #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 2575 "parser.cpp" +#line 2590 "parser.cpp" break; case 103: // expr_assign: expr_object "*=" expr #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 2581 "parser.cpp" +#line 2596 "parser.cpp" break; case 104: // expr_assign: expr_object "/=" expr #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 2587 "parser.cpp" +#line 2602 "parser.cpp" break; case 105: // expr_assign: expr_object "%=" expr #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 2593 "parser.cpp" +#line 2608 "parser.cpp" break; case 106: // expr_increment: "++" expr_object #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 2599 "parser.cpp" +#line 2614 "parser.cpp" break; case 107: // expr_increment: expr_object "++" #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 2605 "parser.cpp" +#line 2620 "parser.cpp" break; case 108: // expr_decrement: "--" expr_object #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 2611 "parser.cpp" +#line 2626 "parser.cpp" break; case 109: // expr_decrement: expr_object "--" #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 2617 "parser.cpp" +#line 2632 "parser.cpp" break; case 110: // expr_ternary: expr "?" expr ":" expr #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 2623 "parser.cpp" +#line 2638 "parser.cpp" break; case 111: // expr_binary: expr "||" expr #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 2629 "parser.cpp" +#line 2644 "parser.cpp" break; case 112: // expr_binary: expr "&&" expr #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 2635 "parser.cpp" +#line 2650 "parser.cpp" break; case 113: // expr_binary: expr "==" expr #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 2641 "parser.cpp" +#line 2656 "parser.cpp" break; case 114: // expr_binary: expr "!=" expr #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 2647 "parser.cpp" +#line 2662 "parser.cpp" break; case 115: // expr_binary: expr "<=" expr #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 2653 "parser.cpp" +#line 2668 "parser.cpp" break; case 116: // expr_binary: expr ">=" expr #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 2659 "parser.cpp" +#line 2674 "parser.cpp" break; case 117: // expr_binary: expr "<" expr #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 2665 "parser.cpp" +#line 2680 "parser.cpp" break; case 118: // expr_binary: expr ">" expr #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 2671 "parser.cpp" +#line 2686 "parser.cpp" break; case 119: // expr_binary: expr "|" expr #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 2677 "parser.cpp" +#line 2692 "parser.cpp" break; case 120: // expr_binary: expr "&" expr #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 2683 "parser.cpp" +#line 2698 "parser.cpp" break; case 121: // expr_binary: expr "^" expr #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 2689 "parser.cpp" +#line 2704 "parser.cpp" break; case 122: // expr_binary: expr "<<" expr #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 2695 "parser.cpp" +#line 2710 "parser.cpp" break; case 123: // expr_binary: expr ">>" expr #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 2701 "parser.cpp" +#line 2716 "parser.cpp" break; case 124: // expr_binary: expr "+" expr #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 2707 "parser.cpp" +#line 2722 "parser.cpp" break; case 125: // expr_binary: expr "-" expr #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 2713 "parser.cpp" +#line 2728 "parser.cpp" break; case 126: // expr_binary: expr "*" expr #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 2719 "parser.cpp" +#line 2734 "parser.cpp" break; case 127: // expr_binary: expr "/" expr #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 2725 "parser.cpp" +#line 2740 "parser.cpp" break; case 128: // expr_binary: expr "%" expr #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 2731 "parser.cpp" +#line 2746 "parser.cpp" break; case 129: // expr_primitive: expr_complement #line 604 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2737 "parser.cpp" +#line 2752 "parser.cpp" break; - case 130: // expr_primitive: expr_not + case 130: // expr_primitive: expr_negate #line 605 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2743 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_negate::ptr > ()); } +#line 2758 "parser.cpp" break; - case 131: // expr_primitive: expr_call + case 131: // expr_primitive: expr_not #line 606 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2749 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } +#line 2764 "parser.cpp" break; - case 132: // expr_primitive: expr_method + case 132: // expr_primitive: expr_call #line 607 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2755 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 2770 "parser.cpp" break; - case 133: // expr_primitive: expr_add_array + case 133: // expr_primitive: expr_method #line 608 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2761 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 2776 "parser.cpp" break; - case 134: // expr_primitive: expr_reference + case 134: // expr_primitive: expr_add_array #line 609 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2767 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } +#line 2782 "parser.cpp" break; - case 135: // expr_primitive: expr_array + case 135: // expr_primitive: expr_reference #line 610 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2773 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } +#line 2788 "parser.cpp" break; - case 136: // expr_primitive: expr_field + case 136: // expr_primitive: expr_array #line 611 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2779 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 2794 "parser.cpp" break; - case 137: // expr_primitive: expr_size + case 137: // expr_primitive: expr_field #line 612 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2785 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 2800 "parser.cpp" break; - case 138: // expr_primitive: expr_paren + case 138: // expr_primitive: expr_size #line 613 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2791 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } +#line 2806 "parser.cpp" break; - case 139: // expr_primitive: expr_thisthread + case 139: // expr_primitive: expr_paren #line 614 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2797 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } +#line 2812 "parser.cpp" break; - case 140: // expr_primitive: expr_empty_array + case 140: // expr_primitive: expr_thisthread #line 615 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2803 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } +#line 2818 "parser.cpp" break; - case 141: // expr_primitive: expr_undefined + case 141: // expr_primitive: expr_empty_array #line 616 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2809 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } +#line 2824 "parser.cpp" break; - case 142: // expr_primitive: expr_game + case 142: // expr_primitive: expr_undefined #line 617 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2815 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } +#line 2830 "parser.cpp" break; - case 143: // expr_primitive: expr_self + case 143: // expr_primitive: expr_game #line 618 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2821 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 2836 "parser.cpp" break; - case 144: // expr_primitive: expr_anim + case 144: // expr_primitive: expr_self #line 619 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2827 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 2842 "parser.cpp" break; - case 145: // expr_primitive: expr_level + case 145: // expr_primitive: expr_anim #line 620 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2833 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 2848 "parser.cpp" break; - case 146: // expr_primitive: expr_animation + case 146: // expr_primitive: expr_level #line 621 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2839 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 2854 "parser.cpp" break; - case 147: // expr_primitive: expr_animtree + case 147: // expr_primitive: expr_animation #line 622 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2845 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } +#line 2860 "parser.cpp" break; - case 148: // expr_primitive: expr_identifier_neg + case 148: // expr_primitive: expr_animtree #line 623 "parser.ypp" - { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2851 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2866 "parser.cpp" break; 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_identifier::ptr > ()); } -#line 2857 "parser.cpp" +#line 2872 "parser.cpp" break; 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_istring::ptr > ()); } -#line 2863 "parser.cpp" +#line 2878 "parser.cpp" break; 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_string::ptr > ()); } -#line 2869 "parser.cpp" +#line 2884 "parser.cpp" break; 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_vector::ptr > ()); } -#line 2875 "parser.cpp" +#line 2890 "parser.cpp" break; 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_float::ptr > ()); } -#line 2881 "parser.cpp" +#line 2896 "parser.cpp" break; 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" +#line 2902 "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" +#line 2908 "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 2899 "parser.cpp" +#line 2914 "parser.cpp" break; 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 2905 "parser.cpp" +#line 2920 "parser.cpp" break; - case 158: // expr_not: "!" expr + case 158: // expr_negate: "-" expr_identifier #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 2911 "parser.cpp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()))); } +#line 2926 "parser.cpp" break; - case 159: // expr_call: expr_function + case 159: // expr_negate: "-" expr_paren +#line 643 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()))); } +#line 2932 "parser.cpp" + break; + + case 160: // expr_negate: "-" expr_array #line 645 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_array::ptr > ()))); } +#line 2938 "parser.cpp" + break; + + case 161: // expr_negate: "-" expr_field +#line 647 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_field::ptr > ()))); } +#line 2944 "parser.cpp" + break; + + case 162: // expr_not: "!" expr +#line 652 "parser.ypp" + { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } +#line 2950 "parser.cpp" + break; + + case 163: // expr_call: expr_function +#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 2917 "parser.cpp" +#line 2956 "parser.cpp" break; - 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 2923 "parser.cpp" - break; - - 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 2929 "parser.cpp" - break; - - 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 2935 "parser.cpp" - break; - - 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::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: expr_path "::" expr_identifier "(" expr_arguments ")" + case 164: // expr_call: expr_pointer #line 657 "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 2947 "parser.cpp" + { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } +#line 2962 "parser.cpp" break; - 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::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" + case 165: // expr_method: expr_object expr_function +#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 2968 "parser.cpp" break; - case 166: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 166: // expr_method: expr_object expr_pointer #line 661 "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 2959 "parser.cpp" + { 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 2974 "parser.cpp" break; - 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" + case 167: // expr_function: expr_identifier "(" expr_arguments ")" +#line 666 "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 2980 "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 2971 "parser.cpp" + case 168: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" +#line 668 "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 2986 "parser.cpp" break; - case 169: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" + case 169: // expr_function: "thread" expr_identifier "(" 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::normal); } -#line 2977 "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 2992 "parser.cpp" break; - case 170: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 170: // expr_function: "thread" expr_path "::" expr_identifier "(" 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::thread); } -#line 2983 "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 2998 "parser.cpp" break; - case 171: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 171: // expr_function: "childthread" expr_identifier "(" 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" + { 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 3004 "parser.cpp" break; - case 172: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 172: // expr_function: "childthread" expr_path "::" expr_identifier "(" 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 2995 "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::childthread); } +#line 3010 "parser.cpp" break; - case 173: // expr_add_array: "[" expr_arguments_no_empty "]" + case 173: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 681 "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 3016 "parser.cpp" + break; + + case 174: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 683 "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 3022 "parser.cpp" + break; + + case 175: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 685 "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 3028 "parser.cpp" + break; + + case 176: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 687 "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 3034 "parser.cpp" + break; + + case 177: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 692 "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 3001 "parser.cpp" +#line 3040 "parser.cpp" break; - case 174: // expr_parameters: expr_parameters "," expr_identifier -#line 686 "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 3007 "parser.cpp" - break; - - 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 3019 "parser.cpp" - break; - - 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 + case 178: // expr_parameters: expr_parameters "," expr_identifier #line 697 "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 3046 "parser.cpp" + break; + + case 179: // expr_parameters: expr_identifier +#line 699 "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 3052 "parser.cpp" + break; + + case 180: // expr_parameters: %empty +#line 701 "parser.ypp" + { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } +#line 3058 "parser.cpp" + break; + + case 181: // expr_arguments: expr_arguments_no_empty +#line 706 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3064 "parser.cpp" + break; + + case 182: // expr_arguments: %empty +#line 708 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3031 "parser.cpp" +#line 3070 "parser.cpp" break; - case 179: // expr_arguments_no_empty: expr_arguments "," expr -#line 702 "parser.ypp" + case 183: // expr_arguments_no_empty: expr_arguments "," expr +#line 713 "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" +#line 3076 "parser.cpp" break; - case 180: // expr_arguments_no_empty: expr -#line 704 "parser.ypp" + case 184: // expr_arguments_no_empty: expr +#line 715 "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 3043 "parser.cpp" +#line 3082 "parser.cpp" break; - case 181: // expr_reference: "::" expr_identifier -#line 709 "parser.ypp" + case 185: // expr_reference: "::" expr_identifier +#line 720 "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" +#line 3088 "parser.cpp" break; - case 182: // expr_reference: expr_path "::" expr_identifier -#line 711 "parser.ypp" + case 186: // expr_reference: expr_path "::" expr_identifier +#line 722 "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 3055 "parser.cpp" +#line 3094 "parser.cpp" break; - case 183: // expr_array: expr_object "[" expr "]" -#line 716 "parser.ypp" + case 187: // expr_array: expr_object "[" expr "]" +#line 727 "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 3061 "parser.cpp" +#line 3100 "parser.cpp" break; - case 184: // expr_field: expr_object "." expr_identifier_nosize -#line 721 "parser.ypp" + case 188: // expr_field: expr_object "." expr_identifier_nosize +#line 732 "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 3067 "parser.cpp" +#line 3106 "parser.cpp" break; - 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 3073 "parser.cpp" - break; - - 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 3079 "parser.cpp" - break; - - 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_call::ptr > ()); } -#line 3085 "parser.cpp" - break; - - 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_method::ptr > ()); } -#line 3091 "parser.cpp" - break; - - case 189: // expr_object: expr_array + case 189: // expr_size: expr_object "." "size" #line 737 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3097 "parser.cpp" + { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } +#line 3112 "parser.cpp" break; - 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_field::ptr > ()); } -#line 3103 "parser.cpp" - break; - - 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_game::ptr > ()); } -#line 3109 "parser.cpp" - break; - - 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_self::ptr > ()); } -#line 3115 "parser.cpp" - break; - - 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 + case 190: // expr_paren: "(" expr ")" #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" + { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3118 "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 3133 "parser.cpp" + case 191: // expr_object: expr_call +#line 746 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3124 "parser.cpp" break; - case 196: // expr_thisthread: "thisthread" + case 192: // expr_object: expr_method +#line 747 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3130 "parser.cpp" + break; + + case 193: // expr_object: expr_array #line 748 "parser.ypp" - { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3139 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3136 "parser.cpp" break; - case 197: // expr_empty_array: "[" "]" + case 194: // expr_object: expr_field +#line 749 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3142 "parser.cpp" + break; + + case 195: // expr_object: expr_game +#line 750 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3148 "parser.cpp" + break; + + case 196: // expr_object: expr_self +#line 751 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3154 "parser.cpp" + break; + + case 197: // expr_object: expr_anim +#line 752 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3160 "parser.cpp" + break; + + case 198: // expr_object: expr_level #line 753 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3166 "parser.cpp" + break; + + case 199: // expr_object: expr_identifier +#line 754 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 3172 "parser.cpp" + break; + + case 200: // expr_thisthread: "thisthread" +#line 759 "parser.ypp" + { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } +#line 3178 "parser.cpp" + break; + + case 201: // expr_empty_array: "[" "]" +#line 764 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3145 "parser.cpp" +#line 3184 "parser.cpp" break; - case 198: // expr_undefined: "undefined" -#line 758 "parser.ypp" + case 202: // expr_undefined: "undefined" +#line 769 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3151 "parser.cpp" +#line 3190 "parser.cpp" break; - case 199: // expr_game: "game" -#line 763 "parser.ypp" + case 203: // expr_game: "game" +#line 774 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3157 "parser.cpp" +#line 3196 "parser.cpp" break; - case 200: // expr_self: "self" -#line 768 "parser.ypp" + case 204: // expr_self: "self" +#line 779 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3163 "parser.cpp" +#line 3202 "parser.cpp" break; - case 201: // expr_anim: "anim" -#line 773 "parser.ypp" + case 205: // expr_anim: "anim" +#line 784 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3169 "parser.cpp" +#line 3208 "parser.cpp" break; - case 202: // expr_level: "level" -#line 778 "parser.ypp" + case 206: // expr_level: "level" +#line 789 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3175 "parser.cpp" +#line 3214 "parser.cpp" break; - case 203: // expr_animation: "%" "identifier" -#line 783 "parser.ypp" + case 207: // expr_animation: "%" "identifier" +#line 794 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3181 "parser.cpp" +#line 3220 "parser.cpp" break; - case 204: // expr_animtree: "#animtree" -#line 788 "parser.ypp" + case 208: // expr_animtree: "#animtree" +#line 799 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3187 "parser.cpp" +#line 3226 "parser.cpp" break; - 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 206: // expr_identifier_nosize: "identifier" -#line 798 "parser.ypp" + case 209: // expr_identifier_nosize: "identifier" +#line 804 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3199 "parser.cpp" +#line 3232 "parser.cpp" break; - case 207: // expr_identifier: "identifier" -#line 803 "parser.ypp" + case 210: // expr_identifier: "identifier" +#line 809 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3205 "parser.cpp" +#line 3238 "parser.cpp" break; - case 208: // expr_identifier: "size" -#line 805 "parser.ypp" + case 211: // expr_identifier: "size" +#line 811 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3211 "parser.cpp" +#line 3244 "parser.cpp" break; - case 209: // expr_path: "identifier" -#line 810 "parser.ypp" + case 212: // expr_path: "identifier" +#line 816 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3217 "parser.cpp" +#line 3250 "parser.cpp" break; - case 210: // expr_path: "path" -#line 812 "parser.ypp" + case 213: // expr_path: "path" +#line 818 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3223 "parser.cpp" +#line 3256 "parser.cpp" break; - case 211: // expr_istring: "localized string" -#line 817 "parser.ypp" + case 214: // expr_istring: "localized string" +#line 823 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3229 "parser.cpp" +#line 3262 "parser.cpp" break; - case 212: // expr_string: "string literal" -#line 822 "parser.ypp" + case 215: // expr_string: "string literal" +#line 828 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3235 "parser.cpp" +#line 3268 "parser.cpp" break; - case 213: // expr_vector: "(" expr "," expr "," expr ")" -#line 827 "parser.ypp" + case 216: // expr_vector: "(" expr "," expr "," expr ")" +#line 833 "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 3241 "parser.cpp" +#line 3274 "parser.cpp" break; - case 214: // expr_float: "-" "float" -#line 832 "parser.ypp" + case 217: // expr_float: "-" "float" +#line 838 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3247 "parser.cpp" +#line 3280 "parser.cpp" break; - case 215: // expr_float: "float" -#line 834 "parser.ypp" + case 218: // expr_float: "float" +#line 840 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3253 "parser.cpp" +#line 3286 "parser.cpp" break; - case 216: // expr_integer: "-" "integer" -#line 839 "parser.ypp" + case 219: // expr_integer: "-" "integer" +#line 845 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3259 "parser.cpp" +#line 3292 "parser.cpp" break; - case 217: // expr_integer: "integer" -#line 841 "parser.ypp" + case 220: // expr_integer: "integer" +#line 847 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3265 "parser.cpp" +#line 3298 "parser.cpp" break; - case 218: // expr_false: "false" -#line 846 "parser.ypp" + case 221: // expr_false: "false" +#line 852 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3271 "parser.cpp" +#line 3304 "parser.cpp" break; - case 219: // expr_true: "true" -#line 851 "parser.ypp" + case 222: // expr_true: "true" +#line 857 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3277 "parser.cpp" +#line 3310 "parser.cpp" break; -#line 3281 "parser.cpp" +#line 3314 "parser.cpp" default: break; @@ -3485,15 +3518,15 @@ namespace xsk { namespace gsc { namespace iw7 { "stmt_return", "stmt_breakpoint", "stmt_prof_begin", "stmt_prof_end", "expr", "expr_or_empty", "expr_assign", "expr_increment", "expr_decrement", "expr_ternary", "expr_binary", "expr_primitive", - "expr_complement", "expr_not", "expr_call", "expr_method", + "expr_complement", "expr_negate", "expr_not", "expr_call", "expr_method", "expr_function", "expr_pointer", "expr_add_array", "expr_parameters", "expr_arguments", "expr_arguments_no_empty", "expr_reference", "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_neg", "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_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]; } @@ -3762,592 +3795,620 @@ namespace xsk { namespace gsc { namespace iw7 { } - const short parser::yypact_ninf_ = -266; + const short parser::yypact_ninf_ = -280; - const short parser::yytable_ninf_ = -210; + const short parser::yytable_ninf_ = -213; const short parser::yypact_[] = { - 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, 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 + 26, -280, -280, -44, -44, -8, -280, -280, 19, 26, + -280, -280, -280, -280, -280, -280, -30, -280, -280, -11, + 2, -75, -280, -280, -280, -280, -38, 1168, -280, -280, + -280, -6, -41, -280, -280, -31, -28, -280, 12, -280, + -280, -280, -280, -280, -280, -280, 1168, 1042, -38, 1168, + 1168, 51, -24, 23, -280, -280, -280, 2072, -280, -280, + -280, -280, -280, -280, 324, 440, -280, -280, -280, -280, + 515, 550, -280, -280, 651, -280, -280, -280, 661, 862, + 867, 1065, -280, -280, 71, 33, -280, -280, -280, -280, + -280, -280, -280, 35, 31, -38, 48, 57, 59, 61, + 73, 66, 76, 1364, 1042, -280, 2155, 77, 87, -280, + -280, -280, 1168, 82, -280, -280, -280, -280, 515, 550, + -280, 1073, -280, -280, -280, -280, 71, 91, -280, -280, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1231, + -36, -280, -280, 105, 1168, -38, -280, 831, -280, -280, + 1168, 1168, -38, 1168, 1168, -38, 1168, -280, 1168, 1164, + 1168, -280, 1530, 1168, 49, -38, 2037, 95, 95, 2186, + 2196, 187, 187, -37, -37, -37, -37, 2227, 2268, 2237, + -62, -62, -280, -280, -280, 1842, -280, -280, -280, -32, + -280, 109, 960, 1168, 100, 112, 1354, 113, 119, 120, + 121, -21, 114, 117, 122, 1105, 123, 129, 130, -280, + 39, 39, -280, -280, 907, -280, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + 133, 135, 136, 137, 138, -280, -280, 1278, 105, 1882, + 18, 150, 1922, 52, 153, 1962, 2001, 151, 2155, 1164, + 109, 1168, -280, -280, 1168, -280, -280, 1013, 2107, -280, + 1168, 182, 1168, 618, -38, 1168, 108, 152, 154, -280, + -280, -280, -280, 2142, -280, 1168, 1168, 1073, 1073, -280, + -280, -280, -280, -280, -280, -280, 159, 162, 166, 167, + -280, -280, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 163, -280, 1168, 172, -280, 1168, 176, + 1168, 171, 2155, 55, -280, -280, -280, 1564, 183, 1598, + 175, -280, -280, -280, 696, -15, 1632, -280, -280, -280, + 62, 63, 1168, 1168, 1168, 1168, 2155, 2155, 2155, 2155, + 2155, 2155, 2155, 2155, 2155, 2155, 2155, 186, 75, 191, + 81, 192, 1666, 1168, -280, 1354, 1168, 1354, 1168, 1168, + -38, 31, 190, 194, 1700, 1408, 1452, 1496, 1168, -280, + 1168, -280, 1168, -280, 88, 199, 1734, -280, 2155, 195, + 1768, 221, -280, -280, -280, 202, 203, 1168, 204, 1168, + 208, 1168, 92, 101, 102, -280, 1354, 209, 618, 1354, + 1168, -280, -280, 219, -280, 222, -280, 223, -280, -280, + -280, -280, -280, 224, -280, 1802, 212, 229, 230, 1354, + 1354, -280, -280, -280, -280, -280 }; const unsigned char parser::yydefact_[] = { - 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, + 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, 180, 0, 10, 11, + 215, 0, 0, 179, 208, 0, 0, 200, 0, 222, + 221, 202, 203, 204, 205, 206, 0, 182, 0, 0, + 0, 0, 0, 210, 214, 218, 220, 0, 90, 91, + 92, 129, 130, 131, 132, 133, 163, 164, 134, 135, + 136, 137, 138, 139, 0, 140, 141, 142, 143, 144, 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, 182, 201, 184, 0, 181, 185, + 162, 157, 0, 0, 217, 219, 191, 192, 160, 161, + 159, 0, 195, 196, 197, 198, 158, 0, 207, 18, 0, 0, 0, 0, 0, 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, 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 + 0, 165, 166, 0, 182, 0, 17, 0, 19, 178, + 0, 182, 0, 0, 182, 0, 0, 190, 0, 184, + 0, 177, 0, 0, 0, 0, 0, 122, 123, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 124, 125, 126, 127, 128, 0, 189, 209, 188, 0, + 181, 186, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 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, 191, 192, 193, 194, 0, 199, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, + 0, 0, 187, 167, 182, 51, 47, 0, 0, 71, + 0, 0, 0, 57, 0, 0, 0, 0, 0, 82, + 83, 84, 86, 0, 87, 182, 182, 106, 108, 52, + 48, 60, 61, 62, 58, 59, 0, 0, 0, 0, + 107, 109, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 169, 182, 0, 171, 182, 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, 95, 101, 102, 103, + 104, 105, 96, 97, 98, 100, 99, 0, 0, 0, + 0, 0, 0, 182, 168, 0, 0, 0, 94, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 182, 170, + 182, 172, 182, 216, 0, 72, 0, 74, 93, 0, + 0, 0, 79, 88, 89, 0, 0, 182, 0, 182, + 0, 182, 0, 0, 0, 173, 0, 0, 57, 0, + 0, 63, 65, 181, 68, 181, 70, 181, 174, 175, + 176, 73, 75, 0, 77, 0, 0, 0, 0, 0, + 0, 64, 67, 69, 76, 78 }; const short parser::yypgoto_[] = { - -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, 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 + -280, -280, -280, 276, 285, 286, -280, -280, -280, -172, + 72, -280, -280, -280, -93, -119, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, 189, + -280, -279, -277, -276, -280, -280, -280, -280, -280, -280, + -29, 25, -72, -57, -280, -280, 15, -42, -280, 211, + 294, -280, 249, 310, -280, -280, -280, 327, 378, 395, + 412, -280, -280, -280, 0, 9, -280, -18, -280, -280, + 93, -280, -280 }; const short parser::yydefgoto_[] = { - 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, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 222, + 223, 277, 224, 225, 226, 340, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 106, + 399, 250, 251, 252, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 32, 107, 200, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 182, 84, 85, 86, 87, 88, 89, + 81, 82, 83, 198, 84, 85, 86, 87, 88, 89, 90, 91, 92 }; const short parser::yytable_[] = { - 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, 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, 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, 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, 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, + 16, 158, 151, 31, 341, 108, 342, 343, 6, 16, + 196, 94, 19, 20, 379, 6, 95, 152, 6, 22, + 273, 26, 116, 30, 96, 170, 33, 99, 131, 132, + 276, 146, 147, 148, 281, 97, 100, 1, 2, 3, + 4, 5, 380, 21, 98, 101, 93, 27, 109, 151, + 28, 126, 17, 18, 144, 145, 146, 147, 148, 7, + 127, 197, 108, 29, 152, 17, 53, 102, 17, 53, + 324, 286, 6, 128, 153, 170, 117, 30, 35, 36, + 56, 38, -212, 127, 157, 6, 42, 43, 44, 45, + 35, 36, 155, 38, 113, 159, 156, 6, 42, 43, + 44, 45, 112, 160, 327, 335, 113, 374, 161, 170, + -199, -199, 170, -199, 382, 383, 163, -199, 162, 170, + 170, 153, 154, 7, 164, 165, -199, 389, 253, -199, + 127, 166, 170, 391, 170, 17, 53, 173, 170, 341, + 415, 342, 343, 171, 428, 170, 197, 17, 53, 170, + 175, 114, 115, 429, 430, 201, 154, 258, 170, 170, + 274, 279, 261, 280, 282, 264, 127, -199, -199, 199, + 283, 284, 285, 253, 289, 270, 260, 253, 290, 263, + 295, 296, 254, 291, 294, 151, 144, 145, 146, 147, + 148, 116, 116, 287, 301, 253, 302, 303, 304, 305, + 152, 325, 258, 395, 328, 397, 258, 331, 338, 115, + 352, 127, 347, 353, 348, 127, 57, 354, 355, 367, + 258, 258, 373, 416, 258, 151, 151, 254, 369, 127, + 127, 254, 371, 127, 376, 103, 378, 388, 110, 111, + 152, 152, 390, 392, 431, 117, 117, 434, 253, 254, + 420, 403, 131, 132, 116, 404, 418, 153, 137, 138, + 139, 140, 118, 421, 422, 424, 127, 444, 445, 426, + 432, 436, 151, 441, 437, 438, 439, 258, 144, 145, + 146, 147, 148, 258, 345, 23, 127, 152, 402, 333, + 442, 443, 127, 169, 24, 25, 300, 153, 153, 433, + 120, 172, 254, 0, 288, 0, 127, 127, 117, 0, + 350, 351, 0, 0, 0, 0, 0, 0, 0, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, + 368, 0, 0, 370, 153, 119, 253, 0, 253, 259, + 0, 0, 262, 127, 0, 265, 0, 266, 0, 268, + 0, 121, 269, -191, -191, 423, -191, 425, 255, 427, + -191, 0, 0, 0, 0, 258, 0, 258, 122, -191, + 401, 0, -191, 0, 127, 0, 127, 253, 394, 116, + 253, 0, 278, 0, 0, 0, 0, 0, 0, 0, + 254, 0, 254, 412, 293, 413, 0, 414, 0, 0, + 253, 253, 0, 255, 0, 0, 258, 255, 258, 258, + -191, -191, 0, 0, 0, 127, 0, 127, 127, 123, + 0, 255, 255, 0, 0, 255, 0, 0, 0, 258, + 258, 254, 0, 117, 254, 0, 124, 0, 127, 127, + 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, + 332, 0, 0, 125, 254, 254, 0, 257, 0, 337, + 0, 339, 0, 0, 346, 0, 0, 0, 0, -192, + -192, 0, -192, 0, 122, 0, -192, 0, 255, 0, + 0, 0, 0, 0, 255, -192, 256, 0, -192, 0, + 256, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 257, 0, 256, 256, 257, 0, 256, 372, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, + 297, 298, 0, 122, 257, 123, -192, -192, 0, 0, + 0, 384, 385, 386, 387, 0, 0, 122, 122, 0, + 0, 122, 124, 0, -193, -193, 0, -193, 0, 0, + 0, -193, 0, 0, 0, 396, 0, 398, 400, 125, + -193, 256, 0, -193, 0, 0, 0, 256, 0, 0, + 123, 0, 0, 0, 123, 0, 255, 257, 255, -194, + -194, 0, -194, 344, 0, 0, -194, 124, 123, 123, + 0, 124, 123, 0, 122, -194, 0, 0, -194, 435, + 122, -193, -193, 0, 125, 124, 124, 0, 125, 124, + 0, 0, 0, 0, 0, 0, 0, 255, 0, 255, + 255, 0, 125, 125, 0, 0, 125, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -194, -194, 0, 0, + 255, 255, 0, 0, 0, 123, 0, 35, 36, 0, + 38, 123, 0, 0, 6, 42, 43, 44, 45, 256, + 0, 256, 124, 113, 0, 0, 0, 0, 124, 0, + 0, 220, 221, 0, 0, 257, 0, 257, 0, 125, + 35, 36, 0, 38, 0, 125, 0, 6, 0, 0, + -195, -195, 122, -195, 122, 0, 149, -195, 0, 150, + 256, 0, 256, 256, 17, 53, -195, 0, 0, -195, + 0, 0, 0, 0, 0, 0, 257, 0, 344, 257, + 0, 0, 0, 256, 256, 35, 36, 0, 38, 0, + 0, 0, 6, 122, 0, 122, 122, 17, 53, 257, + 257, 149, 0, 123, 174, 123, 0, -195, -195, 310, + 311, 0, 0, 0, 0, 0, 122, 122, 0, 0, + 124, 0, 124, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 0, 0, 0, 125, 0, 125, + 0, 0, 17, 53, 123, 0, 123, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 124, 0, 124, 124, 0, 0, 123, 123, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, + 125, 125, 0, 0, 124, 124, 0, 0, 0, 0, + 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, + 203, 125, 125, 204, 205, 0, 206, 207, 208, 209, + 0, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 35, 36, 0, 38, 0, 0, 0, 6, 42, 43, + 44, 45, 0, 0, 157, 219, 113, 0, 0, 0, + 0, 0, 0, 0, 220, 221, 0, 0, 0, 0, + 0, -196, -196, 0, -196, 0, -197, -197, -196, -197, + 0, 0, 0, -197, 0, 0, 0, -196, 202, 0, + -196, 0, -197, 0, 0, -197, 203, 17, 53, 204, + 205, 0, 206, 207, 208, 209, 0, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 35, 36, 0, 38, + 0, 0, 0, 6, 42, 43, 44, 45, -196, -196, + 157, 299, 113, -197, -197, 0, 0, 0, 0, 0, + 220, 221, 275, 0, 0, 0, 0, 0, 0, 203, + 0, 0, 204, 205, 0, 206, 207, 208, 209, 0, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 35, + 36, 0, 38, 17, 53, 0, 6, 42, 43, 44, + 45, 0, 0, 157, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 220, 221, 334, 0, 0, 0, 0, + 0, 0, 203, 0, 0, 204, 205, 0, 206, 207, + 208, 209, 0, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 35, 36, 0, 38, 17, 53, 34, 6, + 42, 43, 44, 45, 0, 0, 157, 0, 113, 0, + 0, 0, 0, 0, 0, 0, 220, 221, 0, 0, + 0, 35, 36, 37, 38, 39, 40, 41, 6, 42, + 43, 44, 45, 46, 0, 0, 0, 104, 105, 0, + 0, 48, 0, 0, -198, -198, 0, -198, 0, 17, + 53, -198, 35, 36, 0, 38, 0, 49, 50, 6, + -198, 34, 0, -198, 0, 0, 0, 0, 149, 0, + 0, 174, 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, -198, -198, 0, 48, 0, 292, 0, 0, 17, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 50, 0, 0, 34, 0, 0, 0, 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, + 267, 0, 0, 47, 0, 0, 130, 48, 0, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 0, + 0, 0, 0, 49, 50, 0, 0, 34, 0, 0, + 0, 0, 141, 142, 143, 144, 145, 146, 147, 148, + 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, 104, 0, 0, 0, + 48, 0, 0, 0, 0, 306, 307, 0, 308, 309, + 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, 149, 0, 0, 174, 0, 0, 0, + 0, 310, 311, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 0, 0, 0, 0, + 0, 0, 0, 203, 17, 53, 204, 205, 0, 206, + 207, 208, 209, 0, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 35, 36, 0, 38, 0, 0, 0, + 6, 42, 43, 44, 45, 0, 0, 157, 0, 113, + 0, 0, 0, 0, 0, 0, 167, 220, 221, 0, + 0, 168, 0, 0, 0, 0, 130, 0, 0, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 17, 53, 141, 142, 143, 144, 145, 146, 147, 148, + 406, 0, 0, 0, 0, 407, 0, 0, 0, 0, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, + 145, 146, 147, 148, 408, 0, 0, 0, 0, 409, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, 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, 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, + 141, 142, 143, 144, 145, 146, 147, 148, 410, 0, + 0, 0, 0, 411, 0, 0, 0, 0, 130, 0, + 0, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 167, 0, 141, 142, 143, 144, 145, 146, + 147, 148, 130, 0, 0, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 375, 0, 141, 142, + 143, 144, 145, 146, 147, 148, 130, 0, 0, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 377, 0, 141, 142, 143, 144, 145, 146, 147, 148, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 381, 0, 141, 142, 143, 144, + 145, 146, 147, 148, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 130, 0, + 0, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 405, 0, 141, 142, 143, 144, 145, 146, + 147, 148, 130, 0, 0, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 417, 0, 141, 142, + 143, 144, 145, 146, 147, 148, 130, 0, 0, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 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, 329, 117, 0, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, + 419, 0, 141, 142, 143, 144, 145, 146, 147, 148, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 440, 0, 141, 142, 143, 144, + 145, 146, 147, 148, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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 + 141, 142, 143, 144, 145, 146, 147, 148, 272, 0, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 323, 0, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 326, 0, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 329, 0, + 0, 0, 0, 0, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 330, 0, + 0, 0, 0, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 271, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 129, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 336, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 349, 130, 0, 0, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 130, 0, 0, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, + 0, 0, 0, 141, 142, 143, 144, 145, 146, 147, + 148, 131, 132, 0, 134, 135, 136, 137, 138, 139, + 140, 131, 132, 0, 0, 135, 136, 137, 138, 139, + 140, 0, 0, 0, 141, 142, 143, 144, 145, 146, + 147, 148, 0, 0, 141, 142, 143, 144, 145, 146, + 147, 148, 131, 132, 0, 0, 135, 136, 137, 138, + 139, 140, 131, 132, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 142, 143, 144, 145, + 146, 147, 148, 0, 0, 0, 142, 0, 144, 145, + 146, 147, 148, 131, 132, 0, 0, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, + 145, 146, 147, 148 }; const short parser::yycheck_[] = { - 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, + 0, 94, 74, 21, 283, 47, 283, 283, 46, 9, + 46, 52, 3, 4, 29, 46, 57, 74, 46, 0, + 52, 51, 51, 98, 55, 57, 26, 55, 65, 66, + 202, 93, 94, 95, 206, 35, 36, 11, 12, 13, + 14, 15, 57, 51, 35, 36, 52, 77, 48, 121, + 61, 51, 96, 97, 91, 92, 93, 94, 95, 97, + 51, 97, 104, 61, 121, 96, 97, 55, 96, 97, + 52, 92, 46, 97, 74, 57, 51, 98, 39, 40, + 101, 42, 59, 74, 53, 46, 47, 48, 49, 50, + 39, 40, 59, 42, 55, 95, 61, 46, 47, 48, + 49, 50, 51, 55, 52, 277, 55, 52, 51, 57, + 39, 40, 57, 42, 52, 52, 55, 46, 59, 57, + 57, 121, 51, 97, 51, 59, 55, 52, 157, 58, + 121, 55, 57, 52, 57, 96, 97, 55, 57, 418, + 52, 418, 418, 56, 52, 57, 97, 96, 97, 57, + 59, 100, 101, 52, 52, 155, 51, 157, 57, 57, + 51, 61, 162, 51, 51, 165, 157, 96, 97, 154, + 51, 51, 51, 202, 60, 175, 161, 206, 61, 164, + 51, 51, 157, 61, 61, 257, 91, 92, 93, 94, + 95, 220, 221, 211, 61, 224, 61, 61, 61, 61, + 257, 51, 202, 375, 51, 377, 206, 56, 26, 101, + 51, 202, 60, 51, 60, 206, 27, 51, 51, 56, + 220, 221, 51, 24, 224, 297, 298, 202, 56, 220, + 221, 206, 56, 224, 51, 46, 61, 51, 49, 50, + 297, 298, 51, 51, 416, 220, 221, 419, 277, 224, + 29, 61, 65, 66, 283, 61, 61, 257, 71, 72, + 73, 74, 51, 61, 61, 61, 257, 439, 440, 61, + 61, 52, 344, 61, 52, 52, 52, 277, 91, 92, + 93, 94, 95, 283, 284, 9, 277, 344, 381, 274, + 61, 61, 283, 104, 9, 9, 224, 297, 298, 418, + 51, 112, 277, -1, 211, -1, 297, 298, 283, -1, + 295, 296, -1, -1, -1, -1, -1, -1, -1, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, -1, + 325, -1, -1, 328, 344, 51, 375, -1, 377, 160, + -1, -1, 163, 344, -1, 166, -1, 168, -1, 170, + -1, 51, 173, 39, 40, 407, 42, 409, 157, 411, + 46, -1, -1, -1, -1, 375, -1, 377, 51, 55, + 380, -1, 58, -1, 375, -1, 377, 416, 373, 418, + 419, -1, 203, -1, -1, -1, -1, -1, -1, -1, + 375, -1, 377, 388, 215, 390, -1, 392, -1, -1, + 439, 440, -1, 202, -1, -1, 416, 206, 418, 419, + 96, 97, -1, -1, -1, 416, -1, 418, 419, 51, + -1, 220, 221, -1, -1, 224, -1, -1, -1, 439, + 440, 416, -1, 418, 419, -1, 51, -1, 439, 440, + -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, + 271, -1, -1, 51, 439, 440, -1, 157, -1, 280, + -1, 282, -1, -1, 285, -1, -1, -1, -1, 39, + 40, -1, 42, -1, 157, -1, 46, -1, 277, -1, + -1, -1, -1, -1, 283, 55, 202, -1, 58, -1, + 206, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 202, -1, 220, 221, 206, -1, 224, 330, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 202, + 220, 221, -1, 206, 224, 157, 96, 97, -1, -1, + -1, 352, 353, 354, 355, -1, -1, 220, 221, -1, + -1, 224, 157, -1, 39, 40, -1, 42, -1, -1, + -1, 46, -1, -1, -1, 376, -1, 378, 379, 157, + 55, 277, -1, 58, -1, -1, -1, 283, -1, -1, + 202, -1, -1, -1, 206, -1, 375, 277, 377, 39, + 40, -1, 42, 283, -1, -1, 46, 202, 220, 221, + -1, 206, 224, -1, 277, 55, -1, -1, 58, 420, + 283, 96, 97, -1, 202, 220, 221, -1, 206, 224, + -1, -1, -1, -1, -1, -1, -1, 416, -1, 418, + 419, -1, 220, 221, -1, -1, 224, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 96, 97, -1, -1, + 439, 440, -1, -1, -1, 277, -1, 39, 40, -1, + 42, 283, -1, -1, 46, 47, 48, 49, 50, 375, + -1, 377, 277, 55, -1, -1, -1, -1, 283, -1, + -1, 63, 64, -1, -1, 375, -1, 377, -1, 277, + 39, 40, -1, 42, -1, 283, -1, 46, -1, -1, + 39, 40, 375, 42, 377, -1, 55, 46, -1, 58, + 416, -1, 418, 419, 96, 97, 55, -1, -1, 58, + -1, -1, -1, -1, -1, -1, 416, -1, 418, 419, + -1, -1, -1, 439, 440, 39, 40, -1, 42, -1, + -1, -1, 46, 416, -1, 418, 419, 96, 97, 439, + 440, 55, -1, 375, 58, 377, -1, 96, 97, 63, + 64, -1, -1, -1, -1, -1, 439, 440, -1, -1, + 375, -1, 377, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, -1, -1, -1, 375, -1, 377, + -1, -1, 96, 97, 416, -1, 418, 419, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 416, -1, 418, 419, -1, -1, 439, 440, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 416, -1, + 418, 419, -1, -1, 439, 440, -1, -1, -1, -1, + -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, + 19, 439, 440, 22, 23, -1, 25, 26, 27, 28, -1, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 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, + 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, -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, 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, 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, 44, 45, 46, 47, + 48, 49, 50, 51, -1, -1, -1, 55, 56, -1, + -1, 59, -1, -1, 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, 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, 61, -1, -1, 96, + 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 75, 76, -1, -1, 16, -1, -1, -1, -1, -1, + -1, -1, -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, + 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, -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, 98, + 99, 100, 101, 55, -1, -1, 58, -1, -1, -1, + -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, -1, -1, -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, 96, 97, 16, + 36, 37, 38, 39, 40, -1, 42, -1, -1, -1, 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, 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, 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, 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, -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, - 98, 99, 100, 101, 55, -1, -1, 58, -1, -1, - -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, -1, -1, -1, - -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, -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, + -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, -1, -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, + 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, 60, -1, 62, -1, -1, 65, + 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, - -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, + 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, - 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 + 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, 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, 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, + 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + 92, 93, 94, 95 }; const unsigned char @@ -4356,47 +4417,48 @@ namespace xsk { namespace gsc { namespace iw7 { 0, 11, 12, 13, 14, 15, 46, 97, 113, 114, 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, + 98, 189, 167, 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, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 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, + 186, 187, 55, 151, 55, 56, 151, 168, 169, 186, + 151, 151, 51, 55, 100, 101, 162, 163, 171, 172, + 174, 175, 179, 180, 181, 182, 186, 187, 97, 61, + 62, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 88, 89, 90, 91, 92, 93, 94, 95, 55, + 58, 164, 165, 186, 51, 59, 61, 53, 126, 186, + 55, 51, 59, 55, 51, 59, 55, 52, 57, 151, + 57, 56, 151, 55, 58, 59, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 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 + 151, 151, 151, 151, 151, 151, 46, 97, 185, 168, + 169, 186, 11, 19, 22, 23, 25, 26, 27, 28, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 54, + 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, 162, 163, 171, 172, 175, 186, 151, + 168, 186, 151, 168, 186, 151, 151, 56, 151, 151, + 186, 60, 56, 52, 51, 12, 121, 123, 151, 61, + 51, 121, 51, 51, 51, 51, 92, 189, 192, 60, + 61, 61, 61, 151, 61, 51, 51, 175, 175, 54, + 122, 61, 61, 61, 61, 61, 17, 18, 20, 21, + 63, 64, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 56, 52, 51, 56, 52, 51, 56, + 57, 56, 151, 168, 12, 121, 61, 151, 26, 151, + 127, 153, 154, 155, 175, 186, 151, 60, 60, 61, + 168, 168, 51, 51, 51, 51, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 56, 168, 56, + 168, 56, 151, 51, 52, 52, 51, 52, 61, 29, + 57, 52, 52, 52, 151, 151, 151, 151, 51, 52, + 51, 52, 51, 52, 168, 121, 151, 121, 151, 152, + 151, 186, 126, 61, 61, 52, 52, 57, 52, 57, + 52, 57, 168, 168, 168, 52, 24, 52, 61, 52, + 29, 61, 61, 169, 61, 169, 61, 169, 52, 52, + 52, 121, 61, 127, 121, 151, 52, 52, 52, 52, + 52, 61, 61, 61, 121, 121 }; const unsigned char @@ -4417,13 +4479,14 @@ 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, 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 + 158, 158, 158, 158, 158, 158, 158, 159, 160, 160, + 160, 160, 161, 162, 162, 163, 163, 164, 164, 164, + 164, 164, 164, 165, 165, 165, 165, 166, 167, 167, + 167, 168, 168, 169, 169, 170, 170, 171, 172, 173, + 174, 175, 175, 175, 175, 175, 175, 175, 175, 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 @@ -4444,13 +4507,14 @@ 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, 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 + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 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 }; @@ -4475,13 +4539,14 @@ namespace xsk { namespace gsc { namespace iw7 { 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 + 625, 626, 627, 628, 629, 630, 631, 635, 640, 642, + 644, 646, 651, 656, 657, 660, 661, 665, 667, 669, + 671, 673, 675, 680, 682, 684, 686, 691, 696, 698, + 701, 705, 708, 712, 714, 719, 721, 726, 731, 736, + 741, 746, 747, 748, 749, 750, 751, 752, 753, 754, + 758, 763, 768, 773, 778, 783, 788, 793, 798, 803, + 808, 810, 815, 817, 822, 827, 832, 837, 839, 844, + 846, 851, 856 }; void @@ -4514,9 +4579,9 @@ namespace xsk { namespace gsc { namespace iw7 { #line 13 "parser.ypp" } } } // xsk::gsc::iw7 -#line 4518 "parser.cpp" +#line 4583 "parser.cpp" -#line 854 "parser.ypp" +#line 860 "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 813607d5..b3ef9935 100644 --- a/src/iw7/xsk/parser.hpp +++ b/src/iw7/xsk/parser.hpp @@ -447,7 +447,6 @@ namespace xsk { namespace gsc { namespace iw7 { // expr_binary // expr_primitive // expr_object - // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -506,131 +505,134 @@ namespace xsk { namespace gsc { namespace iw7 { // expr_method char dummy24[sizeof (ast::expr_method::ptr)]; + // expr_negate + char dummy25[sizeof (ast::expr_negate::ptr)]; + // expr_not - char dummy25[sizeof (ast::expr_not::ptr)]; + char dummy26[sizeof (ast::expr_not::ptr)]; // expr_parameters - char dummy26[sizeof (ast::expr_parameters::ptr)]; + char dummy27[sizeof (ast::expr_parameters::ptr)]; // expr_paren - char dummy27[sizeof (ast::expr_paren::ptr)]; + char dummy28[sizeof (ast::expr_paren::ptr)]; // expr_path - char dummy28[sizeof (ast::expr_path::ptr)]; + char dummy29[sizeof (ast::expr_path::ptr)]; // expr_reference - char dummy29[sizeof (ast::expr_reference::ptr)]; + char dummy30[sizeof (ast::expr_reference::ptr)]; // expr_self - char dummy30[sizeof (ast::expr_self::ptr)]; + char dummy31[sizeof (ast::expr_self::ptr)]; // expr_size - char dummy31[sizeof (ast::expr_size::ptr)]; + char dummy32[sizeof (ast::expr_size::ptr)]; // expr_string - char dummy32[sizeof (ast::expr_string::ptr)]; + char dummy33[sizeof (ast::expr_string::ptr)]; // expr_thisthread - char dummy33[sizeof (ast::expr_thisthread::ptr)]; + char dummy34[sizeof (ast::expr_thisthread::ptr)]; // expr_true - char dummy34[sizeof (ast::expr_true::ptr)]; + char dummy35[sizeof (ast::expr_true::ptr)]; // expr_undefined - char dummy35[sizeof (ast::expr_undefined::ptr)]; + char dummy36[sizeof (ast::expr_undefined::ptr)]; // expr_vector - char dummy36[sizeof (ast::expr_vector::ptr)]; + char dummy37[sizeof (ast::expr_vector::ptr)]; // include - char dummy37[sizeof (ast::include::ptr)]; + char dummy38[sizeof (ast::include::ptr)]; // program - char dummy38[sizeof (ast::program::ptr)]; + char dummy39[sizeof (ast::program::ptr)]; // stmt // stmt_or_dev - char dummy39[sizeof (ast::stmt)]; + char dummy40[sizeof (ast::stmt)]; // stmt_assign - char dummy40[sizeof (ast::stmt_assign::ptr)]; + char dummy41[sizeof (ast::stmt_assign::ptr)]; // stmt_break - char dummy41[sizeof (ast::stmt_break::ptr)]; + char dummy42[sizeof (ast::stmt_break::ptr)]; // stmt_breakpoint - char dummy42[sizeof (ast::stmt_breakpoint::ptr)]; + char dummy43[sizeof (ast::stmt_breakpoint::ptr)]; // stmt_call - char dummy43[sizeof (ast::stmt_call::ptr)]; + char dummy44[sizeof (ast::stmt_call::ptr)]; // stmt_case - char dummy44[sizeof (ast::stmt_case::ptr)]; + char dummy45[sizeof (ast::stmt_case::ptr)]; // stmt_continue - char dummy45[sizeof (ast::stmt_continue::ptr)]; + char dummy46[sizeof (ast::stmt_continue::ptr)]; // stmt_default - char dummy46[sizeof (ast::stmt_default::ptr)]; + char dummy47[sizeof (ast::stmt_default::ptr)]; // stmt_dev - char dummy47[sizeof (ast::stmt_dev::ptr)]; + char dummy48[sizeof (ast::stmt_dev::ptr)]; // stmt_dowhile - char dummy48[sizeof (ast::stmt_dowhile::ptr)]; + char dummy49[sizeof (ast::stmt_dowhile::ptr)]; // stmt_endon - char dummy49[sizeof (ast::stmt_endon::ptr)]; + char dummy50[sizeof (ast::stmt_endon::ptr)]; // stmt_expr - char dummy50[sizeof (ast::stmt_expr::ptr)]; + char dummy51[sizeof (ast::stmt_expr::ptr)]; // stmt_for - char dummy51[sizeof (ast::stmt_for::ptr)]; + char dummy52[sizeof (ast::stmt_for::ptr)]; // stmt_foreach - char dummy52[sizeof (ast::stmt_foreach::ptr)]; + char dummy53[sizeof (ast::stmt_foreach::ptr)]; // stmt_if - char dummy53[sizeof (ast::stmt_if::ptr)]; + char dummy54[sizeof (ast::stmt_if::ptr)]; // stmt_ifelse - char dummy54[sizeof (ast::stmt_ifelse::ptr)]; + char dummy55[sizeof (ast::stmt_ifelse::ptr)]; // stmt_list // stmt_or_dev_list // stmt_block - char dummy55[sizeof (ast::stmt_list::ptr)]; + char dummy56[sizeof (ast::stmt_list::ptr)]; // stmt_notify - char dummy56[sizeof (ast::stmt_notify::ptr)]; + char dummy57[sizeof (ast::stmt_notify::ptr)]; // stmt_prof_begin - char dummy57[sizeof (ast::stmt_prof_begin::ptr)]; + char dummy58[sizeof (ast::stmt_prof_begin::ptr)]; // stmt_prof_end - char dummy58[sizeof (ast::stmt_prof_end::ptr)]; + char dummy59[sizeof (ast::stmt_prof_end::ptr)]; // stmt_return - char dummy59[sizeof (ast::stmt_return::ptr)]; + char dummy60[sizeof (ast::stmt_return::ptr)]; // stmt_switch - char dummy60[sizeof (ast::stmt_switch::ptr)]; + char dummy61[sizeof (ast::stmt_switch::ptr)]; // stmt_wait - char dummy61[sizeof (ast::stmt_wait::ptr)]; + char dummy62[sizeof (ast::stmt_wait::ptr)]; // stmt_waittill - char dummy62[sizeof (ast::stmt_waittill::ptr)]; + char dummy63[sizeof (ast::stmt_waittill::ptr)]; // stmt_waittillframeend - char dummy63[sizeof (ast::stmt_waittillframeend::ptr)]; + char dummy64[sizeof (ast::stmt_waittillframeend::ptr)]; // stmt_waittillmatch - char dummy64[sizeof (ast::stmt_waittillmatch::ptr)]; + char dummy65[sizeof (ast::stmt_waittillmatch::ptr)]; // stmt_while - char dummy65[sizeof (ast::stmt_while::ptr)]; + char dummy66[sizeof (ast::stmt_while::ptr)]; // "path" // "identifier" @@ -638,7 +640,7 @@ namespace xsk { namespace gsc { namespace iw7 { // "localized string" // "float" // "integer" - char dummy66[sizeof (std::string)]; + char dummy67[sizeof (std::string)]; }; /// The size of the largest semantic type. @@ -978,31 +980,31 @@ namespace xsk { namespace gsc { namespace iw7 { S_expr_binary = 157, // expr_binary S_expr_primitive = 158, // expr_primitive S_expr_complement = 159, // expr_complement - S_expr_not = 160, // expr_not - S_expr_call = 161, // expr_call - S_expr_method = 162, // expr_method - S_expr_function = 163, // expr_function - S_expr_pointer = 164, // expr_pointer - S_expr_add_array = 165, // expr_add_array - S_expr_parameters = 166, // expr_parameters - S_expr_arguments = 167, // expr_arguments - S_expr_arguments_no_empty = 168, // expr_arguments_no_empty - S_expr_reference = 169, // expr_reference - S_expr_array = 170, // expr_array - S_expr_field = 171, // expr_field - S_expr_size = 172, // expr_size - S_expr_paren = 173, // expr_paren - S_expr_object = 174, // expr_object - S_expr_thisthread = 175, // expr_thisthread - S_expr_empty_array = 176, // expr_empty_array - S_expr_undefined = 177, // expr_undefined - S_expr_game = 178, // expr_game - S_expr_self = 179, // expr_self - S_expr_anim = 180, // expr_anim - S_expr_level = 181, // expr_level - S_expr_animation = 182, // expr_animation - S_expr_animtree = 183, // expr_animtree - S_expr_identifier_neg = 184, // expr_identifier_neg + S_expr_negate = 160, // expr_negate + S_expr_not = 161, // expr_not + S_expr_call = 162, // expr_call + S_expr_method = 163, // expr_method + S_expr_function = 164, // expr_function + S_expr_pointer = 165, // expr_pointer + S_expr_add_array = 166, // expr_add_array + S_expr_parameters = 167, // expr_parameters + S_expr_arguments = 168, // expr_arguments + S_expr_arguments_no_empty = 169, // expr_arguments_no_empty + S_expr_reference = 170, // expr_reference + S_expr_array = 171, // expr_array + S_expr_field = 172, // expr_field + S_expr_size = 173, // expr_size + S_expr_paren = 174, // expr_paren + S_expr_object = 175, // expr_object + S_expr_thisthread = 176, // expr_thisthread + S_expr_empty_array = 177, // expr_empty_array + S_expr_undefined = 178, // expr_undefined + S_expr_game = 179, // expr_game + S_expr_self = 180, // expr_self + S_expr_anim = 181, // expr_anim + S_expr_level = 182, // expr_level + S_expr_animation = 183, // expr_animation + S_expr_animtree = 184, // expr_animtree S_expr_identifier_nosize = 185, // expr_identifier_nosize S_expr_identifier = 186, // expr_identifier S_expr_path = 187, // expr_path @@ -1079,7 +1081,6 @@ 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; @@ -1157,6 +1158,10 @@ namespace xsk { namespace gsc { namespace iw7 { value.move< ast::expr_method::ptr > (std::move (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (std::move (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (std::move (that.value)); break; @@ -1692,6 +1697,20 @@ namespace xsk { namespace gsc { namespace iw7 { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, ast::expr_negate::ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const ast::expr_negate::ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ast::expr_not::ptr&& v, location_type&& l) : Base (t) @@ -2334,7 +2353,6 @@ 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; @@ -2412,6 +2430,10 @@ switch (yykind) value.template destroy< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + value.template destroy< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not value.template destroy< ast::expr_not::ptr > (); break; @@ -4774,7 +4796,7 @@ switch (yykind) /// Constants. enum { - yylast_ = 2239, ///< Last index in yytable_. + yylast_ = 2363, ///< Last index in yytable_. yynnts_ = 83, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4832,7 +4854,6 @@ 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; @@ -4910,6 +4931,10 @@ switch (yykind) value.copy< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -5147,7 +5172,6 @@ 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; @@ -5225,6 +5249,10 @@ switch (yykind) value.move< ast::expr_method::ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (s.value)); break; @@ -5468,7 +5496,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::iw7 -#line 5472 "parser.hpp" +#line 5500 "parser.hpp" diff --git a/src/iw8/xsk/compiler.cpp b/src/iw8/xsk/compiler.cpp index 042566a0..faee51fc 100644 --- a/src/iw8/xsk/compiler.cpp +++ b/src/iw8/xsk/compiler.cpp @@ -946,6 +946,9 @@ void compiler::emit_expr(const ast::expr& expr, const block::ptr& blk) case ast::kind::expr_complement: emit_expr_complement(expr.as_complement, blk); break; + case ast::kind::expr_negate: + emit_expr_negate(expr.as_negate, blk); + break; case ast::kind::expr_not: emit_expr_not(expr.as_not, blk); break; @@ -1283,6 +1286,13 @@ void compiler::emit_expr_complement(const ast::expr_complement::ptr& expr, const emit_opcode(opcode::OP_BoolComplement); } +void compiler::emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk) +{ + emit_opcode(opcode::OP_GetZero); + emit_expr(expr->rvalue, blk); + emit_opcode(opcode::OP_minus); +} + void compiler::emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk) { emit_expr(expr->rvalue, blk); diff --git a/src/iw8/xsk/compiler.hpp b/src/iw8/xsk/compiler.hpp index f27c0860..4c594485 100644 --- a/src/iw8/xsk/compiler.hpp +++ b/src/iw8/xsk/compiler.hpp @@ -83,6 +83,7 @@ private: void emit_expr_and(const ast::expr_and::ptr& expr, const block::ptr& blk); void emit_expr_or(const ast::expr_or::ptr& expr, const block::ptr& blk); void emit_expr_complement(const ast::expr_complement::ptr& expr, const block::ptr& blk); + void emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk); void emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk); void emit_expr_call(const ast::expr_call::ptr& expr, const block::ptr& blk, bool is_stmt); void emit_expr_call_pointer(const ast::expr_pointer::ptr& expr, const block::ptr& blk, bool is_stmt); diff --git a/src/iw8/xsk/parser.cpp b/src/iw8/xsk/parser.cpp index 43fe9f74..4793965d 100644 --- a/src/iw8/xsk/parser.cpp +++ b/src/iw8/xsk/parser.cpp @@ -245,7 +245,6 @@ 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; @@ -331,6 +330,10 @@ namespace xsk { namespace gsc { namespace iw8 { value.YY_MOVE_OR_COPY< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.YY_MOVE_OR_COPY< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.YY_MOVE_OR_COPY< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -556,7 +559,6 @@ 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; @@ -642,6 +644,10 @@ namespace xsk { namespace gsc { namespace iw8 { value.move< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -867,7 +873,6 @@ 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; @@ -953,6 +958,10 @@ namespace xsk { namespace gsc { namespace iw8 { value.copy< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (that.value); break; @@ -1177,7 +1186,6 @@ 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; @@ -1263,6 +1271,10 @@ namespace xsk { namespace gsc { namespace iw8 { value.move< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (that.value); break; @@ -1742,7 +1754,6 @@ 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; @@ -1828,6 +1839,10 @@ namespace xsk { namespace gsc { namespace iw8 { yylhs.value.emplace< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + yylhs.value.emplace< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not yylhs.value.emplace< ast::expr_not::ptr > (); break; @@ -2031,1355 +2046,1373 @@ namespace xsk { namespace gsc { namespace iw8 { case 2: // root: program #line 264 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 2035 "parser.cpp" +#line 2050 "parser.cpp" break; case 3: // root: %empty #line 265 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 2041 "parser.cpp" +#line 2056 "parser.cpp" break; case 4: // program: program inline #line 270 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2047 "parser.cpp" +#line 2062 "parser.cpp" break; case 5: // program: program include #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 2053 "parser.cpp" +#line 2068 "parser.cpp" break; case 6: // program: program declaration #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 2059 "parser.cpp" +#line 2074 "parser.cpp" break; case 7: // program: inline #line 276 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2065 "parser.cpp" +#line 2080 "parser.cpp" break; case 8: // program: include #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 2071 "parser.cpp" +#line 2086 "parser.cpp" break; case 9: // program: declaration #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 2077 "parser.cpp" +#line 2092 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" #line 284 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2083 "parser.cpp" +#line 2098 "parser.cpp" break; case 11: // include: "#include" expr_path ";" #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 2089 "parser.cpp" +#line 2104 "parser.cpp" break; case 12: // declaration: "/#" #line 293 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2095 "parser.cpp" +#line 2110 "parser.cpp" break; case 13: // declaration: "#/" #line 294 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2101 "parser.cpp" +#line 2116 "parser.cpp" break; case 14: // declaration: decl_usingtree #line 295 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2107 "parser.cpp" +#line 2122 "parser.cpp" break; case 15: // declaration: decl_constant #line 296 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2113 "parser.cpp" +#line 2128 "parser.cpp" break; case 16: // declaration: decl_thread #line 297 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2119 "parser.cpp" +#line 2134 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" #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 2125 "parser.cpp" +#line 2140 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" #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 2131 "parser.cpp" +#line 2146 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block #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 2137 "parser.cpp" +#line 2152 "parser.cpp" break; case 20: // stmt: stmt_block #line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2143 "parser.cpp" +#line 2158 "parser.cpp" break; case 21: // stmt: stmt_call #line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2149 "parser.cpp" +#line 2164 "parser.cpp" break; case 22: // stmt: stmt_assign #line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2155 "parser.cpp" +#line 2170 "parser.cpp" break; case 23: // stmt: stmt_endon #line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2161 "parser.cpp" +#line 2176 "parser.cpp" break; case 24: // stmt: stmt_notify #line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2167 "parser.cpp" +#line 2182 "parser.cpp" break; case 25: // stmt: stmt_wait #line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2173 "parser.cpp" +#line 2188 "parser.cpp" break; case 26: // stmt: stmt_waittill #line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2179 "parser.cpp" +#line 2194 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch #line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2185 "parser.cpp" +#line 2200 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend #line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2191 "parser.cpp" +#line 2206 "parser.cpp" break; case 29: // stmt: stmt_waitframe #line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waitframe = std::move(yystack_[0].value.as < ast::stmt_waitframe::ptr > ()); } -#line 2197 "parser.cpp" +#line 2212 "parser.cpp" break; case 30: // stmt: stmt_if #line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2203 "parser.cpp" +#line 2218 "parser.cpp" break; case 31: // stmt: stmt_ifelse #line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2209 "parser.cpp" +#line 2224 "parser.cpp" break; case 32: // stmt: stmt_while #line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2215 "parser.cpp" +#line 2230 "parser.cpp" break; case 33: // stmt: stmt_dowhile #line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2221 "parser.cpp" +#line 2236 "parser.cpp" break; case 34: // stmt: stmt_for #line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2227 "parser.cpp" +#line 2242 "parser.cpp" break; case 35: // stmt: stmt_foreach #line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2233 "parser.cpp" +#line 2248 "parser.cpp" break; case 36: // stmt: stmt_switch #line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2239 "parser.cpp" +#line 2254 "parser.cpp" break; case 37: // stmt: stmt_case #line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2245 "parser.cpp" +#line 2260 "parser.cpp" break; case 38: // stmt: stmt_default #line 334 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2251 "parser.cpp" +#line 2266 "parser.cpp" break; case 39: // stmt: stmt_break #line 335 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2257 "parser.cpp" +#line 2272 "parser.cpp" break; case 40: // stmt: stmt_continue #line 336 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2263 "parser.cpp" +#line 2278 "parser.cpp" break; case 41: // stmt: stmt_return #line 337 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2269 "parser.cpp" +#line 2284 "parser.cpp" break; case 42: // stmt: stmt_breakpoint #line 338 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2275 "parser.cpp" +#line 2290 "parser.cpp" break; case 43: // stmt: stmt_prof_begin #line 339 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2281 "parser.cpp" +#line 2296 "parser.cpp" break; case 44: // stmt: stmt_prof_end #line 340 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2287 "parser.cpp" +#line 2302 "parser.cpp" break; case 45: // stmt_or_dev: stmt #line 344 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2293 "parser.cpp" +#line 2308 "parser.cpp" break; case 46: // stmt_or_dev: stmt_dev #line 345 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2299 "parser.cpp" +#line 2314 "parser.cpp" break; case 47: // stmt_list: stmt_list stmt #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 2305 "parser.cpp" +#line 2320 "parser.cpp" break; case 48: // stmt_list: stmt #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 2311 "parser.cpp" +#line 2326 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev #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 2317 "parser.cpp" +#line 2332 "parser.cpp" break; case 50: // stmt_or_dev_list: stmt_or_dev #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 2323 "parser.cpp" +#line 2338 "parser.cpp" break; case 51: // stmt_dev: "/#" stmt_list "#/" #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 2329 "parser.cpp" +#line 2344 "parser.cpp" break; case 52: // stmt_dev: "/#" "#/" #line 364 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2335 "parser.cpp" +#line 2350 "parser.cpp" break; case 53: // stmt_block: "{" stmt_or_dev_list "}" #line 368 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2341 "parser.cpp" +#line 2356 "parser.cpp" break; case 54: // stmt_block: "{" "}" #line 369 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2347 "parser.cpp" +#line 2362 "parser.cpp" break; case 55: // stmt_expr: expr_assign #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 2353 "parser.cpp" +#line 2368 "parser.cpp" break; case 56: // stmt_expr: expr_increment #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 2359 "parser.cpp" +#line 2374 "parser.cpp" break; case 57: // stmt_expr: expr_decrement #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 2365 "parser.cpp" +#line 2380 "parser.cpp" break; case 58: // stmt_expr: %empty #line 380 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2371 "parser.cpp" +#line 2386 "parser.cpp" break; case 59: // stmt_call: expr_call ";" #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 2377 "parser.cpp" +#line 2392 "parser.cpp" break; case 60: // stmt_call: expr_method ";" #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 2383 "parser.cpp" +#line 2398 "parser.cpp" break; case 61: // stmt_assign: expr_assign ";" #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 2389 "parser.cpp" +#line 2404 "parser.cpp" break; case 62: // stmt_assign: expr_increment ";" #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 2395 "parser.cpp" +#line 2410 "parser.cpp" break; case 63: // stmt_assign: expr_decrement ";" #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 2401 "parser.cpp" +#line 2416 "parser.cpp" break; case 64: // stmt_endon: expr_object "endon" "(" expr ")" ";" #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 2407 "parser.cpp" +#line 2422 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" #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 2413 "parser.cpp" +#line 2428 "parser.cpp" break; case 66: // stmt_notify: expr_object "notify" "(" expr ")" ";" #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 2419 "parser.cpp" +#line 2434 "parser.cpp" break; case 67: // stmt_wait: "wait" expr ";" #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 2425 "parser.cpp" +#line 2440 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" #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 2431 "parser.cpp" +#line 2446 "parser.cpp" break; case 69: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" #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 2437 "parser.cpp" +#line 2452 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" #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 2443 "parser.cpp" +#line 2458 "parser.cpp" break; case 71: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" #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 2449 "parser.cpp" +#line 2464 "parser.cpp" break; case 72: // stmt_waittillframeend: "waittillframeend" ";" #line 432 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2455 "parser.cpp" +#line 2470 "parser.cpp" break; case 73: // stmt_waitframe: "waitframe" ";" #line 437 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2461 "parser.cpp" +#line 2476 "parser.cpp" break; case 74: // stmt_waitframe: "waitframe" "(" ")" ";" #line 439 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2467 "parser.cpp" +#line 2482 "parser.cpp" break; case 75: // stmt_if: "if" "(" expr ")" stmt #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 2473 "parser.cpp" +#line 2488 "parser.cpp" break; case 76: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt #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 2479 "parser.cpp" +#line 2494 "parser.cpp" break; case 77: // stmt_while: "while" "(" expr ")" stmt #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 2485 "parser.cpp" +#line 2500 "parser.cpp" break; case 78: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" #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 2491 "parser.cpp" +#line 2506 "parser.cpp" break; case 79: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt #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 2497 "parser.cpp" +#line 2512 "parser.cpp" break; case 80: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt #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 2503 "parser.cpp" +#line 2518 "parser.cpp" break; case 81: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt #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 2509 "parser.cpp" +#line 2524 "parser.cpp" break; case 82: // stmt_switch: "switch" "(" expr ")" stmt_block #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 2515 "parser.cpp" +#line 2530 "parser.cpp" break; case 83: // stmt_case: "case" expr_integer ":" #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 2521 "parser.cpp" +#line 2536 "parser.cpp" break; case 84: // stmt_case: "case" expr_string ":" #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 2527 "parser.cpp" +#line 2542 "parser.cpp" break; case 85: // stmt_default: "default" ":" #line 488 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2533 "parser.cpp" +#line 2548 "parser.cpp" break; case 86: // stmt_break: "break" ";" #line 493 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2539 "parser.cpp" +#line 2554 "parser.cpp" break; case 87: // stmt_continue: "continue" ";" #line 498 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2545 "parser.cpp" +#line 2560 "parser.cpp" break; case 88: // stmt_return: "return" expr ";" #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 2551 "parser.cpp" +#line 2566 "parser.cpp" break; case 89: // stmt_return: "return" ";" #line 505 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2557 "parser.cpp" +#line 2572 "parser.cpp" break; case 90: // stmt_breakpoint: "breakpoint" ";" #line 510 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2563 "parser.cpp" +#line 2578 "parser.cpp" break; case 91: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" #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 2569 "parser.cpp" +#line 2584 "parser.cpp" break; case 92: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" #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 2575 "parser.cpp" +#line 2590 "parser.cpp" break; case 93: // expr: expr_ternary #line 524 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2581 "parser.cpp" +#line 2596 "parser.cpp" break; case 94: // expr: expr_binary #line 525 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2587 "parser.cpp" +#line 2602 "parser.cpp" break; case 95: // expr: expr_primitive #line 526 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2593 "parser.cpp" +#line 2608 "parser.cpp" break; case 96: // expr_or_empty: expr #line 530 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2599 "parser.cpp" +#line 2614 "parser.cpp" break; case 97: // expr_or_empty: %empty #line 531 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2605 "parser.cpp" +#line 2620 "parser.cpp" break; case 98: // expr_assign: expr_object "=" expr #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 2611 "parser.cpp" +#line 2626 "parser.cpp" break; case 99: // expr_assign: expr_object "|=" expr #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 2617 "parser.cpp" +#line 2632 "parser.cpp" break; case 100: // expr_assign: expr_object "&=" expr #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 2623 "parser.cpp" +#line 2638 "parser.cpp" break; case 101: // expr_assign: expr_object "^=" expr #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 2629 "parser.cpp" +#line 2644 "parser.cpp" break; case 102: // expr_assign: expr_object "<<=" expr #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 2635 "parser.cpp" +#line 2650 "parser.cpp" break; case 103: // expr_assign: expr_object ">>=" expr #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 2641 "parser.cpp" +#line 2656 "parser.cpp" break; case 104: // expr_assign: expr_object "+=" expr #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 2647 "parser.cpp" +#line 2662 "parser.cpp" break; case 105: // expr_assign: expr_object "-=" expr #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 2653 "parser.cpp" +#line 2668 "parser.cpp" break; case 106: // expr_assign: expr_object "*=" expr #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 2659 "parser.cpp" +#line 2674 "parser.cpp" break; case 107: // expr_assign: expr_object "/=" expr #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 2665 "parser.cpp" +#line 2680 "parser.cpp" break; case 108: // expr_assign: expr_object "%=" expr #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 2671 "parser.cpp" +#line 2686 "parser.cpp" break; case 109: // expr_increment: "++" expr_object #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 2677 "parser.cpp" +#line 2692 "parser.cpp" break; case 110: // expr_increment: expr_object "++" #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 2683 "parser.cpp" +#line 2698 "parser.cpp" break; case 111: // expr_decrement: "--" expr_object #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 2689 "parser.cpp" +#line 2704 "parser.cpp" break; case 112: // expr_decrement: expr_object "--" #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 2695 "parser.cpp" +#line 2710 "parser.cpp" break; case 113: // expr_ternary: expr "?" expr ":" expr #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 2701 "parser.cpp" +#line 2716 "parser.cpp" break; case 114: // expr_binary: expr "||" expr #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 2707 "parser.cpp" +#line 2722 "parser.cpp" break; case 115: // expr_binary: expr "&&" expr #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 2713 "parser.cpp" +#line 2728 "parser.cpp" break; case 116: // expr_binary: expr "==" expr #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 2719 "parser.cpp" +#line 2734 "parser.cpp" break; case 117: // expr_binary: expr "!=" expr #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 2725 "parser.cpp" +#line 2740 "parser.cpp" break; case 118: // expr_binary: expr "<=" expr #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 2731 "parser.cpp" +#line 2746 "parser.cpp" break; case 119: // expr_binary: expr ">=" expr #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 2737 "parser.cpp" +#line 2752 "parser.cpp" break; case 120: // expr_binary: expr "<" expr #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 2743 "parser.cpp" +#line 2758 "parser.cpp" break; case 121: // expr_binary: expr ">" expr #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 2749 "parser.cpp" +#line 2764 "parser.cpp" break; case 122: // expr_binary: expr "|" expr #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 2755 "parser.cpp" +#line 2770 "parser.cpp" break; case 123: // expr_binary: expr "&" expr #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 2761 "parser.cpp" +#line 2776 "parser.cpp" break; case 124: // expr_binary: expr "^" expr #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 2767 "parser.cpp" +#line 2782 "parser.cpp" break; case 125: // expr_binary: expr "<<" expr #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 2773 "parser.cpp" +#line 2788 "parser.cpp" break; case 126: // expr_binary: expr ">>" expr #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 2779 "parser.cpp" +#line 2794 "parser.cpp" break; case 127: // expr_binary: expr "+" expr #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 2785 "parser.cpp" +#line 2800 "parser.cpp" break; case 128: // expr_binary: expr "-" expr #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 2791 "parser.cpp" +#line 2806 "parser.cpp" break; case 129: // expr_binary: expr "*" expr #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 2797 "parser.cpp" +#line 2812 "parser.cpp" break; case 130: // expr_binary: expr "/" expr #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 2803 "parser.cpp" +#line 2818 "parser.cpp" break; case 131: // expr_binary: expr "%" expr #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 2809 "parser.cpp" +#line 2824 "parser.cpp" break; case 132: // expr_primitive: expr_complement #line 618 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2815 "parser.cpp" +#line 2830 "parser.cpp" break; - case 133: // expr_primitive: expr_not + case 133: // expr_primitive: expr_negate #line 619 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2821 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_negate::ptr > ()); } +#line 2836 "parser.cpp" break; - case 134: // expr_primitive: expr_call + case 134: // expr_primitive: expr_not #line 620 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2827 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } +#line 2842 "parser.cpp" break; - case 135: // expr_primitive: expr_method + case 135: // expr_primitive: expr_call #line 621 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2833 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 2848 "parser.cpp" break; - case 136: // expr_primitive: expr_add_array + case 136: // expr_primitive: expr_method #line 622 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2839 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 2854 "parser.cpp" break; - case 137: // expr_primitive: expr_isdefined + case 137: // expr_primitive: expr_add_array #line 623 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_isdefined::ptr > ()); } -#line 2845 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } +#line 2860 "parser.cpp" break; - case 138: // expr_primitive: expr_istrue + case 138: // expr_primitive: expr_isdefined #line 624 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istrue::ptr > ()); } -#line 2851 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_isdefined::ptr > ()); } +#line 2866 "parser.cpp" break; - case 139: // expr_primitive: expr_reference + case 139: // expr_primitive: expr_istrue #line 625 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2857 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istrue::ptr > ()); } +#line 2872 "parser.cpp" break; - case 140: // expr_primitive: expr_array + case 140: // expr_primitive: expr_reference #line 626 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2863 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } +#line 2878 "parser.cpp" break; - case 141: // expr_primitive: expr_field + case 141: // expr_primitive: expr_array #line 627 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2869 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 2884 "parser.cpp" break; - case 142: // expr_primitive: expr_size + case 142: // expr_primitive: expr_field #line 628 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2875 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 2890 "parser.cpp" break; - case 143: // expr_primitive: expr_paren + case 143: // expr_primitive: expr_size #line 629 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2881 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } +#line 2896 "parser.cpp" break; - case 144: // expr_primitive: expr_thisthread + case 144: // expr_primitive: expr_paren #line 630 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2887 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } +#line 2902 "parser.cpp" break; - case 145: // expr_primitive: expr_empty_array + case 145: // expr_primitive: expr_thisthread #line 631 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2893 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } +#line 2908 "parser.cpp" break; - case 146: // expr_primitive: expr_undefined + case 146: // expr_primitive: expr_empty_array #line 632 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2899 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } +#line 2914 "parser.cpp" break; - case 147: // expr_primitive: expr_game + case 147: // expr_primitive: expr_undefined #line 633 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2905 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } +#line 2920 "parser.cpp" break; - case 148: // expr_primitive: expr_self + case 148: // expr_primitive: expr_game #line 634 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2911 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 2926 "parser.cpp" break; - case 149: // expr_primitive: expr_anim + case 149: // expr_primitive: expr_self #line 635 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2917 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 2932 "parser.cpp" break; - case 150: // expr_primitive: expr_level + case 150: // expr_primitive: expr_anim #line 636 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2923 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 2938 "parser.cpp" break; - case 151: // expr_primitive: expr_animation + case 151: // expr_primitive: expr_level #line 637 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2929 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 2944 "parser.cpp" break; - case 152: // expr_primitive: expr_animtree + case 152: // expr_primitive: expr_animation #line 638 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2935 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } +#line 2950 "parser.cpp" break; - case 153: // expr_primitive: expr_identifier_neg + case 153: // expr_primitive: expr_animtree #line 639 "parser.ypp" - { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2941 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2956 "parser.cpp" break; 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_identifier::ptr > ()); } -#line 2947 "parser.cpp" +#line 2962 "parser.cpp" break; 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_istring::ptr > ()); } -#line 2953 "parser.cpp" +#line 2968 "parser.cpp" break; 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_string::ptr > ()); } -#line 2959 "parser.cpp" +#line 2974 "parser.cpp" break; 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_vector::ptr > ()); } -#line 2965 "parser.cpp" +#line 2980 "parser.cpp" break; 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_float::ptr > ()); } -#line 2971 "parser.cpp" +#line 2986 "parser.cpp" break; 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" +#line 2992 "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" +#line 2998 "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 2989 "parser.cpp" +#line 3004 "parser.cpp" break; 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 2995 "parser.cpp" +#line 3010 "parser.cpp" break; - case 163: // expr_not: "!" expr + case 163: // expr_negate: "-" expr_identifier #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 3001 "parser.cpp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()))); } +#line 3016 "parser.cpp" break; - case 164: // expr_call: expr_function + case 164: // expr_negate: "-" expr_paren +#line 659 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()))); } +#line 3022 "parser.cpp" + break; + + case 165: // expr_negate: "-" expr_array #line 661 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_array::ptr > ()))); } +#line 3028 "parser.cpp" + break; + + case 166: // expr_negate: "-" expr_field +#line 663 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_field::ptr > ()))); } +#line 3034 "parser.cpp" + break; + + case 167: // expr_not: "!" expr +#line 668 "parser.ypp" + { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } +#line 3040 "parser.cpp" + break; + + case 168: // expr_call: expr_function +#line 672 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 3007 "parser.cpp" +#line 3046 "parser.cpp" break; - 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 3013 "parser.cpp" - break; - - 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 3019 "parser.cpp" - break; - - 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 3025 "parser.cpp" - break; - - 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::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: expr_path "::" expr_identifier "(" expr_arguments ")" + case 169: // expr_call: expr_pointer #line 673 "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 3037 "parser.cpp" + { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } +#line 3052 "parser.cpp" break; - 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::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" + case 170: // expr_method: expr_object expr_function +#line 676 "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 3058 "parser.cpp" break; - case 171: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 171: // expr_method: expr_object expr_pointer #line 677 "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 3049 "parser.cpp" + { 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 3064 "parser.cpp" break; - 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" + case 172: // expr_function: expr_identifier "(" expr_arguments ")" +#line 682 "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 3070 "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 3061 "parser.cpp" + case 173: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" +#line 684 "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 3076 "parser.cpp" break; - case 174: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" + case 174: // expr_function: "thread" expr_identifier "(" 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::normal); } -#line 3067 "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 3082 "parser.cpp" break; - case 175: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 175: // expr_function: "thread" expr_path "::" expr_identifier "(" 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::thread); } -#line 3073 "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 3088 "parser.cpp" break; - case 176: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 176: // expr_function: "childthread" expr_identifier "(" 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" + { 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 3094 "parser.cpp" break; - case 177: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 177: // expr_function: "childthread" expr_path "::" expr_identifier "(" 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 3085 "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::childthread); } +#line 3100 "parser.cpp" break; - case 178: // expr_add_array: "[" expr_arguments_no_empty "]" + case 178: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 697 "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 3106 "parser.cpp" + break; + + case 179: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 699 "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 3112 "parser.cpp" + break; + + case 180: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 701 "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 3118 "parser.cpp" + break; + + case 181: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 703 "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 3124 "parser.cpp" + break; + + case 182: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 708 "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 3091 "parser.cpp" +#line 3130 "parser.cpp" break; - case 179: // expr_parameters: expr_parameters "," expr_identifier -#line 702 "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 3097 "parser.cpp" - break; - - 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 3109 "parser.cpp" - break; - - 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 + case 183: // expr_parameters: expr_parameters "," expr_identifier #line 713 "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 3136 "parser.cpp" + break; + + case 184: // expr_parameters: expr_identifier +#line 715 "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 3142 "parser.cpp" + break; + + case 185: // expr_parameters: %empty +#line 717 "parser.ypp" + { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } +#line 3148 "parser.cpp" + break; + + case 186: // expr_arguments: expr_arguments_no_empty +#line 722 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3154 "parser.cpp" + break; + + case 187: // expr_arguments: %empty +#line 724 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3121 "parser.cpp" +#line 3160 "parser.cpp" break; - case 184: // expr_arguments_no_empty: expr_arguments "," expr -#line 718 "parser.ypp" + case 188: // expr_arguments_no_empty: expr_arguments "," expr +#line 729 "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" +#line 3166 "parser.cpp" break; - case 185: // expr_arguments_no_empty: expr -#line 720 "parser.ypp" + case 189: // expr_arguments_no_empty: expr +#line 731 "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 3133 "parser.cpp" +#line 3172 "parser.cpp" break; - case 186: // expr_isdefined: "isdefined" "(" expr ")" -#line 725 "parser.ypp" + case 190: // expr_isdefined: "isdefined" "(" expr ")" +#line 736 "parser.ypp" { yylhs.value.as < ast::expr_isdefined::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3139 "parser.cpp" +#line 3178 "parser.cpp" break; - case 187: // expr_istrue: "istrue" "(" expr ")" -#line 730 "parser.ypp" + case 191: // expr_istrue: "istrue" "(" expr ")" +#line 741 "parser.ypp" { yylhs.value.as < ast::expr_istrue::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3145 "parser.cpp" +#line 3184 "parser.cpp" break; - case 188: // expr_reference: "::" expr_identifier -#line 735 "parser.ypp" + case 192: // expr_reference: "::" expr_identifier +#line 746 "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" +#line 3190 "parser.cpp" break; - case 189: // expr_reference: expr_path "::" expr_identifier -#line 737 "parser.ypp" + case 193: // expr_reference: expr_path "::" expr_identifier +#line 748 "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 3157 "parser.cpp" +#line 3196 "parser.cpp" break; - case 190: // expr_array: expr_object "[" expr "]" -#line 742 "parser.ypp" + case 194: // expr_array: expr_object "[" expr "]" +#line 753 "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 3163 "parser.cpp" +#line 3202 "parser.cpp" break; - case 191: // expr_field: expr_object "." expr_identifier_nosize -#line 747 "parser.ypp" + case 195: // expr_field: expr_object "." expr_identifier_nosize +#line 758 "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 3169 "parser.cpp" +#line 3208 "parser.cpp" break; - 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 3175 "parser.cpp" - break; - - 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 3181 "parser.cpp" - break; - - 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_call::ptr > ()); } -#line 3187 "parser.cpp" - break; - - 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_method::ptr > ()); } -#line 3193 "parser.cpp" - break; - - case 196: // expr_object: expr_array + case 196: // expr_size: expr_object "." "size" #line 763 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3199 "parser.cpp" + { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } +#line 3214 "parser.cpp" break; - 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_field::ptr > ()); } -#line 3205 "parser.cpp" - break; - - 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_game::ptr > ()); } -#line 3211 "parser.cpp" - break; - - 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_self::ptr > ()); } -#line 3217 "parser.cpp" - break; - - 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 + case 197: // expr_paren: "(" expr ")" #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" + { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3220 "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 3235 "parser.cpp" + case 198: // expr_object: expr_call +#line 772 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3226 "parser.cpp" break; - case 203: // expr_thisthread: "thisthread" + case 199: // expr_object: expr_method +#line 773 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3232 "parser.cpp" + break; + + case 200: // expr_object: expr_array #line 774 "parser.ypp" - { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3241 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3238 "parser.cpp" break; - case 204: // expr_empty_array: "[" "]" + case 201: // expr_object: expr_field +#line 775 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3244 "parser.cpp" + break; + + case 202: // expr_object: expr_game +#line 776 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3250 "parser.cpp" + break; + + case 203: // expr_object: expr_self +#line 777 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3256 "parser.cpp" + break; + + case 204: // expr_object: expr_anim +#line 778 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3262 "parser.cpp" + break; + + case 205: // expr_object: expr_level #line 779 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3268 "parser.cpp" + break; + + case 206: // expr_object: expr_identifier +#line 780 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 3274 "parser.cpp" + break; + + case 207: // expr_thisthread: "thisthread" +#line 785 "parser.ypp" + { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } +#line 3280 "parser.cpp" + break; + + case 208: // expr_empty_array: "[" "]" +#line 790 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3247 "parser.cpp" +#line 3286 "parser.cpp" break; - case 205: // expr_undefined: "undefined" -#line 784 "parser.ypp" + case 209: // expr_undefined: "undefined" +#line 795 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3253 "parser.cpp" +#line 3292 "parser.cpp" break; - case 206: // expr_game: "game" -#line 789 "parser.ypp" + case 210: // expr_game: "game" +#line 800 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3259 "parser.cpp" +#line 3298 "parser.cpp" break; - case 207: // expr_self: "self" -#line 794 "parser.ypp" + case 211: // expr_self: "self" +#line 805 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3265 "parser.cpp" +#line 3304 "parser.cpp" break; - case 208: // expr_anim: "anim" -#line 799 "parser.ypp" + case 212: // expr_anim: "anim" +#line 810 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3271 "parser.cpp" +#line 3310 "parser.cpp" break; - case 209: // expr_level: "level" -#line 804 "parser.ypp" + case 213: // expr_level: "level" +#line 815 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3277 "parser.cpp" +#line 3316 "parser.cpp" break; - case 210: // expr_animation: "%" "identifier" -#line 809 "parser.ypp" + case 214: // expr_animation: "%" "identifier" +#line 820 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3283 "parser.cpp" +#line 3322 "parser.cpp" break; - case 211: // expr_animtree: "#animtree" -#line 814 "parser.ypp" + case 215: // expr_animtree: "#animtree" +#line 825 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3289 "parser.cpp" +#line 3328 "parser.cpp" break; - 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 213: // expr_identifier_nosize: "identifier" -#line 824 "parser.ypp" + case 216: // expr_identifier_nosize: "identifier" +#line 830 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3301 "parser.cpp" +#line 3334 "parser.cpp" break; - case 214: // expr_identifier: "identifier" -#line 829 "parser.ypp" + case 217: // expr_identifier: "identifier" +#line 835 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3307 "parser.cpp" +#line 3340 "parser.cpp" break; - case 215: // expr_identifier: "size" -#line 831 "parser.ypp" + case 218: // expr_identifier: "size" +#line 837 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3313 "parser.cpp" +#line 3346 "parser.cpp" break; - case 216: // expr_path: "identifier" -#line 836 "parser.ypp" + case 219: // expr_path: "identifier" +#line 842 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3319 "parser.cpp" +#line 3352 "parser.cpp" break; - case 217: // expr_path: "path" -#line 838 "parser.ypp" + case 220: // expr_path: "path" +#line 844 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3325 "parser.cpp" +#line 3358 "parser.cpp" break; - case 218: // expr_istring: "localized string" -#line 843 "parser.ypp" + case 221: // expr_istring: "localized string" +#line 849 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3331 "parser.cpp" +#line 3364 "parser.cpp" break; - case 219: // expr_string: "string literal" -#line 848 "parser.ypp" + case 222: // expr_string: "string literal" +#line 854 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3337 "parser.cpp" +#line 3370 "parser.cpp" break; - case 220: // expr_vector: "(" expr "," expr "," expr ")" -#line 853 "parser.ypp" + case 223: // expr_vector: "(" expr "," expr "," expr ")" +#line 859 "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 3343 "parser.cpp" +#line 3376 "parser.cpp" break; - case 221: // expr_float: "-" "float" -#line 858 "parser.ypp" + case 224: // expr_float: "-" "float" +#line 864 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3349 "parser.cpp" +#line 3382 "parser.cpp" break; - case 222: // expr_float: "float" -#line 860 "parser.ypp" + case 225: // expr_float: "float" +#line 866 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3355 "parser.cpp" +#line 3388 "parser.cpp" break; - case 223: // expr_integer: "-" "integer" -#line 865 "parser.ypp" + case 226: // expr_integer: "-" "integer" +#line 871 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3361 "parser.cpp" +#line 3394 "parser.cpp" break; - case 224: // expr_integer: "integer" -#line 867 "parser.ypp" + case 227: // expr_integer: "integer" +#line 873 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3367 "parser.cpp" +#line 3400 "parser.cpp" break; - case 225: // expr_false: "false" -#line 872 "parser.ypp" + case 228: // expr_false: "false" +#line 878 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3373 "parser.cpp" +#line 3406 "parser.cpp" break; - case 226: // expr_true: "true" -#line 877 "parser.ypp" + case 229: // expr_true: "true" +#line 883 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3379 "parser.cpp" +#line 3412 "parser.cpp" break; -#line 3383 "parser.cpp" +#line 3416 "parser.cpp" default: break; @@ -3588,16 +3621,16 @@ namespace xsk { namespace gsc { namespace iw8 { "stmt_continue", "stmt_return", "stmt_breakpoint", "stmt_prof_begin", "stmt_prof_end", "expr", "expr_or_empty", "expr_assign", "expr_increment", "expr_decrement", "expr_ternary", "expr_binary", - "expr_primitive", "expr_complement", "expr_not", "expr_call", - "expr_method", "expr_function", "expr_pointer", "expr_add_array", - "expr_parameters", "expr_arguments", "expr_arguments_no_empty", - "expr_isdefined", "expr_istrue", "expr_reference", "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_neg", "expr_identifier_nosize", - "expr_identifier", "expr_path", "expr_istring", "expr_string", - "expr_vector", "expr_float", "expr_integer", "expr_false", "expr_true", YY_NULLPTR + "expr_primitive", "expr_complement", "expr_negate", "expr_not", + "expr_call", "expr_method", "expr_function", "expr_pointer", + "expr_add_array", "expr_parameters", "expr_arguments", + "expr_arguments_no_empty", "expr_isdefined", "expr_istrue", + "expr_reference", "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 }; return yy_sname[yysymbol]; } @@ -3866,622 +3899,648 @@ namespace xsk { namespace gsc { namespace iw8 { } - const short parser::yypact_ninf_ = -283; + const short parser::yypact_ninf_ = -295; - const short parser::yytable_ninf_ = -217; + const short parser::yytable_ninf_ = -220; const short parser::yypact_[] = { - 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 + 1, -295, -295, -26, -26, -29, -295, -295, 37, 1, + -295, -295, -295, -295, -295, -295, -22, -295, -295, -25, + 11, -57, -295, -295, -295, -295, -23, 1138, -295, -295, + -295, 16, 2, -295, -295, -7, -2, -295, -17, -295, + -295, -295, -295, -295, -295, -295, 27, 28, 1138, 701, + -23, 1138, 1138, -20, -12, 42, -295, -295, -295, 2218, + -295, -295, -295, -295, -295, -295, 135, 512, -295, -295, + -295, -295, -295, -295, 919, 998, -295, -295, 1099, -295, + -295, -295, 1163, 1341, 1350, 1360, -295, -295, 106, 44, + -295, -295, -295, -295, -295, -295, -295, 74, 35, -23, + 81, 87, 86, 92, 98, 93, 100, 1138, 1138, 1402, + 701, -295, 2301, 96, 103, -295, -295, -295, 1138, 101, + -295, -295, -295, -295, 919, 998, -295, 1369, -295, -295, + -295, -295, 106, 104, -295, -295, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1203, -14, -295, -295, 111, + 1138, -23, -295, 833, -295, -295, 1138, 1138, -23, 1138, + 1138, -23, 1138, 1568, 1602, -295, 1138, 1948, 1138, -295, + 1636, 1138, 69, -23, 2183, 91, 91, 2332, 2342, 718, + 718, 561, 561, 561, 561, 2373, 2383, 624, 26, 26, + -295, -295, -295, 1988, -295, -295, -295, 4, -295, 118, + 966, 1138, 109, -47, 120, 1329, 123, 126, 127, 136, + -49, 128, 131, 133, 1073, 139, 138, 146, -295, 603, + 603, -295, -295, 887, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + 144, 147, 148, 149, 150, -295, -295, 1250, 111, 2028, + 6, 162, 2068, 8, 164, 2108, -295, -295, 2147, 160, + 2301, 1948, 118, 1138, -295, -295, 1138, -295, -295, 1045, + 2253, -295, 165, -295, 1138, 194, 1138, 538, -23, 1138, + 122, 168, 169, -295, -295, -295, -295, 2288, -295, 1138, + 1138, 1369, 1369, -295, -295, -295, -295, -295, -295, -295, + 174, 187, 188, 190, -295, -295, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 186, -295, 1138, + 189, -295, 1138, 195, 1138, 193, 2301, 34, -295, -295, + -295, 191, 1670, 199, 1704, 192, -295, -295, -295, 29, + -11, 1738, -295, -295, -295, 45, 47, 1138, 1138, 1138, + 1138, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, + 2301, 2301, 203, 48, 205, 65, 206, 1772, 1138, -295, + -295, 1329, 1138, 1329, 1138, 1138, -23, 35, 197, 200, + 1806, 1446, 1490, 1534, 1138, -295, 1138, -295, 1138, -295, + 66, 237, 1840, -295, 2301, 201, 1874, 233, -295, -295, + -295, 204, 207, 1138, 208, 1138, 209, 1138, 75, 76, + 82, -295, 1329, 211, 538, 1329, 1138, -295, -295, 214, + -295, 221, -295, 223, -295, -295, -295, -295, -295, 224, + -295, 1908, 216, 217, 220, 1329, 1329, -295, -295, -295, + -295, -295 }; const unsigned char parser::yydefact_[] = { - 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, + 3, 12, 13, 0, 0, 0, 218, 217, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 220, 219, 0, + 0, 0, 1, 4, 5, 6, 185, 0, 10, 11, + 222, 0, 0, 184, 215, 0, 0, 207, 0, 229, + 228, 209, 210, 211, 212, 213, 0, 0, 0, 187, + 0, 0, 0, 0, 0, 217, 221, 225, 227, 0, + 93, 94, 95, 132, 133, 134, 135, 136, 168, 169, + 137, 138, 139, 140, 141, 142, 143, 144, 0, 145, 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, - 183, 204, 185, 0, 182, 188, 163, 162, 212, 221, - 223, 210, 18, 0, 0, 0, 0, 0, 0, 0, + 187, 208, 189, 0, 186, 192, 167, 162, 0, 0, + 224, 226, 198, 199, 165, 166, 164, 0, 202, 203, + 204, 205, 163, 0, 214, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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, 170, 171, 0, + 187, 0, 17, 0, 19, 183, 0, 187, 0, 0, + 187, 0, 0, 0, 0, 197, 0, 189, 0, 182, + 0, 0, 0, 0, 0, 125, 126, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 127, 128, + 129, 130, 131, 0, 196, 216, 195, 0, 186, 193, 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 + 0, 0, 0, 0, 0, 0, 0, 0, 54, 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, 198, 199, 200, 201, 0, 206, 0, + 0, 0, 0, 0, 0, 0, 190, 191, 0, 0, + 188, 0, 0, 0, 194, 172, 187, 52, 48, 0, + 0, 72, 0, 73, 0, 0, 0, 58, 0, 0, + 0, 0, 0, 85, 86, 87, 89, 0, 90, 187, + 187, 109, 111, 53, 49, 61, 62, 63, 59, 60, + 0, 0, 0, 0, 110, 112, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 174, 187, + 0, 176, 187, 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, 98, 104, 105, 106, 107, 108, 99, 100, 101, + 103, 102, 0, 0, 0, 0, 0, 0, 187, 173, + 74, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 175, 187, 177, 187, 223, + 0, 75, 0, 77, 96, 0, 0, 0, 82, 91, + 92, 0, 0, 187, 0, 187, 0, 187, 0, 0, + 0, 178, 0, 0, 58, 0, 0, 64, 66, 186, + 69, 186, 71, 186, 179, 180, 181, 76, 78, 0, + 80, 0, 0, 0, 0, 0, 0, 65, 68, 70, + 79, 81 }; const short parser::yypgoto_[] = { - -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 + -295, -295, -295, 276, 278, 279, -295, -295, -295, 67, + 59, -295, -295, -295, -97, -133, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + 198, -295, -294, -291, -289, -295, -295, -295, -295, -295, + -295, -31, -6, -73, -60, -295, -295, -16, -45, -295, + -295, -295, 80, 249, -295, 250, 274, -295, -295, -295, + 280, 385, 391, 398, -295, -295, -295, 0, 7, -295, + -19, -295, -295, 94, -295, -295 }; const short parser::yydefgoto_[] = { - 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, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 231, + 232, 289, 233, 234, 235, 355, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 112, 415, 260, 261, 262, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 32, 113, 208, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 190, 88, 89, 90, + 82, 83, 84, 85, 86, 87, 206, 88, 89, 90, 91, 92, 93, 94, 95, 96 }; const short parser::yytable_[] = { - 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, + 16, 164, 31, 356, 114, 157, 357, 292, 358, 16, + 19, 20, 1, 2, 3, 4, 5, 293, 158, 395, + 35, 36, 122, 38, 6, 21, 33, 6, 42, 43, + 44, 45, 26, 204, 118, 101, 104, 22, 119, 28, + 6, 106, 102, 105, 30, 6, 300, 123, 6, 396, + 115, 100, 30, 132, 157, 58, 103, 98, 27, 285, + 133, 338, 99, 341, 178, 114, 178, 158, 178, 35, + 36, 97, 38, 17, 18, 29, 6, 7, 159, 17, + 55, 107, 108, 120, 121, 133, 205, 155, 134, 389, + 182, 163, 17, 55, 178, 324, 325, 17, 55, 165, + 398, 7, 399, 405, -219, 178, 161, 178, 178, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 407, 431, 152, 153, 154, 178, 178, 159, 17, 55, + 444, 445, 263, 124, 133, 178, 178, 446, 162, 166, + 356, 167, 178, 357, 207, 358, -206, -206, 168, -206, + 169, 270, 170, -206, 273, 171, 178, 264, 172, 181, + 160, 209, 179, 268, -206, 160, 183, -206, 271, 205, + 133, 274, 286, 291, 294, -198, -198, 296, -198, 263, + 297, 298, -198, 282, 263, 150, 151, 152, 153, 154, + 299, 303, 309, -198, 157, 304, -198, 305, 122, 122, + 310, 301, 263, 308, 264, -206, -206, 158, 315, 264, + 268, 316, 317, 318, 319, 268, 339, 133, 342, 345, + 351, 353, 133, 123, 123, 59, 121, 264, 367, 268, + 268, 362, 363, 268, -198, -198, 133, 133, 157, 157, + 133, 368, 369, 265, 370, 382, 109, 388, 384, 116, + 117, 158, 158, 392, 386, 390, 394, 404, 263, 406, + 408, 419, 432, 436, 420, 434, 122, 159, 437, 452, + 347, 438, 440, 442, 133, 448, 453, 288, 454, 455, + 457, 458, 295, 264, 459, 23, 157, 24, 25, 268, + 265, 123, 314, 365, 366, 265, 133, 268, 360, 158, + 418, 449, 125, 126, 133, 173, 174, 0, 177, 265, + 265, 159, 159, 265, 302, 0, 180, 0, 133, 133, + 0, 0, 0, 383, 0, 0, 385, 127, 0, 0, + 0, 0, 0, 128, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 0, 0, 349, 0, 0, 159, + 263, 0, 263, 0, 269, 0, 133, 272, 0, 265, + 275, 0, 410, 0, 278, 0, 280, 265, 439, 281, + 441, 0, 443, 0, 0, 264, 0, 264, 428, 0, + 429, 268, 430, 268, 0, 0, 417, 0, 133, 0, + 133, 263, 0, 122, 263, 0, 0, 0, 0, 290, + 0, 0, 266, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 307, 0, 263, 263, 264, 0, 123, 264, + 0, 0, 268, 0, 268, 268, 0, 267, 129, 133, + 0, 133, 133, 128, 130, 0, 0, 0, 0, 264, + 264, 131, 0, 0, 0, 268, 268, 0, 411, 266, + 413, 0, 133, 133, 266, 0, 0, 0, 0, 0, + 0, 265, 0, 265, 0, 0, 0, 0, 266, 266, + 0, 346, 266, 0, 267, 0, 0, 0, 0, 267, + 128, 0, 352, 0, 354, 128, 0, 361, 0, 447, + 0, 0, 450, 311, 312, 0, 0, 267, 0, 128, + 128, 0, 265, 128, 265, 265, 0, 0, 0, 0, + 0, 0, 460, 461, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 265, 265, 0, 266, 0, + 0, 0, 387, 0, 0, 0, 266, 0, 129, 0, + 0, 0, -199, -199, 130, -199, 0, 0, 0, -199, + 0, 131, 0, 267, 0, 400, 401, 402, 403, 128, + -199, 359, 0, -199, 0, 0, 0, 128, 35, 36, + 0, 38, 0, 0, 0, 6, 42, 43, 44, 45, + 412, 0, 414, 416, 0, 129, 119, 0, 0, 0, + 129, 130, 0, 0, 229, 230, 130, 0, 131, 0, + 0, -199, -199, 131, 129, 129, 0, 0, 129, 0, + 130, 130, 0, 0, 130, 0, 0, 131, 131, 137, + 138, 131, 0, 0, 451, 0, 0, 17, 55, 0, + 266, 0, 266, 35, 36, 0, 38, 0, 0, 0, + 6, 42, 43, 44, 45, 150, 151, 152, 153, 154, + 0, 119, 0, 0, 0, 267, 0, 267, 0, 0, + 0, 128, 0, 128, 129, 0, 0, 0, 0, 0, + 130, 266, 129, 266, 266, 0, 0, 131, 130, 0, + 0, 0, 137, 138, 0, 131, 141, 142, 143, 144, + 145, 146, 17, 55, 266, 266, 267, 0, 359, 267, + 0, 0, 128, 0, 128, 128, 148, 34, 150, 151, + 152, 153, 154, 0, 0, 0, 0, 0, 0, 267, + 267, 0, 0, 0, 0, 128, 128, 0, 0, 0, + 0, 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, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 129, 0, 129, 51, + 52, 0, 130, 0, 130, 0, 137, 138, 0, 131, + 0, 131, 143, 144, 145, 146, 53, 0, 0, 54, + 17, 55, 30, 56, 57, 58, 0, 0, 0, 0, + 0, 0, 150, 151, 152, 153, 154, 129, 0, 129, + 129, 0, 0, 130, 0, 130, 130, 0, 0, 0, + 131, 0, 131, 131, 0, 0, 0, 0, 0, 0, + 129, 129, 0, 0, 210, 0, 130, 130, 0, 0, + 0, 0, 211, 131, 131, 212, 213, 214, 0, 215, + 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 35, 36, 0, 38, 0, 0, 0, + 6, 42, 43, 44, 45, 0, 0, 0, 0, 163, + 228, 119, 0, 0, 0, 0, 0, 0, 210, 229, + 230, 0, 0, 0, 0, 0, 211, 0, 0, 212, + 213, 214, 0, 215, 216, 217, 218, 0, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 35, 36, 0, + 38, 0, 17, 55, 6, 42, 43, 44, 45, 0, + 0, 0, 0, 163, 313, 119, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 0, 0, 0, 0, -200, + -200, 0, -200, 0, 0, 0, -200, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -200, 287, 0, + -200, 0, 0, 0, 0, 211, 17, 55, 212, 213, + 214, 0, 215, 216, 217, 218, 0, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 35, 36, 0, 38, + 0, 0, 0, 6, 42, 43, 44, 45, -200, -200, + 0, 0, 163, 0, 119, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 0, 0, 0, 0, -201, -201, + 0, -201, 0, 0, 0, -201, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -201, 348, 0, -201, + 0, 0, 0, 0, 211, 17, 55, 212, 213, 214, + 0, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 35, 36, 0, 38, 34, + 0, 0, 6, 42, 43, 44, 45, -201, -201, 0, + 0, 163, 0, 119, 0, 0, 0, 0, 0, 0, + 0, 229, 230, 35, 36, 37, 38, 39, 40, 41, + 6, 42, 43, 44, 45, 46, 47, 48, 0, 0, + 0, 49, 0, 0, 0, 50, 0, 306, 0, 35, + 36, 0, 38, 0, 17, 55, 6, 0, 0, 0, + 0, 51, 52, 0, 34, 0, 0, 155, 0, 0, + 156, 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, 0, -202, -202, 0, -202, 0, 0, 0, + -202, 0, 0, 0, 0, 0, 51, 52, 0, 34, + 0, -202, 0, 0, -202, 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, 0, 0, + 0, 110, -202, -202, 0, 50, 0, 320, 321, 0, + 322, 323, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, + 35, 36, 0, 38, 0, 0, 0, 6, 53, 0, + 0, 54, 17, 55, 30, 56, 57, 58, 155, 0, + 0, 182, 0, 0, 0, 0, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 0, 0, 0, 0, 0, 0, 0, 211, 17, + 55, 212, 213, 214, 0, 215, 216, 217, 218, 0, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 35, + 36, 0, 38, 0, 0, 0, 6, 42, 43, 44, + 45, -203, -203, 0, -203, 163, 0, 119, -203, 0, + -204, -204, 0, -204, 0, 229, 230, -204, 0, -203, + -205, -205, -203, -205, 0, 0, 0, -205, -204, 35, + 36, -204, 38, 0, 0, 0, 6, 0, -205, 0, + 0, -205, 0, 0, 0, 0, 0, 155, 17, 55, + 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -203, -203, 0, 0, 0, 0, 0, 0, 0, -204, + -204, 0, 0, 0, 0, 0, 0, 175, 0, -205, + -205, 0, 176, 0, 0, 0, 0, 136, 17, 55, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 147, 148, 149, 150, 151, 152, 153, + 154, 422, 0, 0, 0, 0, 423, 0, 0, 0, + 0, 136, 0, 0, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 150, 151, 152, 153, 154, 424, 0, 0, 0, 0, + 425, 0, 0, 0, 0, 136, 0, 0, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 147, 148, 149, 150, 151, 152, 153, 154, 426, + 0, 0, 0, 0, 427, 0, 0, 0, 0, 136, + 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 276, 0, 147, 148, 149, 150, 151, + 152, 153, 154, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 277, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 136, 0, 0, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 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, 175, 0, 147, 148, 149, 150, 151, 152, 153, + 154, 136, 0, 0, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 391, 0, 147, 148, 149, + 150, 151, 152, 153, 154, 136, 0, 0, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 393, + 0, 147, 148, 149, 150, 151, 152, 153, 154, 136, + 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 397, 0, 147, 148, 149, 150, 151, + 152, 153, 154, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 409, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 136, 0, 0, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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 + 0, 421, 0, 147, 148, 149, 150, 151, 152, 153, + 154, 136, 0, 0, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 433, 0, 147, 148, 149, + 150, 151, 152, 153, 154, 136, 0, 0, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 435, + 0, 147, 148, 149, 150, 151, 152, 153, 154, 136, + 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 456, 0, 147, 148, 149, 150, 151, + 152, 153, 154, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 279, 0, 0, + 0, 0, 0, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 284, 0, 0, + 0, 0, 0, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 337, 0, 0, + 0, 0, 0, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 340, 0, 0, + 0, 0, 0, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 343, 0, 0, + 0, 0, 0, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 344, 0, 0, + 0, 0, 136, 0, 0, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, + 149, 150, 151, 152, 153, 154, 283, 0, 136, 0, + 0, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 150, 151, 152, + 153, 154, 135, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 350, 136, 0, + 0, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 150, 151, 152, + 153, 154, 364, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 136, 0, 0, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 0, 0, 0, + 0, 0, 147, 148, 149, 150, 151, 152, 153, 154, + 137, 138, 0, 140, 141, 142, 143, 144, 145, 146, + 137, 138, 0, 0, 141, 142, 143, 144, 145, 146, + 0, 0, 0, 147, 148, 149, 150, 151, 152, 153, + 154, 0, 0, 147, 148, 149, 150, 151, 152, 153, + 154, 137, 138, 0, 0, 141, 142, 143, 144, 145, + 146, 137, 138, 0, 0, 141, 142, 143, 144, 145, + 146, 0, 0, 0, 0, 148, 149, 150, 151, 152, + 153, 154, 0, 0, 0, 0, 0, 150, 151, 152, + 153, 154 }; const short parser::yycheck_[] = { - 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, + 0, 98, 21, 297, 49, 78, 297, 54, 297, 9, + 3, 4, 11, 12, 13, 14, 15, 64, 78, 30, + 40, 41, 53, 43, 47, 54, 26, 47, 48, 49, + 50, 51, 54, 47, 54, 35, 36, 0, 58, 64, + 47, 58, 35, 36, 101, 47, 95, 53, 47, 60, + 50, 58, 101, 53, 127, 104, 58, 55, 80, 55, + 53, 55, 60, 55, 60, 110, 60, 127, 60, 40, + 41, 55, 43, 99, 100, 64, 47, 100, 78, 99, + 100, 54, 54, 103, 104, 78, 100, 58, 100, 55, + 61, 56, 99, 100, 60, 66, 67, 99, 100, 99, + 55, 100, 55, 55, 62, 60, 62, 60, 60, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 55, 55, 96, 97, 98, 60, 60, 127, 99, 100, + 55, 55, 163, 53, 127, 60, 60, 55, 64, 58, + 434, 54, 60, 434, 160, 434, 40, 41, 62, 43, + 58, 167, 54, 47, 170, 62, 60, 163, 58, 58, + 54, 161, 59, 163, 58, 54, 62, 61, 168, 100, + 163, 171, 54, 64, 54, 40, 41, 54, 43, 210, + 54, 54, 47, 183, 215, 94, 95, 96, 97, 98, + 54, 63, 54, 58, 267, 64, 61, 64, 229, 230, + 54, 220, 233, 64, 210, 99, 100, 267, 64, 215, + 210, 64, 64, 64, 64, 215, 54, 210, 54, 59, + 55, 27, 215, 229, 230, 27, 104, 233, 54, 229, + 230, 63, 63, 233, 99, 100, 229, 230, 311, 312, + 233, 54, 54, 163, 54, 59, 48, 54, 59, 51, + 52, 311, 312, 54, 59, 64, 64, 54, 289, 54, + 54, 64, 25, 30, 64, 64, 297, 267, 64, 55, + 286, 64, 64, 64, 267, 64, 55, 210, 55, 55, + 64, 64, 215, 289, 64, 9, 359, 9, 9, 289, + 210, 297, 233, 309, 310, 215, 289, 297, 298, 359, + 397, 434, 53, 53, 297, 107, 108, -1, 110, 229, + 230, 311, 312, 233, 220, -1, 118, -1, 311, 312, + -1, -1, -1, 339, -1, -1, 342, 53, -1, -1, + -1, -1, -1, 53, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, -1, -1, 289, -1, -1, 359, + 391, -1, 393, -1, 166, -1, 359, 169, -1, 289, + 172, -1, 388, -1, 176, -1, 178, 297, 423, 181, + 425, -1, 427, -1, -1, 391, -1, 393, 404, -1, + 406, 391, 408, 393, -1, -1, 396, -1, 391, -1, + 393, 432, -1, 434, 435, -1, -1, -1, -1, 211, + -1, -1, 163, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 224, -1, 455, 456, 432, -1, 434, 435, + -1, -1, 432, -1, 434, 435, -1, 163, 53, 432, + -1, 434, 435, 163, 53, -1, -1, -1, -1, 455, + 456, 53, -1, -1, -1, 455, 456, -1, 391, 210, + 393, -1, 455, 456, 215, -1, -1, -1, -1, -1, + -1, 391, -1, 393, -1, -1, -1, -1, 229, 230, + -1, 283, 233, -1, 210, -1, -1, -1, -1, 215, + 210, -1, 294, -1, 296, 215, -1, 299, -1, 432, + -1, -1, 435, 229, 230, -1, -1, 233, -1, 229, + 230, -1, 432, 233, 434, 435, -1, -1, -1, -1, + -1, -1, 455, 456, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 455, 456, -1, 289, -1, + -1, -1, 344, -1, -1, -1, 297, -1, 163, -1, + -1, -1, 40, 41, 163, 43, -1, -1, -1, 47, + -1, 163, -1, 289, -1, 367, 368, 369, 370, 289, + 58, 297, -1, 61, -1, -1, -1, 297, 40, 41, + -1, 43, -1, -1, -1, 47, 48, 49, 50, 51, + 392, -1, 394, 395, -1, 210, 58, -1, -1, -1, + 215, 210, -1, -1, 66, 67, 215, -1, 210, -1, + -1, 99, 100, 215, 229, 230, -1, -1, 233, -1, + 229, 230, -1, -1, 233, -1, -1, 229, 230, 68, + 69, 233, -1, -1, 436, -1, -1, 99, 100, -1, + 391, -1, 393, 40, 41, -1, 43, -1, -1, -1, + 47, 48, 49, 50, 51, 94, 95, 96, 97, 98, + -1, 58, -1, -1, -1, 391, -1, 393, -1, -1, + -1, 391, -1, 393, 289, -1, -1, -1, -1, -1, + 289, 432, 297, 434, 435, -1, -1, 289, 297, -1, + -1, -1, 68, 69, -1, 297, 72, 73, 74, 75, + 76, 77, 99, 100, 455, 456, 432, -1, 434, 435, + -1, -1, 432, -1, 434, 435, 92, 16, 94, 95, + 96, 97, 98, -1, -1, -1, -1, -1, -1, 455, + 456, -1, -1, -1, -1, 455, 456, -1, -1, -1, + -1, 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, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, 393, 78, + 79, -1, 391, -1, 393, -1, 68, 69, -1, 391, + -1, 393, 74, 75, 76, 77, 95, -1, -1, 98, + 99, 100, 101, 102, 103, 104, -1, -1, -1, -1, + -1, -1, 94, 95, 96, 97, 98, 432, -1, 434, + 435, -1, -1, 432, -1, 434, 435, -1, -1, -1, + 432, -1, 434, 435, -1, -1, -1, -1, -1, -1, + 455, 456, -1, -1, 11, -1, 455, 456, -1, -1, + -1, -1, 19, 455, 456, 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, + 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, -1, -1, 47, 48, 49, 50, 51, 99, - 100, -1, -1, 56, -1, 58, -1, -1, -1, -1, + 43, -1, 99, 100, 47, 48, 49, 50, 51, -1, + -1, -1, -1, 56, 57, 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, -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, -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, - -1, -1, 47, 48, 49, 50, 51, -1, -1, -1, + 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, - 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, 66, 67, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, -1, -1, + -1, 58, -1, -1, -1, 62, -1, 64, -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, -1, 40, 41, -1, 43, -1, -1, -1, + 47, -1, -1, -1, -1, -1, 78, 79, -1, 16, + -1, 58, -1, -1, 61, -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, -1, -1, + -1, 58, 99, 100, -1, 62, -1, 17, 18, -1, + 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 78, 79, -1, -1, -1, -1, -1, -1, -1, + 40, 41, -1, 43, -1, -1, -1, 47, 95, -1, + -1, 98, 99, 100, 101, 102, 103, 104, 58, -1, + -1, 61, -1, -1, -1, -1, 66, 67, -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, -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, -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, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, -1, -1, -1, -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, 40, 41, -1, 43, 56, -1, 58, 47, -1, + 40, 41, -1, 43, -1, 66, 67, 47, -1, 58, + 40, 41, 61, 43, -1, -1, -1, 47, 58, 40, + 41, 61, 43, -1, -1, -1, 47, -1, 58, -1, + -1, 61, -1, -1, -1, -1, -1, 58, 99, 100, + 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 99, 100, -1, -1, -1, -1, -1, -1, -1, 99, + 100, -1, -1, -1, -1, -1, -1, 55, -1, 99, + 100, -1, 60, -1, -1, -1, -1, 65, 99, 100, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -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, 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, -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, -1, -1, 91, 92, 93, - 94, 95, 96, 97, 98, 63, -1, 65, -1, -1, + 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, 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, -1, -1, 91, 92, 93, 94, 95, 96, 97, - 98, 64, 65, -1, -1, 68, 69, 70, 71, 72, + -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, 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, 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, + 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, - -1, -1, -1, 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, - 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 + -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, -1, -1, 94, 95, 96, + 97, 98 }; const unsigned char @@ -4490,49 +4549,50 @@ namespace xsk { namespace gsc { namespace iw8 { 0, 11, 12, 13, 14, 15, 47, 100, 116, 117, 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, + 101, 195, 171, 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, + 170, 174, 175, 176, 177, 178, 179, 180, 181, 182, 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, + 58, 59, 155, 172, 173, 192, 155, 155, 54, 58, + 103, 104, 166, 167, 177, 178, 180, 181, 185, 186, + 187, 188, 192, 193, 100, 64, 65, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 91, 92, 93, + 94, 95, 96, 97, 98, 58, 61, 168, 169, 192, + 54, 62, 64, 56, 129, 192, 58, 54, 62, 58, + 54, 62, 58, 155, 155, 55, 60, 155, 60, 59, + 155, 58, 61, 62, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 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 + 155, 155, 155, 155, 47, 100, 191, 172, 173, 192, + 11, 19, 22, 23, 24, 26, 27, 28, 29, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 57, 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, 166, 167, 177, 178, 181, 192, 155, + 172, 192, 155, 172, 192, 155, 55, 55, 155, 59, + 155, 155, 192, 63, 59, 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, 181, 181, 57, 125, 64, 64, 64, 64, 64, + 17, 18, 20, 21, 66, 67, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 59, 55, 54, + 59, 55, 54, 59, 60, 59, 155, 172, 12, 124, + 64, 55, 155, 27, 155, 130, 157, 158, 159, 181, + 192, 155, 63, 63, 64, 172, 172, 54, 54, 54, + 54, 155, 155, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 59, 172, 59, 172, 59, 155, 54, 55, + 64, 55, 54, 55, 64, 30, 60, 55, 55, 55, + 155, 155, 155, 155, 54, 55, 54, 55, 54, 55, + 172, 124, 155, 124, 155, 156, 155, 192, 129, 64, + 64, 55, 55, 60, 55, 60, 55, 60, 172, 172, + 172, 55, 25, 55, 64, 55, 30, 64, 64, 173, + 64, 173, 64, 173, 55, 55, 55, 124, 64, 130, + 124, 155, 55, 55, 55, 55, 55, 64, 64, 64, + 124, 124 }; const unsigned char @@ -4554,13 +4614,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, 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 + 162, 162, 163, 164, 164, 164, 164, 165, 166, 166, + 167, 167, 168, 168, 168, 168, 168, 168, 169, 169, + 169, 169, 170, 171, 171, 171, 172, 172, 173, 173, + 174, 175, 176, 176, 177, 178, 179, 180, 181, 181, + 181, 181, 181, 181, 181, 181, 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 @@ -4582,13 +4642,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, 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, 2, 2, 2, 2, 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, - 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 7, 2, 1, 2, 1, 1, 1 + 1, 1, 1, 7, 2, 1, 2, 1, 1, 1 }; @@ -4614,13 +4674,13 @@ namespace xsk { namespace gsc { namespace iw8 { 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 + 646, 647, 651, 656, 658, 660, 662, 667, 672, 673, + 676, 677, 681, 683, 685, 687, 689, 691, 696, 698, + 700, 702, 707, 712, 714, 717, 721, 724, 728, 730, + 735, 740, 745, 747, 752, 757, 762, 767, 772, 773, + 774, 775, 776, 777, 778, 779, 780, 784, 789, 794, + 799, 804, 809, 814, 819, 824, 829, 834, 836, 841, + 843, 848, 853, 858, 863, 865, 870, 872, 877, 882 }; void @@ -4653,9 +4713,9 @@ namespace xsk { namespace gsc { namespace iw8 { #line 13 "parser.ypp" } } } // xsk::gsc::iw8 -#line 4657 "parser.cpp" +#line 4717 "parser.cpp" -#line 880 "parser.ypp" +#line 886 "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 d49df608..0365fd5f 100644 --- a/src/iw8/xsk/parser.hpp +++ b/src/iw8/xsk/parser.hpp @@ -447,7 +447,6 @@ namespace xsk { namespace gsc { namespace iw8 { // expr_binary // expr_primitive // expr_object - // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -512,134 +511,137 @@ namespace xsk { namespace gsc { namespace iw8 { // expr_method char dummy26[sizeof (ast::expr_method::ptr)]; + // expr_negate + char dummy27[sizeof (ast::expr_negate::ptr)]; + // expr_not - char dummy27[sizeof (ast::expr_not::ptr)]; + char dummy28[sizeof (ast::expr_not::ptr)]; // expr_parameters - char dummy28[sizeof (ast::expr_parameters::ptr)]; + char dummy29[sizeof (ast::expr_parameters::ptr)]; // expr_paren - char dummy29[sizeof (ast::expr_paren::ptr)]; + char dummy30[sizeof (ast::expr_paren::ptr)]; // expr_path - char dummy30[sizeof (ast::expr_path::ptr)]; + char dummy31[sizeof (ast::expr_path::ptr)]; // expr_reference - char dummy31[sizeof (ast::expr_reference::ptr)]; + char dummy32[sizeof (ast::expr_reference::ptr)]; // expr_self - char dummy32[sizeof (ast::expr_self::ptr)]; + char dummy33[sizeof (ast::expr_self::ptr)]; // expr_size - char dummy33[sizeof (ast::expr_size::ptr)]; + char dummy34[sizeof (ast::expr_size::ptr)]; // expr_string - char dummy34[sizeof (ast::expr_string::ptr)]; + char dummy35[sizeof (ast::expr_string::ptr)]; // expr_thisthread - char dummy35[sizeof (ast::expr_thisthread::ptr)]; + char dummy36[sizeof (ast::expr_thisthread::ptr)]; // expr_true - char dummy36[sizeof (ast::expr_true::ptr)]; + char dummy37[sizeof (ast::expr_true::ptr)]; // expr_undefined - char dummy37[sizeof (ast::expr_undefined::ptr)]; + char dummy38[sizeof (ast::expr_undefined::ptr)]; // expr_vector - char dummy38[sizeof (ast::expr_vector::ptr)]; + char dummy39[sizeof (ast::expr_vector::ptr)]; // include - char dummy39[sizeof (ast::include::ptr)]; + char dummy40[sizeof (ast::include::ptr)]; // program - char dummy40[sizeof (ast::program::ptr)]; + char dummy41[sizeof (ast::program::ptr)]; // stmt // stmt_or_dev - char dummy41[sizeof (ast::stmt)]; + char dummy42[sizeof (ast::stmt)]; // stmt_assign - char dummy42[sizeof (ast::stmt_assign::ptr)]; + char dummy43[sizeof (ast::stmt_assign::ptr)]; // stmt_break - char dummy43[sizeof (ast::stmt_break::ptr)]; + char dummy44[sizeof (ast::stmt_break::ptr)]; // stmt_breakpoint - char dummy44[sizeof (ast::stmt_breakpoint::ptr)]; + char dummy45[sizeof (ast::stmt_breakpoint::ptr)]; // stmt_call - char dummy45[sizeof (ast::stmt_call::ptr)]; + char dummy46[sizeof (ast::stmt_call::ptr)]; // stmt_case - char dummy46[sizeof (ast::stmt_case::ptr)]; + char dummy47[sizeof (ast::stmt_case::ptr)]; // stmt_continue - char dummy47[sizeof (ast::stmt_continue::ptr)]; + char dummy48[sizeof (ast::stmt_continue::ptr)]; // stmt_default - char dummy48[sizeof (ast::stmt_default::ptr)]; + char dummy49[sizeof (ast::stmt_default::ptr)]; // stmt_dev - char dummy49[sizeof (ast::stmt_dev::ptr)]; + char dummy50[sizeof (ast::stmt_dev::ptr)]; // stmt_dowhile - char dummy50[sizeof (ast::stmt_dowhile::ptr)]; + char dummy51[sizeof (ast::stmt_dowhile::ptr)]; // stmt_endon - char dummy51[sizeof (ast::stmt_endon::ptr)]; + char dummy52[sizeof (ast::stmt_endon::ptr)]; // stmt_expr - char dummy52[sizeof (ast::stmt_expr::ptr)]; + char dummy53[sizeof (ast::stmt_expr::ptr)]; // stmt_for - char dummy53[sizeof (ast::stmt_for::ptr)]; + char dummy54[sizeof (ast::stmt_for::ptr)]; // stmt_foreach - char dummy54[sizeof (ast::stmt_foreach::ptr)]; + char dummy55[sizeof (ast::stmt_foreach::ptr)]; // stmt_if - char dummy55[sizeof (ast::stmt_if::ptr)]; + char dummy56[sizeof (ast::stmt_if::ptr)]; // stmt_ifelse - char dummy56[sizeof (ast::stmt_ifelse::ptr)]; + char dummy57[sizeof (ast::stmt_ifelse::ptr)]; // stmt_list // stmt_or_dev_list // stmt_block - char dummy57[sizeof (ast::stmt_list::ptr)]; + char dummy58[sizeof (ast::stmt_list::ptr)]; // stmt_notify - char dummy58[sizeof (ast::stmt_notify::ptr)]; + char dummy59[sizeof (ast::stmt_notify::ptr)]; // stmt_prof_begin - char dummy59[sizeof (ast::stmt_prof_begin::ptr)]; + char dummy60[sizeof (ast::stmt_prof_begin::ptr)]; // stmt_prof_end - char dummy60[sizeof (ast::stmt_prof_end::ptr)]; + char dummy61[sizeof (ast::stmt_prof_end::ptr)]; // stmt_return - char dummy61[sizeof (ast::stmt_return::ptr)]; + char dummy62[sizeof (ast::stmt_return::ptr)]; // stmt_switch - char dummy62[sizeof (ast::stmt_switch::ptr)]; + char dummy63[sizeof (ast::stmt_switch::ptr)]; // stmt_wait - char dummy63[sizeof (ast::stmt_wait::ptr)]; + char dummy64[sizeof (ast::stmt_wait::ptr)]; // stmt_waitframe - char dummy64[sizeof (ast::stmt_waitframe::ptr)]; + char dummy65[sizeof (ast::stmt_waitframe::ptr)]; // stmt_waittill - char dummy65[sizeof (ast::stmt_waittill::ptr)]; + char dummy66[sizeof (ast::stmt_waittill::ptr)]; // stmt_waittillframeend - char dummy66[sizeof (ast::stmt_waittillframeend::ptr)]; + char dummy67[sizeof (ast::stmt_waittillframeend::ptr)]; // stmt_waittillmatch - char dummy67[sizeof (ast::stmt_waittillmatch::ptr)]; + char dummy68[sizeof (ast::stmt_waittillmatch::ptr)]; // stmt_while - char dummy68[sizeof (ast::stmt_while::ptr)]; + char dummy69[sizeof (ast::stmt_while::ptr)]; // "path" // "identifier" @@ -647,7 +649,7 @@ namespace xsk { namespace gsc { namespace iw8 { // "localized string" // "float" // "integer" - char dummy69[sizeof (std::string)]; + char dummy70[sizeof (std::string)]; }; /// The size of the largest semantic type. @@ -994,33 +996,33 @@ namespace xsk { namespace gsc { namespace iw8 { S_expr_binary = 161, // expr_binary S_expr_primitive = 162, // expr_primitive S_expr_complement = 163, // expr_complement - S_expr_not = 164, // expr_not - S_expr_call = 165, // expr_call - S_expr_method = 166, // expr_method - S_expr_function = 167, // expr_function - S_expr_pointer = 168, // expr_pointer - S_expr_add_array = 169, // expr_add_array - S_expr_parameters = 170, // expr_parameters - S_expr_arguments = 171, // expr_arguments - S_expr_arguments_no_empty = 172, // expr_arguments_no_empty - S_expr_isdefined = 173, // expr_isdefined - S_expr_istrue = 174, // expr_istrue - S_expr_reference = 175, // expr_reference - S_expr_array = 176, // expr_array - S_expr_field = 177, // expr_field - S_expr_size = 178, // expr_size - S_expr_paren = 179, // expr_paren - S_expr_object = 180, // expr_object - S_expr_thisthread = 181, // expr_thisthread - S_expr_empty_array = 182, // expr_empty_array - S_expr_undefined = 183, // expr_undefined - S_expr_game = 184, // expr_game - S_expr_self = 185, // expr_self - S_expr_anim = 186, // expr_anim - S_expr_level = 187, // expr_level - S_expr_animation = 188, // expr_animation - S_expr_animtree = 189, // expr_animtree - S_expr_identifier_neg = 190, // expr_identifier_neg + S_expr_negate = 164, // expr_negate + S_expr_not = 165, // expr_not + S_expr_call = 166, // expr_call + S_expr_method = 167, // expr_method + S_expr_function = 168, // expr_function + S_expr_pointer = 169, // expr_pointer + S_expr_add_array = 170, // expr_add_array + S_expr_parameters = 171, // expr_parameters + S_expr_arguments = 172, // expr_arguments + S_expr_arguments_no_empty = 173, // expr_arguments_no_empty + S_expr_isdefined = 174, // expr_isdefined + S_expr_istrue = 175, // expr_istrue + S_expr_reference = 176, // expr_reference + S_expr_array = 177, // expr_array + S_expr_field = 178, // expr_field + S_expr_size = 179, // expr_size + S_expr_paren = 180, // expr_paren + S_expr_object = 181, // expr_object + S_expr_thisthread = 182, // expr_thisthread + S_expr_empty_array = 183, // expr_empty_array + S_expr_undefined = 184, // expr_undefined + S_expr_game = 185, // expr_game + S_expr_self = 186, // expr_self + S_expr_anim = 187, // expr_anim + S_expr_level = 188, // expr_level + S_expr_animation = 189, // expr_animation + S_expr_animtree = 190, // expr_animtree S_expr_identifier_nosize = 191, // expr_identifier_nosize S_expr_identifier = 192, // expr_identifier S_expr_path = 193, // expr_path @@ -1097,7 +1099,6 @@ 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; @@ -1183,6 +1184,10 @@ namespace xsk { namespace gsc { namespace iw8 { value.move< ast::expr_method::ptr > (std::move (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (std::move (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (std::move (that.value)); break; @@ -1750,6 +1755,20 @@ namespace xsk { namespace gsc { namespace iw8 { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, ast::expr_negate::ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const ast::expr_negate::ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ast::expr_not::ptr&& v, location_type&& l) : Base (t) @@ -2406,7 +2425,6 @@ 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; @@ -2492,6 +2510,10 @@ switch (yykind) value.template destroy< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + value.template destroy< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not value.template destroy< ast::expr_not::ptr > (); break; @@ -4903,7 +4925,7 @@ switch (yykind) /// Constants. enum { - yylast_ = 2360, ///< Last index in yytable_. + yylast_ = 2481, ///< Last index in yytable_. yynnts_ = 86, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4961,7 +4983,6 @@ 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; @@ -5047,6 +5068,10 @@ switch (yykind) value.copy< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -5288,7 +5313,6 @@ 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; @@ -5374,6 +5398,10 @@ switch (yykind) value.move< ast::expr_method::ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (s.value)); break; @@ -5621,7 +5649,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::iw8 -#line 5625 "parser.hpp" +#line 5653 "parser.hpp" diff --git a/src/s1/xsk/compiler.cpp b/src/s1/xsk/compiler.cpp index d32681a8..e5543ccc 100644 --- a/src/s1/xsk/compiler.cpp +++ b/src/s1/xsk/compiler.cpp @@ -946,6 +946,9 @@ void compiler::emit_expr(const ast::expr& expr, const block::ptr& blk) case ast::kind::expr_complement: emit_expr_complement(expr.as_complement, blk); break; + case ast::kind::expr_negate: + emit_expr_negate(expr.as_negate, blk); + break; case ast::kind::expr_not: emit_expr_not(expr.as_not, blk); break; @@ -1259,6 +1262,13 @@ void compiler::emit_expr_complement(const ast::expr_complement::ptr& expr, const emit_opcode(opcode::OP_BoolComplement); } +void compiler::emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk) +{ + emit_opcode(opcode::OP_GetZero); + emit_expr(expr->rvalue, blk); + emit_opcode(opcode::OP_minus); +} + void compiler::emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk) { emit_expr(expr->rvalue, blk); diff --git a/src/s1/xsk/compiler.hpp b/src/s1/xsk/compiler.hpp index 49ae5b87..63d47671 100644 --- a/src/s1/xsk/compiler.hpp +++ b/src/s1/xsk/compiler.hpp @@ -83,6 +83,7 @@ private: void emit_expr_and(const ast::expr_and::ptr& expr, const block::ptr& blk); void emit_expr_or(const ast::expr_or::ptr& expr, const block::ptr& blk); void emit_expr_complement(const ast::expr_complement::ptr& expr, const block::ptr& blk); + void emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk); void emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk); void emit_expr_call(const ast::expr_call::ptr& expr, const block::ptr& blk, bool is_stmt); void emit_expr_call_pointer(const ast::expr_pointer::ptr& expr, const block::ptr& blk, bool is_stmt); diff --git a/src/s1/xsk/parser.cpp b/src/s1/xsk/parser.cpp index d7f038d7..0f6d5e24 100644 --- a/src/s1/xsk/parser.cpp +++ b/src/s1/xsk/parser.cpp @@ -245,7 +245,6 @@ 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; @@ -323,6 +322,10 @@ namespace xsk { namespace gsc { namespace s1 { value.YY_MOVE_OR_COPY< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.YY_MOVE_OR_COPY< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.YY_MOVE_OR_COPY< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -548,7 +551,6 @@ 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; @@ -626,6 +628,10 @@ namespace xsk { namespace gsc { namespace s1 { value.move< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -851,7 +857,6 @@ 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; @@ -929,6 +934,10 @@ namespace xsk { namespace gsc { namespace s1 { value.copy< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (that.value); break; @@ -1153,7 +1162,6 @@ 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; @@ -1231,6 +1239,10 @@ namespace xsk { namespace gsc { namespace s1 { value.move< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (that.value); break; @@ -1710,7 +1722,6 @@ 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; @@ -1788,6 +1799,10 @@ namespace xsk { namespace gsc { namespace s1 { yylhs.value.emplace< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + yylhs.value.emplace< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not yylhs.value.emplace< ast::expr_not::ptr > (); break; @@ -1991,1331 +2006,1349 @@ namespace xsk { namespace gsc { namespace s1 { case 2: // root: program #line 260 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1995 "parser.cpp" +#line 2010 "parser.cpp" break; case 3: // root: %empty #line 261 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 2001 "parser.cpp" +#line 2016 "parser.cpp" break; case 4: // program: program inline #line 266 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2007 "parser.cpp" +#line 2022 "parser.cpp" break; case 5: // program: program include #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 2013 "parser.cpp" +#line 2028 "parser.cpp" break; case 6: // program: program declaration #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 2019 "parser.cpp" +#line 2034 "parser.cpp" break; case 7: // program: inline #line 272 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2025 "parser.cpp" +#line 2040 "parser.cpp" break; case 8: // program: include #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 2031 "parser.cpp" +#line 2046 "parser.cpp" break; case 9: // program: declaration #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 2037 "parser.cpp" +#line 2052 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" #line 280 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2043 "parser.cpp" +#line 2058 "parser.cpp" break; case 11: // include: "#include" expr_path ";" #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 2049 "parser.cpp" +#line 2064 "parser.cpp" break; case 12: // declaration: "/#" #line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2055 "parser.cpp" +#line 2070 "parser.cpp" break; case 13: // declaration: "#/" #line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2061 "parser.cpp" +#line 2076 "parser.cpp" break; case 14: // declaration: decl_usingtree #line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2067 "parser.cpp" +#line 2082 "parser.cpp" break; case 15: // declaration: decl_constant #line 292 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2073 "parser.cpp" +#line 2088 "parser.cpp" break; case 16: // declaration: decl_thread #line 293 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2079 "parser.cpp" +#line 2094 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" #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 2085 "parser.cpp" +#line 2100 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" #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 2091 "parser.cpp" +#line 2106 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block #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 2097 "parser.cpp" +#line 2112 "parser.cpp" break; case 20: // stmt: stmt_block #line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2103 "parser.cpp" +#line 2118 "parser.cpp" break; case 21: // stmt: stmt_call #line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2109 "parser.cpp" +#line 2124 "parser.cpp" break; case 22: // stmt: stmt_assign #line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2115 "parser.cpp" +#line 2130 "parser.cpp" break; case 23: // stmt: stmt_endon #line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2121 "parser.cpp" +#line 2136 "parser.cpp" break; case 24: // stmt: stmt_notify #line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2127 "parser.cpp" +#line 2142 "parser.cpp" break; case 25: // stmt: stmt_wait #line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2133 "parser.cpp" +#line 2148 "parser.cpp" break; case 26: // stmt: stmt_waittill #line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2139 "parser.cpp" +#line 2154 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch #line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2145 "parser.cpp" +#line 2160 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend #line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2151 "parser.cpp" +#line 2166 "parser.cpp" break; case 29: // stmt: stmt_waitframe #line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waitframe = std::move(yystack_[0].value.as < ast::stmt_waitframe::ptr > ()); } -#line 2157 "parser.cpp" +#line 2172 "parser.cpp" break; case 30: // stmt: stmt_if #line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2163 "parser.cpp" +#line 2178 "parser.cpp" break; case 31: // stmt: stmt_ifelse #line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2169 "parser.cpp" +#line 2184 "parser.cpp" break; case 32: // stmt: stmt_while #line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2175 "parser.cpp" +#line 2190 "parser.cpp" break; case 33: // stmt: stmt_dowhile #line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2181 "parser.cpp" +#line 2196 "parser.cpp" break; case 34: // stmt: stmt_for #line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2187 "parser.cpp" +#line 2202 "parser.cpp" break; case 35: // stmt: stmt_foreach #line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2193 "parser.cpp" +#line 2208 "parser.cpp" break; case 36: // stmt: stmt_switch #line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2199 "parser.cpp" +#line 2214 "parser.cpp" break; case 37: // stmt: stmt_case #line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2205 "parser.cpp" +#line 2220 "parser.cpp" break; case 38: // stmt: stmt_default #line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2211 "parser.cpp" +#line 2226 "parser.cpp" break; case 39: // stmt: stmt_break #line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2217 "parser.cpp" +#line 2232 "parser.cpp" break; case 40: // stmt: stmt_continue #line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2223 "parser.cpp" +#line 2238 "parser.cpp" break; case 41: // stmt: stmt_return #line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2229 "parser.cpp" +#line 2244 "parser.cpp" break; case 42: // stmt: stmt_breakpoint #line 334 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2235 "parser.cpp" +#line 2250 "parser.cpp" break; case 43: // stmt: stmt_prof_begin #line 335 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2241 "parser.cpp" +#line 2256 "parser.cpp" break; case 44: // stmt: stmt_prof_end #line 336 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2247 "parser.cpp" +#line 2262 "parser.cpp" break; case 45: // stmt_or_dev: stmt #line 340 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2253 "parser.cpp" +#line 2268 "parser.cpp" break; case 46: // stmt_or_dev: stmt_dev #line 341 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2259 "parser.cpp" +#line 2274 "parser.cpp" break; case 47: // stmt_list: stmt_list stmt #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 2265 "parser.cpp" +#line 2280 "parser.cpp" break; case 48: // stmt_list: stmt #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 2271 "parser.cpp" +#line 2286 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev #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 2277 "parser.cpp" +#line 2292 "parser.cpp" break; case 50: // stmt_or_dev_list: stmt_or_dev #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 2283 "parser.cpp" +#line 2298 "parser.cpp" break; case 51: // stmt_dev: "/#" stmt_list "#/" #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 2289 "parser.cpp" +#line 2304 "parser.cpp" break; case 52: // stmt_dev: "/#" "#/" #line 360 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2295 "parser.cpp" +#line 2310 "parser.cpp" break; case 53: // stmt_block: "{" stmt_or_dev_list "}" #line 364 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2301 "parser.cpp" +#line 2316 "parser.cpp" break; case 54: // stmt_block: "{" "}" #line 365 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2307 "parser.cpp" +#line 2322 "parser.cpp" break; case 55: // stmt_expr: expr_assign #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 2313 "parser.cpp" +#line 2328 "parser.cpp" break; case 56: // stmt_expr: expr_increment #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 2319 "parser.cpp" +#line 2334 "parser.cpp" break; case 57: // stmt_expr: expr_decrement #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 2325 "parser.cpp" +#line 2340 "parser.cpp" break; case 58: // stmt_expr: %empty #line 376 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2331 "parser.cpp" +#line 2346 "parser.cpp" break; case 59: // stmt_call: expr_call ";" #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 2337 "parser.cpp" +#line 2352 "parser.cpp" break; case 60: // stmt_call: expr_method ";" #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 2343 "parser.cpp" +#line 2358 "parser.cpp" break; case 61: // stmt_assign: expr_assign ";" #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 2349 "parser.cpp" +#line 2364 "parser.cpp" break; case 62: // stmt_assign: expr_increment ";" #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 2355 "parser.cpp" +#line 2370 "parser.cpp" break; case 63: // stmt_assign: expr_decrement ";" #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 2361 "parser.cpp" +#line 2376 "parser.cpp" break; case 64: // stmt_endon: expr_object "endon" "(" expr ")" ";" #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 2367 "parser.cpp" +#line 2382 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" #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 2373 "parser.cpp" +#line 2388 "parser.cpp" break; case 66: // stmt_notify: expr_object "notify" "(" expr ")" ";" #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 2379 "parser.cpp" +#line 2394 "parser.cpp" break; case 67: // stmt_wait: "wait" expr ";" #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 2385 "parser.cpp" +#line 2400 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" #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 2391 "parser.cpp" +#line 2406 "parser.cpp" break; case 69: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" #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 2397 "parser.cpp" +#line 2412 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" #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 2403 "parser.cpp" +#line 2418 "parser.cpp" break; case 71: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" #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 2409 "parser.cpp" +#line 2424 "parser.cpp" break; case 72: // stmt_waittillframeend: "waittillframeend" ";" #line 428 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2415 "parser.cpp" +#line 2430 "parser.cpp" break; case 73: // stmt_waitframe: "waitframe" ";" #line 433 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2421 "parser.cpp" +#line 2436 "parser.cpp" break; case 74: // stmt_waitframe: "waitframe" "(" ")" ";" #line 435 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2427 "parser.cpp" +#line 2442 "parser.cpp" break; case 75: // stmt_if: "if" "(" expr ")" stmt #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 2433 "parser.cpp" +#line 2448 "parser.cpp" break; case 76: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt #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 2439 "parser.cpp" +#line 2454 "parser.cpp" break; case 77: // stmt_while: "while" "(" expr ")" stmt #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 2445 "parser.cpp" +#line 2460 "parser.cpp" break; case 78: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" #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 2451 "parser.cpp" +#line 2466 "parser.cpp" break; case 79: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt #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 2457 "parser.cpp" +#line 2472 "parser.cpp" break; case 80: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt #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 2463 "parser.cpp" +#line 2478 "parser.cpp" break; case 81: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt #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 2469 "parser.cpp" +#line 2484 "parser.cpp" break; case 82: // stmt_switch: "switch" "(" expr ")" stmt_block #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 2475 "parser.cpp" +#line 2490 "parser.cpp" break; case 83: // stmt_case: "case" expr_integer ":" #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 2481 "parser.cpp" +#line 2496 "parser.cpp" break; case 84: // stmt_case: "case" expr_string ":" #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 2487 "parser.cpp" +#line 2502 "parser.cpp" break; case 85: // stmt_default: "default" ":" #line 484 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2493 "parser.cpp" +#line 2508 "parser.cpp" break; case 86: // stmt_break: "break" ";" #line 489 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2499 "parser.cpp" +#line 2514 "parser.cpp" break; case 87: // stmt_continue: "continue" ";" #line 494 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2505 "parser.cpp" +#line 2520 "parser.cpp" break; case 88: // stmt_return: "return" expr ";" #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 2511 "parser.cpp" +#line 2526 "parser.cpp" break; case 89: // stmt_return: "return" ";" #line 501 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2517 "parser.cpp" +#line 2532 "parser.cpp" break; case 90: // stmt_breakpoint: "breakpoint" ";" #line 506 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2523 "parser.cpp" +#line 2538 "parser.cpp" break; case 91: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" #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 2529 "parser.cpp" +#line 2544 "parser.cpp" break; case 92: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" #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 2535 "parser.cpp" +#line 2550 "parser.cpp" break; case 93: // expr: expr_ternary #line 520 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2541 "parser.cpp" +#line 2556 "parser.cpp" break; case 94: // expr: expr_binary #line 521 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2547 "parser.cpp" +#line 2562 "parser.cpp" break; case 95: // expr: expr_primitive #line 522 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2553 "parser.cpp" +#line 2568 "parser.cpp" break; case 96: // expr_or_empty: expr #line 526 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2559 "parser.cpp" +#line 2574 "parser.cpp" break; case 97: // expr_or_empty: %empty #line 527 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2565 "parser.cpp" +#line 2580 "parser.cpp" break; case 98: // expr_assign: expr_object "=" expr #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 2571 "parser.cpp" +#line 2586 "parser.cpp" break; case 99: // expr_assign: expr_object "|=" expr #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 2577 "parser.cpp" +#line 2592 "parser.cpp" break; case 100: // expr_assign: expr_object "&=" expr #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 2583 "parser.cpp" +#line 2598 "parser.cpp" break; case 101: // expr_assign: expr_object "^=" expr #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 2589 "parser.cpp" +#line 2604 "parser.cpp" break; case 102: // expr_assign: expr_object "<<=" expr #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 2595 "parser.cpp" +#line 2610 "parser.cpp" break; case 103: // expr_assign: expr_object ">>=" expr #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 2601 "parser.cpp" +#line 2616 "parser.cpp" break; case 104: // expr_assign: expr_object "+=" expr #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 2607 "parser.cpp" +#line 2622 "parser.cpp" break; case 105: // expr_assign: expr_object "-=" expr #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 2613 "parser.cpp" +#line 2628 "parser.cpp" break; case 106: // expr_assign: expr_object "*=" expr #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 2619 "parser.cpp" +#line 2634 "parser.cpp" break; case 107: // expr_assign: expr_object "/=" expr #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 2625 "parser.cpp" +#line 2640 "parser.cpp" break; case 108: // expr_assign: expr_object "%=" expr #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 2631 "parser.cpp" +#line 2646 "parser.cpp" break; case 109: // expr_increment: "++" expr_object #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 2637 "parser.cpp" +#line 2652 "parser.cpp" break; case 110: // expr_increment: expr_object "++" #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 2643 "parser.cpp" +#line 2658 "parser.cpp" break; case 111: // expr_decrement: "--" expr_object #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 2649 "parser.cpp" +#line 2664 "parser.cpp" break; case 112: // expr_decrement: expr_object "--" #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 2655 "parser.cpp" +#line 2670 "parser.cpp" break; case 113: // expr_ternary: expr "?" expr ":" expr #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 2661 "parser.cpp" +#line 2676 "parser.cpp" break; case 114: // expr_binary: expr "||" expr #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 2667 "parser.cpp" +#line 2682 "parser.cpp" break; case 115: // expr_binary: expr "&&" expr #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 2673 "parser.cpp" +#line 2688 "parser.cpp" break; case 116: // expr_binary: expr "==" expr #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 2679 "parser.cpp" +#line 2694 "parser.cpp" break; case 117: // expr_binary: expr "!=" expr #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 2685 "parser.cpp" +#line 2700 "parser.cpp" break; case 118: // expr_binary: expr "<=" expr #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 2691 "parser.cpp" +#line 2706 "parser.cpp" break; case 119: // expr_binary: expr ">=" expr #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 2697 "parser.cpp" +#line 2712 "parser.cpp" break; case 120: // expr_binary: expr "<" expr #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 2703 "parser.cpp" +#line 2718 "parser.cpp" break; case 121: // expr_binary: expr ">" expr #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 2709 "parser.cpp" +#line 2724 "parser.cpp" break; case 122: // expr_binary: expr "|" expr #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 2715 "parser.cpp" +#line 2730 "parser.cpp" break; case 123: // expr_binary: expr "&" expr #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 2721 "parser.cpp" +#line 2736 "parser.cpp" break; case 124: // expr_binary: expr "^" expr #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 2727 "parser.cpp" +#line 2742 "parser.cpp" break; case 125: // expr_binary: expr "<<" expr #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 2733 "parser.cpp" +#line 2748 "parser.cpp" break; case 126: // expr_binary: expr ">>" expr #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 2739 "parser.cpp" +#line 2754 "parser.cpp" break; case 127: // expr_binary: expr "+" expr #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 2745 "parser.cpp" +#line 2760 "parser.cpp" break; case 128: // expr_binary: expr "-" expr #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 2751 "parser.cpp" +#line 2766 "parser.cpp" break; case 129: // expr_binary: expr "*" expr #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 2757 "parser.cpp" +#line 2772 "parser.cpp" break; case 130: // expr_binary: expr "/" expr #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 2763 "parser.cpp" +#line 2778 "parser.cpp" break; case 131: // expr_binary: expr "%" expr #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 2769 "parser.cpp" +#line 2784 "parser.cpp" break; case 132: // expr_primitive: expr_complement #line 614 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2775 "parser.cpp" +#line 2790 "parser.cpp" break; - case 133: // expr_primitive: expr_not + case 133: // expr_primitive: expr_negate #line 615 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2781 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_negate::ptr > ()); } +#line 2796 "parser.cpp" break; - case 134: // expr_primitive: expr_call + case 134: // expr_primitive: expr_not #line 616 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2787 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } +#line 2802 "parser.cpp" break; - case 135: // expr_primitive: expr_method + case 135: // expr_primitive: expr_call #line 617 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2793 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 2808 "parser.cpp" break; - case 136: // expr_primitive: expr_add_array + case 136: // expr_primitive: expr_method #line 618 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2799 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 2814 "parser.cpp" break; - case 137: // expr_primitive: expr_reference + case 137: // expr_primitive: expr_add_array #line 619 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2805 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } +#line 2820 "parser.cpp" break; - case 138: // expr_primitive: expr_array + case 138: // expr_primitive: expr_reference #line 620 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2811 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } +#line 2826 "parser.cpp" break; - case 139: // expr_primitive: expr_field + case 139: // expr_primitive: expr_array #line 621 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2817 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 2832 "parser.cpp" break; - case 140: // expr_primitive: expr_size + case 140: // expr_primitive: expr_field #line 622 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2823 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 2838 "parser.cpp" break; - case 141: // expr_primitive: expr_paren + case 141: // expr_primitive: expr_size #line 623 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2829 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } +#line 2844 "parser.cpp" break; - case 142: // expr_primitive: expr_thisthread + case 142: // expr_primitive: expr_paren #line 624 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2835 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } +#line 2850 "parser.cpp" break; - case 143: // expr_primitive: expr_empty_array + case 143: // expr_primitive: expr_thisthread #line 625 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2841 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } +#line 2856 "parser.cpp" break; - case 144: // expr_primitive: expr_undefined + case 144: // expr_primitive: expr_empty_array #line 626 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2847 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } +#line 2862 "parser.cpp" break; - case 145: // expr_primitive: expr_game + case 145: // expr_primitive: expr_undefined #line 627 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2853 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } +#line 2868 "parser.cpp" break; - case 146: // expr_primitive: expr_self + case 146: // expr_primitive: expr_game #line 628 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2859 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 2874 "parser.cpp" break; - case 147: // expr_primitive: expr_anim + case 147: // expr_primitive: expr_self #line 629 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2865 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 2880 "parser.cpp" break; - case 148: // expr_primitive: expr_level + case 148: // expr_primitive: expr_anim #line 630 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2871 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 2886 "parser.cpp" break; - case 149: // expr_primitive: expr_animation + case 149: // expr_primitive: expr_level #line 631 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2877 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 2892 "parser.cpp" break; - case 150: // expr_primitive: expr_animtree + case 150: // expr_primitive: expr_animation #line 632 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2883 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } +#line 2898 "parser.cpp" break; - case 151: // expr_primitive: expr_identifier_neg + case 151: // expr_primitive: expr_animtree #line 633 "parser.ypp" - { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2889 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2904 "parser.cpp" break; 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_identifier::ptr > ()); } -#line 2895 "parser.cpp" +#line 2910 "parser.cpp" break; 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_istring::ptr > ()); } -#line 2901 "parser.cpp" +#line 2916 "parser.cpp" break; 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_string::ptr > ()); } -#line 2907 "parser.cpp" +#line 2922 "parser.cpp" break; 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_vector::ptr > ()); } -#line 2913 "parser.cpp" +#line 2928 "parser.cpp" break; 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_float::ptr > ()); } -#line 2919 "parser.cpp" +#line 2934 "parser.cpp" break; 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" +#line 2940 "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" +#line 2946 "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 2937 "parser.cpp" +#line 2952 "parser.cpp" break; 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 2943 "parser.cpp" +#line 2958 "parser.cpp" break; - case 161: // expr_not: "!" expr + case 161: // expr_negate: "-" expr_identifier #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 2949 "parser.cpp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()))); } +#line 2964 "parser.cpp" break; - case 162: // expr_call: expr_function + case 162: // expr_negate: "-" expr_paren +#line 653 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()))); } +#line 2970 "parser.cpp" + break; + + case 163: // expr_negate: "-" expr_array #line 655 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_array::ptr > ()))); } +#line 2976 "parser.cpp" + break; + + case 164: // expr_negate: "-" expr_field +#line 657 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_field::ptr > ()))); } +#line 2982 "parser.cpp" + break; + + case 165: // expr_not: "!" expr +#line 662 "parser.ypp" + { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } +#line 2988 "parser.cpp" + break; + + case 166: // expr_call: expr_function +#line 666 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2955 "parser.cpp" +#line 2994 "parser.cpp" break; - 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 2961 "parser.cpp" - break; - - 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 2967 "parser.cpp" - break; - - 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 2973 "parser.cpp" - break; - - 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::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: expr_path "::" expr_identifier "(" expr_arguments ")" + case 167: // expr_call: expr_pointer #line 667 "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 2985 "parser.cpp" + { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } +#line 3000 "parser.cpp" break; - 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::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" + case 168: // expr_method: expr_object expr_function +#line 670 "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 3006 "parser.cpp" break; - case 169: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 169: // expr_method: expr_object expr_pointer #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::thread); } -#line 2997 "parser.cpp" + { 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 3012 "parser.cpp" break; - 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" + case 170: // expr_function: expr_identifier "(" expr_arguments ")" +#line 676 "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 3018 "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 3009 "parser.cpp" + case 171: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" +#line 678 "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 3024 "parser.cpp" break; - case 172: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" + case 172: // expr_function: "thread" expr_identifier "(" 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::normal); } -#line 3015 "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 3030 "parser.cpp" break; - case 173: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 173: // expr_function: "thread" expr_path "::" expr_identifier "(" 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::thread); } -#line 3021 "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 3036 "parser.cpp" break; - case 174: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 174: // expr_function: "childthread" expr_identifier "(" 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" + { 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 3042 "parser.cpp" break; - case 175: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 175: // expr_function: "childthread" expr_path "::" expr_identifier "(" 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 3033 "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::childthread); } +#line 3048 "parser.cpp" break; - case 176: // expr_add_array: "[" expr_arguments_no_empty "]" + case 176: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 691 "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 3054 "parser.cpp" + break; + + case 177: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 693 "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 3060 "parser.cpp" + break; + + case 178: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 695 "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 3066 "parser.cpp" + break; + + case 179: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 697 "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 3072 "parser.cpp" + break; + + case 180: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 702 "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 3039 "parser.cpp" +#line 3078 "parser.cpp" break; - case 177: // expr_parameters: expr_parameters "," expr_identifier -#line 696 "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 3045 "parser.cpp" - break; - - 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 3057 "parser.cpp" - break; - - 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 + case 181: // expr_parameters: expr_parameters "," expr_identifier #line 707 "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 3084 "parser.cpp" + break; + + case 182: // expr_parameters: expr_identifier +#line 709 "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 3090 "parser.cpp" + break; + + case 183: // expr_parameters: %empty +#line 711 "parser.ypp" + { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } +#line 3096 "parser.cpp" + break; + + case 184: // expr_arguments: expr_arguments_no_empty +#line 716 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3102 "parser.cpp" + break; + + case 185: // expr_arguments: %empty +#line 718 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3069 "parser.cpp" +#line 3108 "parser.cpp" break; - case 182: // expr_arguments_no_empty: expr_arguments "," expr -#line 712 "parser.ypp" + case 186: // expr_arguments_no_empty: expr_arguments "," expr +#line 723 "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" +#line 3114 "parser.cpp" break; - case 183: // expr_arguments_no_empty: expr -#line 714 "parser.ypp" + case 187: // expr_arguments_no_empty: expr +#line 725 "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 3081 "parser.cpp" +#line 3120 "parser.cpp" break; - case 184: // expr_reference: "::" expr_identifier -#line 719 "parser.ypp" + case 188: // expr_reference: "::" expr_identifier +#line 730 "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" +#line 3126 "parser.cpp" break; - case 185: // expr_reference: expr_path "::" expr_identifier -#line 721 "parser.ypp" + case 189: // expr_reference: expr_path "::" expr_identifier +#line 732 "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 3093 "parser.cpp" +#line 3132 "parser.cpp" break; - case 186: // expr_array: expr_object "[" expr "]" -#line 726 "parser.ypp" + case 190: // expr_array: expr_object "[" expr "]" +#line 737 "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 3099 "parser.cpp" +#line 3138 "parser.cpp" break; - case 187: // expr_field: expr_object "." expr_identifier_nosize -#line 731 "parser.ypp" + case 191: // expr_field: expr_object "." expr_identifier_nosize +#line 742 "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 3105 "parser.cpp" +#line 3144 "parser.cpp" break; - 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 3111 "parser.cpp" - break; - - 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 3117 "parser.cpp" - break; - - 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_call::ptr > ()); } -#line 3123 "parser.cpp" - break; - - 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_method::ptr > ()); } -#line 3129 "parser.cpp" - break; - - case 192: // expr_object: expr_array + case 192: // expr_size: expr_object "." "size" #line 747 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3135 "parser.cpp" + { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } +#line 3150 "parser.cpp" break; - 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_field::ptr > ()); } -#line 3141 "parser.cpp" - break; - - 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_game::ptr > ()); } -#line 3147 "parser.cpp" - break; - - 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_self::ptr > ()); } -#line 3153 "parser.cpp" - break; - - 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 + case 193: // expr_paren: "(" expr ")" #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" + { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3156 "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 3171 "parser.cpp" + case 194: // expr_object: expr_call +#line 756 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3162 "parser.cpp" break; - case 199: // expr_thisthread: "thisthread" + case 195: // expr_object: expr_method +#line 757 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3168 "parser.cpp" + break; + + case 196: // expr_object: expr_array #line 758 "parser.ypp" - { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3177 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3174 "parser.cpp" break; - case 200: // expr_empty_array: "[" "]" + case 197: // expr_object: expr_field +#line 759 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3180 "parser.cpp" + break; + + case 198: // expr_object: expr_game +#line 760 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3186 "parser.cpp" + break; + + case 199: // expr_object: expr_self +#line 761 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3192 "parser.cpp" + break; + + case 200: // expr_object: expr_anim +#line 762 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3198 "parser.cpp" + break; + + case 201: // expr_object: expr_level #line 763 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3204 "parser.cpp" + break; + + case 202: // expr_object: expr_identifier +#line 764 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 3210 "parser.cpp" + break; + + case 203: // expr_thisthread: "thisthread" +#line 769 "parser.ypp" + { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } +#line 3216 "parser.cpp" + break; + + case 204: // expr_empty_array: "[" "]" +#line 774 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3183 "parser.cpp" +#line 3222 "parser.cpp" break; - case 201: // expr_undefined: "undefined" -#line 768 "parser.ypp" + case 205: // expr_undefined: "undefined" +#line 779 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3189 "parser.cpp" +#line 3228 "parser.cpp" break; - case 202: // expr_game: "game" -#line 773 "parser.ypp" + case 206: // expr_game: "game" +#line 784 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3195 "parser.cpp" +#line 3234 "parser.cpp" break; - case 203: // expr_self: "self" -#line 778 "parser.ypp" + case 207: // expr_self: "self" +#line 789 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3201 "parser.cpp" +#line 3240 "parser.cpp" break; - case 204: // expr_anim: "anim" -#line 783 "parser.ypp" + case 208: // expr_anim: "anim" +#line 794 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3207 "parser.cpp" +#line 3246 "parser.cpp" break; - case 205: // expr_level: "level" -#line 788 "parser.ypp" + case 209: // expr_level: "level" +#line 799 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3213 "parser.cpp" +#line 3252 "parser.cpp" break; - case 206: // expr_animation: "%" "identifier" -#line 793 "parser.ypp" + case 210: // expr_animation: "%" "identifier" +#line 804 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3219 "parser.cpp" +#line 3258 "parser.cpp" break; - case 207: // expr_animtree: "#animtree" -#line 798 "parser.ypp" + case 211: // expr_animtree: "#animtree" +#line 809 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3225 "parser.cpp" +#line 3264 "parser.cpp" break; - 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 209: // expr_identifier_nosize: "identifier" -#line 808 "parser.ypp" + case 212: // expr_identifier_nosize: "identifier" +#line 814 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3237 "parser.cpp" +#line 3270 "parser.cpp" break; - case 210: // expr_identifier: "identifier" -#line 813 "parser.ypp" + case 213: // expr_identifier: "identifier" +#line 819 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3243 "parser.cpp" +#line 3276 "parser.cpp" break; - case 211: // expr_identifier: "size" -#line 815 "parser.ypp" + case 214: // expr_identifier: "size" +#line 821 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3249 "parser.cpp" +#line 3282 "parser.cpp" break; - case 212: // expr_path: "identifier" -#line 820 "parser.ypp" + case 215: // expr_path: "identifier" +#line 826 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3255 "parser.cpp" +#line 3288 "parser.cpp" break; - case 213: // expr_path: "path" -#line 822 "parser.ypp" + case 216: // expr_path: "path" +#line 828 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3261 "parser.cpp" +#line 3294 "parser.cpp" break; - case 214: // expr_istring: "localized string" -#line 827 "parser.ypp" + case 217: // expr_istring: "localized string" +#line 833 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3267 "parser.cpp" +#line 3300 "parser.cpp" break; - case 215: // expr_string: "string literal" -#line 832 "parser.ypp" + case 218: // expr_string: "string literal" +#line 838 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3273 "parser.cpp" +#line 3306 "parser.cpp" break; - case 216: // expr_vector: "(" expr "," expr "," expr ")" -#line 837 "parser.ypp" + case 219: // expr_vector: "(" expr "," expr "," expr ")" +#line 843 "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 3279 "parser.cpp" +#line 3312 "parser.cpp" break; - case 217: // expr_float: "-" "float" -#line 842 "parser.ypp" + case 220: // expr_float: "-" "float" +#line 848 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3285 "parser.cpp" +#line 3318 "parser.cpp" break; - case 218: // expr_float: "float" -#line 844 "parser.ypp" + case 221: // expr_float: "float" +#line 850 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3291 "parser.cpp" +#line 3324 "parser.cpp" break; - case 219: // expr_integer: "-" "integer" -#line 849 "parser.ypp" + case 222: // expr_integer: "-" "integer" +#line 855 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3297 "parser.cpp" +#line 3330 "parser.cpp" break; - case 220: // expr_integer: "integer" -#line 851 "parser.ypp" + case 223: // expr_integer: "integer" +#line 857 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3303 "parser.cpp" +#line 3336 "parser.cpp" break; - case 221: // expr_false: "false" -#line 856 "parser.ypp" + case 224: // expr_false: "false" +#line 862 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3309 "parser.cpp" +#line 3342 "parser.cpp" break; - case 222: // expr_true: "true" -#line 861 "parser.ypp" + case 225: // expr_true: "true" +#line 867 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3315 "parser.cpp" +#line 3348 "parser.cpp" break; -#line 3319 "parser.cpp" +#line 3352 "parser.cpp" default: break; @@ -3523,16 +3556,16 @@ namespace xsk { namespace gsc { namespace s1 { "stmt_break", "stmt_continue", "stmt_return", "stmt_breakpoint", "stmt_prof_begin", "stmt_prof_end", "expr", "expr_or_empty", "expr_assign", "expr_increment", "expr_decrement", "expr_ternary", - "expr_binary", "expr_primitive", "expr_complement", "expr_not", - "expr_call", "expr_method", "expr_function", "expr_pointer", + "expr_binary", "expr_primitive", "expr_complement", "expr_negate", + "expr_not", "expr_call", "expr_method", "expr_function", "expr_pointer", "expr_add_array", "expr_parameters", "expr_arguments", "expr_arguments_no_empty", "expr_reference", "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_neg", "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_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]; } @@ -3801,519 +3834,538 @@ namespace xsk { namespace gsc { namespace s1 { } - const short parser::yypact_ninf_ = -271; + const short parser::yypact_ninf_ = -287; - const short parser::yytable_ninf_ = -213; + const short parser::yytable_ninf_ = -216; const short parser::yypact_[] = { - 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, 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 + 9, -287, -287, -65, -65, -40, -287, -287, 41, 9, + -287, -287, -287, -287, -287, -287, -25, -287, -287, -12, + -8, -55, -287, -287, -287, -287, -34, 1152, -287, -287, + -287, 12, -19, -287, -287, -28, -18, -287, 4, -287, + -287, -287, -287, -287, -287, -287, 1152, 1026, -34, 1152, + 1152, 35, -27, 28, -287, -287, -287, 2117, -287, -287, + -287, -287, -287, -287, 543, 557, -287, -287, -287, -287, + 604, 666, -287, -287, 677, -287, -287, -287, 878, 955, + 1113, 1176, -287, -287, 215, 33, -287, -287, -287, -287, + -287, -287, -287, 32, 57, -34, 59, 52, 62, 67, + 75, 74, 85, 1408, 1026, -287, 2200, 92, 99, -287, + -287, -287, 1152, 102, -287, -287, -287, -287, 604, 666, + -287, 1375, -287, -287, -287, -287, 215, 100, -287, -287, + 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1215, + -31, -287, -287, 109, 1152, -34, -287, 769, -287, -287, + 1152, 1152, -34, 1152, 1152, -34, 1152, -287, 1152, 1886, + 1152, -287, 1574, 1152, 65, -34, 2082, 84, 84, 2231, + 2241, 2323, 2323, 249, 249, 249, 249, 2272, 2313, 2282, + 76, 76, -287, -287, -287, 1926, -287, -287, -287, -1, + -287, 116, 923, 1152, 111, -15, 129, 1339, 131, 132, + 134, 135, -53, 130, 128, 136, 1089, 137, 142, 145, + -287, 69, 69, -287, -287, 846, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + -287, -287, 141, 143, 146, 148, 149, -287, -287, 1262, + 109, 1966, 8, 160, 2006, 15, 161, 2046, 1021, 163, + 2200, 1886, 116, 1152, -287, -287, 1152, -287, -287, 1000, + 2152, -287, 164, -287, 1152, 196, 1152, 49, -34, 1152, + 122, 165, 166, -287, -287, -287, -287, 2187, -287, 1152, + 1152, 1375, 1375, -287, -287, -287, -287, -287, -287, -287, + 178, 181, 182, 186, -287, -287, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1152, 1152, 1152, 1152, 187, -287, 1152, + 193, -287, 1152, 195, 1152, 201, 2200, 19, -287, -287, + -287, 177, 1608, 205, 1642, 198, -287, -287, -287, 1365, + 1, 1676, -287, -287, -287, 48, 50, 1152, 1152, 1152, + 1152, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, + 2200, 2200, 209, 73, 211, 77, 218, 1710, 1152, -287, + -287, 1339, 1152, 1339, 1152, 1152, -34, 57, 203, 210, + 1744, 1452, 1496, 1540, 1152, -287, 1152, -287, 1152, -287, + 87, 250, 1778, -287, 2200, 214, 1812, 248, -287, -287, + -287, 220, 222, 1152, 223, 1152, 227, 1152, 90, 91, + 101, -287, 1339, 230, 49, 1339, 1152, -287, -287, 224, + -287, 244, -287, 246, -287, -287, -287, -287, -287, 251, + -287, 1846, 231, 238, 243, 1339, 1339, -287, -287, -287, + -287, -287 }; const unsigned char parser::yydefact_[] = { - 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, + 3, 12, 13, 0, 0, 0, 214, 213, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 216, 215, 0, + 0, 0, 1, 4, 5, 6, 183, 0, 10, 11, + 218, 0, 0, 182, 211, 0, 0, 203, 0, 225, + 224, 205, 206, 207, 208, 209, 0, 185, 0, 0, + 0, 0, 0, 213, 217, 221, 223, 0, 93, 94, + 95, 132, 133, 134, 135, 136, 166, 167, 137, 138, + 139, 140, 141, 142, 0, 143, 144, 145, 146, 147, 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, 185, 204, 187, 0, 184, 188, + 165, 160, 0, 0, 220, 222, 194, 195, 163, 164, + 162, 0, 198, 199, 200, 201, 161, 0, 210, 18, 0, 0, 0, 0, 0, 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, 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, 168, 169, 0, 185, 0, 17, 0, 19, 181, + 0, 185, 0, 0, 185, 0, 0, 193, 0, 187, + 0, 180, 0, 0, 0, 0, 0, 125, 126, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 127, 128, 129, 130, 131, 0, 192, 212, 191, 0, + 184, 189, 0, 0, 0, 0, 0, 0, 0, 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 + 54, 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, + 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 186, 0, 0, 0, 190, 170, 185, 52, 48, 0, + 0, 72, 0, 73, 0, 0, 0, 58, 0, 0, + 0, 0, 0, 85, 86, 87, 89, 0, 90, 185, + 185, 109, 111, 53, 49, 61, 62, 63, 59, 60, + 0, 0, 0, 0, 110, 112, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 185, + 0, 174, 185, 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, 98, 104, 105, 106, 107, 108, 99, 100, 101, + 103, 102, 0, 0, 0, 0, 0, 0, 185, 171, + 74, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 185, 173, 185, 175, 185, 219, + 0, 75, 0, 77, 96, 0, 0, 0, 82, 91, + 92, 0, 0, 185, 0, 185, 0, 185, 0, 0, + 0, 176, 0, 0, 58, 0, 0, 64, 66, 184, + 69, 184, 71, 184, 177, 178, 179, 76, 78, 0, + 80, 0, 0, 0, 0, 0, 0, 65, 68, 70, + 79, 81 }; const short parser::yypgoto_[] = { - -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, - 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 + -287, -287, -287, 271, 297, 298, -287, -287, -287, -177, + 86, -287, -287, -287, -91, -114, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + 191, -287, -286, -285, -282, -287, -287, -287, -287, -287, + -287, -33, -6, -66, -59, -287, -287, -147, -41, -287, + 213, 240, -287, 263, 247, -287, -287, -287, 316, 322, + 333, 404, -287, -287, -287, 0, 7, -287, -17, -287, + -287, 105, -287, -287 }; const short parser::yydefgoto_[] = { - 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, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 223, + 224, 279, 225, 226, 227, 345, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 106, 405, 252, 253, 254, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 32, 107, 200, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 182, 84, 85, 86, 87, 88, + 80, 81, 82, 83, 198, 84, 85, 86, 87, 88, 89, 90, 91, 92 }; const short parser::yytable_[] = { - 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, 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, + 16, 346, 347, 158, 31, 348, 108, 199, 151, 16, + 19, 20, 21, 6, 262, 152, 196, 265, 116, 6, + 1, 2, 3, 4, 5, 278, 33, 26, 96, 6, + 285, 385, 17, 18, 94, 97, 100, 282, 99, 95, + 290, 22, 98, 101, 30, 117, 30, 283, 109, 56, + 28, 126, 275, 27, 29, 151, 6, 170, 127, 386, + 102, 328, 152, 108, 7, 93, 170, 197, 331, 17, + 53, 128, 379, 170, 153, 35, 36, 170, 38, 17, + 53, 127, 6, 42, 43, 44, 45, 112, -215, 35, + 36, 113, 38, 155, 156, 159, 6, 42, 43, 44, + 45, 388, 339, 389, 161, 113, 170, 7, 170, 35, + 36, 157, 38, 221, 222, 160, 6, 42, 43, 44, + 45, 153, 162, 163, 255, 113, 395, 164, 127, 337, + 397, 170, 17, 53, 165, 170, 114, 115, 346, 347, + 421, 166, 348, 434, 435, 170, 17, 53, 170, 170, + 170, 256, 355, 356, 436, 201, 171, 260, 173, 170, + 175, 154, 263, 197, 127, 266, 17, 53, 276, 255, + 146, 147, 148, 281, 255, 272, 144, 145, 146, 147, + 148, 284, 373, 286, 287, 375, 288, 289, 116, 116, + 294, 293, 255, 151, 299, 291, 256, 300, 295, 298, + 152, 256, 260, 305, 401, 306, 403, 260, 307, 127, + 308, 309, 329, 332, 127, 117, 117, 341, 57, 256, + 335, 260, 260, 343, 115, 260, 352, 353, 127, 127, + 357, 400, 127, 358, 359, 151, 151, 103, 360, 380, + 110, 111, 152, 152, 372, 437, 255, 418, 440, 419, + 374, 420, 376, 378, 116, -202, -202, 382, -202, 153, + 384, 394, -202, 396, 118, 409, 127, 154, 450, 451, + 398, -202, 410, 256, -202, 422, 424, 442, 426, 260, + 23, 117, 427, 151, 428, 430, 127, 260, 350, 432, + 152, 119, 438, 447, 127, 169, 408, 443, 121, 444, + 448, 153, 153, 172, 445, 449, 24, 25, 127, 127, + 439, 304, -202, -202, 120, 131, 132, 292, 0, 0, + 0, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 144, 145, 146, 147, 148, 0, 0, 255, 153, + 255, 261, 0, 0, 264, 0, 127, 267, 0, 268, + 0, 270, 0, 0, 271, 0, 0, 122, 0, 0, + 257, 0, 429, 123, 431, 256, 433, 256, 0, 0, + 0, 260, 0, 260, 124, 0, 407, 0, 127, 255, + 127, 116, 255, 0, 280, 0, 0, 258, 0, 0, + 0, 0, 0, 0, 259, 0, 0, 297, 0, 0, + 0, 0, 255, 255, 0, 257, 256, 0, 117, 256, + 257, 0, 260, 0, 260, 260, 0, 0, 0, 127, + 0, 127, 127, 0, 257, 257, 0, 0, 257, 256, + 256, 0, 258, 0, 0, 260, 260, 258, 0, 259, + 0, 0, 127, 127, 259, 125, 0, 0, 0, 0, + 0, 258, 258, 0, 336, 258, 0, 0, 301, 302, + 0, 0, 259, 122, 0, 342, 0, 344, 0, 123, + 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 124, 0, 257, 0, 0, 0, 0, 0, 0, 0, + 257, 0, 0, 0, 0, 0, 0, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 122, 258, + 0, 0, 0, 122, 123, 377, 259, 258, 0, 123, + 0, 0, 0, 0, 349, 124, 0, 122, 122, 0, + 124, 122, 0, 123, 123, 0, 0, 123, 390, 391, + 392, 393, 0, 0, 124, 124, 0, 0, 124, 0, + 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 402, 0, 404, 406, 0, 0, 0, + 0, 0, 0, -194, -194, 0, -194, 0, 0, 0, + -194, 0, 0, 0, 257, 122, 257, -195, -195, -194, + -195, 123, -194, 122, -195, 0, 125, 0, 0, 123, + 0, 125, 124, -195, 0, 0, -195, 441, 0, 0, + 124, 258, 0, 258, 0, 125, 125, 0, 259, 125, + 259, 0, 0, 0, 0, 257, 0, 257, 257, 0, + -194, -194, 0, 0, -196, -196, 0, -196, 0, 0, + 0, -196, 0, 0, -195, -195, 0, 0, 257, 257, + -196, 0, 258, -196, 258, 258, 0, 0, 0, 259, + 0, 349, 259, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 258, 258, 0, 0, 0, + 0, 125, 259, 259, 0, 0, 0, 122, 0, 122, + 0, -196, -196, 123, 0, 123, -197, -197, 0, -197, + 0, 0, 0, -197, 124, 0, 124, 35, 36, 0, + 38, 0, -197, 0, 6, -197, 0, 0, 0, 0, + 0, 0, 0, 149, 0, 0, 150, 0, 122, 0, + 122, 122, 0, 0, 123, 0, 123, 123, 0, 0, + 0, 0, 0, 0, 0, 124, 0, 124, 124, 0, + 0, 122, 122, -197, -197, 0, 0, 123, 123, 0, + 0, 0, 0, 0, 17, 53, 0, 0, 124, 124, + 202, 0, 0, 0, 0, 125, 0, 125, 203, 0, + 0, 204, 205, 206, 0, 207, 208, 209, 210, 0, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 35, + 36, 0, 38, 0, 0, 0, 6, 42, 43, 44, + 45, 0, 0, 157, 220, 113, 125, 0, 125, 125, + 0, 0, 0, 221, 222, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 125, 0, 0, 0, 0, 0, 0, 202, 0, 0, + 0, 0, 0, 0, 0, 203, 17, 53, 204, 205, + 206, 0, 207, 208, 209, 210, 0, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 35, 36, 0, 38, + 0, 0, 0, 6, 42, 43, 44, 45, 0, 0, + 157, 303, 113, 0, 0, 0, 0, 0, 0, 0, + 221, 222, 0, 0, 0, 0, 0, 0, -198, -198, + 0, -198, 0, 0, 0, -198, 0, 0, 0, 0, + 0, 0, 0, 0, -198, 277, 0, -198, 0, 0, + 0, 0, 203, 17, 53, 204, 205, 206, 0, 207, + 208, 209, 210, 0, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 35, 36, 0, 38, 0, 0, 0, + 6, 42, 43, 44, 45, -198, -198, 157, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 221, 222, 0, + 0, 0, 0, 0, 0, -199, -199, 0, -199, 0, + 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, + 0, -199, 338, 0, -199, 0, 0, 0, 0, 203, + 17, 53, 204, 205, 206, 0, 207, 208, 209, 210, + 0, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 35, 36, 34, 38, 0, 0, 0, 6, 42, 43, + 44, 45, -199, -199, 157, 0, 113, 0, 0, 0, + 0, 0, 0, 0, 221, 222, 35, 36, 37, 38, + 39, 40, 41, 6, 42, 43, 44, 45, 46, 334, + 0, 0, 104, 105, 130, 0, 48, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 17, 53, 0, + 0, 0, 49, 50, 0, 34, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 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, 296, 0, -200, -200, 0, -200, 0, 0, 0, + -200, 0, 0, 0, 0, 49, 50, 0, 34, -200, + 0, 0, -200, 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, 47, 0, + -200, -200, 48, 0, 0, 0, -201, -201, 0, -201, + 0, 0, 0, -201, 0, 0, 0, 0, 49, 50, + 0, 34, -201, 0, 0, -201, 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, 104, 0, -201, -201, 48, 0, 0, 0, 310, + 311, 0, 312, 313, 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, 149, 0, + 0, 174, 0, 0, 0, 0, 314, 315, 0, 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, - -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, 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, 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, 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, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 0, 0, 0, 0, 0, 0, 0, 203, 17, + 53, 204, 205, 206, 0, 207, 208, 209, 210, 0, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 35, + 36, 0, 38, 0, 0, 0, 6, 42, 43, 44, + 45, 0, 0, 157, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 221, 222, 35, 36, 0, 38, 0, + 0, 0, 6, 0, 0, 35, 36, 0, 38, 0, + 0, 149, 6, 0, 174, 0, 0, 0, 0, 314, + 315, 149, 0, 0, 174, 0, 17, 53, 0, 0, + 0, 0, 0, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 0, 0, 0, 0, 0, 0, + 0, 167, 17, 53, 0, 0, 168, 0, 0, 0, + 0, 130, 17, 53, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 141, 142, 143, + 144, 145, 146, 147, 148, 412, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 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, 141, 142, 143, 144, 145, 146, 147, 148, 414, + 0, 0, 0, 0, 415, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 416, 0, 0, 0, 0, 417, 0, + 0, 0, 0, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 167, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 130, 0, 0, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 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, 381, 0, 141, 142, 143, 144, 145, 146, 147, + 148, 130, 0, 0, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 383, 0, 141, 142, 143, + 144, 145, 146, 147, 148, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 387, + 0, 141, 142, 143, 144, 145, 146, 147, 148, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 399, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 411, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 130, 0, 0, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 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, 423, 0, 141, 142, 143, 144, 145, 146, 147, + 148, 130, 0, 0, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 425, 0, 141, 142, 143, + 144, 145, 146, 147, 148, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, + 0, 141, 142, 143, 144, 145, 146, 147, 148, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 269, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 274, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 327, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 330, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 333, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 273, 0, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 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, 141, 142, 143, 144, 145, 146, 147, 148, 129, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, + 145, 146, 147, 148, 340, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 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 + 0, 141, 142, 143, 144, 145, 146, 147, 148, 354, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 0, 0, 0, 0, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 131, 132, 0, + 134, 135, 136, 137, 138, 139, 140, 131, 132, 0, + 0, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 131, 132, + 0, 0, 135, 136, 137, 138, 139, 140, 131, 132, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 142, 143, 144, 145, 146, 147, 148, 0, + 0, 0, 142, 0, 144, 145, 146, 147, 148, 131, + 132, 0, 0, 135, 136, 137, 138, 139, 140, 131, + 132, 0, 0, 0, 0, 137, 138, 139, 140, 0, + 0, 0, 0, 0, 0, 144, 145, 146, 147, 148, + 0, 0, 0, 0, 0, 144, 145, 146, 147, 148 }; const short parser::yycheck_[] = { - 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, 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, + 0, 287, 287, 94, 21, 287, 47, 154, 74, 9, + 3, 4, 52, 47, 161, 74, 47, 164, 51, 47, + 11, 12, 13, 14, 15, 202, 26, 52, 56, 47, + 207, 30, 97, 98, 53, 35, 36, 52, 56, 58, + 93, 0, 35, 36, 99, 51, 99, 62, 48, 102, + 62, 51, 53, 78, 62, 121, 47, 58, 51, 58, + 56, 53, 121, 104, 98, 53, 58, 98, 53, 97, + 98, 98, 53, 58, 74, 40, 41, 58, 43, 97, + 98, 74, 47, 48, 49, 50, 51, 52, 60, 40, + 41, 56, 43, 60, 62, 95, 47, 48, 49, 50, + 51, 53, 279, 53, 52, 56, 58, 98, 58, 40, + 41, 54, 43, 64, 65, 56, 47, 48, 49, 50, + 51, 121, 60, 56, 157, 56, 53, 52, 121, 276, + 53, 58, 97, 98, 60, 58, 101, 102, 424, 424, + 53, 56, 424, 53, 53, 58, 97, 98, 58, 58, + 58, 157, 299, 300, 53, 155, 57, 157, 56, 58, + 60, 52, 162, 98, 157, 165, 97, 98, 52, 202, + 94, 95, 96, 62, 207, 175, 92, 93, 94, 95, + 96, 52, 329, 52, 52, 332, 52, 52, 221, 222, + 62, 61, 225, 259, 52, 212, 202, 52, 62, 62, + 259, 207, 202, 62, 381, 62, 383, 207, 62, 202, + 62, 62, 52, 52, 207, 221, 222, 53, 27, 225, + 57, 221, 222, 27, 102, 225, 61, 61, 221, 222, + 52, 378, 225, 52, 52, 301, 302, 46, 52, 62, + 49, 50, 301, 302, 57, 422, 279, 394, 425, 396, + 57, 398, 57, 52, 287, 40, 41, 52, 43, 259, + 62, 52, 47, 52, 51, 62, 259, 52, 445, 446, + 52, 56, 62, 279, 59, 25, 62, 53, 30, 279, + 9, 287, 62, 349, 62, 62, 279, 287, 288, 62, + 349, 51, 62, 62, 287, 104, 387, 53, 51, 53, + 62, 301, 302, 112, 53, 62, 9, 9, 301, 302, + 424, 225, 97, 98, 51, 66, 67, 212, -1, -1, + -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 92, 93, 94, 95, 96, -1, -1, 381, 349, + 383, 160, -1, -1, 163, -1, 349, 166, -1, 168, + -1, 170, -1, -1, 173, -1, -1, 51, -1, -1, + 157, -1, 413, 51, 415, 381, 417, 383, -1, -1, + -1, 381, -1, 383, 51, -1, 386, -1, 381, 422, + 383, 424, 425, -1, 203, -1, -1, 157, -1, -1, + -1, -1, -1, -1, 157, -1, -1, 216, -1, -1, + -1, -1, 445, 446, -1, 202, 422, -1, 424, 425, + 207, -1, 422, -1, 424, 425, -1, -1, -1, 422, + -1, 424, 425, -1, 221, 222, -1, -1, 225, 445, + 446, -1, 202, -1, -1, 445, 446, 207, -1, 202, + -1, -1, 445, 446, 207, 51, -1, -1, -1, -1, + -1, 221, 222, -1, 273, 225, -1, -1, 221, 222, + -1, -1, 225, 157, -1, 284, -1, 286, -1, 157, + 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 157, -1, 279, -1, -1, -1, -1, -1, -1, -1, + 287, -1, -1, -1, -1, -1, -1, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 202, 279, + -1, -1, -1, 207, 202, 334, 279, 287, -1, 207, + -1, -1, -1, -1, 287, 202, -1, 221, 222, -1, + 207, 225, -1, 221, 222, -1, -1, 225, 357, 358, + 359, 360, -1, -1, 221, 222, -1, -1, 225, -1, + -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 382, -1, 384, 385, -1, -1, -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, + 47, -1, -1, -1, 381, 279, 383, 40, 41, 56, + 43, 279, 59, 287, 47, -1, 202, -1, -1, 287, + -1, 207, 279, 56, -1, -1, 59, 426, -1, -1, + 287, 381, -1, 383, -1, 221, 222, -1, 381, 225, + 383, -1, -1, -1, -1, 422, -1, 424, 425, -1, + 97, 98, -1, -1, 40, 41, -1, 43, -1, -1, + -1, 47, -1, -1, 97, 98, -1, -1, 445, 446, + 56, -1, 422, 59, 424, 425, -1, -1, -1, 422, + -1, 424, 425, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 279, -1, 445, 446, -1, -1, -1, + -1, 287, 445, 446, -1, -1, -1, 381, -1, 383, + -1, 97, 98, 381, -1, 383, 40, 41, -1, 43, + -1, -1, -1, 47, 381, -1, 383, 40, 41, -1, + 43, -1, 56, -1, 47, 59, -1, -1, -1, -1, + -1, -1, -1, 56, -1, -1, 59, -1, 422, -1, + 424, 425, -1, -1, 422, -1, 424, 425, -1, -1, + -1, -1, -1, -1, -1, 422, -1, 424, 425, -1, + -1, 445, 446, 97, 98, -1, -1, 445, 446, -1, + -1, -1, -1, -1, 97, 98, -1, -1, 445, 446, + 11, -1, -1, -1, -1, 381, -1, 383, 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, 54, 55, 56, 422, -1, 424, 425, + -1, -1, -1, 64, 65, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 445, + 446, -1, -1, -1, -1, -1, -1, 11, -1, -1, + -1, -1, -1, -1, -1, 19, 97, 98, 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, + 54, 55, 56, -1, -1, -1, -1, -1, -1, -1, + 64, 65, -1, -1, -1, -1, -1, -1, 40, 41, + -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, 56, 12, -1, 59, -1, -1, + -1, -1, 19, 97, 98, 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, 97, 98, 54, -1, 56, + -1, -1, -1, -1, -1, -1, -1, 64, 65, -1, + -1, -1, -1, -1, -1, 40, 41, -1, 43, -1, + -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, + -1, 56, 12, -1, 59, -1, -1, -1, -1, 19, + 97, 98, 22, 23, 24, -1, 26, 27, 28, 29, + -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 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, 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, 60, + -1, 62, -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, + 97, 98, 60, -1, -1, -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, 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, 43, -1, -1, 93, 47, + -1, 96, 97, 98, 99, 100, 101, 102, 56, -1, + -1, 59, -1, -1, -1, -1, 64, 65, -1, -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, 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, - 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, - 36, 37, 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, -1, 64, 65, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, - -1, -1, 56, 12, -1, 59, -1, -1, -1, -1, - 19, 97, 98, 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, 97, 98, 54, -1, 56, -1, -1, - -1, -1, -1, -1, -1, 64, 65, -1, -1, -1, - -1, -1, -1, 40, 41, -1, 43, -1, -1, -1, - 47, -1, -1, -1, -1, -1, -1, -1, -1, 56, - 12, -1, 59, -1, -1, -1, -1, 19, 97, 98, - 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 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, -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, -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, 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, - 43, -1, -1, 93, 47, -1, 96, 97, 98, 99, - 100, 101, 102, 56, -1, -1, 59, -1, -1, -1, - -1, 64, 65, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, - -1, -1, -1, 19, 97, 98, 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, 54, -1, - 56, -1, -1, -1, -1, -1, -1, 53, 64, 65, - -1, -1, 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, 97, 98, 89, 90, 91, 92, 93, 94, 95, - 96, 53, -1, -1, -1, -1, 58, -1, -1, -1, - -1, 63, -1, -1, 66, 67, 68, 69, 70, 71, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, -1, -1, -1, -1, -1, -1, -1, 19, 97, + 98, 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, 54, -1, 56, -1, -1, -1, -1, + -1, -1, -1, 64, 65, 40, 41, -1, 43, -1, + -1, -1, 47, -1, -1, 40, 41, -1, 43, -1, + -1, 56, 47, -1, 59, -1, -1, -1, -1, 64, + 65, 56, -1, -1, 59, -1, 97, 98, -1, -1, + -1, -1, -1, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, + -1, 53, 97, 98, -1, -1, 58, -1, -1, -1, + -1, 63, 97, 98, 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, 53, -1, -1, -1, -1, @@ -4324,8 +4376,9 @@ namespace xsk { namespace gsc { namespace s1 { -1, -1, -1, -1, 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, 53, -1, 89, 90, 91, 92, 93, - 94, 95, 96, 63, -1, -1, 66, 67, 68, 69, + -1, -1, -1, -1, -1, 89, 90, 91, 92, 93, + 94, 95, 96, 53, -1, -1, -1, -1, 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, 53, -1, 89, 90, 91, 92, 93, 94, 95, 96, 63, -1, -1, @@ -4351,60 +4404,62 @@ namespace xsk { namespace gsc { namespace s1 { -1, 53, -1, 89, 90, 91, 92, 93, 94, 95, 96, 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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 58, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 53, -1, 89, 90, 91, + 92, 93, 94, 95, 96, 63, -1, -1, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, + -1, 89, 90, 91, 92, 93, 94, 95, 96, 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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 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, 61, -1, 63, -1, -1, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, + 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, -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, 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, 66, + -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, - 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 + 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 @@ -4413,48 +4468,49 @@ namespace xsk { namespace gsc { namespace s1 { 0, 11, 12, 13, 14, 15, 47, 98, 114, 115, 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, + 99, 191, 169, 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, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 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, + 188, 189, 56, 153, 56, 57, 153, 170, 171, 188, + 153, 153, 52, 56, 101, 102, 164, 165, 173, 174, + 176, 177, 181, 182, 183, 184, 188, 189, 98, 62, + 63, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 89, 90, 91, 92, 93, 94, 95, 96, 56, + 59, 166, 167, 188, 52, 60, 62, 54, 127, 188, + 56, 52, 60, 56, 52, 60, 56, 53, 58, 153, + 58, 57, 153, 56, 59, 60, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 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 + 153, 153, 153, 153, 153, 153, 47, 98, 187, 170, + 171, 188, 11, 19, 22, 23, 24, 26, 27, 28, + 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 55, 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, 164, 165, 173, 174, 177, + 188, 153, 170, 188, 153, 170, 188, 153, 153, 57, + 153, 153, 188, 61, 57, 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, 177, 177, 55, 123, 62, 62, 62, 62, 62, + 17, 18, 20, 21, 64, 65, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 57, 53, 52, + 57, 53, 52, 57, 58, 57, 153, 170, 12, 122, + 62, 53, 153, 27, 153, 128, 155, 156, 157, 177, + 188, 153, 61, 61, 62, 170, 170, 52, 52, 52, + 52, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 57, 170, 57, 170, 57, 153, 52, 53, + 62, 53, 52, 53, 62, 30, 58, 53, 53, 53, + 153, 153, 153, 153, 52, 53, 52, 53, 52, 53, + 170, 122, 153, 122, 153, 154, 153, 188, 127, 62, + 62, 53, 53, 58, 53, 58, 53, 58, 170, 170, + 170, 53, 25, 53, 62, 53, 30, 62, 62, 171, + 62, 171, 62, 171, 53, 53, 53, 122, 62, 128, + 122, 153, 53, 53, 53, 53, 53, 62, 62, 62, + 122, 122 }; const unsigned char @@ -4476,13 +4532,13 @@ namespace xsk { namespace gsc { namespace s1 { 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, 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 + 161, 162, 162, 162, 162, 163, 164, 164, 165, 165, + 166, 166, 166, 166, 166, 166, 167, 167, 167, 167, + 168, 169, 169, 169, 170, 170, 171, 171, 172, 172, + 173, 174, 175, 176, 177, 177, 177, 177, 177, 177, + 177, 177, 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 @@ -4504,13 +4560,13 @@ namespace xsk { namespace gsc { namespace s1 { 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, - 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 + 2, 2, 2, 2, 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 }; @@ -4536,13 +4592,13 @@ namespace xsk { namespace gsc { namespace s1 { 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 + 645, 650, 652, 654, 656, 661, 666, 667, 670, 671, + 675, 677, 679, 681, 683, 685, 690, 692, 694, 696, + 701, 706, 708, 711, 715, 718, 722, 724, 729, 731, + 736, 741, 746, 751, 756, 757, 758, 759, 760, 761, + 762, 763, 764, 768, 773, 778, 783, 788, 793, 798, + 803, 808, 813, 818, 820, 825, 827, 832, 837, 842, + 847, 849, 854, 856, 861, 866 }; void @@ -4575,9 +4631,9 @@ namespace xsk { namespace gsc { namespace s1 { #line 13 "parser.ypp" } } } // xsk::gsc::s1 -#line 4579 "parser.cpp" +#line 4635 "parser.cpp" -#line 864 "parser.ypp" +#line 870 "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 8fa8886e..324b64ed 100644 --- a/src/s1/xsk/parser.hpp +++ b/src/s1/xsk/parser.hpp @@ -447,7 +447,6 @@ namespace xsk { namespace gsc { namespace s1 { // expr_binary // expr_primitive // expr_object - // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -506,134 +505,137 @@ namespace xsk { namespace gsc { namespace s1 { // expr_method char dummy24[sizeof (ast::expr_method::ptr)]; + // expr_negate + char dummy25[sizeof (ast::expr_negate::ptr)]; + // expr_not - char dummy25[sizeof (ast::expr_not::ptr)]; + char dummy26[sizeof (ast::expr_not::ptr)]; // expr_parameters - char dummy26[sizeof (ast::expr_parameters::ptr)]; + char dummy27[sizeof (ast::expr_parameters::ptr)]; // expr_paren - char dummy27[sizeof (ast::expr_paren::ptr)]; + char dummy28[sizeof (ast::expr_paren::ptr)]; // expr_path - char dummy28[sizeof (ast::expr_path::ptr)]; + char dummy29[sizeof (ast::expr_path::ptr)]; // expr_reference - char dummy29[sizeof (ast::expr_reference::ptr)]; + char dummy30[sizeof (ast::expr_reference::ptr)]; // expr_self - char dummy30[sizeof (ast::expr_self::ptr)]; + char dummy31[sizeof (ast::expr_self::ptr)]; // expr_size - char dummy31[sizeof (ast::expr_size::ptr)]; + char dummy32[sizeof (ast::expr_size::ptr)]; // expr_string - char dummy32[sizeof (ast::expr_string::ptr)]; + char dummy33[sizeof (ast::expr_string::ptr)]; // expr_thisthread - char dummy33[sizeof (ast::expr_thisthread::ptr)]; + char dummy34[sizeof (ast::expr_thisthread::ptr)]; // expr_true - char dummy34[sizeof (ast::expr_true::ptr)]; + char dummy35[sizeof (ast::expr_true::ptr)]; // expr_undefined - char dummy35[sizeof (ast::expr_undefined::ptr)]; + char dummy36[sizeof (ast::expr_undefined::ptr)]; // expr_vector - char dummy36[sizeof (ast::expr_vector::ptr)]; + char dummy37[sizeof (ast::expr_vector::ptr)]; // include - char dummy37[sizeof (ast::include::ptr)]; + char dummy38[sizeof (ast::include::ptr)]; // program - char dummy38[sizeof (ast::program::ptr)]; + char dummy39[sizeof (ast::program::ptr)]; // stmt // stmt_or_dev - char dummy39[sizeof (ast::stmt)]; + char dummy40[sizeof (ast::stmt)]; // stmt_assign - char dummy40[sizeof (ast::stmt_assign::ptr)]; + char dummy41[sizeof (ast::stmt_assign::ptr)]; // stmt_break - char dummy41[sizeof (ast::stmt_break::ptr)]; + char dummy42[sizeof (ast::stmt_break::ptr)]; // stmt_breakpoint - char dummy42[sizeof (ast::stmt_breakpoint::ptr)]; + char dummy43[sizeof (ast::stmt_breakpoint::ptr)]; // stmt_call - char dummy43[sizeof (ast::stmt_call::ptr)]; + char dummy44[sizeof (ast::stmt_call::ptr)]; // stmt_case - char dummy44[sizeof (ast::stmt_case::ptr)]; + char dummy45[sizeof (ast::stmt_case::ptr)]; // stmt_continue - char dummy45[sizeof (ast::stmt_continue::ptr)]; + char dummy46[sizeof (ast::stmt_continue::ptr)]; // stmt_default - char dummy46[sizeof (ast::stmt_default::ptr)]; + char dummy47[sizeof (ast::stmt_default::ptr)]; // stmt_dev - char dummy47[sizeof (ast::stmt_dev::ptr)]; + char dummy48[sizeof (ast::stmt_dev::ptr)]; // stmt_dowhile - char dummy48[sizeof (ast::stmt_dowhile::ptr)]; + char dummy49[sizeof (ast::stmt_dowhile::ptr)]; // stmt_endon - char dummy49[sizeof (ast::stmt_endon::ptr)]; + char dummy50[sizeof (ast::stmt_endon::ptr)]; // stmt_expr - char dummy50[sizeof (ast::stmt_expr::ptr)]; + char dummy51[sizeof (ast::stmt_expr::ptr)]; // stmt_for - char dummy51[sizeof (ast::stmt_for::ptr)]; + char dummy52[sizeof (ast::stmt_for::ptr)]; // stmt_foreach - char dummy52[sizeof (ast::stmt_foreach::ptr)]; + char dummy53[sizeof (ast::stmt_foreach::ptr)]; // stmt_if - char dummy53[sizeof (ast::stmt_if::ptr)]; + char dummy54[sizeof (ast::stmt_if::ptr)]; // stmt_ifelse - char dummy54[sizeof (ast::stmt_ifelse::ptr)]; + char dummy55[sizeof (ast::stmt_ifelse::ptr)]; // stmt_list // stmt_or_dev_list // stmt_block - char dummy55[sizeof (ast::stmt_list::ptr)]; + char dummy56[sizeof (ast::stmt_list::ptr)]; // stmt_notify - char dummy56[sizeof (ast::stmt_notify::ptr)]; + char dummy57[sizeof (ast::stmt_notify::ptr)]; // stmt_prof_begin - char dummy57[sizeof (ast::stmt_prof_begin::ptr)]; + char dummy58[sizeof (ast::stmt_prof_begin::ptr)]; // stmt_prof_end - char dummy58[sizeof (ast::stmt_prof_end::ptr)]; + char dummy59[sizeof (ast::stmt_prof_end::ptr)]; // stmt_return - char dummy59[sizeof (ast::stmt_return::ptr)]; + char dummy60[sizeof (ast::stmt_return::ptr)]; // stmt_switch - char dummy60[sizeof (ast::stmt_switch::ptr)]; + char dummy61[sizeof (ast::stmt_switch::ptr)]; // stmt_wait - char dummy61[sizeof (ast::stmt_wait::ptr)]; + char dummy62[sizeof (ast::stmt_wait::ptr)]; // stmt_waitframe - char dummy62[sizeof (ast::stmt_waitframe::ptr)]; + char dummy63[sizeof (ast::stmt_waitframe::ptr)]; // stmt_waittill - char dummy63[sizeof (ast::stmt_waittill::ptr)]; + char dummy64[sizeof (ast::stmt_waittill::ptr)]; // stmt_waittillframeend - char dummy64[sizeof (ast::stmt_waittillframeend::ptr)]; + char dummy65[sizeof (ast::stmt_waittillframeend::ptr)]; // stmt_waittillmatch - char dummy65[sizeof (ast::stmt_waittillmatch::ptr)]; + char dummy66[sizeof (ast::stmt_waittillmatch::ptr)]; // stmt_while - char dummy66[sizeof (ast::stmt_while::ptr)]; + char dummy67[sizeof (ast::stmt_while::ptr)]; // "path" // "identifier" @@ -641,7 +643,7 @@ namespace xsk { namespace gsc { namespace s1 { // "localized string" // "float" // "integer" - char dummy67[sizeof (std::string)]; + char dummy68[sizeof (std::string)]; }; /// The size of the largest semantic type. @@ -984,31 +986,31 @@ namespace xsk { namespace gsc { namespace s1 { S_expr_binary = 159, // expr_binary S_expr_primitive = 160, // expr_primitive S_expr_complement = 161, // expr_complement - S_expr_not = 162, // expr_not - S_expr_call = 163, // expr_call - S_expr_method = 164, // expr_method - S_expr_function = 165, // expr_function - S_expr_pointer = 166, // expr_pointer - S_expr_add_array = 167, // expr_add_array - S_expr_parameters = 168, // expr_parameters - S_expr_arguments = 169, // expr_arguments - S_expr_arguments_no_empty = 170, // expr_arguments_no_empty - S_expr_reference = 171, // expr_reference - S_expr_array = 172, // expr_array - S_expr_field = 173, // expr_field - S_expr_size = 174, // expr_size - S_expr_paren = 175, // expr_paren - S_expr_object = 176, // expr_object - S_expr_thisthread = 177, // expr_thisthread - S_expr_empty_array = 178, // expr_empty_array - S_expr_undefined = 179, // expr_undefined - S_expr_game = 180, // expr_game - S_expr_self = 181, // expr_self - S_expr_anim = 182, // expr_anim - S_expr_level = 183, // expr_level - S_expr_animation = 184, // expr_animation - S_expr_animtree = 185, // expr_animtree - S_expr_identifier_neg = 186, // expr_identifier_neg + S_expr_negate = 162, // expr_negate + S_expr_not = 163, // expr_not + S_expr_call = 164, // expr_call + S_expr_method = 165, // expr_method + S_expr_function = 166, // expr_function + S_expr_pointer = 167, // expr_pointer + S_expr_add_array = 168, // expr_add_array + S_expr_parameters = 169, // expr_parameters + S_expr_arguments = 170, // expr_arguments + S_expr_arguments_no_empty = 171, // expr_arguments_no_empty + S_expr_reference = 172, // expr_reference + S_expr_array = 173, // expr_array + S_expr_field = 174, // expr_field + S_expr_size = 175, // expr_size + S_expr_paren = 176, // expr_paren + S_expr_object = 177, // expr_object + S_expr_thisthread = 178, // expr_thisthread + S_expr_empty_array = 179, // expr_empty_array + S_expr_undefined = 180, // expr_undefined + S_expr_game = 181, // expr_game + S_expr_self = 182, // expr_self + S_expr_anim = 183, // expr_anim + S_expr_level = 184, // expr_level + S_expr_animation = 185, // expr_animation + S_expr_animtree = 186, // expr_animtree S_expr_identifier_nosize = 187, // expr_identifier_nosize S_expr_identifier = 188, // expr_identifier S_expr_path = 189, // expr_path @@ -1085,7 +1087,6 @@ 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; @@ -1163,6 +1164,10 @@ namespace xsk { namespace gsc { namespace s1 { value.move< ast::expr_method::ptr > (std::move (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (std::move (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (std::move (that.value)); break; @@ -1702,6 +1707,20 @@ namespace xsk { namespace gsc { namespace s1 { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, ast::expr_negate::ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const ast::expr_negate::ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ast::expr_not::ptr&& v, location_type&& l) : Base (t) @@ -2358,7 +2377,6 @@ 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; @@ -2436,6 +2454,10 @@ switch (yykind) value.template destroy< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + value.template destroy< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not value.template destroy< ast::expr_not::ptr > (); break; @@ -4817,7 +4839,7 @@ switch (yykind) /// Constants. enum { - yylast_ = 2310, ///< Last index in yytable_. + yylast_ = 2419, ///< Last index in yytable_. yynnts_ = 84, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4875,7 +4897,6 @@ 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; @@ -4953,6 +4974,10 @@ switch (yykind) value.copy< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -5194,7 +5219,6 @@ 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; @@ -5272,6 +5296,10 @@ switch (yykind) value.move< ast::expr_method::ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (s.value)); break; @@ -5519,7 +5547,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::s1 -#line 5523 "parser.hpp" +#line 5551 "parser.hpp" diff --git a/src/s2/xsk/compiler.cpp b/src/s2/xsk/compiler.cpp index 2a66f76e..d8a95357 100644 --- a/src/s2/xsk/compiler.cpp +++ b/src/s2/xsk/compiler.cpp @@ -946,6 +946,9 @@ void compiler::emit_expr(const ast::expr& expr, const block::ptr& blk) case ast::kind::expr_complement: emit_expr_complement(expr.as_complement, blk); break; + case ast::kind::expr_negate: + emit_expr_negate(expr.as_negate, blk); + break; case ast::kind::expr_not: emit_expr_not(expr.as_not, blk); break; @@ -1259,6 +1262,13 @@ void compiler::emit_expr_complement(const ast::expr_complement::ptr& expr, const emit_opcode(opcode::OP_BoolComplement); } +void compiler::emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk) +{ + emit_opcode(opcode::OP_GetZero); + emit_expr(expr->rvalue, blk); + emit_opcode(opcode::OP_minus); +} + void compiler::emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk) { emit_expr(expr->rvalue, blk); diff --git a/src/s2/xsk/compiler.hpp b/src/s2/xsk/compiler.hpp index e02e0cc7..d2e16e31 100644 --- a/src/s2/xsk/compiler.hpp +++ b/src/s2/xsk/compiler.hpp @@ -83,6 +83,7 @@ private: void emit_expr_and(const ast::expr_and::ptr& expr, const block::ptr& blk); void emit_expr_or(const ast::expr_or::ptr& expr, const block::ptr& blk); void emit_expr_complement(const ast::expr_complement::ptr& expr, const block::ptr& blk); + void emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk); void emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk); void emit_expr_call(const ast::expr_call::ptr& expr, const block::ptr& blk, bool is_stmt); void emit_expr_call_pointer(const ast::expr_pointer::ptr& expr, const block::ptr& blk, bool is_stmt); diff --git a/src/s2/xsk/parser.cpp b/src/s2/xsk/parser.cpp index 7efc761f..8c047970 100644 --- a/src/s2/xsk/parser.cpp +++ b/src/s2/xsk/parser.cpp @@ -245,7 +245,6 @@ 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; @@ -323,6 +322,10 @@ namespace xsk { namespace gsc { namespace s2 { value.YY_MOVE_OR_COPY< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.YY_MOVE_OR_COPY< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.YY_MOVE_OR_COPY< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -548,7 +551,6 @@ 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; @@ -626,6 +628,10 @@ namespace xsk { namespace gsc { namespace s2 { value.move< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -851,7 +857,6 @@ 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; @@ -929,6 +934,10 @@ namespace xsk { namespace gsc { namespace s2 { value.copy< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (that.value); break; @@ -1153,7 +1162,6 @@ 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; @@ -1231,6 +1239,10 @@ namespace xsk { namespace gsc { namespace s2 { value.move< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (that.value); break; @@ -1710,7 +1722,6 @@ 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; @@ -1788,6 +1799,10 @@ namespace xsk { namespace gsc { namespace s2 { yylhs.value.emplace< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + yylhs.value.emplace< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not yylhs.value.emplace< ast::expr_not::ptr > (); break; @@ -1991,1331 +2006,1349 @@ namespace xsk { namespace gsc { namespace s2 { case 2: // root: program #line 260 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 1995 "parser.cpp" +#line 2010 "parser.cpp" break; case 3: // root: %empty #line 261 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 2001 "parser.cpp" +#line 2016 "parser.cpp" break; case 4: // program: program inline #line 266 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2007 "parser.cpp" +#line 2022 "parser.cpp" break; case 5: // program: program include #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 2013 "parser.cpp" +#line 2028 "parser.cpp" break; case 6: // program: program declaration #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 2019 "parser.cpp" +#line 2034 "parser.cpp" break; case 7: // program: inline #line 272 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2025 "parser.cpp" +#line 2040 "parser.cpp" break; case 8: // program: include #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 2031 "parser.cpp" +#line 2046 "parser.cpp" break; case 9: // program: declaration #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 2037 "parser.cpp" +#line 2052 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" #line 280 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2043 "parser.cpp" +#line 2058 "parser.cpp" break; case 11: // include: "#include" expr_path ";" #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 2049 "parser.cpp" +#line 2064 "parser.cpp" break; case 12: // declaration: "/#" #line 289 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2055 "parser.cpp" +#line 2070 "parser.cpp" break; case 13: // declaration: "#/" #line 290 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2061 "parser.cpp" +#line 2076 "parser.cpp" break; case 14: // declaration: decl_usingtree #line 291 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2067 "parser.cpp" +#line 2082 "parser.cpp" break; case 15: // declaration: decl_constant #line 292 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2073 "parser.cpp" +#line 2088 "parser.cpp" break; case 16: // declaration: decl_thread #line 293 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2079 "parser.cpp" +#line 2094 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" #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 2085 "parser.cpp" +#line 2100 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" #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 2091 "parser.cpp" +#line 2106 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block #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 2097 "parser.cpp" +#line 2112 "parser.cpp" break; case 20: // stmt: stmt_block #line 312 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2103 "parser.cpp" +#line 2118 "parser.cpp" break; case 21: // stmt: stmt_call #line 313 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2109 "parser.cpp" +#line 2124 "parser.cpp" break; case 22: // stmt: stmt_assign #line 314 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2115 "parser.cpp" +#line 2130 "parser.cpp" break; case 23: // stmt: stmt_endon #line 315 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2121 "parser.cpp" +#line 2136 "parser.cpp" break; case 24: // stmt: stmt_notify #line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2127 "parser.cpp" +#line 2142 "parser.cpp" break; case 25: // stmt: stmt_wait #line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2133 "parser.cpp" +#line 2148 "parser.cpp" break; case 26: // stmt: stmt_waittill #line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2139 "parser.cpp" +#line 2154 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch #line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2145 "parser.cpp" +#line 2160 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend #line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2151 "parser.cpp" +#line 2166 "parser.cpp" break; case 29: // stmt: stmt_waitframe #line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waitframe = std::move(yystack_[0].value.as < ast::stmt_waitframe::ptr > ()); } -#line 2157 "parser.cpp" +#line 2172 "parser.cpp" break; case 30: // stmt: stmt_if #line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2163 "parser.cpp" +#line 2178 "parser.cpp" break; case 31: // stmt: stmt_ifelse #line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2169 "parser.cpp" +#line 2184 "parser.cpp" break; case 32: // stmt: stmt_while #line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2175 "parser.cpp" +#line 2190 "parser.cpp" break; case 33: // stmt: stmt_dowhile #line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2181 "parser.cpp" +#line 2196 "parser.cpp" break; case 34: // stmt: stmt_for #line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2187 "parser.cpp" +#line 2202 "parser.cpp" break; case 35: // stmt: stmt_foreach #line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2193 "parser.cpp" +#line 2208 "parser.cpp" break; case 36: // stmt: stmt_switch #line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2199 "parser.cpp" +#line 2214 "parser.cpp" break; case 37: // stmt: stmt_case #line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2205 "parser.cpp" +#line 2220 "parser.cpp" break; case 38: // stmt: stmt_default #line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2211 "parser.cpp" +#line 2226 "parser.cpp" break; case 39: // stmt: stmt_break #line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2217 "parser.cpp" +#line 2232 "parser.cpp" break; case 40: // stmt: stmt_continue #line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2223 "parser.cpp" +#line 2238 "parser.cpp" break; case 41: // stmt: stmt_return #line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2229 "parser.cpp" +#line 2244 "parser.cpp" break; case 42: // stmt: stmt_breakpoint #line 334 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2235 "parser.cpp" +#line 2250 "parser.cpp" break; case 43: // stmt: stmt_prof_begin #line 335 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2241 "parser.cpp" +#line 2256 "parser.cpp" break; case 44: // stmt: stmt_prof_end #line 336 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2247 "parser.cpp" +#line 2262 "parser.cpp" break; case 45: // stmt_or_dev: stmt #line 340 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2253 "parser.cpp" +#line 2268 "parser.cpp" break; case 46: // stmt_or_dev: stmt_dev #line 341 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2259 "parser.cpp" +#line 2274 "parser.cpp" break; case 47: // stmt_list: stmt_list stmt #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 2265 "parser.cpp" +#line 2280 "parser.cpp" break; case 48: // stmt_list: stmt #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 2271 "parser.cpp" +#line 2286 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev #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 2277 "parser.cpp" +#line 2292 "parser.cpp" break; case 50: // stmt_or_dev_list: stmt_or_dev #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 2283 "parser.cpp" +#line 2298 "parser.cpp" break; case 51: // stmt_dev: "/#" stmt_list "#/" #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 2289 "parser.cpp" +#line 2304 "parser.cpp" break; case 52: // stmt_dev: "/#" "#/" #line 360 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2295 "parser.cpp" +#line 2310 "parser.cpp" break; case 53: // stmt_block: "{" stmt_or_dev_list "}" #line 364 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2301 "parser.cpp" +#line 2316 "parser.cpp" break; case 54: // stmt_block: "{" "}" #line 365 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2307 "parser.cpp" +#line 2322 "parser.cpp" break; case 55: // stmt_expr: expr_assign #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 2313 "parser.cpp" +#line 2328 "parser.cpp" break; case 56: // stmt_expr: expr_increment #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 2319 "parser.cpp" +#line 2334 "parser.cpp" break; case 57: // stmt_expr: expr_decrement #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 2325 "parser.cpp" +#line 2340 "parser.cpp" break; case 58: // stmt_expr: %empty #line 376 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2331 "parser.cpp" +#line 2346 "parser.cpp" break; case 59: // stmt_call: expr_call ";" #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 2337 "parser.cpp" +#line 2352 "parser.cpp" break; case 60: // stmt_call: expr_method ";" #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 2343 "parser.cpp" +#line 2358 "parser.cpp" break; case 61: // stmt_assign: expr_assign ";" #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 2349 "parser.cpp" +#line 2364 "parser.cpp" break; case 62: // stmt_assign: expr_increment ";" #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 2355 "parser.cpp" +#line 2370 "parser.cpp" break; case 63: // stmt_assign: expr_decrement ";" #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 2361 "parser.cpp" +#line 2376 "parser.cpp" break; case 64: // stmt_endon: expr_object "endon" "(" expr ")" ";" #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 2367 "parser.cpp" +#line 2382 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" #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 2373 "parser.cpp" +#line 2388 "parser.cpp" break; case 66: // stmt_notify: expr_object "notify" "(" expr ")" ";" #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 2379 "parser.cpp" +#line 2394 "parser.cpp" break; case 67: // stmt_wait: "wait" expr ";" #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 2385 "parser.cpp" +#line 2400 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" #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 2391 "parser.cpp" +#line 2406 "parser.cpp" break; case 69: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" #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 2397 "parser.cpp" +#line 2412 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" #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 2403 "parser.cpp" +#line 2418 "parser.cpp" break; case 71: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" #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 2409 "parser.cpp" +#line 2424 "parser.cpp" break; case 72: // stmt_waittillframeend: "waittillframeend" ";" #line 428 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2415 "parser.cpp" +#line 2430 "parser.cpp" break; case 73: // stmt_waitframe: "waitframe" ";" #line 433 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2421 "parser.cpp" +#line 2436 "parser.cpp" break; case 74: // stmt_waitframe: "waitframe" "(" ")" ";" #line 435 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2427 "parser.cpp" +#line 2442 "parser.cpp" break; case 75: // stmt_if: "if" "(" expr ")" stmt #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 2433 "parser.cpp" +#line 2448 "parser.cpp" break; case 76: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt #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 2439 "parser.cpp" +#line 2454 "parser.cpp" break; case 77: // stmt_while: "while" "(" expr ")" stmt #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 2445 "parser.cpp" +#line 2460 "parser.cpp" break; case 78: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" #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 2451 "parser.cpp" +#line 2466 "parser.cpp" break; case 79: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt #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 2457 "parser.cpp" +#line 2472 "parser.cpp" break; case 80: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt #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 2463 "parser.cpp" +#line 2478 "parser.cpp" break; case 81: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt #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 2469 "parser.cpp" +#line 2484 "parser.cpp" break; case 82: // stmt_switch: "switch" "(" expr ")" stmt_block #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 2475 "parser.cpp" +#line 2490 "parser.cpp" break; case 83: // stmt_case: "case" expr_integer ":" #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 2481 "parser.cpp" +#line 2496 "parser.cpp" break; case 84: // stmt_case: "case" expr_string ":" #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 2487 "parser.cpp" +#line 2502 "parser.cpp" break; case 85: // stmt_default: "default" ":" #line 484 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2493 "parser.cpp" +#line 2508 "parser.cpp" break; case 86: // stmt_break: "break" ";" #line 489 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2499 "parser.cpp" +#line 2514 "parser.cpp" break; case 87: // stmt_continue: "continue" ";" #line 494 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2505 "parser.cpp" +#line 2520 "parser.cpp" break; case 88: // stmt_return: "return" expr ";" #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 2511 "parser.cpp" +#line 2526 "parser.cpp" break; case 89: // stmt_return: "return" ";" #line 501 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2517 "parser.cpp" +#line 2532 "parser.cpp" break; case 90: // stmt_breakpoint: "breakpoint" ";" #line 506 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2523 "parser.cpp" +#line 2538 "parser.cpp" break; case 91: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" #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 2529 "parser.cpp" +#line 2544 "parser.cpp" break; case 92: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" #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 2535 "parser.cpp" +#line 2550 "parser.cpp" break; case 93: // expr: expr_ternary #line 520 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2541 "parser.cpp" +#line 2556 "parser.cpp" break; case 94: // expr: expr_binary #line 521 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2547 "parser.cpp" +#line 2562 "parser.cpp" break; case 95: // expr: expr_primitive #line 522 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2553 "parser.cpp" +#line 2568 "parser.cpp" break; case 96: // expr_or_empty: expr #line 526 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2559 "parser.cpp" +#line 2574 "parser.cpp" break; case 97: // expr_or_empty: %empty #line 527 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2565 "parser.cpp" +#line 2580 "parser.cpp" break; case 98: // expr_assign: expr_object "=" expr #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 2571 "parser.cpp" +#line 2586 "parser.cpp" break; case 99: // expr_assign: expr_object "|=" expr #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 2577 "parser.cpp" +#line 2592 "parser.cpp" break; case 100: // expr_assign: expr_object "&=" expr #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 2583 "parser.cpp" +#line 2598 "parser.cpp" break; case 101: // expr_assign: expr_object "^=" expr #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 2589 "parser.cpp" +#line 2604 "parser.cpp" break; case 102: // expr_assign: expr_object "<<=" expr #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 2595 "parser.cpp" +#line 2610 "parser.cpp" break; case 103: // expr_assign: expr_object ">>=" expr #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 2601 "parser.cpp" +#line 2616 "parser.cpp" break; case 104: // expr_assign: expr_object "+=" expr #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 2607 "parser.cpp" +#line 2622 "parser.cpp" break; case 105: // expr_assign: expr_object "-=" expr #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 2613 "parser.cpp" +#line 2628 "parser.cpp" break; case 106: // expr_assign: expr_object "*=" expr #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 2619 "parser.cpp" +#line 2634 "parser.cpp" break; case 107: // expr_assign: expr_object "/=" expr #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 2625 "parser.cpp" +#line 2640 "parser.cpp" break; case 108: // expr_assign: expr_object "%=" expr #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 2631 "parser.cpp" +#line 2646 "parser.cpp" break; case 109: // expr_increment: "++" expr_object #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 2637 "parser.cpp" +#line 2652 "parser.cpp" break; case 110: // expr_increment: expr_object "++" #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 2643 "parser.cpp" +#line 2658 "parser.cpp" break; case 111: // expr_decrement: "--" expr_object #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 2649 "parser.cpp" +#line 2664 "parser.cpp" break; case 112: // expr_decrement: expr_object "--" #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 2655 "parser.cpp" +#line 2670 "parser.cpp" break; case 113: // expr_ternary: expr "?" expr ":" expr #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 2661 "parser.cpp" +#line 2676 "parser.cpp" break; case 114: // expr_binary: expr "||" expr #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 2667 "parser.cpp" +#line 2682 "parser.cpp" break; case 115: // expr_binary: expr "&&" expr #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 2673 "parser.cpp" +#line 2688 "parser.cpp" break; case 116: // expr_binary: expr "==" expr #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 2679 "parser.cpp" +#line 2694 "parser.cpp" break; case 117: // expr_binary: expr "!=" expr #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 2685 "parser.cpp" +#line 2700 "parser.cpp" break; case 118: // expr_binary: expr "<=" expr #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 2691 "parser.cpp" +#line 2706 "parser.cpp" break; case 119: // expr_binary: expr ">=" expr #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 2697 "parser.cpp" +#line 2712 "parser.cpp" break; case 120: // expr_binary: expr "<" expr #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 2703 "parser.cpp" +#line 2718 "parser.cpp" break; case 121: // expr_binary: expr ">" expr #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 2709 "parser.cpp" +#line 2724 "parser.cpp" break; case 122: // expr_binary: expr "|" expr #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 2715 "parser.cpp" +#line 2730 "parser.cpp" break; case 123: // expr_binary: expr "&" expr #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 2721 "parser.cpp" +#line 2736 "parser.cpp" break; case 124: // expr_binary: expr "^" expr #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 2727 "parser.cpp" +#line 2742 "parser.cpp" break; case 125: // expr_binary: expr "<<" expr #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 2733 "parser.cpp" +#line 2748 "parser.cpp" break; case 126: // expr_binary: expr ">>" expr #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 2739 "parser.cpp" +#line 2754 "parser.cpp" break; case 127: // expr_binary: expr "+" expr #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 2745 "parser.cpp" +#line 2760 "parser.cpp" break; case 128: // expr_binary: expr "-" expr #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 2751 "parser.cpp" +#line 2766 "parser.cpp" break; case 129: // expr_binary: expr "*" expr #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 2757 "parser.cpp" +#line 2772 "parser.cpp" break; case 130: // expr_binary: expr "/" expr #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 2763 "parser.cpp" +#line 2778 "parser.cpp" break; case 131: // expr_binary: expr "%" expr #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 2769 "parser.cpp" +#line 2784 "parser.cpp" break; case 132: // expr_primitive: expr_complement #line 614 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2775 "parser.cpp" +#line 2790 "parser.cpp" break; - case 133: // expr_primitive: expr_not + case 133: // expr_primitive: expr_negate #line 615 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2781 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_negate::ptr > ()); } +#line 2796 "parser.cpp" break; - case 134: // expr_primitive: expr_call + case 134: // expr_primitive: expr_not #line 616 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2787 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } +#line 2802 "parser.cpp" break; - case 135: // expr_primitive: expr_method + case 135: // expr_primitive: expr_call #line 617 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2793 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 2808 "parser.cpp" break; - case 136: // expr_primitive: expr_add_array + case 136: // expr_primitive: expr_method #line 618 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2799 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 2814 "parser.cpp" break; - case 137: // expr_primitive: expr_reference + case 137: // expr_primitive: expr_add_array #line 619 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2805 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } +#line 2820 "parser.cpp" break; - case 138: // expr_primitive: expr_array + case 138: // expr_primitive: expr_reference #line 620 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2811 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } +#line 2826 "parser.cpp" break; - case 139: // expr_primitive: expr_field + case 139: // expr_primitive: expr_array #line 621 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2817 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 2832 "parser.cpp" break; - case 140: // expr_primitive: expr_size + case 140: // expr_primitive: expr_field #line 622 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2823 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 2838 "parser.cpp" break; - case 141: // expr_primitive: expr_paren + case 141: // expr_primitive: expr_size #line 623 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2829 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } +#line 2844 "parser.cpp" break; - case 142: // expr_primitive: expr_thisthread + case 142: // expr_primitive: expr_paren #line 624 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2835 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } +#line 2850 "parser.cpp" break; - case 143: // expr_primitive: expr_empty_array + case 143: // expr_primitive: expr_thisthread #line 625 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2841 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } +#line 2856 "parser.cpp" break; - case 144: // expr_primitive: expr_undefined + case 144: // expr_primitive: expr_empty_array #line 626 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2847 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } +#line 2862 "parser.cpp" break; - case 145: // expr_primitive: expr_game + case 145: // expr_primitive: expr_undefined #line 627 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2853 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } +#line 2868 "parser.cpp" break; - case 146: // expr_primitive: expr_self + case 146: // expr_primitive: expr_game #line 628 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2859 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 2874 "parser.cpp" break; - case 147: // expr_primitive: expr_anim + case 147: // expr_primitive: expr_self #line 629 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2865 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 2880 "parser.cpp" break; - case 148: // expr_primitive: expr_level + case 148: // expr_primitive: expr_anim #line 630 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2871 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 2886 "parser.cpp" break; - case 149: // expr_primitive: expr_animation + case 149: // expr_primitive: expr_level #line 631 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2877 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 2892 "parser.cpp" break; - case 150: // expr_primitive: expr_animtree + case 150: // expr_primitive: expr_animation #line 632 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2883 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } +#line 2898 "parser.cpp" break; - case 151: // expr_primitive: expr_identifier_neg + case 151: // expr_primitive: expr_animtree #line 633 "parser.ypp" - { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2889 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2904 "parser.cpp" break; 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_identifier::ptr > ()); } -#line 2895 "parser.cpp" +#line 2910 "parser.cpp" break; 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_istring::ptr > ()); } -#line 2901 "parser.cpp" +#line 2916 "parser.cpp" break; 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_string::ptr > ()); } -#line 2907 "parser.cpp" +#line 2922 "parser.cpp" break; 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_vector::ptr > ()); } -#line 2913 "parser.cpp" +#line 2928 "parser.cpp" break; 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_float::ptr > ()); } -#line 2919 "parser.cpp" +#line 2934 "parser.cpp" break; 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" +#line 2940 "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" +#line 2946 "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 2937 "parser.cpp" +#line 2952 "parser.cpp" break; 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 2943 "parser.cpp" +#line 2958 "parser.cpp" break; - case 161: // expr_not: "!" expr + case 161: // expr_negate: "-" expr_identifier #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 2949 "parser.cpp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()))); } +#line 2964 "parser.cpp" break; - case 162: // expr_call: expr_function + case 162: // expr_negate: "-" expr_paren +#line 653 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()))); } +#line 2970 "parser.cpp" + break; + + case 163: // expr_negate: "-" expr_array #line 655 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_array::ptr > ()))); } +#line 2976 "parser.cpp" + break; + + case 164: // expr_negate: "-" expr_field +#line 657 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_field::ptr > ()))); } +#line 2982 "parser.cpp" + break; + + case 165: // expr_not: "!" expr +#line 662 "parser.ypp" + { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } +#line 2988 "parser.cpp" + break; + + case 166: // expr_call: expr_function +#line 666 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 2955 "parser.cpp" +#line 2994 "parser.cpp" break; - 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 2961 "parser.cpp" - break; - - 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 2967 "parser.cpp" - break; - - 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 2973 "parser.cpp" - break; - - 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::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: expr_path "::" expr_identifier "(" expr_arguments ")" + case 167: // expr_call: expr_pointer #line 667 "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 2985 "parser.cpp" + { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } +#line 3000 "parser.cpp" break; - 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::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" + case 168: // expr_method: expr_object expr_function +#line 670 "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 3006 "parser.cpp" break; - case 169: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 169: // expr_method: expr_object expr_pointer #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::thread); } -#line 2997 "parser.cpp" + { 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 3012 "parser.cpp" break; - 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" + case 170: // expr_function: expr_identifier "(" expr_arguments ")" +#line 676 "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 3018 "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 3009 "parser.cpp" + case 171: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" +#line 678 "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 3024 "parser.cpp" break; - case 172: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" + case 172: // expr_function: "thread" expr_identifier "(" 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::normal); } -#line 3015 "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 3030 "parser.cpp" break; - case 173: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 173: // expr_function: "thread" expr_path "::" expr_identifier "(" 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::thread); } -#line 3021 "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 3036 "parser.cpp" break; - case 174: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 174: // expr_function: "childthread" expr_identifier "(" 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" + { 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 3042 "parser.cpp" break; - case 175: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 175: // expr_function: "childthread" expr_path "::" expr_identifier "(" 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 3033 "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::childthread); } +#line 3048 "parser.cpp" break; - case 176: // expr_add_array: "[" expr_arguments_no_empty "]" + case 176: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 691 "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 3054 "parser.cpp" + break; + + case 177: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 693 "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 3060 "parser.cpp" + break; + + case 178: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 695 "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 3066 "parser.cpp" + break; + + case 179: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 697 "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 3072 "parser.cpp" + break; + + case 180: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 702 "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 3039 "parser.cpp" +#line 3078 "parser.cpp" break; - case 177: // expr_parameters: expr_parameters "," expr_identifier -#line 696 "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 3045 "parser.cpp" - break; - - 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 3057 "parser.cpp" - break; - - 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 + case 181: // expr_parameters: expr_parameters "," expr_identifier #line 707 "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 3084 "parser.cpp" + break; + + case 182: // expr_parameters: expr_identifier +#line 709 "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 3090 "parser.cpp" + break; + + case 183: // expr_parameters: %empty +#line 711 "parser.ypp" + { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } +#line 3096 "parser.cpp" + break; + + case 184: // expr_arguments: expr_arguments_no_empty +#line 716 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3102 "parser.cpp" + break; + + case 185: // expr_arguments: %empty +#line 718 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3069 "parser.cpp" +#line 3108 "parser.cpp" break; - case 182: // expr_arguments_no_empty: expr_arguments "," expr -#line 712 "parser.ypp" + case 186: // expr_arguments_no_empty: expr_arguments "," expr +#line 723 "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" +#line 3114 "parser.cpp" break; - case 183: // expr_arguments_no_empty: expr -#line 714 "parser.ypp" + case 187: // expr_arguments_no_empty: expr +#line 725 "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 3081 "parser.cpp" +#line 3120 "parser.cpp" break; - case 184: // expr_reference: "::" expr_identifier -#line 719 "parser.ypp" + case 188: // expr_reference: "::" expr_identifier +#line 730 "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" +#line 3126 "parser.cpp" break; - case 185: // expr_reference: expr_path "::" expr_identifier -#line 721 "parser.ypp" + case 189: // expr_reference: expr_path "::" expr_identifier +#line 732 "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 3093 "parser.cpp" +#line 3132 "parser.cpp" break; - case 186: // expr_array: expr_object "[" expr "]" -#line 726 "parser.ypp" + case 190: // expr_array: expr_object "[" expr "]" +#line 737 "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 3099 "parser.cpp" +#line 3138 "parser.cpp" break; - case 187: // expr_field: expr_object "." expr_identifier_nosize -#line 731 "parser.ypp" + case 191: // expr_field: expr_object "." expr_identifier_nosize +#line 742 "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 3105 "parser.cpp" +#line 3144 "parser.cpp" break; - 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 3111 "parser.cpp" - break; - - 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 3117 "parser.cpp" - break; - - 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_call::ptr > ()); } -#line 3123 "parser.cpp" - break; - - 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_method::ptr > ()); } -#line 3129 "parser.cpp" - break; - - case 192: // expr_object: expr_array + case 192: // expr_size: expr_object "." "size" #line 747 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3135 "parser.cpp" + { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } +#line 3150 "parser.cpp" break; - 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_field::ptr > ()); } -#line 3141 "parser.cpp" - break; - - 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_game::ptr > ()); } -#line 3147 "parser.cpp" - break; - - 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_self::ptr > ()); } -#line 3153 "parser.cpp" - break; - - 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 + case 193: // expr_paren: "(" expr ")" #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" + { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3156 "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 3171 "parser.cpp" + case 194: // expr_object: expr_call +#line 756 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3162 "parser.cpp" break; - case 199: // expr_thisthread: "thisthread" + case 195: // expr_object: expr_method +#line 757 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3168 "parser.cpp" + break; + + case 196: // expr_object: expr_array #line 758 "parser.ypp" - { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3177 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3174 "parser.cpp" break; - case 200: // expr_empty_array: "[" "]" + case 197: // expr_object: expr_field +#line 759 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3180 "parser.cpp" + break; + + case 198: // expr_object: expr_game +#line 760 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3186 "parser.cpp" + break; + + case 199: // expr_object: expr_self +#line 761 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3192 "parser.cpp" + break; + + case 200: // expr_object: expr_anim +#line 762 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3198 "parser.cpp" + break; + + case 201: // expr_object: expr_level #line 763 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3204 "parser.cpp" + break; + + case 202: // expr_object: expr_identifier +#line 764 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 3210 "parser.cpp" + break; + + case 203: // expr_thisthread: "thisthread" +#line 769 "parser.ypp" + { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } +#line 3216 "parser.cpp" + break; + + case 204: // expr_empty_array: "[" "]" +#line 774 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3183 "parser.cpp" +#line 3222 "parser.cpp" break; - case 201: // expr_undefined: "undefined" -#line 768 "parser.ypp" + case 205: // expr_undefined: "undefined" +#line 779 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3189 "parser.cpp" +#line 3228 "parser.cpp" break; - case 202: // expr_game: "game" -#line 773 "parser.ypp" + case 206: // expr_game: "game" +#line 784 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3195 "parser.cpp" +#line 3234 "parser.cpp" break; - case 203: // expr_self: "self" -#line 778 "parser.ypp" + case 207: // expr_self: "self" +#line 789 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3201 "parser.cpp" +#line 3240 "parser.cpp" break; - case 204: // expr_anim: "anim" -#line 783 "parser.ypp" + case 208: // expr_anim: "anim" +#line 794 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3207 "parser.cpp" +#line 3246 "parser.cpp" break; - case 205: // expr_level: "level" -#line 788 "parser.ypp" + case 209: // expr_level: "level" +#line 799 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3213 "parser.cpp" +#line 3252 "parser.cpp" break; - case 206: // expr_animation: "%" "identifier" -#line 793 "parser.ypp" + case 210: // expr_animation: "%" "identifier" +#line 804 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3219 "parser.cpp" +#line 3258 "parser.cpp" break; - case 207: // expr_animtree: "#animtree" -#line 798 "parser.ypp" + case 211: // expr_animtree: "#animtree" +#line 809 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3225 "parser.cpp" +#line 3264 "parser.cpp" break; - 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 209: // expr_identifier_nosize: "identifier" -#line 808 "parser.ypp" + case 212: // expr_identifier_nosize: "identifier" +#line 814 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3237 "parser.cpp" +#line 3270 "parser.cpp" break; - case 210: // expr_identifier: "identifier" -#line 813 "parser.ypp" + case 213: // expr_identifier: "identifier" +#line 819 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3243 "parser.cpp" +#line 3276 "parser.cpp" break; - case 211: // expr_identifier: "size" -#line 815 "parser.ypp" + case 214: // expr_identifier: "size" +#line 821 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3249 "parser.cpp" +#line 3282 "parser.cpp" break; - case 212: // expr_path: "identifier" -#line 820 "parser.ypp" + case 215: // expr_path: "identifier" +#line 826 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3255 "parser.cpp" +#line 3288 "parser.cpp" break; - case 213: // expr_path: "path" -#line 822 "parser.ypp" + case 216: // expr_path: "path" +#line 828 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3261 "parser.cpp" +#line 3294 "parser.cpp" break; - case 214: // expr_istring: "localized string" -#line 827 "parser.ypp" + case 217: // expr_istring: "localized string" +#line 833 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3267 "parser.cpp" +#line 3300 "parser.cpp" break; - case 215: // expr_string: "string literal" -#line 832 "parser.ypp" + case 218: // expr_string: "string literal" +#line 838 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3273 "parser.cpp" +#line 3306 "parser.cpp" break; - case 216: // expr_vector: "(" expr "," expr "," expr ")" -#line 837 "parser.ypp" + case 219: // expr_vector: "(" expr "," expr "," expr ")" +#line 843 "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 3279 "parser.cpp" +#line 3312 "parser.cpp" break; - case 217: // expr_float: "-" "float" -#line 842 "parser.ypp" + case 220: // expr_float: "-" "float" +#line 848 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3285 "parser.cpp" +#line 3318 "parser.cpp" break; - case 218: // expr_float: "float" -#line 844 "parser.ypp" + case 221: // expr_float: "float" +#line 850 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3291 "parser.cpp" +#line 3324 "parser.cpp" break; - case 219: // expr_integer: "-" "integer" -#line 849 "parser.ypp" + case 222: // expr_integer: "-" "integer" +#line 855 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3297 "parser.cpp" +#line 3330 "parser.cpp" break; - case 220: // expr_integer: "integer" -#line 851 "parser.ypp" + case 223: // expr_integer: "integer" +#line 857 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3303 "parser.cpp" +#line 3336 "parser.cpp" break; - case 221: // expr_false: "false" -#line 856 "parser.ypp" + case 224: // expr_false: "false" +#line 862 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3309 "parser.cpp" +#line 3342 "parser.cpp" break; - case 222: // expr_true: "true" -#line 861 "parser.ypp" + case 225: // expr_true: "true" +#line 867 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3315 "parser.cpp" +#line 3348 "parser.cpp" break; -#line 3319 "parser.cpp" +#line 3352 "parser.cpp" default: break; @@ -3523,16 +3556,16 @@ namespace xsk { namespace gsc { namespace s2 { "stmt_break", "stmt_continue", "stmt_return", "stmt_breakpoint", "stmt_prof_begin", "stmt_prof_end", "expr", "expr_or_empty", "expr_assign", "expr_increment", "expr_decrement", "expr_ternary", - "expr_binary", "expr_primitive", "expr_complement", "expr_not", - "expr_call", "expr_method", "expr_function", "expr_pointer", + "expr_binary", "expr_primitive", "expr_complement", "expr_negate", + "expr_not", "expr_call", "expr_method", "expr_function", "expr_pointer", "expr_add_array", "expr_parameters", "expr_arguments", "expr_arguments_no_empty", "expr_reference", "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_neg", "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_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]; } @@ -3801,519 +3834,538 @@ namespace xsk { namespace gsc { namespace s2 { } - const short parser::yypact_ninf_ = -271; + const short parser::yypact_ninf_ = -287; - const short parser::yytable_ninf_ = -213; + const short parser::yytable_ninf_ = -216; const short parser::yypact_[] = { - 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, 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 + 9, -287, -287, -65, -65, -40, -287, -287, 41, 9, + -287, -287, -287, -287, -287, -287, -25, -287, -287, -12, + -8, -55, -287, -287, -287, -287, -34, 1152, -287, -287, + -287, 12, -19, -287, -287, -28, -18, -287, 4, -287, + -287, -287, -287, -287, -287, -287, 1152, 1026, -34, 1152, + 1152, 35, -27, 28, -287, -287, -287, 2117, -287, -287, + -287, -287, -287, -287, 543, 557, -287, -287, -287, -287, + 604, 666, -287, -287, 677, -287, -287, -287, 878, 955, + 1113, 1176, -287, -287, 215, 33, -287, -287, -287, -287, + -287, -287, -287, 32, 57, -34, 59, 52, 62, 67, + 75, 74, 85, 1408, 1026, -287, 2200, 92, 99, -287, + -287, -287, 1152, 102, -287, -287, -287, -287, 604, 666, + -287, 1375, -287, -287, -287, -287, 215, 100, -287, -287, + 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1215, + -31, -287, -287, 109, 1152, -34, -287, 769, -287, -287, + 1152, 1152, -34, 1152, 1152, -34, 1152, -287, 1152, 1886, + 1152, -287, 1574, 1152, 65, -34, 2082, 84, 84, 2231, + 2241, 2323, 2323, 249, 249, 249, 249, 2272, 2313, 2282, + 76, 76, -287, -287, -287, 1926, -287, -287, -287, -1, + -287, 116, 923, 1152, 111, -15, 129, 1339, 131, 132, + 134, 135, -53, 130, 128, 136, 1089, 137, 142, 145, + -287, 69, 69, -287, -287, 846, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + -287, -287, 141, 143, 146, 148, 149, -287, -287, 1262, + 109, 1966, 8, 160, 2006, 15, 161, 2046, 1021, 163, + 2200, 1886, 116, 1152, -287, -287, 1152, -287, -287, 1000, + 2152, -287, 164, -287, 1152, 196, 1152, 49, -34, 1152, + 122, 165, 166, -287, -287, -287, -287, 2187, -287, 1152, + 1152, 1375, 1375, -287, -287, -287, -287, -287, -287, -287, + 178, 181, 182, 186, -287, -287, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1152, 1152, 1152, 1152, 187, -287, 1152, + 193, -287, 1152, 195, 1152, 201, 2200, 19, -287, -287, + -287, 177, 1608, 205, 1642, 198, -287, -287, -287, 1365, + 1, 1676, -287, -287, -287, 48, 50, 1152, 1152, 1152, + 1152, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, + 2200, 2200, 209, 73, 211, 77, 218, 1710, 1152, -287, + -287, 1339, 1152, 1339, 1152, 1152, -34, 57, 203, 210, + 1744, 1452, 1496, 1540, 1152, -287, 1152, -287, 1152, -287, + 87, 250, 1778, -287, 2200, 214, 1812, 248, -287, -287, + -287, 220, 222, 1152, 223, 1152, 227, 1152, 90, 91, + 101, -287, 1339, 230, 49, 1339, 1152, -287, -287, 224, + -287, 244, -287, 246, -287, -287, -287, -287, -287, 251, + -287, 1846, 231, 238, 243, 1339, 1339, -287, -287, -287, + -287, -287 }; const unsigned char parser::yydefact_[] = { - 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, + 3, 12, 13, 0, 0, 0, 214, 213, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 216, 215, 0, + 0, 0, 1, 4, 5, 6, 183, 0, 10, 11, + 218, 0, 0, 182, 211, 0, 0, 203, 0, 225, + 224, 205, 206, 207, 208, 209, 0, 185, 0, 0, + 0, 0, 0, 213, 217, 221, 223, 0, 93, 94, + 95, 132, 133, 134, 135, 136, 166, 167, 137, 138, + 139, 140, 141, 142, 0, 143, 144, 145, 146, 147, 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, 185, 204, 187, 0, 184, 188, + 165, 160, 0, 0, 220, 222, 194, 195, 163, 164, + 162, 0, 198, 199, 200, 201, 161, 0, 210, 18, 0, 0, 0, 0, 0, 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, 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, 168, 169, 0, 185, 0, 17, 0, 19, 181, + 0, 185, 0, 0, 185, 0, 0, 193, 0, 187, + 0, 180, 0, 0, 0, 0, 0, 125, 126, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 127, 128, 129, 130, 131, 0, 192, 212, 191, 0, + 184, 189, 0, 0, 0, 0, 0, 0, 0, 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 + 54, 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, + 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 186, 0, 0, 0, 190, 170, 185, 52, 48, 0, + 0, 72, 0, 73, 0, 0, 0, 58, 0, 0, + 0, 0, 0, 85, 86, 87, 89, 0, 90, 185, + 185, 109, 111, 53, 49, 61, 62, 63, 59, 60, + 0, 0, 0, 0, 110, 112, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 185, + 0, 174, 185, 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, 98, 104, 105, 106, 107, 108, 99, 100, 101, + 103, 102, 0, 0, 0, 0, 0, 0, 185, 171, + 74, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 185, 173, 185, 175, 185, 219, + 0, 75, 0, 77, 96, 0, 0, 0, 82, 91, + 92, 0, 0, 185, 0, 185, 0, 185, 0, 0, + 0, 176, 0, 0, 58, 0, 0, 64, 66, 184, + 69, 184, 71, 184, 177, 178, 179, 76, 78, 0, + 80, 0, 0, 0, 0, 0, 0, 65, 68, 70, + 79, 81 }; const short parser::yypgoto_[] = { - -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, - 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 + -287, -287, -287, 271, 297, 298, -287, -287, -287, -177, + 86, -287, -287, -287, -91, -114, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, + 191, -287, -286, -285, -282, -287, -287, -287, -287, -287, + -287, -33, -6, -66, -59, -287, -287, -147, -41, -287, + 213, 240, -287, 263, 247, -287, -287, -287, 316, 322, + 333, 404, -287, -287, -287, 0, 7, -287, -17, -287, + -287, 105, -287, -287 }; const short parser::yydefgoto_[] = { - 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, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 223, + 224, 279, 225, 226, 227, 345, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 106, 405, 252, 253, 254, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 32, 107, 200, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 182, 84, 85, 86, 87, 88, + 80, 81, 82, 83, 198, 84, 85, 86, 87, 88, 89, 90, 91, 92 }; const short parser::yytable_[] = { - 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, 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, + 16, 346, 347, 158, 31, 348, 108, 199, 151, 16, + 19, 20, 21, 6, 262, 152, 196, 265, 116, 6, + 1, 2, 3, 4, 5, 278, 33, 26, 96, 6, + 285, 385, 17, 18, 94, 97, 100, 282, 99, 95, + 290, 22, 98, 101, 30, 117, 30, 283, 109, 56, + 28, 126, 275, 27, 29, 151, 6, 170, 127, 386, + 102, 328, 152, 108, 7, 93, 170, 197, 331, 17, + 53, 128, 379, 170, 153, 35, 36, 170, 38, 17, + 53, 127, 6, 42, 43, 44, 45, 112, -215, 35, + 36, 113, 38, 155, 156, 159, 6, 42, 43, 44, + 45, 388, 339, 389, 161, 113, 170, 7, 170, 35, + 36, 157, 38, 221, 222, 160, 6, 42, 43, 44, + 45, 153, 162, 163, 255, 113, 395, 164, 127, 337, + 397, 170, 17, 53, 165, 170, 114, 115, 346, 347, + 421, 166, 348, 434, 435, 170, 17, 53, 170, 170, + 170, 256, 355, 356, 436, 201, 171, 260, 173, 170, + 175, 154, 263, 197, 127, 266, 17, 53, 276, 255, + 146, 147, 148, 281, 255, 272, 144, 145, 146, 147, + 148, 284, 373, 286, 287, 375, 288, 289, 116, 116, + 294, 293, 255, 151, 299, 291, 256, 300, 295, 298, + 152, 256, 260, 305, 401, 306, 403, 260, 307, 127, + 308, 309, 329, 332, 127, 117, 117, 341, 57, 256, + 335, 260, 260, 343, 115, 260, 352, 353, 127, 127, + 357, 400, 127, 358, 359, 151, 151, 103, 360, 380, + 110, 111, 152, 152, 372, 437, 255, 418, 440, 419, + 374, 420, 376, 378, 116, -202, -202, 382, -202, 153, + 384, 394, -202, 396, 118, 409, 127, 154, 450, 451, + 398, -202, 410, 256, -202, 422, 424, 442, 426, 260, + 23, 117, 427, 151, 428, 430, 127, 260, 350, 432, + 152, 119, 438, 447, 127, 169, 408, 443, 121, 444, + 448, 153, 153, 172, 445, 449, 24, 25, 127, 127, + 439, 304, -202, -202, 120, 131, 132, 292, 0, 0, + 0, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 144, 145, 146, 147, 148, 0, 0, 255, 153, + 255, 261, 0, 0, 264, 0, 127, 267, 0, 268, + 0, 270, 0, 0, 271, 0, 0, 122, 0, 0, + 257, 0, 429, 123, 431, 256, 433, 256, 0, 0, + 0, 260, 0, 260, 124, 0, 407, 0, 127, 255, + 127, 116, 255, 0, 280, 0, 0, 258, 0, 0, + 0, 0, 0, 0, 259, 0, 0, 297, 0, 0, + 0, 0, 255, 255, 0, 257, 256, 0, 117, 256, + 257, 0, 260, 0, 260, 260, 0, 0, 0, 127, + 0, 127, 127, 0, 257, 257, 0, 0, 257, 256, + 256, 0, 258, 0, 0, 260, 260, 258, 0, 259, + 0, 0, 127, 127, 259, 125, 0, 0, 0, 0, + 0, 258, 258, 0, 336, 258, 0, 0, 301, 302, + 0, 0, 259, 122, 0, 342, 0, 344, 0, 123, + 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 124, 0, 257, 0, 0, 0, 0, 0, 0, 0, + 257, 0, 0, 0, 0, 0, 0, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 122, 258, + 0, 0, 0, 122, 123, 377, 259, 258, 0, 123, + 0, 0, 0, 0, 349, 124, 0, 122, 122, 0, + 124, 122, 0, 123, 123, 0, 0, 123, 390, 391, + 392, 393, 0, 0, 124, 124, 0, 0, 124, 0, + 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 402, 0, 404, 406, 0, 0, 0, + 0, 0, 0, -194, -194, 0, -194, 0, 0, 0, + -194, 0, 0, 0, 257, 122, 257, -195, -195, -194, + -195, 123, -194, 122, -195, 0, 125, 0, 0, 123, + 0, 125, 124, -195, 0, 0, -195, 441, 0, 0, + 124, 258, 0, 258, 0, 125, 125, 0, 259, 125, + 259, 0, 0, 0, 0, 257, 0, 257, 257, 0, + -194, -194, 0, 0, -196, -196, 0, -196, 0, 0, + 0, -196, 0, 0, -195, -195, 0, 0, 257, 257, + -196, 0, 258, -196, 258, 258, 0, 0, 0, 259, + 0, 349, 259, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 258, 258, 0, 0, 0, + 0, 125, 259, 259, 0, 0, 0, 122, 0, 122, + 0, -196, -196, 123, 0, 123, -197, -197, 0, -197, + 0, 0, 0, -197, 124, 0, 124, 35, 36, 0, + 38, 0, -197, 0, 6, -197, 0, 0, 0, 0, + 0, 0, 0, 149, 0, 0, 150, 0, 122, 0, + 122, 122, 0, 0, 123, 0, 123, 123, 0, 0, + 0, 0, 0, 0, 0, 124, 0, 124, 124, 0, + 0, 122, 122, -197, -197, 0, 0, 123, 123, 0, + 0, 0, 0, 0, 17, 53, 0, 0, 124, 124, + 202, 0, 0, 0, 0, 125, 0, 125, 203, 0, + 0, 204, 205, 206, 0, 207, 208, 209, 210, 0, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 35, + 36, 0, 38, 0, 0, 0, 6, 42, 43, 44, + 45, 0, 0, 157, 220, 113, 125, 0, 125, 125, + 0, 0, 0, 221, 222, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 125, 0, 0, 0, 0, 0, 0, 202, 0, 0, + 0, 0, 0, 0, 0, 203, 17, 53, 204, 205, + 206, 0, 207, 208, 209, 210, 0, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 35, 36, 0, 38, + 0, 0, 0, 6, 42, 43, 44, 45, 0, 0, + 157, 303, 113, 0, 0, 0, 0, 0, 0, 0, + 221, 222, 0, 0, 0, 0, 0, 0, -198, -198, + 0, -198, 0, 0, 0, -198, 0, 0, 0, 0, + 0, 0, 0, 0, -198, 277, 0, -198, 0, 0, + 0, 0, 203, 17, 53, 204, 205, 206, 0, 207, + 208, 209, 210, 0, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 35, 36, 0, 38, 0, 0, 0, + 6, 42, 43, 44, 45, -198, -198, 157, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 221, 222, 0, + 0, 0, 0, 0, 0, -199, -199, 0, -199, 0, + 0, 0, -199, 0, 0, 0, 0, 0, 0, 0, + 0, -199, 338, 0, -199, 0, 0, 0, 0, 203, + 17, 53, 204, 205, 206, 0, 207, 208, 209, 210, + 0, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 35, 36, 34, 38, 0, 0, 0, 6, 42, 43, + 44, 45, -199, -199, 157, 0, 113, 0, 0, 0, + 0, 0, 0, 0, 221, 222, 35, 36, 37, 38, + 39, 40, 41, 6, 42, 43, 44, 45, 46, 334, + 0, 0, 104, 105, 130, 0, 48, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 17, 53, 0, + 0, 0, 49, 50, 0, 34, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 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, 296, 0, -200, -200, 0, -200, 0, 0, 0, + -200, 0, 0, 0, 0, 49, 50, 0, 34, -200, + 0, 0, -200, 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, 47, 0, + -200, -200, 48, 0, 0, 0, -201, -201, 0, -201, + 0, 0, 0, -201, 0, 0, 0, 0, 49, 50, + 0, 34, -201, 0, 0, -201, 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, 104, 0, -201, -201, 48, 0, 0, 0, 310, + 311, 0, 312, 313, 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, 149, 0, + 0, 174, 0, 0, 0, 0, 314, 315, 0, 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, - -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, 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, 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, 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, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 0, 0, 0, 0, 0, 0, 0, 203, 17, + 53, 204, 205, 206, 0, 207, 208, 209, 210, 0, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 35, + 36, 0, 38, 0, 0, 0, 6, 42, 43, 44, + 45, 0, 0, 157, 0, 113, 0, 0, 0, 0, + 0, 0, 0, 221, 222, 35, 36, 0, 38, 0, + 0, 0, 6, 0, 0, 35, 36, 0, 38, 0, + 0, 149, 6, 0, 174, 0, 0, 0, 0, 314, + 315, 149, 0, 0, 174, 0, 17, 53, 0, 0, + 0, 0, 0, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 0, 0, 0, 0, 0, 0, + 0, 167, 17, 53, 0, 0, 168, 0, 0, 0, + 0, 130, 17, 53, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 141, 142, 143, + 144, 145, 146, 147, 148, 412, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 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, 141, 142, 143, 144, 145, 146, 147, 148, 414, + 0, 0, 0, 0, 415, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 416, 0, 0, 0, 0, 417, 0, + 0, 0, 0, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 167, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 130, 0, 0, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 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, 381, 0, 141, 142, 143, 144, 145, 146, 147, + 148, 130, 0, 0, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 383, 0, 141, 142, 143, + 144, 145, 146, 147, 148, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 387, + 0, 141, 142, 143, 144, 145, 146, 147, 148, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 399, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 411, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 130, 0, 0, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 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, 423, 0, 141, 142, 143, 144, 145, 146, 147, + 148, 130, 0, 0, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 425, 0, 141, 142, 143, + 144, 145, 146, 147, 148, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, + 0, 141, 142, 143, 144, 145, 146, 147, 148, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 269, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 274, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 327, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 330, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 333, 0, 0, 0, 0, 0, 130, + 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, + 146, 147, 148, 273, 0, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 0, 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, 141, 142, 143, 144, 145, 146, 147, 148, 129, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, + 145, 146, 147, 148, 340, 130, 0, 0, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 0, 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 + 0, 141, 142, 143, 144, 145, 146, 147, 148, 354, + 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 130, 0, 0, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 0, 0, 0, 0, 0, 141, + 142, 143, 144, 145, 146, 147, 148, 131, 132, 0, + 134, 135, 136, 137, 138, 139, 140, 131, 132, 0, + 0, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 131, 132, + 0, 0, 135, 136, 137, 138, 139, 140, 131, 132, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 142, 143, 144, 145, 146, 147, 148, 0, + 0, 0, 142, 0, 144, 145, 146, 147, 148, 131, + 132, 0, 0, 135, 136, 137, 138, 139, 140, 131, + 132, 0, 0, 0, 0, 137, 138, 139, 140, 0, + 0, 0, 0, 0, 0, 144, 145, 146, 147, 148, + 0, 0, 0, 0, 0, 144, 145, 146, 147, 148 }; const short parser::yycheck_[] = { - 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, 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, + 0, 287, 287, 94, 21, 287, 47, 154, 74, 9, + 3, 4, 52, 47, 161, 74, 47, 164, 51, 47, + 11, 12, 13, 14, 15, 202, 26, 52, 56, 47, + 207, 30, 97, 98, 53, 35, 36, 52, 56, 58, + 93, 0, 35, 36, 99, 51, 99, 62, 48, 102, + 62, 51, 53, 78, 62, 121, 47, 58, 51, 58, + 56, 53, 121, 104, 98, 53, 58, 98, 53, 97, + 98, 98, 53, 58, 74, 40, 41, 58, 43, 97, + 98, 74, 47, 48, 49, 50, 51, 52, 60, 40, + 41, 56, 43, 60, 62, 95, 47, 48, 49, 50, + 51, 53, 279, 53, 52, 56, 58, 98, 58, 40, + 41, 54, 43, 64, 65, 56, 47, 48, 49, 50, + 51, 121, 60, 56, 157, 56, 53, 52, 121, 276, + 53, 58, 97, 98, 60, 58, 101, 102, 424, 424, + 53, 56, 424, 53, 53, 58, 97, 98, 58, 58, + 58, 157, 299, 300, 53, 155, 57, 157, 56, 58, + 60, 52, 162, 98, 157, 165, 97, 98, 52, 202, + 94, 95, 96, 62, 207, 175, 92, 93, 94, 95, + 96, 52, 329, 52, 52, 332, 52, 52, 221, 222, + 62, 61, 225, 259, 52, 212, 202, 52, 62, 62, + 259, 207, 202, 62, 381, 62, 383, 207, 62, 202, + 62, 62, 52, 52, 207, 221, 222, 53, 27, 225, + 57, 221, 222, 27, 102, 225, 61, 61, 221, 222, + 52, 378, 225, 52, 52, 301, 302, 46, 52, 62, + 49, 50, 301, 302, 57, 422, 279, 394, 425, 396, + 57, 398, 57, 52, 287, 40, 41, 52, 43, 259, + 62, 52, 47, 52, 51, 62, 259, 52, 445, 446, + 52, 56, 62, 279, 59, 25, 62, 53, 30, 279, + 9, 287, 62, 349, 62, 62, 279, 287, 288, 62, + 349, 51, 62, 62, 287, 104, 387, 53, 51, 53, + 62, 301, 302, 112, 53, 62, 9, 9, 301, 302, + 424, 225, 97, 98, 51, 66, 67, 212, -1, -1, + -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 92, 93, 94, 95, 96, -1, -1, 381, 349, + 383, 160, -1, -1, 163, -1, 349, 166, -1, 168, + -1, 170, -1, -1, 173, -1, -1, 51, -1, -1, + 157, -1, 413, 51, 415, 381, 417, 383, -1, -1, + -1, 381, -1, 383, 51, -1, 386, -1, 381, 422, + 383, 424, 425, -1, 203, -1, -1, 157, -1, -1, + -1, -1, -1, -1, 157, -1, -1, 216, -1, -1, + -1, -1, 445, 446, -1, 202, 422, -1, 424, 425, + 207, -1, 422, -1, 424, 425, -1, -1, -1, 422, + -1, 424, 425, -1, 221, 222, -1, -1, 225, 445, + 446, -1, 202, -1, -1, 445, 446, 207, -1, 202, + -1, -1, 445, 446, 207, 51, -1, -1, -1, -1, + -1, 221, 222, -1, 273, 225, -1, -1, 221, 222, + -1, -1, 225, 157, -1, 284, -1, 286, -1, 157, + 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 157, -1, 279, -1, -1, -1, -1, -1, -1, -1, + 287, -1, -1, -1, -1, -1, -1, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 202, 279, + -1, -1, -1, 207, 202, 334, 279, 287, -1, 207, + -1, -1, -1, -1, 287, 202, -1, 221, 222, -1, + 207, 225, -1, 221, 222, -1, -1, 225, 357, 358, + 359, 360, -1, -1, 221, 222, -1, -1, 225, -1, + -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 382, -1, 384, 385, -1, -1, -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, + 47, -1, -1, -1, 381, 279, 383, 40, 41, 56, + 43, 279, 59, 287, 47, -1, 202, -1, -1, 287, + -1, 207, 279, 56, -1, -1, 59, 426, -1, -1, + 287, 381, -1, 383, -1, 221, 222, -1, 381, 225, + 383, -1, -1, -1, -1, 422, -1, 424, 425, -1, + 97, 98, -1, -1, 40, 41, -1, 43, -1, -1, + -1, 47, -1, -1, 97, 98, -1, -1, 445, 446, + 56, -1, 422, 59, 424, 425, -1, -1, -1, 422, + -1, 424, 425, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 279, -1, 445, 446, -1, -1, -1, + -1, 287, 445, 446, -1, -1, -1, 381, -1, 383, + -1, 97, 98, 381, -1, 383, 40, 41, -1, 43, + -1, -1, -1, 47, 381, -1, 383, 40, 41, -1, + 43, -1, 56, -1, 47, 59, -1, -1, -1, -1, + -1, -1, -1, 56, -1, -1, 59, -1, 422, -1, + 424, 425, -1, -1, 422, -1, 424, 425, -1, -1, + -1, -1, -1, -1, -1, 422, -1, 424, 425, -1, + -1, 445, 446, 97, 98, -1, -1, 445, 446, -1, + -1, -1, -1, -1, 97, 98, -1, -1, 445, 446, + 11, -1, -1, -1, -1, 381, -1, 383, 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, 54, 55, 56, 422, -1, 424, 425, + -1, -1, -1, 64, 65, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 445, + 446, -1, -1, -1, -1, -1, -1, 11, -1, -1, + -1, -1, -1, -1, -1, 19, 97, 98, 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, + 54, 55, 56, -1, -1, -1, -1, -1, -1, -1, + 64, 65, -1, -1, -1, -1, -1, -1, 40, 41, + -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, 56, 12, -1, 59, -1, -1, + -1, -1, 19, 97, 98, 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, 97, 98, 54, -1, 56, + -1, -1, -1, -1, -1, -1, -1, 64, 65, -1, + -1, -1, -1, -1, -1, 40, 41, -1, 43, -1, + -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, + -1, 56, 12, -1, 59, -1, -1, -1, -1, 19, + 97, 98, 22, 23, 24, -1, 26, 27, 28, 29, + -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 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, 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, 60, + -1, 62, -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, + 97, 98, 60, -1, -1, -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, 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, 43, -1, -1, 93, 47, + -1, 96, 97, 98, 99, 100, 101, 102, 56, -1, + -1, 59, -1, -1, -1, -1, 64, 65, -1, -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, 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, - 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, - 36, 37, 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, -1, 64, 65, - -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, - -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, - -1, -1, 56, 12, -1, 59, -1, -1, -1, -1, - 19, 97, 98, 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, 97, 98, 54, -1, 56, -1, -1, - -1, -1, -1, -1, -1, 64, 65, -1, -1, -1, - -1, -1, -1, 40, 41, -1, 43, -1, -1, -1, - 47, -1, -1, -1, -1, -1, -1, -1, -1, 56, - 12, -1, 59, -1, -1, -1, -1, 19, 97, 98, - 22, 23, 24, -1, 26, 27, 28, 29, -1, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 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, -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, -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, 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, - 43, -1, -1, 93, 47, -1, 96, 97, 98, 99, - 100, 101, 102, 56, -1, -1, 59, -1, -1, -1, - -1, 64, 65, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, - -1, -1, -1, 19, 97, 98, 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, 54, -1, - 56, -1, -1, -1, -1, -1, -1, 53, 64, 65, - -1, -1, 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, 97, 98, 89, 90, 91, 92, 93, 94, 95, - 96, 53, -1, -1, -1, -1, 58, -1, -1, -1, - -1, 63, -1, -1, 66, 67, 68, 69, 70, 71, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, -1, -1, -1, -1, -1, -1, -1, 19, 97, + 98, 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, 54, -1, 56, -1, -1, -1, -1, + -1, -1, -1, 64, 65, 40, 41, -1, 43, -1, + -1, -1, 47, -1, -1, 40, 41, -1, 43, -1, + -1, 56, 47, -1, 59, -1, -1, -1, -1, 64, + 65, 56, -1, -1, 59, -1, 97, 98, -1, -1, + -1, -1, -1, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, + -1, 53, 97, 98, -1, -1, 58, -1, -1, -1, + -1, 63, 97, 98, 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, 53, -1, -1, -1, -1, @@ -4324,8 +4376,9 @@ namespace xsk { namespace gsc { namespace s2 { -1, -1, -1, -1, 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, 53, -1, 89, 90, 91, 92, 93, - 94, 95, 96, 63, -1, -1, 66, 67, 68, 69, + -1, -1, -1, -1, -1, 89, 90, 91, 92, 93, + 94, 95, 96, 53, -1, -1, -1, -1, 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, 53, -1, 89, 90, 91, 92, 93, 94, 95, 96, 63, -1, -1, @@ -4351,60 +4404,62 @@ namespace xsk { namespace gsc { namespace s2 { -1, 53, -1, 89, 90, 91, 92, 93, 94, 95, 96, 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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 58, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 53, -1, 89, 90, 91, + 92, 93, 94, 95, 96, 63, -1, -1, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, + -1, 89, 90, 91, 92, 93, 94, 95, 96, 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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 57, -1, -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, 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, 61, -1, 63, -1, -1, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, + 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, -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, 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, 66, + -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, - 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 + 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 @@ -4413,48 +4468,49 @@ namespace xsk { namespace gsc { namespace s2 { 0, 11, 12, 13, 14, 15, 47, 98, 114, 115, 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, + 99, 191, 169, 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, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 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, + 188, 189, 56, 153, 56, 57, 153, 170, 171, 188, + 153, 153, 52, 56, 101, 102, 164, 165, 173, 174, + 176, 177, 181, 182, 183, 184, 188, 189, 98, 62, + 63, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 89, 90, 91, 92, 93, 94, 95, 96, 56, + 59, 166, 167, 188, 52, 60, 62, 54, 127, 188, + 56, 52, 60, 56, 52, 60, 56, 53, 58, 153, + 58, 57, 153, 56, 59, 60, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 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 + 153, 153, 153, 153, 153, 153, 47, 98, 187, 170, + 171, 188, 11, 19, 22, 23, 24, 26, 27, 28, + 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 55, 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, 164, 165, 173, 174, 177, + 188, 153, 170, 188, 153, 170, 188, 153, 153, 57, + 153, 153, 188, 61, 57, 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, 177, 177, 55, 123, 62, 62, 62, 62, 62, + 17, 18, 20, 21, 64, 65, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 57, 53, 52, + 57, 53, 52, 57, 58, 57, 153, 170, 12, 122, + 62, 53, 153, 27, 153, 128, 155, 156, 157, 177, + 188, 153, 61, 61, 62, 170, 170, 52, 52, 52, + 52, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 57, 170, 57, 170, 57, 153, 52, 53, + 62, 53, 52, 53, 62, 30, 58, 53, 53, 53, + 153, 153, 153, 153, 52, 53, 52, 53, 52, 53, + 170, 122, 153, 122, 153, 154, 153, 188, 127, 62, + 62, 53, 53, 58, 53, 58, 53, 58, 170, 170, + 170, 53, 25, 53, 62, 53, 30, 62, 62, 171, + 62, 171, 62, 171, 53, 53, 53, 122, 62, 128, + 122, 153, 53, 53, 53, 53, 53, 62, 62, 62, + 122, 122 }; const unsigned char @@ -4476,13 +4532,13 @@ namespace xsk { namespace gsc { namespace s2 { 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, 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 + 161, 162, 162, 162, 162, 163, 164, 164, 165, 165, + 166, 166, 166, 166, 166, 166, 167, 167, 167, 167, + 168, 169, 169, 169, 170, 170, 171, 171, 172, 172, + 173, 174, 175, 176, 177, 177, 177, 177, 177, 177, + 177, 177, 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 @@ -4504,13 +4560,13 @@ namespace xsk { namespace gsc { namespace s2 { 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, - 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 + 2, 2, 2, 2, 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 }; @@ -4536,13 +4592,13 @@ namespace xsk { namespace gsc { namespace s2 { 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 + 645, 650, 652, 654, 656, 661, 666, 667, 670, 671, + 675, 677, 679, 681, 683, 685, 690, 692, 694, 696, + 701, 706, 708, 711, 715, 718, 722, 724, 729, 731, + 736, 741, 746, 751, 756, 757, 758, 759, 760, 761, + 762, 763, 764, 768, 773, 778, 783, 788, 793, 798, + 803, 808, 813, 818, 820, 825, 827, 832, 837, 842, + 847, 849, 854, 856, 861, 866 }; void @@ -4575,9 +4631,9 @@ namespace xsk { namespace gsc { namespace s2 { #line 13 "parser.ypp" } } } // xsk::gsc::s2 -#line 4579 "parser.cpp" +#line 4635 "parser.cpp" -#line 864 "parser.ypp" +#line 870 "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 00ef05a2..e7b99cd3 100644 --- a/src/s2/xsk/parser.hpp +++ b/src/s2/xsk/parser.hpp @@ -447,7 +447,6 @@ namespace xsk { namespace gsc { namespace s2 { // expr_binary // expr_primitive // expr_object - // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -506,134 +505,137 @@ namespace xsk { namespace gsc { namespace s2 { // expr_method char dummy24[sizeof (ast::expr_method::ptr)]; + // expr_negate + char dummy25[sizeof (ast::expr_negate::ptr)]; + // expr_not - char dummy25[sizeof (ast::expr_not::ptr)]; + char dummy26[sizeof (ast::expr_not::ptr)]; // expr_parameters - char dummy26[sizeof (ast::expr_parameters::ptr)]; + char dummy27[sizeof (ast::expr_parameters::ptr)]; // expr_paren - char dummy27[sizeof (ast::expr_paren::ptr)]; + char dummy28[sizeof (ast::expr_paren::ptr)]; // expr_path - char dummy28[sizeof (ast::expr_path::ptr)]; + char dummy29[sizeof (ast::expr_path::ptr)]; // expr_reference - char dummy29[sizeof (ast::expr_reference::ptr)]; + char dummy30[sizeof (ast::expr_reference::ptr)]; // expr_self - char dummy30[sizeof (ast::expr_self::ptr)]; + char dummy31[sizeof (ast::expr_self::ptr)]; // expr_size - char dummy31[sizeof (ast::expr_size::ptr)]; + char dummy32[sizeof (ast::expr_size::ptr)]; // expr_string - char dummy32[sizeof (ast::expr_string::ptr)]; + char dummy33[sizeof (ast::expr_string::ptr)]; // expr_thisthread - char dummy33[sizeof (ast::expr_thisthread::ptr)]; + char dummy34[sizeof (ast::expr_thisthread::ptr)]; // expr_true - char dummy34[sizeof (ast::expr_true::ptr)]; + char dummy35[sizeof (ast::expr_true::ptr)]; // expr_undefined - char dummy35[sizeof (ast::expr_undefined::ptr)]; + char dummy36[sizeof (ast::expr_undefined::ptr)]; // expr_vector - char dummy36[sizeof (ast::expr_vector::ptr)]; + char dummy37[sizeof (ast::expr_vector::ptr)]; // include - char dummy37[sizeof (ast::include::ptr)]; + char dummy38[sizeof (ast::include::ptr)]; // program - char dummy38[sizeof (ast::program::ptr)]; + char dummy39[sizeof (ast::program::ptr)]; // stmt // stmt_or_dev - char dummy39[sizeof (ast::stmt)]; + char dummy40[sizeof (ast::stmt)]; // stmt_assign - char dummy40[sizeof (ast::stmt_assign::ptr)]; + char dummy41[sizeof (ast::stmt_assign::ptr)]; // stmt_break - char dummy41[sizeof (ast::stmt_break::ptr)]; + char dummy42[sizeof (ast::stmt_break::ptr)]; // stmt_breakpoint - char dummy42[sizeof (ast::stmt_breakpoint::ptr)]; + char dummy43[sizeof (ast::stmt_breakpoint::ptr)]; // stmt_call - char dummy43[sizeof (ast::stmt_call::ptr)]; + char dummy44[sizeof (ast::stmt_call::ptr)]; // stmt_case - char dummy44[sizeof (ast::stmt_case::ptr)]; + char dummy45[sizeof (ast::stmt_case::ptr)]; // stmt_continue - char dummy45[sizeof (ast::stmt_continue::ptr)]; + char dummy46[sizeof (ast::stmt_continue::ptr)]; // stmt_default - char dummy46[sizeof (ast::stmt_default::ptr)]; + char dummy47[sizeof (ast::stmt_default::ptr)]; // stmt_dev - char dummy47[sizeof (ast::stmt_dev::ptr)]; + char dummy48[sizeof (ast::stmt_dev::ptr)]; // stmt_dowhile - char dummy48[sizeof (ast::stmt_dowhile::ptr)]; + char dummy49[sizeof (ast::stmt_dowhile::ptr)]; // stmt_endon - char dummy49[sizeof (ast::stmt_endon::ptr)]; + char dummy50[sizeof (ast::stmt_endon::ptr)]; // stmt_expr - char dummy50[sizeof (ast::stmt_expr::ptr)]; + char dummy51[sizeof (ast::stmt_expr::ptr)]; // stmt_for - char dummy51[sizeof (ast::stmt_for::ptr)]; + char dummy52[sizeof (ast::stmt_for::ptr)]; // stmt_foreach - char dummy52[sizeof (ast::stmt_foreach::ptr)]; + char dummy53[sizeof (ast::stmt_foreach::ptr)]; // stmt_if - char dummy53[sizeof (ast::stmt_if::ptr)]; + char dummy54[sizeof (ast::stmt_if::ptr)]; // stmt_ifelse - char dummy54[sizeof (ast::stmt_ifelse::ptr)]; + char dummy55[sizeof (ast::stmt_ifelse::ptr)]; // stmt_list // stmt_or_dev_list // stmt_block - char dummy55[sizeof (ast::stmt_list::ptr)]; + char dummy56[sizeof (ast::stmt_list::ptr)]; // stmt_notify - char dummy56[sizeof (ast::stmt_notify::ptr)]; + char dummy57[sizeof (ast::stmt_notify::ptr)]; // stmt_prof_begin - char dummy57[sizeof (ast::stmt_prof_begin::ptr)]; + char dummy58[sizeof (ast::stmt_prof_begin::ptr)]; // stmt_prof_end - char dummy58[sizeof (ast::stmt_prof_end::ptr)]; + char dummy59[sizeof (ast::stmt_prof_end::ptr)]; // stmt_return - char dummy59[sizeof (ast::stmt_return::ptr)]; + char dummy60[sizeof (ast::stmt_return::ptr)]; // stmt_switch - char dummy60[sizeof (ast::stmt_switch::ptr)]; + char dummy61[sizeof (ast::stmt_switch::ptr)]; // stmt_wait - char dummy61[sizeof (ast::stmt_wait::ptr)]; + char dummy62[sizeof (ast::stmt_wait::ptr)]; // stmt_waitframe - char dummy62[sizeof (ast::stmt_waitframe::ptr)]; + char dummy63[sizeof (ast::stmt_waitframe::ptr)]; // stmt_waittill - char dummy63[sizeof (ast::stmt_waittill::ptr)]; + char dummy64[sizeof (ast::stmt_waittill::ptr)]; // stmt_waittillframeend - char dummy64[sizeof (ast::stmt_waittillframeend::ptr)]; + char dummy65[sizeof (ast::stmt_waittillframeend::ptr)]; // stmt_waittillmatch - char dummy65[sizeof (ast::stmt_waittillmatch::ptr)]; + char dummy66[sizeof (ast::stmt_waittillmatch::ptr)]; // stmt_while - char dummy66[sizeof (ast::stmt_while::ptr)]; + char dummy67[sizeof (ast::stmt_while::ptr)]; // "path" // "identifier" @@ -641,7 +643,7 @@ namespace xsk { namespace gsc { namespace s2 { // "localized string" // "float" // "integer" - char dummy67[sizeof (std::string)]; + char dummy68[sizeof (std::string)]; }; /// The size of the largest semantic type. @@ -984,31 +986,31 @@ namespace xsk { namespace gsc { namespace s2 { S_expr_binary = 159, // expr_binary S_expr_primitive = 160, // expr_primitive S_expr_complement = 161, // expr_complement - S_expr_not = 162, // expr_not - S_expr_call = 163, // expr_call - S_expr_method = 164, // expr_method - S_expr_function = 165, // expr_function - S_expr_pointer = 166, // expr_pointer - S_expr_add_array = 167, // expr_add_array - S_expr_parameters = 168, // expr_parameters - S_expr_arguments = 169, // expr_arguments - S_expr_arguments_no_empty = 170, // expr_arguments_no_empty - S_expr_reference = 171, // expr_reference - S_expr_array = 172, // expr_array - S_expr_field = 173, // expr_field - S_expr_size = 174, // expr_size - S_expr_paren = 175, // expr_paren - S_expr_object = 176, // expr_object - S_expr_thisthread = 177, // expr_thisthread - S_expr_empty_array = 178, // expr_empty_array - S_expr_undefined = 179, // expr_undefined - S_expr_game = 180, // expr_game - S_expr_self = 181, // expr_self - S_expr_anim = 182, // expr_anim - S_expr_level = 183, // expr_level - S_expr_animation = 184, // expr_animation - S_expr_animtree = 185, // expr_animtree - S_expr_identifier_neg = 186, // expr_identifier_neg + S_expr_negate = 162, // expr_negate + S_expr_not = 163, // expr_not + S_expr_call = 164, // expr_call + S_expr_method = 165, // expr_method + S_expr_function = 166, // expr_function + S_expr_pointer = 167, // expr_pointer + S_expr_add_array = 168, // expr_add_array + S_expr_parameters = 169, // expr_parameters + S_expr_arguments = 170, // expr_arguments + S_expr_arguments_no_empty = 171, // expr_arguments_no_empty + S_expr_reference = 172, // expr_reference + S_expr_array = 173, // expr_array + S_expr_field = 174, // expr_field + S_expr_size = 175, // expr_size + S_expr_paren = 176, // expr_paren + S_expr_object = 177, // expr_object + S_expr_thisthread = 178, // expr_thisthread + S_expr_empty_array = 179, // expr_empty_array + S_expr_undefined = 180, // expr_undefined + S_expr_game = 181, // expr_game + S_expr_self = 182, // expr_self + S_expr_anim = 183, // expr_anim + S_expr_level = 184, // expr_level + S_expr_animation = 185, // expr_animation + S_expr_animtree = 186, // expr_animtree S_expr_identifier_nosize = 187, // expr_identifier_nosize S_expr_identifier = 188, // expr_identifier S_expr_path = 189, // expr_path @@ -1085,7 +1087,6 @@ 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; @@ -1163,6 +1164,10 @@ namespace xsk { namespace gsc { namespace s2 { value.move< ast::expr_method::ptr > (std::move (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (std::move (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (std::move (that.value)); break; @@ -1702,6 +1707,20 @@ namespace xsk { namespace gsc { namespace s2 { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, ast::expr_negate::ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const ast::expr_negate::ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ast::expr_not::ptr&& v, location_type&& l) : Base (t) @@ -2358,7 +2377,6 @@ 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; @@ -2436,6 +2454,10 @@ switch (yykind) value.template destroy< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + value.template destroy< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not value.template destroy< ast::expr_not::ptr > (); break; @@ -4817,7 +4839,7 @@ switch (yykind) /// Constants. enum { - yylast_ = 2310, ///< Last index in yytable_. + yylast_ = 2419, ///< Last index in yytable_. yynnts_ = 84, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4875,7 +4897,6 @@ 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; @@ -4953,6 +4974,10 @@ switch (yykind) value.copy< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -5194,7 +5219,6 @@ 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; @@ -5272,6 +5296,10 @@ switch (yykind) value.move< ast::expr_method::ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (s.value)); break; @@ -5519,7 +5547,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::s2 -#line 5523 "parser.hpp" +#line 5551 "parser.hpp" diff --git a/src/s4/xsk/compiler.cpp b/src/s4/xsk/compiler.cpp index aef5e3dc..63ea8453 100644 --- a/src/s4/xsk/compiler.cpp +++ b/src/s4/xsk/compiler.cpp @@ -946,6 +946,9 @@ void compiler::emit_expr(const ast::expr& expr, const block::ptr& blk) case ast::kind::expr_complement: emit_expr_complement(expr.as_complement, blk); break; + case ast::kind::expr_negate: + emit_expr_negate(expr.as_negate, blk); + break; case ast::kind::expr_not: emit_expr_not(expr.as_not, blk); break; @@ -1283,6 +1286,13 @@ void compiler::emit_expr_complement(const ast::expr_complement::ptr& expr, const emit_opcode(opcode::OP_BoolComplement); } +void compiler::emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk) +{ + emit_opcode(opcode::OP_GetZero); + emit_expr(expr->rvalue, blk); + emit_opcode(opcode::OP_minus); +} + void compiler::emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk) { emit_expr(expr->rvalue, blk); diff --git a/src/s4/xsk/compiler.hpp b/src/s4/xsk/compiler.hpp index 1745bc67..01238f33 100644 --- a/src/s4/xsk/compiler.hpp +++ b/src/s4/xsk/compiler.hpp @@ -83,6 +83,7 @@ private: void emit_expr_and(const ast::expr_and::ptr& expr, const block::ptr& blk); void emit_expr_or(const ast::expr_or::ptr& expr, const block::ptr& blk); void emit_expr_complement(const ast::expr_complement::ptr& expr, const block::ptr& blk); + void emit_expr_negate(const ast::expr_negate::ptr& expr, const block::ptr& blk); void emit_expr_not(const ast::expr_not::ptr& expr, const block::ptr& blk); void emit_expr_call(const ast::expr_call::ptr& expr, const block::ptr& blk, bool is_stmt); void emit_expr_call_pointer(const ast::expr_pointer::ptr& expr, const block::ptr& blk, bool is_stmt); diff --git a/src/s4/xsk/parser.cpp b/src/s4/xsk/parser.cpp index 3e802039..41da7326 100644 --- a/src/s4/xsk/parser.cpp +++ b/src/s4/xsk/parser.cpp @@ -245,7 +245,6 @@ 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; @@ -331,6 +330,10 @@ namespace xsk { namespace gsc { namespace s4 { value.YY_MOVE_OR_COPY< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.YY_MOVE_OR_COPY< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.YY_MOVE_OR_COPY< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -556,7 +559,6 @@ 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; @@ -642,6 +644,10 @@ namespace xsk { namespace gsc { namespace s4 { value.move< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -867,7 +873,6 @@ 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; @@ -953,6 +958,10 @@ namespace xsk { namespace gsc { namespace s4 { value.copy< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (that.value); break; @@ -1177,7 +1186,6 @@ 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; @@ -1263,6 +1271,10 @@ namespace xsk { namespace gsc { namespace s4 { value.move< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (that.value); break; @@ -1742,7 +1754,6 @@ 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; @@ -1828,6 +1839,10 @@ namespace xsk { namespace gsc { namespace s4 { yylhs.value.emplace< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + yylhs.value.emplace< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not yylhs.value.emplace< ast::expr_not::ptr > (); break; @@ -2031,1355 +2046,1373 @@ namespace xsk { namespace gsc { namespace s4 { case 2: // root: program #line 264 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 2035 "parser.cpp" +#line 2050 "parser.cpp" break; case 3: // root: %empty #line 265 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 2041 "parser.cpp" +#line 2056 "parser.cpp" break; case 4: // program: program inline #line 270 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2047 "parser.cpp" +#line 2062 "parser.cpp" break; case 5: // program: program include #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 2053 "parser.cpp" +#line 2068 "parser.cpp" break; case 6: // program: program declaration #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 2059 "parser.cpp" +#line 2074 "parser.cpp" break; case 7: // program: inline #line 276 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2065 "parser.cpp" +#line 2080 "parser.cpp" break; case 8: // program: include #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 2071 "parser.cpp" +#line 2086 "parser.cpp" break; case 9: // program: declaration #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 2077 "parser.cpp" +#line 2092 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" #line 284 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2083 "parser.cpp" +#line 2098 "parser.cpp" break; case 11: // include: "#include" expr_path ";" #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 2089 "parser.cpp" +#line 2104 "parser.cpp" break; case 12: // declaration: "/#" #line 293 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2095 "parser.cpp" +#line 2110 "parser.cpp" break; case 13: // declaration: "#/" #line 294 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2101 "parser.cpp" +#line 2116 "parser.cpp" break; case 14: // declaration: decl_usingtree #line 295 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2107 "parser.cpp" +#line 2122 "parser.cpp" break; case 15: // declaration: decl_constant #line 296 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2113 "parser.cpp" +#line 2128 "parser.cpp" break; case 16: // declaration: decl_thread #line 297 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2119 "parser.cpp" +#line 2134 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" #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 2125 "parser.cpp" +#line 2140 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" #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 2131 "parser.cpp" +#line 2146 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block #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 2137 "parser.cpp" +#line 2152 "parser.cpp" break; case 20: // stmt: stmt_block #line 316 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2143 "parser.cpp" +#line 2158 "parser.cpp" break; case 21: // stmt: stmt_call #line 317 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2149 "parser.cpp" +#line 2164 "parser.cpp" break; case 22: // stmt: stmt_assign #line 318 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2155 "parser.cpp" +#line 2170 "parser.cpp" break; case 23: // stmt: stmt_endon #line 319 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2161 "parser.cpp" +#line 2176 "parser.cpp" break; case 24: // stmt: stmt_notify #line 320 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2167 "parser.cpp" +#line 2182 "parser.cpp" break; case 25: // stmt: stmt_wait #line 321 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2173 "parser.cpp" +#line 2188 "parser.cpp" break; case 26: // stmt: stmt_waittill #line 322 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2179 "parser.cpp" +#line 2194 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch #line 323 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2185 "parser.cpp" +#line 2200 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend #line 324 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2191 "parser.cpp" +#line 2206 "parser.cpp" break; case 29: // stmt: stmt_waitframe #line 325 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waitframe = std::move(yystack_[0].value.as < ast::stmt_waitframe::ptr > ()); } -#line 2197 "parser.cpp" +#line 2212 "parser.cpp" break; case 30: // stmt: stmt_if #line 326 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2203 "parser.cpp" +#line 2218 "parser.cpp" break; case 31: // stmt: stmt_ifelse #line 327 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2209 "parser.cpp" +#line 2224 "parser.cpp" break; case 32: // stmt: stmt_while #line 328 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2215 "parser.cpp" +#line 2230 "parser.cpp" break; case 33: // stmt: stmt_dowhile #line 329 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2221 "parser.cpp" +#line 2236 "parser.cpp" break; case 34: // stmt: stmt_for #line 330 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2227 "parser.cpp" +#line 2242 "parser.cpp" break; case 35: // stmt: stmt_foreach #line 331 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2233 "parser.cpp" +#line 2248 "parser.cpp" break; case 36: // stmt: stmt_switch #line 332 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2239 "parser.cpp" +#line 2254 "parser.cpp" break; case 37: // stmt: stmt_case #line 333 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2245 "parser.cpp" +#line 2260 "parser.cpp" break; case 38: // stmt: stmt_default #line 334 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2251 "parser.cpp" +#line 2266 "parser.cpp" break; case 39: // stmt: stmt_break #line 335 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2257 "parser.cpp" +#line 2272 "parser.cpp" break; case 40: // stmt: stmt_continue #line 336 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2263 "parser.cpp" +#line 2278 "parser.cpp" break; case 41: // stmt: stmt_return #line 337 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2269 "parser.cpp" +#line 2284 "parser.cpp" break; case 42: // stmt: stmt_breakpoint #line 338 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_breakpoint = std::move(yystack_[0].value.as < ast::stmt_breakpoint::ptr > ()); } -#line 2275 "parser.cpp" +#line 2290 "parser.cpp" break; case 43: // stmt: stmt_prof_begin #line 339 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2281 "parser.cpp" +#line 2296 "parser.cpp" break; case 44: // stmt: stmt_prof_end #line 340 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2287 "parser.cpp" +#line 2302 "parser.cpp" break; case 45: // stmt_or_dev: stmt #line 344 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2293 "parser.cpp" +#line 2308 "parser.cpp" break; case 46: // stmt_or_dev: stmt_dev #line 345 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2299 "parser.cpp" +#line 2314 "parser.cpp" break; case 47: // stmt_list: stmt_list stmt #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 2305 "parser.cpp" +#line 2320 "parser.cpp" break; case 48: // stmt_list: stmt #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 2311 "parser.cpp" +#line 2326 "parser.cpp" break; case 49: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev #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 2317 "parser.cpp" +#line 2332 "parser.cpp" break; case 50: // stmt_or_dev_list: stmt_or_dev #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 2323 "parser.cpp" +#line 2338 "parser.cpp" break; case 51: // stmt_dev: "/#" stmt_list "#/" #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 2329 "parser.cpp" +#line 2344 "parser.cpp" break; case 52: // stmt_dev: "/#" "#/" #line 364 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2335 "parser.cpp" +#line 2350 "parser.cpp" break; case 53: // stmt_block: "{" stmt_or_dev_list "}" #line 368 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2341 "parser.cpp" +#line 2356 "parser.cpp" break; case 54: // stmt_block: "{" "}" #line 369 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2347 "parser.cpp" +#line 2362 "parser.cpp" break; case 55: // stmt_expr: expr_assign #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 2353 "parser.cpp" +#line 2368 "parser.cpp" break; case 56: // stmt_expr: expr_increment #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 2359 "parser.cpp" +#line 2374 "parser.cpp" break; case 57: // stmt_expr: expr_decrement #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 2365 "parser.cpp" +#line 2380 "parser.cpp" break; case 58: // stmt_expr: %empty #line 380 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2371 "parser.cpp" +#line 2386 "parser.cpp" break; case 59: // stmt_call: expr_call ";" #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 2377 "parser.cpp" +#line 2392 "parser.cpp" break; case 60: // stmt_call: expr_method ";" #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 2383 "parser.cpp" +#line 2398 "parser.cpp" break; case 61: // stmt_assign: expr_assign ";" #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 2389 "parser.cpp" +#line 2404 "parser.cpp" break; case 62: // stmt_assign: expr_increment ";" #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 2395 "parser.cpp" +#line 2410 "parser.cpp" break; case 63: // stmt_assign: expr_decrement ";" #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 2401 "parser.cpp" +#line 2416 "parser.cpp" break; case 64: // stmt_endon: expr_object "endon" "(" expr ")" ";" #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 2407 "parser.cpp" +#line 2422 "parser.cpp" break; case 65: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" #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 2413 "parser.cpp" +#line 2428 "parser.cpp" break; case 66: // stmt_notify: expr_object "notify" "(" expr ")" ";" #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 2419 "parser.cpp" +#line 2434 "parser.cpp" break; case 67: // stmt_wait: "wait" expr ";" #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 2425 "parser.cpp" +#line 2440 "parser.cpp" break; case 68: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" #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 2431 "parser.cpp" +#line 2446 "parser.cpp" break; case 69: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" #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 2437 "parser.cpp" +#line 2452 "parser.cpp" break; case 70: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" #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 2443 "parser.cpp" +#line 2458 "parser.cpp" break; case 71: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" #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 2449 "parser.cpp" +#line 2464 "parser.cpp" break; case 72: // stmt_waittillframeend: "waittillframeend" ";" #line 432 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2455 "parser.cpp" +#line 2470 "parser.cpp" break; case 73: // stmt_waitframe: "waitframe" ";" #line 437 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2461 "parser.cpp" +#line 2476 "parser.cpp" break; case 74: // stmt_waitframe: "waitframe" "(" ")" ";" #line 439 "parser.ypp" { yylhs.value.as < ast::stmt_waitframe::ptr > () = std::make_unique(yylhs.location); } -#line 2467 "parser.cpp" +#line 2482 "parser.cpp" break; case 75: // stmt_if: "if" "(" expr ")" stmt #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 2473 "parser.cpp" +#line 2488 "parser.cpp" break; case 76: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt #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 2479 "parser.cpp" +#line 2494 "parser.cpp" break; case 77: // stmt_while: "while" "(" expr ")" stmt #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 2485 "parser.cpp" +#line 2500 "parser.cpp" break; case 78: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" #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 2491 "parser.cpp" +#line 2506 "parser.cpp" break; case 79: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt #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 2497 "parser.cpp" +#line 2512 "parser.cpp" break; case 80: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt #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 2503 "parser.cpp" +#line 2518 "parser.cpp" break; case 81: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt #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 2509 "parser.cpp" +#line 2524 "parser.cpp" break; case 82: // stmt_switch: "switch" "(" expr ")" stmt_block #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 2515 "parser.cpp" +#line 2530 "parser.cpp" break; case 83: // stmt_case: "case" expr_integer ":" #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 2521 "parser.cpp" +#line 2536 "parser.cpp" break; case 84: // stmt_case: "case" expr_string ":" #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 2527 "parser.cpp" +#line 2542 "parser.cpp" break; case 85: // stmt_default: "default" ":" #line 488 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2533 "parser.cpp" +#line 2548 "parser.cpp" break; case 86: // stmt_break: "break" ";" #line 493 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2539 "parser.cpp" +#line 2554 "parser.cpp" break; case 87: // stmt_continue: "continue" ";" #line 498 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2545 "parser.cpp" +#line 2560 "parser.cpp" break; case 88: // stmt_return: "return" expr ";" #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 2551 "parser.cpp" +#line 2566 "parser.cpp" break; case 89: // stmt_return: "return" ";" #line 505 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2557 "parser.cpp" +#line 2572 "parser.cpp" break; case 90: // stmt_breakpoint: "breakpoint" ";" #line 510 "parser.ypp" { yylhs.value.as < ast::stmt_breakpoint::ptr > () = std::make_unique(yylhs.location); } -#line 2563 "parser.cpp" +#line 2578 "parser.cpp" break; case 91: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" #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 2569 "parser.cpp" +#line 2584 "parser.cpp" break; case 92: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" #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 2575 "parser.cpp" +#line 2590 "parser.cpp" break; case 93: // expr: expr_ternary #line 524 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2581 "parser.cpp" +#line 2596 "parser.cpp" break; case 94: // expr: expr_binary #line 525 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2587 "parser.cpp" +#line 2602 "parser.cpp" break; case 95: // expr: expr_primitive #line 526 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2593 "parser.cpp" +#line 2608 "parser.cpp" break; case 96: // expr_or_empty: expr #line 530 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2599 "parser.cpp" +#line 2614 "parser.cpp" break; case 97: // expr_or_empty: %empty #line 531 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2605 "parser.cpp" +#line 2620 "parser.cpp" break; case 98: // expr_assign: expr_object "=" expr #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 2611 "parser.cpp" +#line 2626 "parser.cpp" break; case 99: // expr_assign: expr_object "|=" expr #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 2617 "parser.cpp" +#line 2632 "parser.cpp" break; case 100: // expr_assign: expr_object "&=" expr #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 2623 "parser.cpp" +#line 2638 "parser.cpp" break; case 101: // expr_assign: expr_object "^=" expr #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 2629 "parser.cpp" +#line 2644 "parser.cpp" break; case 102: // expr_assign: expr_object "<<=" expr #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 2635 "parser.cpp" +#line 2650 "parser.cpp" break; case 103: // expr_assign: expr_object ">>=" expr #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 2641 "parser.cpp" +#line 2656 "parser.cpp" break; case 104: // expr_assign: expr_object "+=" expr #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 2647 "parser.cpp" +#line 2662 "parser.cpp" break; case 105: // expr_assign: expr_object "-=" expr #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 2653 "parser.cpp" +#line 2668 "parser.cpp" break; case 106: // expr_assign: expr_object "*=" expr #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 2659 "parser.cpp" +#line 2674 "parser.cpp" break; case 107: // expr_assign: expr_object "/=" expr #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 2665 "parser.cpp" +#line 2680 "parser.cpp" break; case 108: // expr_assign: expr_object "%=" expr #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 2671 "parser.cpp" +#line 2686 "parser.cpp" break; case 109: // expr_increment: "++" expr_object #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 2677 "parser.cpp" +#line 2692 "parser.cpp" break; case 110: // expr_increment: expr_object "++" #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 2683 "parser.cpp" +#line 2698 "parser.cpp" break; case 111: // expr_decrement: "--" expr_object #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 2689 "parser.cpp" +#line 2704 "parser.cpp" break; case 112: // expr_decrement: expr_object "--" #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 2695 "parser.cpp" +#line 2710 "parser.cpp" break; case 113: // expr_ternary: expr "?" expr ":" expr #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 2701 "parser.cpp" +#line 2716 "parser.cpp" break; case 114: // expr_binary: expr "||" expr #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 2707 "parser.cpp" +#line 2722 "parser.cpp" break; case 115: // expr_binary: expr "&&" expr #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 2713 "parser.cpp" +#line 2728 "parser.cpp" break; case 116: // expr_binary: expr "==" expr #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 2719 "parser.cpp" +#line 2734 "parser.cpp" break; case 117: // expr_binary: expr "!=" expr #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 2725 "parser.cpp" +#line 2740 "parser.cpp" break; case 118: // expr_binary: expr "<=" expr #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 2731 "parser.cpp" +#line 2746 "parser.cpp" break; case 119: // expr_binary: expr ">=" expr #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 2737 "parser.cpp" +#line 2752 "parser.cpp" break; case 120: // expr_binary: expr "<" expr #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 2743 "parser.cpp" +#line 2758 "parser.cpp" break; case 121: // expr_binary: expr ">" expr #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 2749 "parser.cpp" +#line 2764 "parser.cpp" break; case 122: // expr_binary: expr "|" expr #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 2755 "parser.cpp" +#line 2770 "parser.cpp" break; case 123: // expr_binary: expr "&" expr #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 2761 "parser.cpp" +#line 2776 "parser.cpp" break; case 124: // expr_binary: expr "^" expr #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 2767 "parser.cpp" +#line 2782 "parser.cpp" break; case 125: // expr_binary: expr "<<" expr #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 2773 "parser.cpp" +#line 2788 "parser.cpp" break; case 126: // expr_binary: expr ">>" expr #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 2779 "parser.cpp" +#line 2794 "parser.cpp" break; case 127: // expr_binary: expr "+" expr #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 2785 "parser.cpp" +#line 2800 "parser.cpp" break; case 128: // expr_binary: expr "-" expr #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 2791 "parser.cpp" +#line 2806 "parser.cpp" break; case 129: // expr_binary: expr "*" expr #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 2797 "parser.cpp" +#line 2812 "parser.cpp" break; case 130: // expr_binary: expr "/" expr #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 2803 "parser.cpp" +#line 2818 "parser.cpp" break; case 131: // expr_binary: expr "%" expr #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 2809 "parser.cpp" +#line 2824 "parser.cpp" break; case 132: // expr_primitive: expr_complement #line 618 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 2815 "parser.cpp" +#line 2830 "parser.cpp" break; - case 133: // expr_primitive: expr_not + case 133: // expr_primitive: expr_negate #line 619 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 2821 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_negate::ptr > ()); } +#line 2836 "parser.cpp" break; - case 134: // expr_primitive: expr_call + case 134: // expr_primitive: expr_not #line 620 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 2827 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } +#line 2842 "parser.cpp" break; - case 135: // expr_primitive: expr_method + case 135: // expr_primitive: expr_call #line 621 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 2833 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 2848 "parser.cpp" break; - case 136: // expr_primitive: expr_add_array + case 136: // expr_primitive: expr_method #line 622 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } -#line 2839 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 2854 "parser.cpp" break; - case 137: // expr_primitive: expr_isdefined + case 137: // expr_primitive: expr_add_array #line 623 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_isdefined::ptr > ()); } -#line 2845 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_add_array::ptr > ()); } +#line 2860 "parser.cpp" break; - case 138: // expr_primitive: expr_istrue + case 138: // expr_primitive: expr_isdefined #line 624 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istrue::ptr > ()); } -#line 2851 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_isdefined::ptr > ()); } +#line 2866 "parser.cpp" break; - case 139: // expr_primitive: expr_reference + case 139: // expr_primitive: expr_istrue #line 625 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 2857 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istrue::ptr > ()); } +#line 2872 "parser.cpp" break; - case 140: // expr_primitive: expr_array + case 140: // expr_primitive: expr_reference #line 626 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 2863 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } +#line 2878 "parser.cpp" break; - case 141: // expr_primitive: expr_field + case 141: // expr_primitive: expr_array #line 627 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 2869 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 2884 "parser.cpp" break; - case 142: // expr_primitive: expr_size + case 142: // expr_primitive: expr_field #line 628 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 2875 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 2890 "parser.cpp" break; - case 143: // expr_primitive: expr_paren + case 143: // expr_primitive: expr_size #line 629 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 2881 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } +#line 2896 "parser.cpp" break; - case 144: // expr_primitive: expr_thisthread + case 144: // expr_primitive: expr_paren #line 630 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } -#line 2887 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } +#line 2902 "parser.cpp" break; - case 145: // expr_primitive: expr_empty_array + case 145: // expr_primitive: expr_thisthread #line 631 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 2893 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_thisthread::ptr > ()); } +#line 2908 "parser.cpp" break; - case 146: // expr_primitive: expr_undefined + case 146: // expr_primitive: expr_empty_array #line 632 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 2899 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } +#line 2914 "parser.cpp" break; - case 147: // expr_primitive: expr_game + case 147: // expr_primitive: expr_undefined #line 633 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 2905 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } +#line 2920 "parser.cpp" break; - case 148: // expr_primitive: expr_self + case 148: // expr_primitive: expr_game #line 634 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 2911 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 2926 "parser.cpp" break; - case 149: // expr_primitive: expr_anim + case 149: // expr_primitive: expr_self #line 635 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 2917 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 2932 "parser.cpp" break; - case 150: // expr_primitive: expr_level + case 150: // expr_primitive: expr_anim #line 636 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 2923 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 2938 "parser.cpp" break; - case 151: // expr_primitive: expr_animation + case 151: // expr_primitive: expr_level #line 637 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 2929 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 2944 "parser.cpp" break; - case 152: // expr_primitive: expr_animtree + case 152: // expr_primitive: expr_animation #line 638 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } -#line 2935 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } +#line 2950 "parser.cpp" break; - case 153: // expr_primitive: expr_identifier_neg + case 153: // expr_primitive: expr_animtree #line 639 "parser.ypp" - { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2941 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animtree::ptr > ()); } +#line 2956 "parser.cpp" break; 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_identifier::ptr > ()); } -#line 2947 "parser.cpp" +#line 2962 "parser.cpp" break; 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_istring::ptr > ()); } -#line 2953 "parser.cpp" +#line 2968 "parser.cpp" break; 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_string::ptr > ()); } -#line 2959 "parser.cpp" +#line 2974 "parser.cpp" break; 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_vector::ptr > ()); } -#line 2965 "parser.cpp" +#line 2980 "parser.cpp" break; 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_float::ptr > ()); } -#line 2971 "parser.cpp" +#line 2986 "parser.cpp" break; 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" +#line 2992 "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" +#line 2998 "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 2989 "parser.cpp" +#line 3004 "parser.cpp" break; 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 2995 "parser.cpp" +#line 3010 "parser.cpp" break; - case 163: // expr_not: "!" expr + case 163: // expr_negate: "-" expr_identifier #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 3001 "parser.cpp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()))); } +#line 3016 "parser.cpp" break; - case 164: // expr_call: expr_function + case 164: // expr_negate: "-" expr_paren +#line 659 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()))); } +#line 3022 "parser.cpp" + break; + + case 165: // expr_negate: "-" expr_array #line 661 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_array::ptr > ()))); } +#line 3028 "parser.cpp" + break; + + case 166: // expr_negate: "-" expr_field +#line 663 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_field::ptr > ()))); } +#line 3034 "parser.cpp" + break; + + case 167: // expr_not: "!" expr +#line 668 "parser.ypp" + { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } +#line 3040 "parser.cpp" + break; + + case 168: // expr_call: expr_function +#line 672 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 3007 "parser.cpp" +#line 3046 "parser.cpp" break; - 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 3013 "parser.cpp" - break; - - 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 3019 "parser.cpp" - break; - - 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 3025 "parser.cpp" - break; - - 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::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: expr_path "::" expr_identifier "(" expr_arguments ")" + case 169: // expr_call: expr_pointer #line 673 "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 3037 "parser.cpp" + { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } +#line 3052 "parser.cpp" break; - 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::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" + case 170: // expr_method: expr_object expr_function +#line 676 "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 3058 "parser.cpp" break; - case 171: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 171: // expr_method: expr_object expr_pointer #line 677 "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 3049 "parser.cpp" + { 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 3064 "parser.cpp" break; - 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" + case 172: // expr_function: expr_identifier "(" expr_arguments ")" +#line 682 "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 3070 "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 3061 "parser.cpp" + case 173: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" +#line 684 "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 3076 "parser.cpp" break; - case 174: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" + case 174: // expr_function: "thread" expr_identifier "(" 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::normal); } -#line 3067 "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 3082 "parser.cpp" break; - case 175: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 175: // expr_function: "thread" expr_path "::" expr_identifier "(" 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::thread); } -#line 3073 "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 3088 "parser.cpp" break; - case 176: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 176: // expr_function: "childthread" expr_identifier "(" 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" + { 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 3094 "parser.cpp" break; - case 177: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 177: // expr_function: "childthread" expr_path "::" expr_identifier "(" 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 3085 "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::childthread); } +#line 3100 "parser.cpp" break; - case 178: // expr_add_array: "[" expr_arguments_no_empty "]" + case 178: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 697 "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 3106 "parser.cpp" + break; + + case 179: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 699 "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 3112 "parser.cpp" + break; + + case 180: // expr_pointer: "childthread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 701 "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 3118 "parser.cpp" + break; + + case 181: // expr_pointer: "call" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 703 "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 3124 "parser.cpp" + break; + + case 182: // expr_add_array: "[" expr_arguments_no_empty "]" +#line 708 "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 3091 "parser.cpp" +#line 3130 "parser.cpp" break; - case 179: // expr_parameters: expr_parameters "," expr_identifier -#line 702 "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 3097 "parser.cpp" - break; - - 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 3109 "parser.cpp" - break; - - 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 + case 183: // expr_parameters: expr_parameters "," expr_identifier #line 713 "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 3136 "parser.cpp" + break; + + case 184: // expr_parameters: expr_identifier +#line 715 "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 3142 "parser.cpp" + break; + + case 185: // expr_parameters: %empty +#line 717 "parser.ypp" + { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } +#line 3148 "parser.cpp" + break; + + case 186: // expr_arguments: expr_arguments_no_empty +#line 722 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3154 "parser.cpp" + break; + + case 187: // expr_arguments: %empty +#line 724 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3121 "parser.cpp" +#line 3160 "parser.cpp" break; - case 184: // expr_arguments_no_empty: expr_arguments "," expr -#line 718 "parser.ypp" + case 188: // expr_arguments_no_empty: expr_arguments "," expr +#line 729 "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" +#line 3166 "parser.cpp" break; - case 185: // expr_arguments_no_empty: expr -#line 720 "parser.ypp" + case 189: // expr_arguments_no_empty: expr +#line 731 "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 3133 "parser.cpp" +#line 3172 "parser.cpp" break; - case 186: // expr_isdefined: "isdefined" "(" expr ")" -#line 725 "parser.ypp" + case 190: // expr_isdefined: "isdefined" "(" expr ")" +#line 736 "parser.ypp" { yylhs.value.as < ast::expr_isdefined::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3139 "parser.cpp" +#line 3178 "parser.cpp" break; - case 187: // expr_istrue: "istrue" "(" expr ")" -#line 730 "parser.ypp" + case 191: // expr_istrue: "istrue" "(" expr ")" +#line 741 "parser.ypp" { yylhs.value.as < ast::expr_istrue::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3145 "parser.cpp" +#line 3184 "parser.cpp" break; - case 188: // expr_reference: "::" expr_identifier -#line 735 "parser.ypp" + case 192: // expr_reference: "::" expr_identifier +#line 746 "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" +#line 3190 "parser.cpp" break; - case 189: // expr_reference: expr_path "::" expr_identifier -#line 737 "parser.ypp" + case 193: // expr_reference: expr_path "::" expr_identifier +#line 748 "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 3157 "parser.cpp" +#line 3196 "parser.cpp" break; - case 190: // expr_array: expr_object "[" expr "]" -#line 742 "parser.ypp" + case 194: // expr_array: expr_object "[" expr "]" +#line 753 "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 3163 "parser.cpp" +#line 3202 "parser.cpp" break; - case 191: // expr_field: expr_object "." expr_identifier_nosize -#line 747 "parser.ypp" + case 195: // expr_field: expr_object "." expr_identifier_nosize +#line 758 "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 3169 "parser.cpp" +#line 3208 "parser.cpp" break; - 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 3175 "parser.cpp" - break; - - 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 3181 "parser.cpp" - break; - - 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_call::ptr > ()); } -#line 3187 "parser.cpp" - break; - - 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_method::ptr > ()); } -#line 3193 "parser.cpp" - break; - - case 196: // expr_object: expr_array + case 196: // expr_size: expr_object "." "size" #line 763 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3199 "parser.cpp" + { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } +#line 3214 "parser.cpp" break; - 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_field::ptr > ()); } -#line 3205 "parser.cpp" - break; - - 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_game::ptr > ()); } -#line 3211 "parser.cpp" - break; - - 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_self::ptr > ()); } -#line 3217 "parser.cpp" - break; - - 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 + case 197: // expr_paren: "(" expr ")" #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" + { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3220 "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 3235 "parser.cpp" + case 198: // expr_object: expr_call +#line 772 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3226 "parser.cpp" break; - case 203: // expr_thisthread: "thisthread" + case 199: // expr_object: expr_method +#line 773 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3232 "parser.cpp" + break; + + case 200: // expr_object: expr_array #line 774 "parser.ypp" - { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } -#line 3241 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3238 "parser.cpp" break; - case 204: // expr_empty_array: "[" "]" + case 201: // expr_object: expr_field +#line 775 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3244 "parser.cpp" + break; + + case 202: // expr_object: expr_game +#line 776 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3250 "parser.cpp" + break; + + case 203: // expr_object: expr_self +#line 777 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3256 "parser.cpp" + break; + + case 204: // expr_object: expr_anim +#line 778 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3262 "parser.cpp" + break; + + case 205: // expr_object: expr_level #line 779 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3268 "parser.cpp" + break; + + case 206: // expr_object: expr_identifier +#line 780 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 3274 "parser.cpp" + break; + + case 207: // expr_thisthread: "thisthread" +#line 785 "parser.ypp" + { yylhs.value.as < ast::expr_thisthread::ptr > () = std::make_unique(yylhs.location); } +#line 3280 "parser.cpp" + break; + + case 208: // expr_empty_array: "[" "]" +#line 790 "parser.ypp" { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3247 "parser.cpp" +#line 3286 "parser.cpp" break; - case 205: // expr_undefined: "undefined" -#line 784 "parser.ypp" + case 209: // expr_undefined: "undefined" +#line 795 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3253 "parser.cpp" +#line 3292 "parser.cpp" break; - case 206: // expr_game: "game" -#line 789 "parser.ypp" + case 210: // expr_game: "game" +#line 800 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3259 "parser.cpp" +#line 3298 "parser.cpp" break; - case 207: // expr_self: "self" -#line 794 "parser.ypp" + case 211: // expr_self: "self" +#line 805 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3265 "parser.cpp" +#line 3304 "parser.cpp" break; - case 208: // expr_anim: "anim" -#line 799 "parser.ypp" + case 212: // expr_anim: "anim" +#line 810 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3271 "parser.cpp" +#line 3310 "parser.cpp" break; - case 209: // expr_level: "level" -#line 804 "parser.ypp" + case 213: // expr_level: "level" +#line 815 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3277 "parser.cpp" +#line 3316 "parser.cpp" break; - case 210: // expr_animation: "%" "identifier" -#line 809 "parser.ypp" + case 214: // expr_animation: "%" "identifier" +#line 820 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3283 "parser.cpp" +#line 3322 "parser.cpp" break; - case 211: // expr_animtree: "#animtree" -#line 814 "parser.ypp" + case 215: // expr_animtree: "#animtree" +#line 825 "parser.ypp" { yylhs.value.as < ast::expr_animtree::ptr > () = std::make_unique(yylhs.location); } -#line 3289 "parser.cpp" +#line 3328 "parser.cpp" break; - 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 213: // expr_identifier_nosize: "identifier" -#line 824 "parser.ypp" + case 216: // expr_identifier_nosize: "identifier" +#line 830 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3301 "parser.cpp" +#line 3334 "parser.cpp" break; - case 214: // expr_identifier: "identifier" -#line 829 "parser.ypp" + case 217: // expr_identifier: "identifier" +#line 835 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3307 "parser.cpp" +#line 3340 "parser.cpp" break; - case 215: // expr_identifier: "size" -#line 831 "parser.ypp" + case 218: // expr_identifier: "size" +#line 837 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3313 "parser.cpp" +#line 3346 "parser.cpp" break; - case 216: // expr_path: "identifier" -#line 836 "parser.ypp" + case 219: // expr_path: "identifier" +#line 842 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3319 "parser.cpp" +#line 3352 "parser.cpp" break; - case 217: // expr_path: "path" -#line 838 "parser.ypp" + case 220: // expr_path: "path" +#line 844 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3325 "parser.cpp" +#line 3358 "parser.cpp" break; - case 218: // expr_istring: "localized string" -#line 843 "parser.ypp" + case 221: // expr_istring: "localized string" +#line 849 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3331 "parser.cpp" +#line 3364 "parser.cpp" break; - case 219: // expr_string: "string literal" -#line 848 "parser.ypp" + case 222: // expr_string: "string literal" +#line 854 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3337 "parser.cpp" +#line 3370 "parser.cpp" break; - case 220: // expr_vector: "(" expr "," expr "," expr ")" -#line 853 "parser.ypp" + case 223: // expr_vector: "(" expr "," expr "," expr ")" +#line 859 "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 3343 "parser.cpp" +#line 3376 "parser.cpp" break; - case 221: // expr_float: "-" "float" -#line 858 "parser.ypp" + case 224: // expr_float: "-" "float" +#line 864 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3349 "parser.cpp" +#line 3382 "parser.cpp" break; - case 222: // expr_float: "float" -#line 860 "parser.ypp" + case 225: // expr_float: "float" +#line 866 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3355 "parser.cpp" +#line 3388 "parser.cpp" break; - case 223: // expr_integer: "-" "integer" -#line 865 "parser.ypp" + case 226: // expr_integer: "-" "integer" +#line 871 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3361 "parser.cpp" +#line 3394 "parser.cpp" break; - case 224: // expr_integer: "integer" -#line 867 "parser.ypp" + case 227: // expr_integer: "integer" +#line 873 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3367 "parser.cpp" +#line 3400 "parser.cpp" break; - case 225: // expr_false: "false" -#line 872 "parser.ypp" + case 228: // expr_false: "false" +#line 878 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3373 "parser.cpp" +#line 3406 "parser.cpp" break; - case 226: // expr_true: "true" -#line 877 "parser.ypp" + case 229: // expr_true: "true" +#line 883 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3379 "parser.cpp" +#line 3412 "parser.cpp" break; -#line 3383 "parser.cpp" +#line 3416 "parser.cpp" default: break; @@ -3588,16 +3621,16 @@ namespace xsk { namespace gsc { namespace s4 { "stmt_continue", "stmt_return", "stmt_breakpoint", "stmt_prof_begin", "stmt_prof_end", "expr", "expr_or_empty", "expr_assign", "expr_increment", "expr_decrement", "expr_ternary", "expr_binary", - "expr_primitive", "expr_complement", "expr_not", "expr_call", - "expr_method", "expr_function", "expr_pointer", "expr_add_array", - "expr_parameters", "expr_arguments", "expr_arguments_no_empty", - "expr_isdefined", "expr_istrue", "expr_reference", "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_neg", "expr_identifier_nosize", - "expr_identifier", "expr_path", "expr_istring", "expr_string", - "expr_vector", "expr_float", "expr_integer", "expr_false", "expr_true", YY_NULLPTR + "expr_primitive", "expr_complement", "expr_negate", "expr_not", + "expr_call", "expr_method", "expr_function", "expr_pointer", + "expr_add_array", "expr_parameters", "expr_arguments", + "expr_arguments_no_empty", "expr_isdefined", "expr_istrue", + "expr_reference", "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 }; return yy_sname[yysymbol]; } @@ -3866,622 +3899,648 @@ namespace xsk { namespace gsc { namespace s4 { } - const short parser::yypact_ninf_ = -283; + const short parser::yypact_ninf_ = -295; - const short parser::yytable_ninf_ = -217; + const short parser::yytable_ninf_ = -220; const short parser::yypact_[] = { - 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 + 1, -295, -295, -26, -26, -29, -295, -295, 37, 1, + -295, -295, -295, -295, -295, -295, -22, -295, -295, -25, + 11, -57, -295, -295, -295, -295, -23, 1138, -295, -295, + -295, 16, 2, -295, -295, -7, -2, -295, -17, -295, + -295, -295, -295, -295, -295, -295, 27, 28, 1138, 701, + -23, 1138, 1138, -20, -12, 42, -295, -295, -295, 2218, + -295, -295, -295, -295, -295, -295, 135, 512, -295, -295, + -295, -295, -295, -295, 919, 998, -295, -295, 1099, -295, + -295, -295, 1163, 1341, 1350, 1360, -295, -295, 106, 44, + -295, -295, -295, -295, -295, -295, -295, 74, 35, -23, + 81, 87, 86, 92, 98, 93, 100, 1138, 1138, 1402, + 701, -295, 2301, 96, 103, -295, -295, -295, 1138, 101, + -295, -295, -295, -295, 919, 998, -295, 1369, -295, -295, + -295, -295, 106, 104, -295, -295, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1203, -14, -295, -295, 111, + 1138, -23, -295, 833, -295, -295, 1138, 1138, -23, 1138, + 1138, -23, 1138, 1568, 1602, -295, 1138, 1948, 1138, -295, + 1636, 1138, 69, -23, 2183, 91, 91, 2332, 2342, 718, + 718, 561, 561, 561, 561, 2373, 2383, 624, 26, 26, + -295, -295, -295, 1988, -295, -295, -295, 4, -295, 118, + 966, 1138, 109, -47, 120, 1329, 123, 126, 127, 136, + -49, 128, 131, 133, 1073, 139, 138, 146, -295, 603, + 603, -295, -295, 887, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + 144, 147, 148, 149, 150, -295, -295, 1250, 111, 2028, + 6, 162, 2068, 8, 164, 2108, -295, -295, 2147, 160, + 2301, 1948, 118, 1138, -295, -295, 1138, -295, -295, 1045, + 2253, -295, 165, -295, 1138, 194, 1138, 538, -23, 1138, + 122, 168, 169, -295, -295, -295, -295, 2288, -295, 1138, + 1138, 1369, 1369, -295, -295, -295, -295, -295, -295, -295, + 174, 187, 188, 190, -295, -295, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1138, 1138, 186, -295, 1138, + 189, -295, 1138, 195, 1138, 193, 2301, 34, -295, -295, + -295, 191, 1670, 199, 1704, 192, -295, -295, -295, 29, + -11, 1738, -295, -295, -295, 45, 47, 1138, 1138, 1138, + 1138, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, + 2301, 2301, 203, 48, 205, 65, 206, 1772, 1138, -295, + -295, 1329, 1138, 1329, 1138, 1138, -23, 35, 197, 200, + 1806, 1446, 1490, 1534, 1138, -295, 1138, -295, 1138, -295, + 66, 237, 1840, -295, 2301, 201, 1874, 233, -295, -295, + -295, 204, 207, 1138, 208, 1138, 209, 1138, 75, 76, + 82, -295, 1329, 211, 538, 1329, 1138, -295, -295, 214, + -295, 221, -295, 223, -295, -295, -295, -295, -295, 224, + -295, 1908, 216, 217, 220, 1329, 1329, -295, -295, -295, + -295, -295 }; const unsigned char parser::yydefact_[] = { - 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, + 3, 12, 13, 0, 0, 0, 218, 217, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 220, 219, 0, + 0, 0, 1, 4, 5, 6, 185, 0, 10, 11, + 222, 0, 0, 184, 215, 0, 0, 207, 0, 229, + 228, 209, 210, 211, 212, 213, 0, 0, 0, 187, + 0, 0, 0, 0, 0, 217, 221, 225, 227, 0, + 93, 94, 95, 132, 133, 134, 135, 136, 168, 169, + 137, 138, 139, 140, 141, 142, 143, 144, 0, 145, 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, - 183, 204, 185, 0, 182, 188, 163, 162, 212, 221, - 223, 210, 18, 0, 0, 0, 0, 0, 0, 0, + 187, 208, 189, 0, 186, 192, 167, 162, 0, 0, + 224, 226, 198, 199, 165, 166, 164, 0, 202, 203, + 204, 205, 163, 0, 214, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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, 170, 171, 0, + 187, 0, 17, 0, 19, 183, 0, 187, 0, 0, + 187, 0, 0, 0, 0, 197, 0, 189, 0, 182, + 0, 0, 0, 0, 0, 125, 126, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 127, 128, + 129, 130, 131, 0, 196, 216, 195, 0, 186, 193, 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 + 0, 0, 0, 0, 0, 0, 0, 0, 54, 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, 198, 199, 200, 201, 0, 206, 0, + 0, 0, 0, 0, 0, 0, 190, 191, 0, 0, + 188, 0, 0, 0, 194, 172, 187, 52, 48, 0, + 0, 72, 0, 73, 0, 0, 0, 58, 0, 0, + 0, 0, 0, 85, 86, 87, 89, 0, 90, 187, + 187, 109, 111, 53, 49, 61, 62, 63, 59, 60, + 0, 0, 0, 0, 110, 112, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 174, 187, + 0, 176, 187, 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, 98, 104, 105, 106, 107, 108, 99, 100, 101, + 103, 102, 0, 0, 0, 0, 0, 0, 187, 173, + 74, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 175, 187, 177, 187, 223, + 0, 75, 0, 77, 96, 0, 0, 0, 82, 91, + 92, 0, 0, 187, 0, 187, 0, 187, 0, 0, + 0, 178, 0, 0, 58, 0, 0, 64, 66, 186, + 69, 186, 71, 186, 179, 180, 181, 76, 78, 0, + 80, 0, 0, 0, 0, 0, 0, 65, 68, 70, + 79, 81 }; const short parser::yypgoto_[] = { - -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 + -295, -295, -295, 276, 278, 279, -295, -295, -295, 67, + 59, -295, -295, -295, -97, -133, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + 198, -295, -294, -291, -289, -295, -295, -295, -295, -295, + -295, -31, -6, -73, -60, -295, -295, -16, -45, -295, + -295, -295, 80, 249, -295, 250, 274, -295, -295, -295, + 280, 385, 391, 398, -295, -295, -295, 0, 7, -295, + -19, -295, -295, 94, -295, -295 }; const short parser::yydefgoto_[] = { - 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, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 231, + 232, 289, 233, 234, 235, 355, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 112, 415, 260, 261, 262, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 32, 113, 208, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 190, 88, 89, 90, + 82, 83, 84, 85, 86, 87, 206, 88, 89, 90, 91, 92, 93, 94, 95, 96 }; const short parser::yytable_[] = { - 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, + 16, 164, 31, 356, 114, 157, 357, 292, 358, 16, + 19, 20, 1, 2, 3, 4, 5, 293, 158, 395, + 35, 36, 122, 38, 6, 21, 33, 6, 42, 43, + 44, 45, 26, 204, 118, 101, 104, 22, 119, 28, + 6, 106, 102, 105, 30, 6, 300, 123, 6, 396, + 115, 100, 30, 132, 157, 58, 103, 98, 27, 285, + 133, 338, 99, 341, 178, 114, 178, 158, 178, 35, + 36, 97, 38, 17, 18, 29, 6, 7, 159, 17, + 55, 107, 108, 120, 121, 133, 205, 155, 134, 389, + 182, 163, 17, 55, 178, 324, 325, 17, 55, 165, + 398, 7, 399, 405, -219, 178, 161, 178, 178, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 407, 431, 152, 153, 154, 178, 178, 159, 17, 55, + 444, 445, 263, 124, 133, 178, 178, 446, 162, 166, + 356, 167, 178, 357, 207, 358, -206, -206, 168, -206, + 169, 270, 170, -206, 273, 171, 178, 264, 172, 181, + 160, 209, 179, 268, -206, 160, 183, -206, 271, 205, + 133, 274, 286, 291, 294, -198, -198, 296, -198, 263, + 297, 298, -198, 282, 263, 150, 151, 152, 153, 154, + 299, 303, 309, -198, 157, 304, -198, 305, 122, 122, + 310, 301, 263, 308, 264, -206, -206, 158, 315, 264, + 268, 316, 317, 318, 319, 268, 339, 133, 342, 345, + 351, 353, 133, 123, 123, 59, 121, 264, 367, 268, + 268, 362, 363, 268, -198, -198, 133, 133, 157, 157, + 133, 368, 369, 265, 370, 382, 109, 388, 384, 116, + 117, 158, 158, 392, 386, 390, 394, 404, 263, 406, + 408, 419, 432, 436, 420, 434, 122, 159, 437, 452, + 347, 438, 440, 442, 133, 448, 453, 288, 454, 455, + 457, 458, 295, 264, 459, 23, 157, 24, 25, 268, + 265, 123, 314, 365, 366, 265, 133, 268, 360, 158, + 418, 449, 125, 126, 133, 173, 174, 0, 177, 265, + 265, 159, 159, 265, 302, 0, 180, 0, 133, 133, + 0, 0, 0, 383, 0, 0, 385, 127, 0, 0, + 0, 0, 0, 128, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 0, 0, 349, 0, 0, 159, + 263, 0, 263, 0, 269, 0, 133, 272, 0, 265, + 275, 0, 410, 0, 278, 0, 280, 265, 439, 281, + 441, 0, 443, 0, 0, 264, 0, 264, 428, 0, + 429, 268, 430, 268, 0, 0, 417, 0, 133, 0, + 133, 263, 0, 122, 263, 0, 0, 0, 0, 290, + 0, 0, 266, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 307, 0, 263, 263, 264, 0, 123, 264, + 0, 0, 268, 0, 268, 268, 0, 267, 129, 133, + 0, 133, 133, 128, 130, 0, 0, 0, 0, 264, + 264, 131, 0, 0, 0, 268, 268, 0, 411, 266, + 413, 0, 133, 133, 266, 0, 0, 0, 0, 0, + 0, 265, 0, 265, 0, 0, 0, 0, 266, 266, + 0, 346, 266, 0, 267, 0, 0, 0, 0, 267, + 128, 0, 352, 0, 354, 128, 0, 361, 0, 447, + 0, 0, 450, 311, 312, 0, 0, 267, 0, 128, + 128, 0, 265, 128, 265, 265, 0, 0, 0, 0, + 0, 0, 460, 461, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 265, 265, 0, 266, 0, + 0, 0, 387, 0, 0, 0, 266, 0, 129, 0, + 0, 0, -199, -199, 130, -199, 0, 0, 0, -199, + 0, 131, 0, 267, 0, 400, 401, 402, 403, 128, + -199, 359, 0, -199, 0, 0, 0, 128, 35, 36, + 0, 38, 0, 0, 0, 6, 42, 43, 44, 45, + 412, 0, 414, 416, 0, 129, 119, 0, 0, 0, + 129, 130, 0, 0, 229, 230, 130, 0, 131, 0, + 0, -199, -199, 131, 129, 129, 0, 0, 129, 0, + 130, 130, 0, 0, 130, 0, 0, 131, 131, 137, + 138, 131, 0, 0, 451, 0, 0, 17, 55, 0, + 266, 0, 266, 35, 36, 0, 38, 0, 0, 0, + 6, 42, 43, 44, 45, 150, 151, 152, 153, 154, + 0, 119, 0, 0, 0, 267, 0, 267, 0, 0, + 0, 128, 0, 128, 129, 0, 0, 0, 0, 0, + 130, 266, 129, 266, 266, 0, 0, 131, 130, 0, + 0, 0, 137, 138, 0, 131, 141, 142, 143, 144, + 145, 146, 17, 55, 266, 266, 267, 0, 359, 267, + 0, 0, 128, 0, 128, 128, 148, 34, 150, 151, + 152, 153, 154, 0, 0, 0, 0, 0, 0, 267, + 267, 0, 0, 0, 0, 128, 128, 0, 0, 0, + 0, 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, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 129, 0, 129, 51, + 52, 0, 130, 0, 130, 0, 137, 138, 0, 131, + 0, 131, 143, 144, 145, 146, 53, 0, 0, 54, + 17, 55, 30, 56, 57, 58, 0, 0, 0, 0, + 0, 0, 150, 151, 152, 153, 154, 129, 0, 129, + 129, 0, 0, 130, 0, 130, 130, 0, 0, 0, + 131, 0, 131, 131, 0, 0, 0, 0, 0, 0, + 129, 129, 0, 0, 210, 0, 130, 130, 0, 0, + 0, 0, 211, 131, 131, 212, 213, 214, 0, 215, + 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 35, 36, 0, 38, 0, 0, 0, + 6, 42, 43, 44, 45, 0, 0, 0, 0, 163, + 228, 119, 0, 0, 0, 0, 0, 0, 210, 229, + 230, 0, 0, 0, 0, 0, 211, 0, 0, 212, + 213, 214, 0, 215, 216, 217, 218, 0, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 35, 36, 0, + 38, 0, 17, 55, 6, 42, 43, 44, 45, 0, + 0, 0, 0, 163, 313, 119, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 0, 0, 0, 0, -200, + -200, 0, -200, 0, 0, 0, -200, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -200, 287, 0, + -200, 0, 0, 0, 0, 211, 17, 55, 212, 213, + 214, 0, 215, 216, 217, 218, 0, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 35, 36, 0, 38, + 0, 0, 0, 6, 42, 43, 44, 45, -200, -200, + 0, 0, 163, 0, 119, 0, 0, 0, 0, 0, + 0, 0, 229, 230, 0, 0, 0, 0, -201, -201, + 0, -201, 0, 0, 0, -201, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -201, 348, 0, -201, + 0, 0, 0, 0, 211, 17, 55, 212, 213, 214, + 0, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 35, 36, 0, 38, 34, + 0, 0, 6, 42, 43, 44, 45, -201, -201, 0, + 0, 163, 0, 119, 0, 0, 0, 0, 0, 0, + 0, 229, 230, 35, 36, 37, 38, 39, 40, 41, + 6, 42, 43, 44, 45, 46, 47, 48, 0, 0, + 0, 49, 0, 0, 0, 50, 0, 306, 0, 35, + 36, 0, 38, 0, 17, 55, 6, 0, 0, 0, + 0, 51, 52, 0, 34, 0, 0, 155, 0, 0, + 156, 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, 0, -202, -202, 0, -202, 0, 0, 0, + -202, 0, 0, 0, 0, 0, 51, 52, 0, 34, + 0, -202, 0, 0, -202, 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, 0, 0, + 0, 110, -202, -202, 0, 50, 0, 320, 321, 0, + 322, 323, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, + 35, 36, 0, 38, 0, 0, 0, 6, 53, 0, + 0, 54, 17, 55, 30, 56, 57, 58, 155, 0, + 0, 182, 0, 0, 0, 0, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 0, 0, 0, 0, 0, 0, 0, 211, 17, + 55, 212, 213, 214, 0, 215, 216, 217, 218, 0, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 35, + 36, 0, 38, 0, 0, 0, 6, 42, 43, 44, + 45, -203, -203, 0, -203, 163, 0, 119, -203, 0, + -204, -204, 0, -204, 0, 229, 230, -204, 0, -203, + -205, -205, -203, -205, 0, 0, 0, -205, -204, 35, + 36, -204, 38, 0, 0, 0, 6, 0, -205, 0, + 0, -205, 0, 0, 0, 0, 0, 155, 17, 55, + 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -203, -203, 0, 0, 0, 0, 0, 0, 0, -204, + -204, 0, 0, 0, 0, 0, 0, 175, 0, -205, + -205, 0, 176, 0, 0, 0, 0, 136, 17, 55, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 147, 148, 149, 150, 151, 152, 153, + 154, 422, 0, 0, 0, 0, 423, 0, 0, 0, + 0, 136, 0, 0, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, + 150, 151, 152, 153, 154, 424, 0, 0, 0, 0, + 425, 0, 0, 0, 0, 136, 0, 0, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 147, 148, 149, 150, 151, 152, 153, 154, 426, + 0, 0, 0, 0, 427, 0, 0, 0, 0, 136, + 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 276, 0, 147, 148, 149, 150, 151, + 152, 153, 154, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 277, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 136, 0, 0, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 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, 175, 0, 147, 148, 149, 150, 151, 152, 153, + 154, 136, 0, 0, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 391, 0, 147, 148, 149, + 150, 151, 152, 153, 154, 136, 0, 0, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 393, + 0, 147, 148, 149, 150, 151, 152, 153, 154, 136, + 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 397, 0, 147, 148, 149, 150, 151, + 152, 153, 154, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 409, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 136, 0, 0, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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 + 0, 421, 0, 147, 148, 149, 150, 151, 152, 153, + 154, 136, 0, 0, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 433, 0, 147, 148, 149, + 150, 151, 152, 153, 154, 136, 0, 0, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 435, + 0, 147, 148, 149, 150, 151, 152, 153, 154, 136, + 0, 0, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 456, 0, 147, 148, 149, 150, 151, + 152, 153, 154, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 279, 0, 0, + 0, 0, 0, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 284, 0, 0, + 0, 0, 0, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 337, 0, 0, + 0, 0, 0, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 340, 0, 0, + 0, 0, 0, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 343, 0, 0, + 0, 0, 0, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 344, 0, 0, + 0, 0, 136, 0, 0, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, + 149, 150, 151, 152, 153, 154, 283, 0, 136, 0, + 0, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 150, 151, 152, + 153, 154, 135, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 148, 149, 150, 151, 152, 153, 154, 350, 136, 0, + 0, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 147, 148, 149, 150, 151, 152, + 153, 154, 364, 136, 0, 0, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 136, 0, 0, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 0, 0, 0, + 0, 0, 147, 148, 149, 150, 151, 152, 153, 154, + 137, 138, 0, 140, 141, 142, 143, 144, 145, 146, + 137, 138, 0, 0, 141, 142, 143, 144, 145, 146, + 0, 0, 0, 147, 148, 149, 150, 151, 152, 153, + 154, 0, 0, 147, 148, 149, 150, 151, 152, 153, + 154, 137, 138, 0, 0, 141, 142, 143, 144, 145, + 146, 137, 138, 0, 0, 141, 142, 143, 144, 145, + 146, 0, 0, 0, 0, 148, 149, 150, 151, 152, + 153, 154, 0, 0, 0, 0, 0, 150, 151, 152, + 153, 154 }; const short parser::yycheck_[] = { - 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, + 0, 98, 21, 297, 49, 78, 297, 54, 297, 9, + 3, 4, 11, 12, 13, 14, 15, 64, 78, 30, + 40, 41, 53, 43, 47, 54, 26, 47, 48, 49, + 50, 51, 54, 47, 54, 35, 36, 0, 58, 64, + 47, 58, 35, 36, 101, 47, 95, 53, 47, 60, + 50, 58, 101, 53, 127, 104, 58, 55, 80, 55, + 53, 55, 60, 55, 60, 110, 60, 127, 60, 40, + 41, 55, 43, 99, 100, 64, 47, 100, 78, 99, + 100, 54, 54, 103, 104, 78, 100, 58, 100, 55, + 61, 56, 99, 100, 60, 66, 67, 99, 100, 99, + 55, 100, 55, 55, 62, 60, 62, 60, 60, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 55, 55, 96, 97, 98, 60, 60, 127, 99, 100, + 55, 55, 163, 53, 127, 60, 60, 55, 64, 58, + 434, 54, 60, 434, 160, 434, 40, 41, 62, 43, + 58, 167, 54, 47, 170, 62, 60, 163, 58, 58, + 54, 161, 59, 163, 58, 54, 62, 61, 168, 100, + 163, 171, 54, 64, 54, 40, 41, 54, 43, 210, + 54, 54, 47, 183, 215, 94, 95, 96, 97, 98, + 54, 63, 54, 58, 267, 64, 61, 64, 229, 230, + 54, 220, 233, 64, 210, 99, 100, 267, 64, 215, + 210, 64, 64, 64, 64, 215, 54, 210, 54, 59, + 55, 27, 215, 229, 230, 27, 104, 233, 54, 229, + 230, 63, 63, 233, 99, 100, 229, 230, 311, 312, + 233, 54, 54, 163, 54, 59, 48, 54, 59, 51, + 52, 311, 312, 54, 59, 64, 64, 54, 289, 54, + 54, 64, 25, 30, 64, 64, 297, 267, 64, 55, + 286, 64, 64, 64, 267, 64, 55, 210, 55, 55, + 64, 64, 215, 289, 64, 9, 359, 9, 9, 289, + 210, 297, 233, 309, 310, 215, 289, 297, 298, 359, + 397, 434, 53, 53, 297, 107, 108, -1, 110, 229, + 230, 311, 312, 233, 220, -1, 118, -1, 311, 312, + -1, -1, -1, 339, -1, -1, 342, 53, -1, -1, + -1, -1, -1, 53, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, -1, -1, 289, -1, -1, 359, + 391, -1, 393, -1, 166, -1, 359, 169, -1, 289, + 172, -1, 388, -1, 176, -1, 178, 297, 423, 181, + 425, -1, 427, -1, -1, 391, -1, 393, 404, -1, + 406, 391, 408, 393, -1, -1, 396, -1, 391, -1, + 393, 432, -1, 434, 435, -1, -1, -1, -1, 211, + -1, -1, 163, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 224, -1, 455, 456, 432, -1, 434, 435, + -1, -1, 432, -1, 434, 435, -1, 163, 53, 432, + -1, 434, 435, 163, 53, -1, -1, -1, -1, 455, + 456, 53, -1, -1, -1, 455, 456, -1, 391, 210, + 393, -1, 455, 456, 215, -1, -1, -1, -1, -1, + -1, 391, -1, 393, -1, -1, -1, -1, 229, 230, + -1, 283, 233, -1, 210, -1, -1, -1, -1, 215, + 210, -1, 294, -1, 296, 215, -1, 299, -1, 432, + -1, -1, 435, 229, 230, -1, -1, 233, -1, 229, + 230, -1, 432, 233, 434, 435, -1, -1, -1, -1, + -1, -1, 455, 456, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 455, 456, -1, 289, -1, + -1, -1, 344, -1, -1, -1, 297, -1, 163, -1, + -1, -1, 40, 41, 163, 43, -1, -1, -1, 47, + -1, 163, -1, 289, -1, 367, 368, 369, 370, 289, + 58, 297, -1, 61, -1, -1, -1, 297, 40, 41, + -1, 43, -1, -1, -1, 47, 48, 49, 50, 51, + 392, -1, 394, 395, -1, 210, 58, -1, -1, -1, + 215, 210, -1, -1, 66, 67, 215, -1, 210, -1, + -1, 99, 100, 215, 229, 230, -1, -1, 233, -1, + 229, 230, -1, -1, 233, -1, -1, 229, 230, 68, + 69, 233, -1, -1, 436, -1, -1, 99, 100, -1, + 391, -1, 393, 40, 41, -1, 43, -1, -1, -1, + 47, 48, 49, 50, 51, 94, 95, 96, 97, 98, + -1, 58, -1, -1, -1, 391, -1, 393, -1, -1, + -1, 391, -1, 393, 289, -1, -1, -1, -1, -1, + 289, 432, 297, 434, 435, -1, -1, 289, 297, -1, + -1, -1, 68, 69, -1, 297, 72, 73, 74, 75, + 76, 77, 99, 100, 455, 456, 432, -1, 434, 435, + -1, -1, 432, -1, 434, 435, 92, 16, 94, 95, + 96, 97, 98, -1, -1, -1, -1, -1, -1, 455, + 456, -1, -1, -1, -1, 455, 456, -1, -1, -1, + -1, 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, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, 393, 78, + 79, -1, 391, -1, 393, -1, 68, 69, -1, 391, + -1, 393, 74, 75, 76, 77, 95, -1, -1, 98, + 99, 100, 101, 102, 103, 104, -1, -1, -1, -1, + -1, -1, 94, 95, 96, 97, 98, 432, -1, 434, + 435, -1, -1, 432, -1, 434, 435, -1, -1, -1, + 432, -1, 434, 435, -1, -1, -1, -1, -1, -1, + 455, 456, -1, -1, 11, -1, 455, 456, -1, -1, + -1, -1, 19, 455, 456, 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, + 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, -1, -1, 47, 48, 49, 50, 51, 99, - 100, -1, -1, 56, -1, 58, -1, -1, -1, -1, + 43, -1, 99, 100, 47, 48, 49, 50, 51, -1, + -1, -1, -1, 56, 57, 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, -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, -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, - -1, -1, 47, 48, 49, 50, 51, -1, -1, -1, + 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, - 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, 66, 67, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, -1, -1, + -1, 58, -1, -1, -1, 62, -1, 64, -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, -1, 40, 41, -1, 43, -1, -1, -1, + 47, -1, -1, -1, -1, -1, 78, 79, -1, 16, + -1, 58, -1, -1, 61, -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, -1, -1, + -1, 58, 99, 100, -1, 62, -1, 17, 18, -1, + 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 78, 79, -1, -1, -1, -1, -1, -1, -1, + 40, 41, -1, 43, -1, -1, -1, 47, 95, -1, + -1, 98, 99, 100, 101, 102, 103, 104, 58, -1, + -1, 61, -1, -1, -1, -1, 66, 67, -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, -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, -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, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, -1, -1, -1, -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, 40, 41, -1, 43, 56, -1, 58, 47, -1, + 40, 41, -1, 43, -1, 66, 67, 47, -1, 58, + 40, 41, 61, 43, -1, -1, -1, 47, 58, 40, + 41, 61, 43, -1, -1, -1, 47, -1, 58, -1, + -1, 61, -1, -1, -1, -1, -1, 58, 99, 100, + 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 99, 100, -1, -1, -1, -1, -1, -1, -1, 99, + 100, -1, -1, -1, -1, -1, -1, 55, -1, 99, + 100, -1, 60, -1, -1, -1, -1, 65, 99, 100, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, -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, 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, -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, -1, -1, 91, 92, 93, - 94, 95, 96, 97, 98, 63, -1, 65, -1, -1, + 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, 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, -1, -1, 91, 92, 93, 94, 95, 96, 97, - 98, 64, 65, -1, -1, 68, 69, 70, 71, 72, + -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, 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, 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, + 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, - -1, -1, -1, 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, - 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 + -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, -1, -1, 94, 95, 96, + 97, 98 }; const unsigned char @@ -4490,49 +4549,50 @@ namespace xsk { namespace gsc { namespace s4 { 0, 11, 12, 13, 14, 15, 47, 100, 116, 117, 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, + 101, 195, 171, 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, + 170, 174, 175, 176, 177, 178, 179, 180, 181, 182, 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, + 58, 59, 155, 172, 173, 192, 155, 155, 54, 58, + 103, 104, 166, 167, 177, 178, 180, 181, 185, 186, + 187, 188, 192, 193, 100, 64, 65, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 91, 92, 93, + 94, 95, 96, 97, 98, 58, 61, 168, 169, 192, + 54, 62, 64, 56, 129, 192, 58, 54, 62, 58, + 54, 62, 58, 155, 155, 55, 60, 155, 60, 59, + 155, 58, 61, 62, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 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 + 155, 155, 155, 155, 47, 100, 191, 172, 173, 192, + 11, 19, 22, 23, 24, 26, 27, 28, 29, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 57, 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, 166, 167, 177, 178, 181, 192, 155, + 172, 192, 155, 172, 192, 155, 55, 55, 155, 59, + 155, 155, 192, 63, 59, 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, 181, 181, 57, 125, 64, 64, 64, 64, 64, + 17, 18, 20, 21, 66, 67, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 59, 55, 54, + 59, 55, 54, 59, 60, 59, 155, 172, 12, 124, + 64, 55, 155, 27, 155, 130, 157, 158, 159, 181, + 192, 155, 63, 63, 64, 172, 172, 54, 54, 54, + 54, 155, 155, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 59, 172, 59, 172, 59, 155, 54, 55, + 64, 55, 54, 55, 64, 30, 60, 55, 55, 55, + 155, 155, 155, 155, 54, 55, 54, 55, 54, 55, + 172, 124, 155, 124, 155, 156, 155, 192, 129, 64, + 64, 55, 55, 60, 55, 60, 55, 60, 172, 172, + 172, 55, 25, 55, 64, 55, 30, 64, 64, 173, + 64, 173, 64, 173, 55, 55, 55, 124, 64, 130, + 124, 155, 55, 55, 55, 55, 55, 64, 64, 64, + 124, 124 }; const unsigned char @@ -4554,13 +4614,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, 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 + 162, 162, 163, 164, 164, 164, 164, 165, 166, 166, + 167, 167, 168, 168, 168, 168, 168, 168, 169, 169, + 169, 169, 170, 171, 171, 171, 172, 172, 173, 173, + 174, 175, 176, 176, 177, 178, 179, 180, 181, 181, + 181, 181, 181, 181, 181, 181, 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 @@ -4582,13 +4642,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, 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, 2, 2, 2, 2, 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, - 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 7, 2, 1, 2, 1, 1, 1 + 1, 1, 1, 7, 2, 1, 2, 1, 1, 1 }; @@ -4614,13 +4674,13 @@ namespace xsk { namespace gsc { namespace s4 { 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 + 646, 647, 651, 656, 658, 660, 662, 667, 672, 673, + 676, 677, 681, 683, 685, 687, 689, 691, 696, 698, + 700, 702, 707, 712, 714, 717, 721, 724, 728, 730, + 735, 740, 745, 747, 752, 757, 762, 767, 772, 773, + 774, 775, 776, 777, 778, 779, 780, 784, 789, 794, + 799, 804, 809, 814, 819, 824, 829, 834, 836, 841, + 843, 848, 853, 858, 863, 865, 870, 872, 877, 882 }; void @@ -4653,9 +4713,9 @@ namespace xsk { namespace gsc { namespace s4 { #line 13 "parser.ypp" } } } // xsk::gsc::s4 -#line 4657 "parser.cpp" +#line 4717 "parser.cpp" -#line 880 "parser.ypp" +#line 886 "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 fb80d465..6dfff086 100644 --- a/src/s4/xsk/parser.hpp +++ b/src/s4/xsk/parser.hpp @@ -447,7 +447,6 @@ namespace xsk { namespace gsc { namespace s4 { // expr_binary // expr_primitive // expr_object - // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_add_array @@ -512,134 +511,137 @@ namespace xsk { namespace gsc { namespace s4 { // expr_method char dummy26[sizeof (ast::expr_method::ptr)]; + // expr_negate + char dummy27[sizeof (ast::expr_negate::ptr)]; + // expr_not - char dummy27[sizeof (ast::expr_not::ptr)]; + char dummy28[sizeof (ast::expr_not::ptr)]; // expr_parameters - char dummy28[sizeof (ast::expr_parameters::ptr)]; + char dummy29[sizeof (ast::expr_parameters::ptr)]; // expr_paren - char dummy29[sizeof (ast::expr_paren::ptr)]; + char dummy30[sizeof (ast::expr_paren::ptr)]; // expr_path - char dummy30[sizeof (ast::expr_path::ptr)]; + char dummy31[sizeof (ast::expr_path::ptr)]; // expr_reference - char dummy31[sizeof (ast::expr_reference::ptr)]; + char dummy32[sizeof (ast::expr_reference::ptr)]; // expr_self - char dummy32[sizeof (ast::expr_self::ptr)]; + char dummy33[sizeof (ast::expr_self::ptr)]; // expr_size - char dummy33[sizeof (ast::expr_size::ptr)]; + char dummy34[sizeof (ast::expr_size::ptr)]; // expr_string - char dummy34[sizeof (ast::expr_string::ptr)]; + char dummy35[sizeof (ast::expr_string::ptr)]; // expr_thisthread - char dummy35[sizeof (ast::expr_thisthread::ptr)]; + char dummy36[sizeof (ast::expr_thisthread::ptr)]; // expr_true - char dummy36[sizeof (ast::expr_true::ptr)]; + char dummy37[sizeof (ast::expr_true::ptr)]; // expr_undefined - char dummy37[sizeof (ast::expr_undefined::ptr)]; + char dummy38[sizeof (ast::expr_undefined::ptr)]; // expr_vector - char dummy38[sizeof (ast::expr_vector::ptr)]; + char dummy39[sizeof (ast::expr_vector::ptr)]; // include - char dummy39[sizeof (ast::include::ptr)]; + char dummy40[sizeof (ast::include::ptr)]; // program - char dummy40[sizeof (ast::program::ptr)]; + char dummy41[sizeof (ast::program::ptr)]; // stmt // stmt_or_dev - char dummy41[sizeof (ast::stmt)]; + char dummy42[sizeof (ast::stmt)]; // stmt_assign - char dummy42[sizeof (ast::stmt_assign::ptr)]; + char dummy43[sizeof (ast::stmt_assign::ptr)]; // stmt_break - char dummy43[sizeof (ast::stmt_break::ptr)]; + char dummy44[sizeof (ast::stmt_break::ptr)]; // stmt_breakpoint - char dummy44[sizeof (ast::stmt_breakpoint::ptr)]; + char dummy45[sizeof (ast::stmt_breakpoint::ptr)]; // stmt_call - char dummy45[sizeof (ast::stmt_call::ptr)]; + char dummy46[sizeof (ast::stmt_call::ptr)]; // stmt_case - char dummy46[sizeof (ast::stmt_case::ptr)]; + char dummy47[sizeof (ast::stmt_case::ptr)]; // stmt_continue - char dummy47[sizeof (ast::stmt_continue::ptr)]; + char dummy48[sizeof (ast::stmt_continue::ptr)]; // stmt_default - char dummy48[sizeof (ast::stmt_default::ptr)]; + char dummy49[sizeof (ast::stmt_default::ptr)]; // stmt_dev - char dummy49[sizeof (ast::stmt_dev::ptr)]; + char dummy50[sizeof (ast::stmt_dev::ptr)]; // stmt_dowhile - char dummy50[sizeof (ast::stmt_dowhile::ptr)]; + char dummy51[sizeof (ast::stmt_dowhile::ptr)]; // stmt_endon - char dummy51[sizeof (ast::stmt_endon::ptr)]; + char dummy52[sizeof (ast::stmt_endon::ptr)]; // stmt_expr - char dummy52[sizeof (ast::stmt_expr::ptr)]; + char dummy53[sizeof (ast::stmt_expr::ptr)]; // stmt_for - char dummy53[sizeof (ast::stmt_for::ptr)]; + char dummy54[sizeof (ast::stmt_for::ptr)]; // stmt_foreach - char dummy54[sizeof (ast::stmt_foreach::ptr)]; + char dummy55[sizeof (ast::stmt_foreach::ptr)]; // stmt_if - char dummy55[sizeof (ast::stmt_if::ptr)]; + char dummy56[sizeof (ast::stmt_if::ptr)]; // stmt_ifelse - char dummy56[sizeof (ast::stmt_ifelse::ptr)]; + char dummy57[sizeof (ast::stmt_ifelse::ptr)]; // stmt_list // stmt_or_dev_list // stmt_block - char dummy57[sizeof (ast::stmt_list::ptr)]; + char dummy58[sizeof (ast::stmt_list::ptr)]; // stmt_notify - char dummy58[sizeof (ast::stmt_notify::ptr)]; + char dummy59[sizeof (ast::stmt_notify::ptr)]; // stmt_prof_begin - char dummy59[sizeof (ast::stmt_prof_begin::ptr)]; + char dummy60[sizeof (ast::stmt_prof_begin::ptr)]; // stmt_prof_end - char dummy60[sizeof (ast::stmt_prof_end::ptr)]; + char dummy61[sizeof (ast::stmt_prof_end::ptr)]; // stmt_return - char dummy61[sizeof (ast::stmt_return::ptr)]; + char dummy62[sizeof (ast::stmt_return::ptr)]; // stmt_switch - char dummy62[sizeof (ast::stmt_switch::ptr)]; + char dummy63[sizeof (ast::stmt_switch::ptr)]; // stmt_wait - char dummy63[sizeof (ast::stmt_wait::ptr)]; + char dummy64[sizeof (ast::stmt_wait::ptr)]; // stmt_waitframe - char dummy64[sizeof (ast::stmt_waitframe::ptr)]; + char dummy65[sizeof (ast::stmt_waitframe::ptr)]; // stmt_waittill - char dummy65[sizeof (ast::stmt_waittill::ptr)]; + char dummy66[sizeof (ast::stmt_waittill::ptr)]; // stmt_waittillframeend - char dummy66[sizeof (ast::stmt_waittillframeend::ptr)]; + char dummy67[sizeof (ast::stmt_waittillframeend::ptr)]; // stmt_waittillmatch - char dummy67[sizeof (ast::stmt_waittillmatch::ptr)]; + char dummy68[sizeof (ast::stmt_waittillmatch::ptr)]; // stmt_while - char dummy68[sizeof (ast::stmt_while::ptr)]; + char dummy69[sizeof (ast::stmt_while::ptr)]; // "path" // "identifier" @@ -647,7 +649,7 @@ namespace xsk { namespace gsc { namespace s4 { // "localized string" // "float" // "integer" - char dummy69[sizeof (std::string)]; + char dummy70[sizeof (std::string)]; }; /// The size of the largest semantic type. @@ -994,33 +996,33 @@ namespace xsk { namespace gsc { namespace s4 { S_expr_binary = 161, // expr_binary S_expr_primitive = 162, // expr_primitive S_expr_complement = 163, // expr_complement - S_expr_not = 164, // expr_not - S_expr_call = 165, // expr_call - S_expr_method = 166, // expr_method - S_expr_function = 167, // expr_function - S_expr_pointer = 168, // expr_pointer - S_expr_add_array = 169, // expr_add_array - S_expr_parameters = 170, // expr_parameters - S_expr_arguments = 171, // expr_arguments - S_expr_arguments_no_empty = 172, // expr_arguments_no_empty - S_expr_isdefined = 173, // expr_isdefined - S_expr_istrue = 174, // expr_istrue - S_expr_reference = 175, // expr_reference - S_expr_array = 176, // expr_array - S_expr_field = 177, // expr_field - S_expr_size = 178, // expr_size - S_expr_paren = 179, // expr_paren - S_expr_object = 180, // expr_object - S_expr_thisthread = 181, // expr_thisthread - S_expr_empty_array = 182, // expr_empty_array - S_expr_undefined = 183, // expr_undefined - S_expr_game = 184, // expr_game - S_expr_self = 185, // expr_self - S_expr_anim = 186, // expr_anim - S_expr_level = 187, // expr_level - S_expr_animation = 188, // expr_animation - S_expr_animtree = 189, // expr_animtree - S_expr_identifier_neg = 190, // expr_identifier_neg + S_expr_negate = 164, // expr_negate + S_expr_not = 165, // expr_not + S_expr_call = 166, // expr_call + S_expr_method = 167, // expr_method + S_expr_function = 168, // expr_function + S_expr_pointer = 169, // expr_pointer + S_expr_add_array = 170, // expr_add_array + S_expr_parameters = 171, // expr_parameters + S_expr_arguments = 172, // expr_arguments + S_expr_arguments_no_empty = 173, // expr_arguments_no_empty + S_expr_isdefined = 174, // expr_isdefined + S_expr_istrue = 175, // expr_istrue + S_expr_reference = 176, // expr_reference + S_expr_array = 177, // expr_array + S_expr_field = 178, // expr_field + S_expr_size = 179, // expr_size + S_expr_paren = 180, // expr_paren + S_expr_object = 181, // expr_object + S_expr_thisthread = 182, // expr_thisthread + S_expr_empty_array = 183, // expr_empty_array + S_expr_undefined = 184, // expr_undefined + S_expr_game = 185, // expr_game + S_expr_self = 186, // expr_self + S_expr_anim = 187, // expr_anim + S_expr_level = 188, // expr_level + S_expr_animation = 189, // expr_animation + S_expr_animtree = 190, // expr_animtree S_expr_identifier_nosize = 191, // expr_identifier_nosize S_expr_identifier = 192, // expr_identifier S_expr_path = 193, // expr_path @@ -1097,7 +1099,6 @@ 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; @@ -1183,6 +1184,10 @@ namespace xsk { namespace gsc { namespace s4 { value.move< ast::expr_method::ptr > (std::move (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (std::move (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (std::move (that.value)); break; @@ -1750,6 +1755,20 @@ namespace xsk { namespace gsc { namespace s4 { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, ast::expr_negate::ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const ast::expr_negate::ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ast::expr_not::ptr&& v, location_type&& l) : Base (t) @@ -2406,7 +2425,6 @@ 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; @@ -2492,6 +2510,10 @@ switch (yykind) value.template destroy< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + value.template destroy< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not value.template destroy< ast::expr_not::ptr > (); break; @@ -4903,7 +4925,7 @@ switch (yykind) /// Constants. enum { - yylast_ = 2360, ///< Last index in yytable_. + yylast_ = 2481, ///< Last index in yytable_. yynnts_ = 86, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -4961,7 +4983,6 @@ 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; @@ -5047,6 +5068,10 @@ switch (yykind) value.copy< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -5288,7 +5313,6 @@ 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; @@ -5374,6 +5398,10 @@ switch (yykind) value.move< ast::expr_method::ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (s.value)); break; @@ -5621,7 +5649,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::gsc::s4 -#line 5625 "parser.hpp" +#line 5653 "parser.hpp" diff --git a/src/t6/xsk/compiler.cpp b/src/t6/xsk/compiler.cpp index 18bf1a99..e1f6a8dc 100644 --- a/src/t6/xsk/compiler.cpp +++ b/src/t6/xsk/compiler.cpp @@ -813,6 +813,9 @@ void compiler::emit_expr(const ast::expr& expr) case ast::kind::expr_complement: emit_expr_complement(expr.as_complement); break; + case ast::kind::expr_negate: + emit_expr_negate(expr.as_negate); + break; case ast::kind::expr_not: emit_expr_not(expr.as_not); break; @@ -1163,6 +1166,13 @@ void compiler::emit_expr_complement(const ast::expr_complement::ptr& expr) emit_opcode(opcode::OP_BoolComplement); } +void compiler::emit_expr_negate(const ast::expr_negate::ptr& expr) +{ + emit_opcode(opcode::OP_GetZero); + emit_expr(expr->rvalue); + emit_opcode(opcode::OP_Minus); +} + void compiler::emit_expr_not(const ast::expr_not::ptr& expr) { emit_expr(expr->rvalue); diff --git a/src/t6/xsk/compiler.hpp b/src/t6/xsk/compiler.hpp index 1c8c0e3a..190f9ce1 100644 --- a/src/t6/xsk/compiler.hpp +++ b/src/t6/xsk/compiler.hpp @@ -80,6 +80,7 @@ private: void emit_expr_and(const ast::expr_and::ptr& expr); void emit_expr_or(const ast::expr_or::ptr& expr); void emit_expr_complement(const ast::expr_complement::ptr& expr); + void emit_expr_negate(const ast::expr_negate::ptr& expr); void emit_expr_not(const ast::expr_not::ptr& expr); void emit_expr_call(const ast::expr_call::ptr& expr, bool is_stmt); void emit_expr_call_pointer(const ast::expr_pointer::ptr& expr, bool is_stmt); diff --git a/src/t6/xsk/parser.cpp b/src/t6/xsk/parser.cpp index 76bc9441..f54b89bf 100644 --- a/src/t6/xsk/parser.cpp +++ b/src/t6/xsk/parser.cpp @@ -245,7 +245,6 @@ namespace xsk { namespace arc { namespace t6 { 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; @@ -387,6 +386,10 @@ namespace xsk { namespace arc { namespace t6 { value.YY_MOVE_OR_COPY< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.YY_MOVE_OR_COPY< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.YY_MOVE_OR_COPY< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -609,7 +612,6 @@ namespace xsk { namespace arc { namespace t6 { 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; @@ -751,6 +753,10 @@ namespace xsk { namespace arc { namespace t6 { value.move< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -973,7 +979,6 @@ namespace xsk { namespace arc { namespace t6 { 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; @@ -1115,6 +1120,10 @@ namespace xsk { namespace arc { namespace t6 { value.copy< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (that.value); break; @@ -1336,7 +1345,6 @@ namespace xsk { namespace arc { namespace t6 { 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; @@ -1478,6 +1486,10 @@ namespace xsk { namespace arc { namespace t6 { value.move< ast::expr_method::ptr > (that.value); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (that.value); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (that.value); break; @@ -1954,7 +1966,6 @@ namespace xsk { namespace arc { namespace t6 { 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; @@ -2096,6 +2107,10 @@ namespace xsk { namespace arc { namespace t6 { yylhs.value.emplace< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + yylhs.value.emplace< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not yylhs.value.emplace< ast::expr_not::ptr > (); break; @@ -2296,1523 +2311,1541 @@ namespace xsk { namespace arc { namespace t6 { case 2: // root: program #line 288 "parser.ypp" { ast = std::move(yystack_[0].value.as < ast::program::ptr > ()); } -#line 2300 "parser.cpp" +#line 2315 "parser.cpp" break; case 3: // root: %empty #line 289 "parser.ypp" { ast = std::make_unique(yylhs.location); } -#line 2306 "parser.cpp" +#line 2321 "parser.cpp" break; case 4: // program: program inline #line 294 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); } -#line 2312 "parser.cpp" +#line 2327 "parser.cpp" break; case 5: // program: program include #line 296 "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 2318 "parser.cpp" +#line 2333 "parser.cpp" break; case 6: // program: program declaration #line 298 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::move(yystack_[1].value.as < ast::program::ptr > ()); yylhs.value.as < ast::program::ptr > ()->declarations.push_back(std::move(yystack_[0].value.as < ast::decl > ())); } -#line 2324 "parser.cpp" +#line 2339 "parser.cpp" break; case 7: // program: inline #line 300 "parser.ypp" { yylhs.value.as < ast::program::ptr > () = std::make_unique(yylhs.location); } -#line 2330 "parser.cpp" +#line 2345 "parser.cpp" break; case 8: // program: include #line 302 "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 2336 "parser.cpp" +#line 2351 "parser.cpp" break; case 9: // program: declaration #line 304 "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 2342 "parser.cpp" +#line 2357 "parser.cpp" break; case 10: // inline: "#inline" expr_path ";" #line 308 "parser.ypp" { lexer.push_header(yystack_[1].value.as < ast::expr_path::ptr > ()->value); } -#line 2348 "parser.cpp" +#line 2363 "parser.cpp" break; case 11: // include: "#include" expr_path ";" #line 313 "parser.ypp" { yylhs.value.as < ast::include::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr_path::ptr > ())); } -#line 2354 "parser.cpp" +#line 2369 "parser.cpp" break; case 12: // declaration: "/#" #line 317 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_begin = std::make_unique(yylhs.location); } -#line 2360 "parser.cpp" +#line 2375 "parser.cpp" break; case 13: // declaration: "#/" #line 318 "parser.ypp" { yylhs.value.as < ast::decl > ().as_dev_end = std::make_unique(yylhs.location); } -#line 2366 "parser.cpp" +#line 2381 "parser.cpp" break; case 14: // declaration: decl_usingtree #line 319 "parser.ypp" { yylhs.value.as < ast::decl > ().as_usingtree = std::move(yystack_[0].value.as < ast::decl_usingtree::ptr > ()); } -#line 2372 "parser.cpp" +#line 2387 "parser.cpp" break; case 15: // declaration: decl_constant #line 320 "parser.ypp" { yylhs.value.as < ast::decl > ().as_constant = std::move(yystack_[0].value.as < ast::decl_constant::ptr > ()); } -#line 2378 "parser.cpp" +#line 2393 "parser.cpp" break; case 16: // declaration: decl_thread #line 321 "parser.ypp" { yylhs.value.as < ast::decl > ().as_thread = std::move(yystack_[0].value.as < ast::decl_thread::ptr > ()); } -#line 2384 "parser.cpp" +#line 2399 "parser.cpp" break; case 17: // decl_usingtree: "#using_animtree" "(" expr_string ")" ";" #line 326 "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 2390 "parser.cpp" +#line 2405 "parser.cpp" break; case 18: // decl_constant: expr_identifier "=" expr ";" #line 331 "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 2396 "parser.cpp" +#line 2411 "parser.cpp" break; case 19: // decl_thread: expr_identifier "(" expr_parameters ")" stmt_block #line 336 "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 2402 "parser.cpp" +#line 2417 "parser.cpp" break; case 20: // stmt: stmt_block #line 340 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_list = std::move(yystack_[0].value.as < ast::stmt_list::ptr > ()); } -#line 2408 "parser.cpp" +#line 2423 "parser.cpp" break; case 21: // stmt: stmt_call #line 341 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_call = std::move(yystack_[0].value.as < ast::stmt_call::ptr > ()); } -#line 2414 "parser.cpp" +#line 2429 "parser.cpp" break; case 22: // stmt: stmt_assign #line 342 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_assign = std::move(yystack_[0].value.as < ast::stmt_assign::ptr > ()); } -#line 2420 "parser.cpp" +#line 2435 "parser.cpp" break; case 23: // stmt: stmt_endon #line 343 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_endon = std::move(yystack_[0].value.as < ast::stmt_endon::ptr > ()); } -#line 2426 "parser.cpp" +#line 2441 "parser.cpp" break; case 24: // stmt: stmt_notify #line 344 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_notify = std::move(yystack_[0].value.as < ast::stmt_notify::ptr > ()); } -#line 2432 "parser.cpp" +#line 2447 "parser.cpp" break; case 25: // stmt: stmt_wait #line 345 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_wait = std::move(yystack_[0].value.as < ast::stmt_wait::ptr > ()); } -#line 2438 "parser.cpp" +#line 2453 "parser.cpp" break; case 26: // stmt: stmt_waittill #line 346 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittill = std::move(yystack_[0].value.as < ast::stmt_waittill::ptr > ()); } -#line 2444 "parser.cpp" +#line 2459 "parser.cpp" break; case 27: // stmt: stmt_waittillmatch #line 347 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillmatch = std::move(yystack_[0].value.as < ast::stmt_waittillmatch::ptr > ()); } -#line 2450 "parser.cpp" +#line 2465 "parser.cpp" break; case 28: // stmt: stmt_waittillframeend #line 348 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_waittillframeend = std::move(yystack_[0].value.as < ast::stmt_waittillframeend::ptr > ()); } -#line 2456 "parser.cpp" +#line 2471 "parser.cpp" break; case 29: // stmt: stmt_if #line 349 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_if = std::move(yystack_[0].value.as < ast::stmt_if::ptr > ()); } -#line 2462 "parser.cpp" +#line 2477 "parser.cpp" break; case 30: // stmt: stmt_ifelse #line 350 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_ifelse = std::move(yystack_[0].value.as < ast::stmt_ifelse::ptr > ()); } -#line 2468 "parser.cpp" +#line 2483 "parser.cpp" break; case 31: // stmt: stmt_while #line 351 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_while = std::move(yystack_[0].value.as < ast::stmt_while::ptr > ()); } -#line 2474 "parser.cpp" +#line 2489 "parser.cpp" break; case 32: // stmt: stmt_dowhile #line 352 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dowhile = std::move(yystack_[0].value.as < ast::stmt_dowhile::ptr > ()); } -#line 2480 "parser.cpp" +#line 2495 "parser.cpp" break; case 33: // stmt: stmt_for #line 353 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_for = std::move(yystack_[0].value.as < ast::stmt_for::ptr > ()); } -#line 2486 "parser.cpp" +#line 2501 "parser.cpp" break; case 34: // stmt: stmt_foreach #line 354 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_foreach = std::move(yystack_[0].value.as < ast::stmt_foreach::ptr > ()); } -#line 2492 "parser.cpp" +#line 2507 "parser.cpp" break; case 35: // stmt: stmt_switch #line 355 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_switch = std::move(yystack_[0].value.as < ast::stmt_switch::ptr > ()); } -#line 2498 "parser.cpp" +#line 2513 "parser.cpp" break; case 36: // stmt: stmt_case #line 356 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_case = std::move(yystack_[0].value.as < ast::stmt_case::ptr > ()); } -#line 2504 "parser.cpp" +#line 2519 "parser.cpp" break; case 37: // stmt: stmt_default #line 357 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_default = std::move(yystack_[0].value.as < ast::stmt_default::ptr > ()); } -#line 2510 "parser.cpp" +#line 2525 "parser.cpp" break; case 38: // stmt: stmt_break #line 358 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_break = std::move(yystack_[0].value.as < ast::stmt_break::ptr > ()); } -#line 2516 "parser.cpp" +#line 2531 "parser.cpp" break; case 39: // stmt: stmt_continue #line 359 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_continue = std::move(yystack_[0].value.as < ast::stmt_continue::ptr > ()); } -#line 2522 "parser.cpp" +#line 2537 "parser.cpp" break; case 40: // stmt: stmt_return #line 360 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_return = std::move(yystack_[0].value.as < ast::stmt_return::ptr > ()); } -#line 2528 "parser.cpp" +#line 2543 "parser.cpp" break; case 41: // stmt: stmt_prof_begin #line 361 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_begin = std::move(yystack_[0].value.as < ast::stmt_prof_begin::ptr > ()); } -#line 2534 "parser.cpp" +#line 2549 "parser.cpp" break; case 42: // stmt: stmt_prof_end #line 362 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_prof_end = std::move(yystack_[0].value.as < ast::stmt_prof_end::ptr > ()); } -#line 2540 "parser.cpp" +#line 2555 "parser.cpp" break; case 43: // stmt_or_dev: stmt #line 366 "parser.ypp" { yylhs.value.as < ast::stmt > () = std::move(yystack_[0].value.as < ast::stmt > ()); } -#line 2546 "parser.cpp" +#line 2561 "parser.cpp" break; case 44: // stmt_or_dev: stmt_dev #line 367 "parser.ypp" { yylhs.value.as < ast::stmt > ().as_dev = std::move(yystack_[0].value.as < ast::stmt_dev::ptr > ()); } -#line 2552 "parser.cpp" +#line 2567 "parser.cpp" break; case 45: // stmt_list: stmt_list stmt #line 372 "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 2558 "parser.cpp" +#line 2573 "parser.cpp" break; case 46: // stmt_list: stmt #line 374 "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 2564 "parser.cpp" +#line 2579 "parser.cpp" break; case 47: // stmt_or_dev_list: stmt_or_dev_list stmt_or_dev #line 379 "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 2570 "parser.cpp" +#line 2585 "parser.cpp" break; case 48: // stmt_or_dev_list: stmt_or_dev #line 381 "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 2576 "parser.cpp" +#line 2591 "parser.cpp" break; case 49: // stmt_dev: "/#" stmt_list "#/" #line 385 "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 2582 "parser.cpp" +#line 2597 "parser.cpp" break; case 50: // stmt_dev: "/#" "#/" #line 386 "parser.ypp" { yylhs.value.as < ast::stmt_dev::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2588 "parser.cpp" +#line 2603 "parser.cpp" break; case 51: // stmt_block: "{" stmt_or_dev_list "}" #line 390 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::move(yystack_[1].value.as < ast::stmt_list::ptr > ()); } -#line 2594 "parser.cpp" +#line 2609 "parser.cpp" break; case 52: // stmt_block: "{" "}" #line 391 "parser.ypp" { yylhs.value.as < ast::stmt_list::ptr > () = std::make_unique(yylhs.location); } -#line 2600 "parser.cpp" +#line 2615 "parser.cpp" break; case 53: // stmt_expr: expr_assign #line 396 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2606 "parser.cpp" +#line 2621 "parser.cpp" break; case 54: // stmt_expr: expr_increment #line 398 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2612 "parser.cpp" +#line 2627 "parser.cpp" break; case 55: // stmt_expr: expr_decrement #line 400 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2618 "parser.cpp" +#line 2633 "parser.cpp" break; case 56: // stmt_expr: %empty #line 402 "parser.ypp" { yylhs.value.as < ast::stmt_expr::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2624 "parser.cpp" +#line 2639 "parser.cpp" break; case 57: // stmt_call: expr_call ";" #line 407 "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 2630 "parser.cpp" +#line 2645 "parser.cpp" break; case 58: // stmt_call: expr_method ";" #line 409 "parser.ypp" { yylhs.value.as < ast::stmt_call::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[1].value.as < ast::expr_method::ptr > ()))); } -#line 2636 "parser.cpp" +#line 2651 "parser.cpp" break; case 59: // stmt_assign: expr_assign ";" #line 414 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2642 "parser.cpp" +#line 2657 "parser.cpp" break; case 60: // stmt_assign: expr_increment ";" #line 416 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2648 "parser.cpp" +#line 2663 "parser.cpp" break; case 61: // stmt_assign: expr_decrement ";" #line 418 "parser.ypp" { yylhs.value.as < ast::stmt_assign::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2654 "parser.cpp" +#line 2669 "parser.cpp" break; case 62: // stmt_endon: expr_object "endon" "(" expr ")" ";" #line 423 "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 2660 "parser.cpp" +#line 2675 "parser.cpp" break; case 63: // stmt_notify: expr_object "notify" "(" expr "," expr_arguments_no_empty ")" ";" #line 428 "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 2666 "parser.cpp" +#line 2681 "parser.cpp" break; case 64: // stmt_notify: expr_object "notify" "(" expr ")" ";" #line 430 "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 2672 "parser.cpp" +#line 2687 "parser.cpp" break; case 65: // stmt_wait: "wait" expr ";" #line 435 "parser.ypp" { yylhs.value.as < ast::stmt_wait::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2678 "parser.cpp" +#line 2693 "parser.cpp" break; case 66: // stmt_waittill: expr_object "waittill" "(" expr "," expr_arguments_no_empty ")" ";" #line 440 "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 2684 "parser.cpp" +#line 2699 "parser.cpp" break; case 67: // stmt_waittill: expr_object "waittill" "(" expr ")" ";" #line 442 "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 2690 "parser.cpp" +#line 2705 "parser.cpp" break; case 68: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr "," expr_arguments_no_empty ")" ";" #line 447 "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 2696 "parser.cpp" +#line 2711 "parser.cpp" break; case 69: // stmt_waittillmatch: expr_object "waittillmatch" "(" expr ")" ";" #line 449 "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 2702 "parser.cpp" +#line 2717 "parser.cpp" break; case 70: // stmt_waittillframeend: "waittillframeend" ";" #line 454 "parser.ypp" { yylhs.value.as < ast::stmt_waittillframeend::ptr > () = std::make_unique(yylhs.location); } -#line 2708 "parser.cpp" +#line 2723 "parser.cpp" break; case 71: // stmt_if: "if" "(" expr ")" stmt #line 459 "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 2714 "parser.cpp" +#line 2729 "parser.cpp" break; case 72: // stmt_ifelse: "if" "(" expr ")" stmt "else" stmt #line 464 "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 2720 "parser.cpp" +#line 2735 "parser.cpp" break; case 73: // stmt_while: "while" "(" expr ")" stmt #line 469 "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 2726 "parser.cpp" +#line 2741 "parser.cpp" break; case 74: // stmt_dowhile: "do" stmt "while" "(" expr ")" ";" #line 474 "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 2732 "parser.cpp" +#line 2747 "parser.cpp" break; case 75: // stmt_for: "for" "(" stmt_expr ";" expr_or_empty ";" stmt_expr ")" stmt #line 479 "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 2738 "parser.cpp" +#line 2753 "parser.cpp" break; case 76: // stmt_foreach: "foreach" "(" expr_identifier "in" expr ")" stmt #line 484 "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 2744 "parser.cpp" +#line 2759 "parser.cpp" break; case 77: // stmt_foreach: "foreach" "(" expr_identifier "," expr_identifier "in" expr ")" stmt #line 486 "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 2750 "parser.cpp" +#line 2765 "parser.cpp" break; case 78: // stmt_switch: "switch" "(" expr ")" stmt_block #line 491 "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 2756 "parser.cpp" +#line 2771 "parser.cpp" break; case 79: // stmt_case: "case" expr_integer ":" #line 496 "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 2762 "parser.cpp" +#line 2777 "parser.cpp" break; case 80: // stmt_case: "case" expr_string ":" #line 498 "parser.ypp" { yylhs.value.as < ast::stmt_case::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[1].value.as < ast::expr_string::ptr > ())), std::make_unique(yylhs.location)); } -#line 2768 "parser.cpp" +#line 2783 "parser.cpp" break; case 81: // stmt_default: "default" ":" #line 503 "parser.ypp" { yylhs.value.as < ast::stmt_default::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2774 "parser.cpp" +#line 2789 "parser.cpp" break; case 82: // stmt_break: "break" ";" #line 508 "parser.ypp" { yylhs.value.as < ast::stmt_break::ptr > () = std::make_unique(yylhs.location); } -#line 2780 "parser.cpp" +#line 2795 "parser.cpp" break; case 83: // stmt_continue: "continue" ";" #line 513 "parser.ypp" { yylhs.value.as < ast::stmt_continue::ptr > () = std::make_unique(yylhs.location); } -#line 2786 "parser.cpp" +#line 2801 "parser.cpp" break; case 84: // stmt_return: "return" expr ";" #line 518 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 2792 "parser.cpp" +#line 2807 "parser.cpp" break; case 85: // stmt_return: "return" ";" #line 520 "parser.ypp" { yylhs.value.as < ast::stmt_return::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location)); } -#line 2798 "parser.cpp" +#line 2813 "parser.cpp" break; case 86: // stmt_prof_begin: "prof_begin" "(" expr_arguments ")" ";" #line 525 "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 2804 "parser.cpp" +#line 2819 "parser.cpp" break; case 87: // stmt_prof_end: "prof_end" "(" expr_arguments ")" ";" #line 530 "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 2810 "parser.cpp" +#line 2825 "parser.cpp" break; case 88: // expr: expr_ternary #line 534 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2816 "parser.cpp" +#line 2831 "parser.cpp" break; case 89: // expr: expr_binary #line 535 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2822 "parser.cpp" +#line 2837 "parser.cpp" break; case 90: // expr: expr_primitive #line 536 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2828 "parser.cpp" +#line 2843 "parser.cpp" break; case 91: // expr_or_empty: expr #line 540 "parser.ypp" { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 2834 "parser.cpp" +#line 2849 "parser.cpp" break; case 92: // expr_or_empty: %empty #line 541 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location); } -#line 2840 "parser.cpp" +#line 2855 "parser.cpp" break; case 93: // expr_assign: expr_object "=" expr #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 2846 "parser.cpp" +#line 2861 "parser.cpp" break; case 94: // expr_assign: expr_object "|=" expr #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 2852 "parser.cpp" +#line 2867 "parser.cpp" break; case 95: // expr_assign: expr_object "&=" expr #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 2858 "parser.cpp" +#line 2873 "parser.cpp" break; case 96: // expr_assign: expr_object "^=" expr #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 2864 "parser.cpp" +#line 2879 "parser.cpp" break; case 97: // expr_assign: expr_object "<<=" expr #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 2870 "parser.cpp" +#line 2885 "parser.cpp" break; case 98: // expr_assign: expr_object ">>=" expr #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 2876 "parser.cpp" +#line 2891 "parser.cpp" break; case 99: // expr_assign: expr_object "+=" expr #line 558 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2882 "parser.cpp" +#line 2897 "parser.cpp" break; case 100: // expr_assign: expr_object "-=" expr #line 560 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2888 "parser.cpp" +#line 2903 "parser.cpp" break; case 101: // expr_assign: expr_object "*=" expr #line 562 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2894 "parser.cpp" +#line 2909 "parser.cpp" break; case 102: // expr_assign: expr_object "/=" expr #line 564 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 2900 "parser.cpp" +#line 2915 "parser.cpp" break; case 103: // expr_assign: expr_object "%=" expr #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 2906 "parser.cpp" +#line 2921 "parser.cpp" break; case 104: // expr_increment: "++" expr_object #line 571 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2912 "parser.cpp" +#line 2927 "parser.cpp" break; case 105: // expr_increment: expr_object "++" #line 573 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2918 "parser.cpp" +#line 2933 "parser.cpp" break; case 106: // expr_decrement: "--" expr_object #line 578 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ()), true); } -#line 2924 "parser.cpp" +#line 2939 "parser.cpp" break; case 107: // expr_decrement: expr_object "--" #line 580 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), false); } -#line 2930 "parser.cpp" +#line 2945 "parser.cpp" break; case 108: // expr_ternary: expr "?" expr ":" expr #line 585 "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 2936 "parser.cpp" +#line 2951 "parser.cpp" break; case 109: // expr_binary: expr "||" expr #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 2942 "parser.cpp" +#line 2957 "parser.cpp" break; case 110: // expr_binary: expr "&&" expr #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 2948 "parser.cpp" +#line 2963 "parser.cpp" break; case 111: // expr_binary: expr "==" expr #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 2954 "parser.cpp" +#line 2969 "parser.cpp" break; case 112: // expr_binary: expr "!=" expr #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 2960 "parser.cpp" +#line 2975 "parser.cpp" break; case 113: // expr_binary: expr "<=" expr #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 2966 "parser.cpp" +#line 2981 "parser.cpp" break; case 114: // expr_binary: expr ">=" expr #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 2972 "parser.cpp" +#line 2987 "parser.cpp" break; case 115: // expr_binary: expr "<" expr #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 2978 "parser.cpp" +#line 2993 "parser.cpp" break; case 116: // expr_binary: expr ">" expr #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 2984 "parser.cpp" +#line 2999 "parser.cpp" break; case 117: // expr_binary: expr "|" expr #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 2990 "parser.cpp" +#line 3005 "parser.cpp" break; case 118: // expr_binary: expr "&" expr #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 2996 "parser.cpp" +#line 3011 "parser.cpp" break; case 119: // expr_binary: expr "^" expr #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 3002 "parser.cpp" +#line 3017 "parser.cpp" break; case 120: // expr_binary: expr "<<" expr #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 3008 "parser.cpp" +#line 3023 "parser.cpp" break; case 121: // expr_binary: expr ">>" expr #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 3014 "parser.cpp" +#line 3029 "parser.cpp" break; case 122: // expr_binary: expr "+" expr #line 616 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3020 "parser.cpp" +#line 3035 "parser.cpp" break; case 123: // expr_binary: expr "-" expr #line 618 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3026 "parser.cpp" +#line 3041 "parser.cpp" break; case 124: // expr_binary: expr "*" expr #line 620 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3032 "parser.cpp" +#line 3047 "parser.cpp" break; case 125: // expr_binary: expr "/" expr #line 622 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3038 "parser.cpp" +#line 3053 "parser.cpp" break; case 126: // expr_binary: expr "%" expr #line 624 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3044 "parser.cpp" +#line 3059 "parser.cpp" break; case 127: // expr_primitive: expr_complement #line 628 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_complement::ptr > ()); } -#line 3050 "parser.cpp" +#line 3065 "parser.cpp" break; - case 128: // expr_primitive: expr_not + case 128: // expr_primitive: expr_negate #line 629 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } -#line 3056 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_negate::ptr > ()); } +#line 3071 "parser.cpp" break; - case 129: // expr_primitive: expr_call + case 129: // expr_primitive: expr_not #line 630 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 3062 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_not::ptr > ()); } +#line 3077 "parser.cpp" break; - case 130: // expr_primitive: expr_method + case 130: // expr_primitive: expr_call #line 631 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 3068 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3083 "parser.cpp" break; - case 131: // expr_primitive: expr_getnextarraykey + case 131: // expr_primitive: expr_method #line 632 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getnextarraykey::ptr > ()); } -#line 3074 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3089 "parser.cpp" break; - case 132: // expr_primitive: expr_getfirstarraykey + case 132: // expr_primitive: expr_getnextarraykey #line 633 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getfirstarraykey::ptr > ()); } -#line 3080 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getnextarraykey::ptr > ()); } +#line 3095 "parser.cpp" break; - case 133: // expr_primitive: expr_getdvarcoloralpha + case 133: // expr_primitive: expr_getfirstarraykey #line 634 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcoloralpha::ptr > ()); } -#line 3086 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getfirstarraykey::ptr > ()); } +#line 3101 "parser.cpp" break; - case 134: // expr_primitive: expr_getdvarcolorblue + case 134: // expr_primitive: expr_getdvarcoloralpha #line 635 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcolorblue::ptr > ()); } -#line 3092 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcoloralpha::ptr > ()); } +#line 3107 "parser.cpp" break; - case 135: // expr_primitive: expr_getdvarcolorgreen + case 135: // expr_primitive: expr_getdvarcolorblue #line 636 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcolorgreen::ptr > ()); } -#line 3098 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcolorblue::ptr > ()); } +#line 3113 "parser.cpp" break; - case 136: // expr_primitive: expr_getdvarcolorred + case 136: // expr_primitive: expr_getdvarcolorgreen #line 637 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcolorred::ptr > ()); } -#line 3104 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcolorgreen::ptr > ()); } +#line 3119 "parser.cpp" break; - case 137: // expr_primitive: expr_getdvarvector + case 137: // expr_primitive: expr_getdvarcolorred #line 638 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarvector::ptr > ()); } -#line 3110 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarcolorred::ptr > ()); } +#line 3125 "parser.cpp" break; - case 138: // expr_primitive: expr_getdvarfloat + case 138: // expr_primitive: expr_getdvarvector #line 639 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarfloat::ptr > ()); } -#line 3116 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarvector::ptr > ()); } +#line 3131 "parser.cpp" break; - case 139: // expr_primitive: expr_getdvarint + case 139: // expr_primitive: expr_getdvarfloat #line 640 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarint::ptr > ()); } -#line 3122 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarfloat::ptr > ()); } +#line 3137 "parser.cpp" break; - case 140: // expr_primitive: expr_getdvar + case 140: // expr_primitive: expr_getdvarint #line 641 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvar::ptr > ()); } -#line 3128 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvarint::ptr > ()); } +#line 3143 "parser.cpp" break; - case 141: // expr_primitive: expr_gettime + case 141: // expr_primitive: expr_getdvar #line 642 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_gettime::ptr > ()); } -#line 3134 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_getdvar::ptr > ()); } +#line 3149 "parser.cpp" break; - case 142: // expr_primitive: expr_abs + case 142: // expr_primitive: expr_gettime #line 643 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_abs::ptr > ()); } -#line 3140 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_gettime::ptr > ()); } +#line 3155 "parser.cpp" break; - case 143: // expr_primitive: expr_vectortoangles + case 143: // expr_primitive: expr_abs #line 644 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vectortoangles::ptr > ()); } -#line 3146 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_abs::ptr > ()); } +#line 3161 "parser.cpp" break; - case 144: // expr_primitive: expr_angleclamp180 + case 144: // expr_primitive: expr_vectortoangles #line 645 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_angleclamp180::ptr > ()); } -#line 3152 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vectortoangles::ptr > ()); } +#line 3167 "parser.cpp" break; - case 145: // expr_primitive: expr_anglestoforward + case 145: // expr_primitive: expr_angleclamp180 #line 646 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anglestoforward::ptr > ()); } -#line 3158 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_angleclamp180::ptr > ()); } +#line 3173 "parser.cpp" break; - case 146: // expr_primitive: expr_anglestoright + case 146: // expr_primitive: expr_anglestoforward #line 647 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anglestoright::ptr > ()); } -#line 3164 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anglestoforward::ptr > ()); } +#line 3179 "parser.cpp" break; - case 147: // expr_primitive: expr_anglestoup + case 147: // expr_primitive: expr_anglestoright #line 648 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anglestoup::ptr > ()); } -#line 3170 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anglestoright::ptr > ()); } +#line 3185 "parser.cpp" break; - case 148: // expr_primitive: expr_vectorscale + case 148: // expr_primitive: expr_anglestoup #line 649 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vectorscale::ptr > ()); } -#line 3176 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anglestoup::ptr > ()); } +#line 3191 "parser.cpp" break; - case 149: // expr_primitive: expr_isdefined + case 149: // expr_primitive: expr_vectorscale #line 650 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_isdefined::ptr > ()); } -#line 3182 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vectorscale::ptr > ()); } +#line 3197 "parser.cpp" break; - case 150: // expr_primitive: expr_reference + case 150: // expr_primitive: expr_isdefined #line 651 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } -#line 3188 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_isdefined::ptr > ()); } +#line 3203 "parser.cpp" break; - case 151: // expr_primitive: expr_array + case 151: // expr_primitive: expr_reference #line 652 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3194 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_reference::ptr > ()); } +#line 3209 "parser.cpp" break; - case 152: // expr_primitive: expr_field + case 152: // expr_primitive: expr_array #line 653 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 3200 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3215 "parser.cpp" break; - case 153: // expr_primitive: expr_size + case 153: // expr_primitive: expr_field #line 654 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } -#line 3206 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3221 "parser.cpp" break; - case 154: // expr_primitive: expr_paren + case 154: // expr_primitive: expr_size #line 655 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } -#line 3212 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_size::ptr > ()); } +#line 3227 "parser.cpp" break; - case 155: // expr_primitive: expr_empty_array + case 155: // expr_primitive: expr_paren #line 656 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } -#line 3218 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()); } +#line 3233 "parser.cpp" break; - case 156: // expr_primitive: expr_undefined + case 156: // expr_primitive: expr_empty_array #line 657 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } -#line 3224 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_empty_array::ptr > ()); } +#line 3239 "parser.cpp" break; - case 157: // expr_primitive: expr_game + case 157: // expr_primitive: expr_undefined #line 658 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 3230 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_undefined::ptr > ()); } +#line 3245 "parser.cpp" break; - case 158: // expr_primitive: expr_self + case 158: // expr_primitive: expr_game #line 659 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 3236 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3251 "parser.cpp" break; - case 159: // expr_primitive: expr_anim + case 159: // expr_primitive: expr_self #line 660 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 3242 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3257 "parser.cpp" break; - case 160: // expr_primitive: expr_level + case 160: // expr_primitive: expr_anim #line 661 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 3248 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3263 "parser.cpp" break; - case 161: // expr_primitive: expr_animation + case 161: // expr_primitive: expr_level #line 662 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } -#line 3254 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3269 "parser.cpp" break; - case 162: // expr_primitive: expr_identifier_neg + case 162: // expr_primitive: expr_animation #line 663 "parser.ypp" - { yylhs.value.as < ast::expr > () = std::move(yystack_[0].value.as < ast::expr > ()); } -#line 3260 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_animation::ptr > ()); } +#line 3275 "parser.cpp" break; case 163: // expr_primitive: expr_identifier #line 664 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 3266 "parser.cpp" +#line 3281 "parser.cpp" break; case 164: // expr_primitive: expr_istring #line 665 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_istring::ptr > ()); } -#line 3272 "parser.cpp" +#line 3287 "parser.cpp" break; case 165: // expr_primitive: expr_string #line 666 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_string::ptr > ()); } -#line 3278 "parser.cpp" +#line 3293 "parser.cpp" break; case 166: // expr_primitive: expr_vector #line 667 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_vector::ptr > ()); } -#line 3284 "parser.cpp" +#line 3299 "parser.cpp" break; case 167: // expr_primitive: expr_hash #line 668 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_hash::ptr > ()); } -#line 3290 "parser.cpp" +#line 3305 "parser.cpp" break; case 168: // expr_primitive: expr_float #line 669 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_float::ptr > ()); } -#line 3296 "parser.cpp" +#line 3311 "parser.cpp" break; case 169: // expr_primitive: expr_integer #line 670 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_integer::ptr > ()); } -#line 3302 "parser.cpp" +#line 3317 "parser.cpp" break; case 170: // expr_primitive: expr_false #line 671 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_false::ptr > ()); } -#line 3308 "parser.cpp" +#line 3323 "parser.cpp" break; case 171: // expr_primitive: expr_true #line 672 "parser.ypp" { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_true::ptr > ()); } -#line 3314 "parser.cpp" +#line 3329 "parser.cpp" break; case 172: // expr_complement: "~" expr #line 677 "parser.ypp" { yylhs.value.as < ast::expr_complement::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3320 "parser.cpp" +#line 3335 "parser.cpp" break; - case 173: // expr_not: "!" expr + case 173: // expr_negate: "-" expr_identifier #line 682 "parser.ypp" - { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } -#line 3326 "parser.cpp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()))); } +#line 3341 "parser.cpp" break; - case 174: // expr_call: expr_function + case 174: // expr_negate: "-" expr_paren +#line 684 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_paren::ptr > ()))); } +#line 3347 "parser.cpp" + break; + + case 175: // expr_negate: "-" expr_array #line 686 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_array::ptr > ()))); } +#line 3353 "parser.cpp" + break; + + case 176: // expr_negate: "-" expr_field +#line 688 "parser.ypp" + { yylhs.value.as < ast::expr_negate::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[0].value.as < ast::expr_field::ptr > ()))); } +#line 3359 "parser.cpp" + break; + + case 177: // expr_not: "!" expr +#line 693 "parser.ypp" + { yylhs.value.as < ast::expr_not::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::expr > ())); } +#line 3365 "parser.cpp" + break; + + case 178: // expr_call: expr_function +#line 697 "parser.ypp" { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 3332 "parser.cpp" +#line 3371 "parser.cpp" break; - case 175: // expr_call: expr_pointer -#line 687 "parser.ypp" - { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } -#line 3338 "parser.cpp" - break; - - case 176: // expr_method: expr_object expr_function -#line 690 "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 3344 "parser.cpp" - break; - - case 177: // expr_method: expr_object expr_pointer -#line 691 "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 3350 "parser.cpp" - break; - - case 178: // expr_function: expr_identifier "(" expr_arguments ")" -#line 696 "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 3356 "parser.cpp" - break; - - case 179: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" + case 179: // expr_call: expr_pointer #line 698 "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 3362 "parser.cpp" + { yylhs.value.as < ast::expr_call::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[0].value.as < ast::call > ())); } +#line 3377 "parser.cpp" break; - case 180: // expr_function: "thread" expr_identifier "(" expr_arguments ")" -#line 700 "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 3368 "parser.cpp" + case 180: // expr_method: expr_object expr_function +#line 701 "parser.ypp" + { yylhs.value.as < ast::expr_method::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::call > ())); } +#line 3383 "parser.cpp" break; - case 181: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" + case 181: // expr_method: expr_object expr_pointer #line 702 "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 3374 "parser.cpp" + { yylhs.value.as < ast::expr_method::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ()), std::move(yystack_[0].value.as < ast::call > ())); } +#line 3389 "parser.cpp" break; - case 182: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" + case 182: // expr_function: expr_identifier "(" expr_arguments ")" #line 707 "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 3380 "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 3395 "parser.cpp" break; - case 183: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" + case 183: // expr_function: expr_path "::" expr_identifier "(" expr_arguments ")" #line 709 "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 3386 "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 3401 "parser.cpp" break; - case 184: // expr_parameters: expr_parameters "," expr_identifier -#line 714 "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 3392 "parser.cpp" + case 184: // expr_function: "thread" expr_identifier "(" expr_arguments ")" +#line 711 "parser.ypp" + { yylhs.value.as < ast::call > ().as_function = std::make_unique(yylhs.location, std::make_unique(yylhs.location), std::move(yystack_[3].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::thread); } +#line 3407 "parser.cpp" break; - case 185: // expr_parameters: expr_identifier -#line 716 "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 3398 "parser.cpp" + case 185: // expr_function: "thread" expr_path "::" expr_identifier "(" expr_arguments ")" +#line 713 "parser.ypp" + { yylhs.value.as < ast::call > ().as_function = std::make_unique(yylhs.location, std::move(yystack_[5].value.as < ast::expr_path::ptr > ()), std::move(yystack_[3].value.as < ast::expr_identifier::ptr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::thread); } +#line 3413 "parser.cpp" break; - case 186: // expr_parameters: %empty + case 186: // expr_pointer: "[" "[" expr "]" "]" "(" expr_arguments ")" #line 718 "parser.ypp" - { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } -#line 3404 "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 3419 "parser.cpp" break; - case 187: // expr_arguments: expr_arguments_no_empty -#line 723 "parser.ypp" - { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } -#line 3410 "parser.cpp" + case 187: // expr_pointer: "thread" "[" "[" expr "]" "]" "(" expr_arguments ")" +#line 720 "parser.ypp" + { yylhs.value.as < ast::call > ().as_pointer = std::make_unique(yylhs.location, std::move(yystack_[5].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr_arguments::ptr > ()), ast::call::mode::thread); } +#line 3425 "parser.cpp" break; - case 188: // expr_arguments: %empty + case 188: // expr_parameters: expr_parameters "," expr_identifier #line 725 "parser.ypp" + { yylhs.value.as < ast::expr_parameters::ptr > () = std::move(yystack_[2].value.as < ast::expr_parameters::ptr > ()); yylhs.value.as < ast::expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); } +#line 3431 "parser.cpp" + break; + + case 189: // expr_parameters: expr_identifier +#line 727 "parser.ypp" + { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); yylhs.value.as < ast::expr_parameters::ptr > ()->list.push_back(std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); } +#line 3437 "parser.cpp" + break; + + case 190: // expr_parameters: %empty +#line 729 "parser.ypp" + { yylhs.value.as < ast::expr_parameters::ptr > () = std::make_unique(yylhs.location); } +#line 3443 "parser.cpp" + break; + + case 191: // expr_arguments: expr_arguments_no_empty +#line 734 "parser.ypp" + { yylhs.value.as < ast::expr_arguments::ptr > () = std::move(yystack_[0].value.as < ast::expr_arguments::ptr > ()); } +#line 3449 "parser.cpp" + break; + + case 192: // expr_arguments: %empty +#line 736 "parser.ypp" { yylhs.value.as < ast::expr_arguments::ptr > () = std::make_unique(yylhs.location); } -#line 3416 "parser.cpp" +#line 3455 "parser.cpp" break; - case 189: // expr_arguments_no_empty: expr_arguments "," expr -#line 730 "parser.ypp" + case 193: // expr_arguments_no_empty: expr_arguments "," expr +#line 741 "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 3422 "parser.cpp" +#line 3461 "parser.cpp" break; - case 190: // expr_arguments_no_empty: expr -#line 732 "parser.ypp" + case 194: // expr_arguments_no_empty: expr +#line 743 "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 3428 "parser.cpp" +#line 3467 "parser.cpp" break; - case 191: // expr_getnextarraykey: "getnextarraykey" "(" expr "," expr ")" -#line 737 "parser.ypp" + case 195: // expr_getnextarraykey: "getnextarraykey" "(" expr "," expr ")" +#line 748 "parser.ypp" { yylhs.value.as < ast::expr_getnextarraykey::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[3].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3434 "parser.cpp" +#line 3473 "parser.cpp" break; - case 192: // expr_getfirstarraykey: "getfirstarraykey" "(" expr ")" -#line 742 "parser.ypp" + case 196: // expr_getfirstarraykey: "getfirstarraykey" "(" expr ")" +#line 753 "parser.ypp" { yylhs.value.as < ast::expr_getfirstarraykey::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3440 "parser.cpp" +#line 3479 "parser.cpp" break; - case 193: // expr_getdvarcoloralpha: "getdvarcoloralpha" "(" expr ")" -#line 747 "parser.ypp" + case 197: // expr_getdvarcoloralpha: "getdvarcoloralpha" "(" expr ")" +#line 758 "parser.ypp" { yylhs.value.as < ast::expr_getdvarcoloralpha::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3446 "parser.cpp" +#line 3485 "parser.cpp" break; - case 194: // expr_getdvarcolorblue: "getdvarcolorblue" "(" expr ")" -#line 752 "parser.ypp" + case 198: // expr_getdvarcolorblue: "getdvarcolorblue" "(" expr ")" +#line 763 "parser.ypp" { yylhs.value.as < ast::expr_getdvarcolorblue::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3452 "parser.cpp" +#line 3491 "parser.cpp" break; - case 195: // expr_getdvarcolorgreen: "getdvarcolorgreen" "(" expr ")" -#line 757 "parser.ypp" + case 199: // expr_getdvarcolorgreen: "getdvarcolorgreen" "(" expr ")" +#line 768 "parser.ypp" { yylhs.value.as < ast::expr_getdvarcolorgreen::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3458 "parser.cpp" +#line 3497 "parser.cpp" break; - case 196: // expr_getdvarcolorred: "getdvarcolorred" "(" expr ")" -#line 762 "parser.ypp" + case 200: // expr_getdvarcolorred: "getdvarcolorred" "(" expr ")" +#line 773 "parser.ypp" { yylhs.value.as < ast::expr_getdvarcolorred::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3464 "parser.cpp" +#line 3503 "parser.cpp" break; - case 197: // expr_getdvarvector: "getdvarvector" "(" expr ")" -#line 767 "parser.ypp" + case 201: // expr_getdvarvector: "getdvarvector" "(" expr ")" +#line 778 "parser.ypp" { yylhs.value.as < ast::expr_getdvarvector::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3470 "parser.cpp" +#line 3509 "parser.cpp" break; - case 198: // expr_getdvarfloat: "getdvarfloat" "(" expr ")" -#line 772 "parser.ypp" + case 202: // expr_getdvarfloat: "getdvarfloat" "(" expr ")" +#line 783 "parser.ypp" { yylhs.value.as < ast::expr_getdvarfloat::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3476 "parser.cpp" +#line 3515 "parser.cpp" break; - case 199: // expr_getdvarint: "getdvarint" "(" expr ")" -#line 777 "parser.ypp" + case 203: // expr_getdvarint: "getdvarint" "(" expr ")" +#line 788 "parser.ypp" { yylhs.value.as < ast::expr_getdvarint::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3482 "parser.cpp" +#line 3521 "parser.cpp" break; - case 200: // expr_getdvar: "getdvar" "(" expr ")" -#line 782 "parser.ypp" + case 204: // expr_getdvar: "getdvar" "(" expr ")" +#line 793 "parser.ypp" { yylhs.value.as < ast::expr_getdvar::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3488 "parser.cpp" +#line 3527 "parser.cpp" break; - case 201: // expr_gettime: "gettime" "(" ")" -#line 787 "parser.ypp" + case 205: // expr_gettime: "gettime" "(" ")" +#line 798 "parser.ypp" { yylhs.value.as < ast::expr_gettime::ptr > () = std::make_unique(yylhs.location); } -#line 3494 "parser.cpp" +#line 3533 "parser.cpp" break; - case 202: // expr_abs: "abs" "(" expr ")" -#line 792 "parser.ypp" + case 206: // expr_abs: "abs" "(" expr ")" +#line 803 "parser.ypp" { yylhs.value.as < ast::expr_abs::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3500 "parser.cpp" +#line 3539 "parser.cpp" break; - case 203: // expr_vectortoangles: "vectortoangles" "(" expr ")" -#line 797 "parser.ypp" + case 207: // expr_vectortoangles: "vectortoangles" "(" expr ")" +#line 808 "parser.ypp" { yylhs.value.as < ast::expr_vectortoangles::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3506 "parser.cpp" +#line 3545 "parser.cpp" break; - case 204: // expr_angleclamp180: "angleclamp180" "(" expr ")" -#line 802 "parser.ypp" + case 208: // expr_angleclamp180: "angleclamp180" "(" expr ")" +#line 813 "parser.ypp" { yylhs.value.as < ast::expr_angleclamp180::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3512 "parser.cpp" +#line 3551 "parser.cpp" break; - case 205: // expr_anglestoforward: "anglestoforward" "(" expr ")" -#line 807 "parser.ypp" + case 209: // expr_anglestoforward: "anglestoforward" "(" expr ")" +#line 818 "parser.ypp" { yylhs.value.as < ast::expr_anglestoforward::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3518 "parser.cpp" +#line 3557 "parser.cpp" break; - case 206: // expr_anglestoright: "anglestoright" "(" expr ")" -#line 812 "parser.ypp" + case 210: // expr_anglestoright: "anglestoright" "(" expr ")" +#line 823 "parser.ypp" { yylhs.value.as < ast::expr_anglestoright::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3524 "parser.cpp" +#line 3563 "parser.cpp" break; - case 207: // expr_anglestoup: "anglestoup" "(" expr ")" -#line 817 "parser.ypp" + case 211: // expr_anglestoup: "anglestoup" "(" expr ")" +#line 828 "parser.ypp" { yylhs.value.as < ast::expr_anglestoup::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3530 "parser.cpp" +#line 3569 "parser.cpp" break; - case 208: // expr_vectorscale: "vectorscale" "(" expr "," expr ")" -#line 822 "parser.ypp" + case 212: // expr_vectorscale: "vectorscale" "(" expr "," expr ")" +#line 833 "parser.ypp" { yylhs.value.as < ast::expr_vectorscale::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[3].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3536 "parser.cpp" +#line 3575 "parser.cpp" break; - case 209: // expr_isdefined: "isdefined" "(" expr ")" -#line 827 "parser.ypp" + case 213: // expr_isdefined: "isdefined" "(" expr ")" +#line 838 "parser.ypp" { yylhs.value.as < ast::expr_isdefined::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3542 "parser.cpp" +#line 3581 "parser.cpp" break; - case 210: // expr_reference: "::" expr_identifier -#line 832 "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 3548 "parser.cpp" - break; - - case 211: // expr_reference: expr_path "::" expr_identifier -#line 834 "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 3554 "parser.cpp" - break; - - case 212: // expr_array: expr_object "[" expr "]" -#line 839 "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 3560 "parser.cpp" - break; - - case 213: // expr_array: expr_getdvarvector "[" expr "]" -#line 841 "parser.ypp" - { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_getdvarvector::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3566 "parser.cpp" - break; - - case 214: // expr_array: expr_vectortoangles "[" expr "]" + case 214: // expr_reference: "::" expr_identifier #line 843 "parser.ypp" - { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_vectortoangles::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3572 "parser.cpp" + { yylhs.value.as < ast::expr_reference::ptr > () = std::make_unique(yylhs.location, std::make_unique(yylhs.location), std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); } +#line 3587 "parser.cpp" break; - case 215: // expr_array: expr_angleclamp180 "[" expr "]" + case 215: // expr_reference: expr_path "::" expr_identifier #line 845 "parser.ypp" + { yylhs.value.as < ast::expr_reference::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr_path::ptr > ()), std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ())); } +#line 3593 "parser.cpp" + break; + + case 216: // expr_array: expr_object "[" expr "]" +#line 850 "parser.ypp" + { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[3].value.as < ast::expr > ()), std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3599 "parser.cpp" + break; + + case 217: // expr_array: expr_getdvarvector "[" expr "]" +#line 852 "parser.ypp" + { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_getdvarvector::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3605 "parser.cpp" + break; + + case 218: // expr_array: expr_vectortoangles "[" expr "]" +#line 854 "parser.ypp" + { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_vectortoangles::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3611 "parser.cpp" + break; + + case 219: // expr_array: expr_angleclamp180 "[" expr "]" +#line 856 "parser.ypp" { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_angleclamp180::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3578 "parser.cpp" +#line 3617 "parser.cpp" break; - case 216: // expr_array: expr_anglestoforward "[" expr "]" -#line 847 "parser.ypp" - { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_anglestoforward::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3584 "parser.cpp" - break; - - case 217: // expr_array: expr_anglestoright "[" expr "]" -#line 849 "parser.ypp" - { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_anglestoright::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3590 "parser.cpp" - break; - - case 218: // expr_array: expr_anglestoup "[" expr "]" -#line 851 "parser.ypp" - { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_anglestoup::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3596 "parser.cpp" - break; - - case 219: // expr_array: expr_vectorscale "[" expr "]" -#line 853 "parser.ypp" - { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_vectorscale::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3602 "parser.cpp" - break; - - case 220: // expr_field: expr_object "." expr_identifier_nosize + case 220: // expr_array: expr_anglestoforward "[" expr "]" #line 858 "parser.ypp" + { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_anglestoforward::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3623 "parser.cpp" + break; + + case 221: // expr_array: expr_anglestoright "[" expr "]" +#line 860 "parser.ypp" + { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_anglestoright::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3629 "parser.cpp" + break; + + case 222: // expr_array: expr_anglestoup "[" expr "]" +#line 862 "parser.ypp" + { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_anglestoup::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3635 "parser.cpp" + break; + + case 223: // expr_array: expr_vectorscale "[" expr "]" +#line 864 "parser.ypp" + { yylhs.value.as < ast::expr_array::ptr > () = std::make_unique(yylhs.location, ast::expr(std::move(yystack_[3].value.as < ast::expr_vectorscale::ptr > ())), std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3641 "parser.cpp" + break; + + case 224: // expr_field: expr_object "." expr_identifier_nosize +#line 869 "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 3608 "parser.cpp" +#line 3647 "parser.cpp" break; - case 221: // expr_size: expr_object "." "size" -#line 863 "parser.ypp" - { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } -#line 3614 "parser.cpp" - break; - - case 222: // expr_paren: "(" expr ")" -#line 868 "parser.ypp" - { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } -#line 3620 "parser.cpp" - break; - - case 223: // expr_object: expr_call -#line 872 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } -#line 3626 "parser.cpp" - break; - - case 224: // expr_object: expr_method -#line 873 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } -#line 3632 "parser.cpp" - break; - - case 225: // expr_object: expr_array + case 225: // expr_size: expr_object "." "size" #line 874 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } -#line 3638 "parser.cpp" + { yylhs.value.as < ast::expr_size::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[2].value.as < ast::expr > ())); } +#line 3653 "parser.cpp" break; - case 226: // expr_object: expr_field -#line 875 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } -#line 3644 "parser.cpp" - break; - - case 227: // expr_object: expr_game -#line 876 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } -#line 3650 "parser.cpp" - break; - - case 228: // expr_object: expr_self -#line 877 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } -#line 3656 "parser.cpp" - break; - - case 229: // expr_object: expr_anim -#line 878 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } -#line 3662 "parser.cpp" - break; - - case 230: // expr_object: expr_level + case 226: // expr_paren: "(" expr ")" #line 879 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } -#line 3668 "parser.cpp" + { yylhs.value.as < ast::expr_paren::ptr > () = std::make_unique(yylhs.location, std::move(yystack_[1].value.as < ast::expr > ())); } +#line 3659 "parser.cpp" break; - case 231: // expr_object: expr_identifier -#line 880 "parser.ypp" - { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } -#line 3674 "parser.cpp" + case 227: // expr_object: expr_call +#line 883 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_call::ptr > ()); } +#line 3665 "parser.cpp" break; - case 232: // expr_empty_array: "[" "]" + case 228: // expr_object: expr_method +#line 884 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_method::ptr > ()); } +#line 3671 "parser.cpp" + break; + + case 229: // expr_object: expr_array #line 885 "parser.ypp" - { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } -#line 3680 "parser.cpp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_array::ptr > ()); } +#line 3677 "parser.cpp" break; - case 233: // expr_undefined: "undefined" + case 230: // expr_object: expr_field +#line 886 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_field::ptr > ()); } +#line 3683 "parser.cpp" + break; + + case 231: // expr_object: expr_game +#line 887 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_game::ptr > ()); } +#line 3689 "parser.cpp" + break; + + case 232: // expr_object: expr_self +#line 888 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_self::ptr > ()); } +#line 3695 "parser.cpp" + break; + + case 233: // expr_object: expr_anim +#line 889 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_anim::ptr > ()); } +#line 3701 "parser.cpp" + break; + + case 234: // expr_object: expr_level #line 890 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_level::ptr > ()); } +#line 3707 "parser.cpp" + break; + + case 235: // expr_object: expr_identifier +#line 891 "parser.ypp" + { yylhs.value.as < ast::expr > ().as_node = std::move(yystack_[0].value.as < ast::expr_identifier::ptr > ()); } +#line 3713 "parser.cpp" + break; + + case 236: // expr_empty_array: "[" "]" +#line 896 "parser.ypp" + { yylhs.value.as < ast::expr_empty_array::ptr > () = std::make_unique(yylhs.location); } +#line 3719 "parser.cpp" + break; + + case 237: // expr_undefined: "undefined" +#line 901 "parser.ypp" { yylhs.value.as < ast::expr_undefined::ptr > () = std::make_unique(yylhs.location); } -#line 3686 "parser.cpp" +#line 3725 "parser.cpp" break; - case 234: // expr_game: "game" -#line 895 "parser.ypp" + case 238: // expr_game: "game" +#line 906 "parser.ypp" { yylhs.value.as < ast::expr_game::ptr > () = std::make_unique(yylhs.location); } -#line 3692 "parser.cpp" +#line 3731 "parser.cpp" break; - case 235: // expr_self: "self" -#line 900 "parser.ypp" + case 239: // expr_self: "self" +#line 911 "parser.ypp" { yylhs.value.as < ast::expr_self::ptr > () = std::make_unique(yylhs.location); } -#line 3698 "parser.cpp" +#line 3737 "parser.cpp" break; - case 236: // expr_anim: "anim" -#line 905 "parser.ypp" + case 240: // expr_anim: "anim" +#line 916 "parser.ypp" { yylhs.value.as < ast::expr_anim::ptr > () = std::make_unique(yylhs.location); } -#line 3704 "parser.cpp" +#line 3743 "parser.cpp" break; - case 237: // expr_level: "level" -#line 910 "parser.ypp" + case 241: // expr_level: "level" +#line 921 "parser.ypp" { yylhs.value.as < ast::expr_level::ptr > () = std::make_unique(yylhs.location); } -#line 3710 "parser.cpp" +#line 3749 "parser.cpp" break; - case 238: // expr_animation: "%" "identifier" -#line 915 "parser.ypp" + case 242: // expr_animation: "%" "identifier" +#line 926 "parser.ypp" { yylhs.value.as < ast::expr_animation::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3716 "parser.cpp" +#line 3755 "parser.cpp" break; - case 239: // expr_identifier_neg: "-" "identifier" -#line 920 "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 3722 "parser.cpp" - break; - - case 240: // expr_identifier_nosize: "identifier" -#line 925 "parser.ypp" + case 243: // expr_identifier_nosize: "identifier" +#line 931 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3728 "parser.cpp" +#line 3761 "parser.cpp" break; - case 241: // expr_identifier: "identifier" -#line 930 "parser.ypp" + case 244: // expr_identifier: "identifier" +#line 936 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3734 "parser.cpp" +#line 3767 "parser.cpp" break; - case 242: // expr_identifier: "size" -#line 932 "parser.ypp" + case 245: // expr_identifier: "size" +#line 938 "parser.ypp" { yylhs.value.as < ast::expr_identifier::ptr > () = std::make_unique(yylhs.location, "size"); } -#line 3740 "parser.cpp" +#line 3773 "parser.cpp" break; - case 243: // expr_path: "identifier" -#line 937 "parser.ypp" + case 246: // expr_path: "identifier" +#line 943 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3746 "parser.cpp" +#line 3779 "parser.cpp" break; - case 244: // expr_path: "path" -#line 939 "parser.ypp" + case 247: // expr_path: "path" +#line 945 "parser.ypp" { yylhs.value.as < ast::expr_path::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3752 "parser.cpp" +#line 3785 "parser.cpp" break; - case 245: // expr_istring: "localized string" -#line 944 "parser.ypp" + case 248: // expr_istring: "localized string" +#line 950 "parser.ypp" { yylhs.value.as < ast::expr_istring::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3758 "parser.cpp" +#line 3791 "parser.cpp" break; - case 246: // expr_string: "string literal" -#line 949 "parser.ypp" + case 249: // expr_string: "string literal" +#line 955 "parser.ypp" { yylhs.value.as < ast::expr_string::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3764 "parser.cpp" +#line 3797 "parser.cpp" break; - case 247: // expr_vector: "(" expr "," expr "," expr ")" -#line 954 "parser.ypp" + case 250: // expr_vector: "(" expr "," expr "," expr ")" +#line 960 "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 3770 "parser.cpp" +#line 3803 "parser.cpp" break; - case 248: // expr_hash: "hash" -#line 959 "parser.ypp" + case 251: // expr_hash: "hash" +#line 965 "parser.ypp" { yylhs.value.as < ast::expr_hash::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3776 "parser.cpp" +#line 3809 "parser.cpp" break; - case 249: // expr_float: "-" "float" -#line 964 "parser.ypp" + case 252: // expr_float: "-" "float" +#line 970 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3782 "parser.cpp" +#line 3815 "parser.cpp" break; - case 250: // expr_float: "float" -#line 966 "parser.ypp" + case 253: // expr_float: "float" +#line 972 "parser.ypp" { yylhs.value.as < ast::expr_float::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3788 "parser.cpp" +#line 3821 "parser.cpp" break; - case 251: // expr_integer: "-" "integer" -#line 971 "parser.ypp" + case 254: // expr_integer: "-" "integer" +#line 977 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } -#line 3794 "parser.cpp" +#line 3827 "parser.cpp" break; - case 252: // expr_integer: "integer" -#line 973 "parser.ypp" + case 255: // expr_integer: "integer" +#line 979 "parser.ypp" { yylhs.value.as < ast::expr_integer::ptr > () = std::make_unique(yylhs.location, yystack_[0].value.as < std::string > ()); } -#line 3800 "parser.cpp" +#line 3833 "parser.cpp" break; - case 253: // expr_false: "false" -#line 978 "parser.ypp" + case 256: // expr_false: "false" +#line 984 "parser.ypp" { yylhs.value.as < ast::expr_false::ptr > () = std::make_unique(yylhs.location); } -#line 3806 "parser.cpp" +#line 3839 "parser.cpp" break; - case 254: // expr_true: "true" -#line 983 "parser.ypp" + case 257: // expr_true: "true" +#line 989 "parser.ypp" { yylhs.value.as < ast::expr_true::ptr > () = std::make_unique(yylhs.location); } -#line 3812 "parser.cpp" +#line 3845 "parser.cpp" break; -#line 3816 "parser.cpp" +#line 3849 "parser.cpp" default: break; @@ -4024,21 +4057,21 @@ namespace xsk { namespace arc { namespace t6 { "stmt_return", "stmt_prof_begin", "stmt_prof_end", "expr", "expr_or_empty", "expr_assign", "expr_increment", "expr_decrement", "expr_ternary", "expr_binary", "expr_primitive", "expr_complement", - "expr_not", "expr_call", "expr_method", "expr_function", "expr_pointer", - "expr_parameters", "expr_arguments", "expr_arguments_no_empty", - "expr_getnextarraykey", "expr_getfirstarraykey", - "expr_getdvarcoloralpha", "expr_getdvarcolorblue", - "expr_getdvarcolorgreen", "expr_getdvarcolorred", "expr_getdvarvector", - "expr_getdvarfloat", "expr_getdvarint", "expr_getdvar", "expr_gettime", - "expr_abs", "expr_vectortoangles", "expr_angleclamp180", - "expr_anglestoforward", "expr_anglestoright", "expr_anglestoup", - "expr_vectorscale", "expr_isdefined", "expr_reference", "expr_array", - "expr_field", "expr_size", "expr_paren", "expr_object", - "expr_empty_array", "expr_undefined", "expr_game", "expr_self", - "expr_anim", "expr_level", "expr_animation", "expr_identifier_neg", - "expr_identifier_nosize", "expr_identifier", "expr_path", "expr_istring", - "expr_string", "expr_vector", "expr_hash", "expr_float", "expr_integer", - "expr_false", "expr_true", YY_NULLPTR + "expr_negate", "expr_not", "expr_call", "expr_method", "expr_function", + "expr_pointer", "expr_parameters", "expr_arguments", + "expr_arguments_no_empty", "expr_getnextarraykey", + "expr_getfirstarraykey", "expr_getdvarcoloralpha", + "expr_getdvarcolorblue", "expr_getdvarcolorgreen", + "expr_getdvarcolorred", "expr_getdvarvector", "expr_getdvarfloat", + "expr_getdvarint", "expr_getdvar", "expr_gettime", "expr_abs", + "expr_vectortoangles", "expr_angleclamp180", "expr_anglestoforward", + "expr_anglestoright", "expr_anglestoup", "expr_vectorscale", + "expr_isdefined", "expr_reference", "expr_array", "expr_field", + "expr_size", "expr_paren", "expr_object", "expr_empty_array", + "expr_undefined", "expr_game", "expr_self", "expr_anim", "expr_level", + "expr_animation", "expr_identifier_nosize", "expr_identifier", + "expr_path", "expr_istring", "expr_string", "expr_vector", "expr_hash", + "expr_float", "expr_integer", "expr_false", "expr_true", YY_NULLPTR }; return yy_sname[yysymbol]; } @@ -4307,712 +4340,717 @@ namespace xsk { namespace arc { namespace t6 { } - const short parser::yypact_ninf_ = -367; + const short parser::yypact_ninf_ = -408; - const short parser::yytable_ninf_ = -244; + const short parser::yytable_ninf_ = -247; const short parser::yypact_[] = { - 18, -367, -367, -74, -74, -49, -367, -367, 46, 18, - -367, -367, -367, -367, -367, -367, -47, -367, -367, -25, - -9, -50, -367, -367, -367, -367, -36, 1610, -367, -367, - -367, 2, -44, -367, -31, -367, -367, -367, -367, -367, - -367, -367, 9, 33, 35, 38, 39, 44, 47, 49, - 59, 61, 66, 68, 76, 77, 80, 83, 84, 85, - 89, 1610, -30, -36, 1610, 1610, -91, -5, 86, -367, - -367, -367, -367, 3220, -367, -367, -367, -367, -367, 12, - 36, -367, -367, -367, -367, -367, -367, -367, -367, 42, - -367, -367, -367, -367, -367, 98, 102, 104, 105, 106, - 107, -367, -367, 41, 58, -367, -367, 119, -367, -367, - 129, 279, 295, 367, -367, -367, -18, 109, -367, -367, - -367, -367, -367, -367, -367, -367, 110, 91, -36, 111, - 114, 113, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, - 1610, 1610, 118, 1610, 1610, 1610, 1610, 1610, 1610, 1610, - 1610, 1295, 1610, -367, -367, -367, -367, -367, -367, -367, - -367, -367, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, - 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, - 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1690, -24, - -367, -367, 122, 116, 1610, -36, -367, 1028, -367, -367, - 1610, 1610, -36, 3071, 1902, 1936, 1970, 2004, 2038, 2072, - 2106, 2140, 2174, -367, 2208, 2242, 2276, 2310, 2344, 2378, - 3110, 2412, -367, 1610, 1446, 3185, 56, 56, 3334, 3344, - 1024, 1024, 128, 128, 128, 128, 3375, 547, 3385, 10, - 10, -367, -367, -367, 1606, 1686, 2792, 2832, 2872, 2912, - 2952, 1450, 2992, -367, -367, -367, -36, 3303, -23, -367, - 127, 1201, 1610, 124, 138, 1407, 139, 141, 144, 147, - -71, 120, 142, 150, 1530, 151, 157, -367, 154, 1083, - 1083, -367, -367, 1140, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, 156, 163, - 166, 167, 169, 42, 98, 102, 104, 105, 106, 107, - -367, -367, 1316, -367, -367, -367, -367, 122, 3032, -11, - 181, 1610, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, 1610, -367, 3149, - 123, 1610, -367, -367, -367, -367, -367, -367, -367, -367, - 127, -367, 1610, 1610, -367, -367, 1262, 3255, -367, 1610, - 188, 1610, 1770, -36, 1610, 131, 174, 176, -367, -367, - -367, -367, 3290, 1610, 1610, -367, -367, 380, 380, -367, - -367, -367, -367, -367, -367, -367, 187, 189, 190, 192, - 149, -367, -367, 1610, 1610, 1610, 1610, 1610, 1610, 1610, - 1610, 1610, 1610, 1610, 183, -367, 1610, 2446, 2480, 1610, - 193, 3303, 3303, -10, -367, -367, -367, 2514, 194, 2548, - 191, -367, -367, -367, 905, -13, 2582, -367, -367, -367, - -2, -1, 1610, 1610, 1610, 1610, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 197, 17, -367, - -367, 2616, 1610, -367, 1407, 1610, 1407, 1610, 1610, -36, - 91, 196, 199, 2650, 1780, 1824, 1868, 1610, -367, -367, - 30, 245, 2684, -367, 3303, 201, 2718, 250, -367, -367, - -367, 206, 207, 1610, 211, 1610, 215, 1610, 31, -367, - 1407, 217, 1770, 1407, 1610, -367, -367, 224, 230, -367, - 231, -367, 232, -367, -367, -367, 234, -367, 2752, 227, - 228, 235, 1407, 1407, -367, -367, -367, -367, -367 + 10, -408, -408, 34, 34, -35, -408, -408, 33, 10, + -408, -408, -408, -408, -408, -408, -45, -408, -408, -27, + -23, -51, -408, -408, -408, -408, -13, 1723, -408, -408, + -408, -1, -22, -408, 2, -408, -408, -408, -408, -408, + -408, -408, 14, 28, 30, 37, 55, 61, 71, 77, + 94, 105, 107, 117, 125, 126, 128, 130, 136, 137, + 139, 1723, 119, -13, 1723, 1723, -5, -36, 45, -408, + -408, -408, -408, 3288, -408, -408, -408, -408, -408, -408, + 66, 86, -408, -408, -408, -408, -408, -408, -408, -408, + 111, -408, -408, -408, -408, -408, 134, 140, 142, 148, + 151, 153, -408, -408, 102, 115, -408, -408, 138, -408, + -408, 206, 252, 269, 282, -408, 4, 132, -408, -408, + -408, -408, -408, -408, -408, -408, 131, 141, -13, 158, + 164, 157, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 167, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1089, 1723, -408, -408, -408, -408, 1723, 165, -408, + -408, -408, -408, 111, 134, 140, 142, 148, 151, 153, + 102, 115, -408, 288, -408, -408, -408, -408, 4, 168, + -408, -408, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1803, -12, + -408, -408, 173, 1723, -13, -408, 1192, -408, -408, 1723, + 1723, -13, 3139, 1896, 1930, 1964, 1998, 2032, 2066, 2100, + 2134, 2168, -408, 2202, 2236, 2270, 2304, 2338, 2372, 3178, + 2406, -408, 1723, 1559, 2440, 133, -13, 3253, 279, 279, + 3402, 3412, 1634, 1634, 265, 265, 265, 265, 884, 3453, + 3443, -91, -91, -408, -408, -408, 1719, 2820, 2860, 2900, + 2940, 2980, 3020, 1563, 3060, -408, -408, -408, 3371, 6, + -408, 180, 1314, 1723, 179, 190, 1520, 192, 193, 194, + 195, 48, 188, 189, 196, 1643, 200, 204, -408, 88, + 88, -408, -408, 1253, -408, -408, -408, -408, -408, -408, + -408, -408, -408, -408, -408, -408, -408, -408, -408, -408, + -408, -408, -408, -408, -408, -408, -408, -408, 198, 199, + 205, 210, 213, -408, -408, 1429, 173, 3100, 38, 212, + 1723, -408, -408, -408, -408, -408, -408, -408, -408, -408, + -408, -408, -408, -408, -408, -408, 1723, -408, 3217, 209, + 180, 1723, -408, -408, -408, -408, -408, -408, -408, -408, + -408, 1723, 1723, -408, -408, 1375, 3323, -408, 1723, 242, + 1723, 1013, -13, 1723, 181, 207, 221, -408, -408, -408, + -408, 3358, 1723, 1723, 288, 288, -408, -408, -408, -408, + -408, -408, -408, 231, 233, 239, 240, -408, -408, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 243, -408, 1723, 2474, 2508, 1723, 244, 3371, 3371, 51, + -408, -408, -408, 2542, 249, 2576, 245, -408, -408, -408, + -10, 7, 2610, -408, -408, -408, 53, 95, 1723, 1723, + 1723, 1723, 3371, 3371, 3371, 3371, 3371, 3371, 3371, 3371, + 3371, 3371, 3371, 250, 96, -408, -408, 2644, 1723, -408, + 1520, 1723, 1520, 1723, 1723, -13, 141, 247, 251, 2678, + 1408, 1818, 1862, 1723, -408, -408, 97, 304, 2712, -408, + 3371, 255, 2746, 303, -408, -408, -408, 257, 258, 1723, + 261, 1723, 264, 1723, 112, -408, 1520, 267, 1013, 1520, + 1723, -408, -408, 275, 274, -408, 283, -408, 286, -408, + -408, -408, 287, -408, 2780, 273, 280, 281, 1520, 1520, + -408, -408, -408, -408, -408 }; - const unsigned char + const short parser::yydefact_[] = { - 3, 12, 13, 0, 0, 0, 242, 241, 0, 2, - 7, 8, 9, 14, 15, 16, 0, 244, 243, 0, - 0, 0, 1, 4, 5, 6, 186, 0, 10, 11, - 246, 0, 0, 185, 0, 254, 253, 233, 234, 235, - 236, 237, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 12, 13, 0, 0, 0, 245, 244, 0, 2, + 7, 8, 9, 14, 15, 16, 0, 247, 246, 0, + 0, 0, 1, 4, 5, 6, 190, 0, 10, 11, + 249, 0, 0, 189, 0, 257, 256, 237, 238, 239, + 240, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 241, 245, - 248, 250, 252, 0, 88, 89, 90, 127, 128, 129, - 130, 174, 175, 131, 132, 133, 134, 135, 136, 137, + 0, 0, 0, 0, 0, 0, 0, 0, 244, 248, + 251, 253, 255, 0, 88, 89, 90, 127, 128, 129, + 130, 131, 178, 179, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, + 148, 149, 150, 151, 152, 153, 154, 155, 0, 156, 157, 158, 159, 160, 161, 162, 163, 0, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 232, 210, 173, 172, 239, 249, 251, - 238, 18, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 236, 214, 177, 172, 0, 0, 252, + 254, 227, 228, 0, 0, 0, 0, 0, 0, 0, + 175, 176, 174, 0, 231, 232, 233, 234, 173, 0, + 242, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 176, 177, 0, 0, 188, 0, 17, 0, 19, 184, - 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, - 0, 0, 222, 0, 0, 0, 120, 121, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, - 123, 124, 125, 126, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 221, 240, 220, 0, 190, 0, 187, - 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, + 180, 181, 0, 192, 0, 17, 0, 19, 188, 0, + 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, + 0, 226, 0, 0, 0, 0, 0, 0, 120, 121, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 122, 123, 124, 125, 126, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 243, 224, 194, 0, + 191, 215, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 43, 48, 0, 44, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 0, - 0, 223, 224, 0, 0, 0, 0, 0, 0, 0, - 225, 226, 0, 227, 228, 229, 230, 231, 0, 0, - 0, 0, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 202, 203, 204, 205, 206, 207, 0, 209, 0, - 0, 0, 213, 214, 215, 216, 217, 218, 219, 212, - 0, 178, 0, 188, 50, 46, 0, 0, 70, 0, - 0, 0, 56, 0, 0, 0, 0, 0, 81, 82, - 83, 85, 0, 188, 188, 223, 224, 104, 106, 51, - 47, 59, 60, 61, 57, 58, 0, 0, 0, 0, - 0, 105, 107, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 180, 188, 0, 0, 0, - 0, 108, 189, 0, 49, 45, 65, 0, 0, 0, - 0, 53, 54, 55, 0, 0, 0, 80, 79, 84, - 0, 0, 0, 0, 0, 0, 93, 99, 100, 101, - 102, 103, 94, 95, 96, 98, 97, 0, 0, 191, - 208, 0, 188, 179, 0, 0, 0, 92, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 188, 181, 247, - 0, 71, 0, 73, 91, 0, 0, 0, 78, 86, - 87, 0, 0, 188, 0, 188, 0, 188, 0, 182, - 0, 0, 56, 0, 0, 62, 64, 0, 187, 67, - 187, 69, 187, 183, 72, 74, 0, 76, 0, 0, - 0, 0, 0, 0, 63, 66, 68, 75, 77 + 0, 227, 228, 229, 230, 0, 235, 0, 0, 0, + 0, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 206, 207, 208, 209, 210, 211, 0, 213, 0, 0, + 0, 0, 217, 218, 219, 220, 221, 222, 223, 216, + 182, 0, 192, 50, 46, 0, 0, 70, 0, 0, + 0, 56, 0, 0, 0, 0, 0, 81, 82, 83, + 85, 0, 192, 192, 104, 106, 51, 47, 59, 60, + 61, 57, 58, 0, 0, 0, 0, 105, 107, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 184, 192, 0, 0, 0, 0, 108, 193, 0, + 49, 45, 65, 0, 0, 0, 0, 53, 54, 55, + 0, 0, 0, 80, 79, 84, 0, 0, 0, 0, + 0, 0, 93, 99, 100, 101, 102, 103, 94, 95, + 96, 98, 97, 0, 0, 195, 212, 0, 192, 183, + 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 192, 185, 250, 0, 71, 0, 73, + 91, 0, 0, 0, 78, 86, 87, 0, 0, 192, + 0, 192, 0, 192, 0, 186, 0, 0, 56, 0, + 0, 62, 64, 0, 191, 67, 191, 69, 191, 187, + 72, 74, 0, 76, 0, 0, 0, 0, 0, 0, + 63, 66, 68, 75, 77 }; const short parser::yypgoto_[] = { - -367, -367, -367, 290, 296, 303, -367, -367, -367, -41, - 32, -367, -367, -367, -126, -185, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, - -367, -367, -367, -367, -367, -367, -367, -367, 406, -367, - -366, -365, -358, -367, -367, -367, -367, -367, -194, -189, - -103, -94, -367, -173, -340, -367, -367, -367, -367, -367, - -367, -145, -367, -367, -367, -367, -367, -140, -65, -16, - 148, 233, 336, -367, -367, 360, 412, -367, -367, 421, - -367, -367, 462, 509, 525, 657, -367, -367, -367, 0, - 8, -367, -19, -367, -367, -367, 48, -367, -367 + -408, -408, -408, 349, 352, 355, -408, -408, -408, -278, + 63, -408, -408, -408, -126, -141, -408, -408, -408, -408, + -408, -408, -408, -408, -408, -408, -408, -408, -408, -408, + -408, -408, -408, -408, -408, -408, -408, -408, 412, -408, + -374, -371, -367, -408, -408, -408, -408, -408, -408, -63, + -47, -103, -93, -408, -207, -407, -408, -408, -408, -408, + -408, -408, -16, -408, -408, -408, -408, -408, 152, 197, + 202, 363, 437, 472, -408, -408, 477, 598, -408, 310, + 628, -408, -408, 633, 638, 734, 739, -408, -408, 0, + 8, -408, -19, -408, -408, -408, 78, -408, -408 }; const short parser::yydefgoto_[] = { - 0, 8, 9, 10, 11, 12, 13, 14, 15, 281, - 282, 366, 283, 284, 285, 430, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 257, 485, - 308, 309, 310, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 32, 507, 259, 83, 84, 85, 86, 87, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 301, + 302, 375, 303, 304, 305, 436, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 278, 491, + 328, 329, 330, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 32, 513, 280, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 255, 116, + 108, 109, 110, 111, 112, 113, 114, 115, 277, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125 }; const short parser::yytable_[] = { - 16, 198, 31, 311, 190, 6, 431, 432, 312, 16, - 6, 19, 20, 191, 433, 468, 21, 253, 26, -231, - 157, 258, 127, -231, 158, 159, 33, 128, 329, 1, - 2, 3, 4, 5, 130, 375, 17, 18, 129, 152, - 153, 30, 131, 361, 27, 72, 22, 194, 362, -223, - 28, -231, 313, -223, -231, 415, 463, 314, 469, 6, - 362, 362, 30, 154, 471, 472, 29, 311, 126, 362, - 362, 311, 312, -224, 132, 7, 312, -224, -225, 17, - 68, -223, -225, 478, -223, 385, 385, 254, 362, 311, - 386, 386, -231, -231, 312, -226, 499, 513, 133, -226, - 134, 362, 362, 135, 136, -224, 160, 192, -224, 137, - -225, 181, 138, -225, 139, 193, 313, 178, 179, 180, - 313, 314, -223, -223, 140, 314, 141, -226, 199, 7, - -226, 142, 315, 143, 313, 313, 431, 432, 313, 314, - 314, 144, 145, 314, 433, 146, -224, -224, 147, 148, - 149, -225, -225, 508, 150, 510, 34, 512, 197, -243, - 6, 176, 177, 178, 179, 180, -227, 182, -226, -226, - -227, 183, 311, 184, 185, 186, 187, 312, 385, 201, - 200, 316, 195, 386, 213, 196, 202, 194, 188, 256, - 423, 189, 363, 420, 378, 260, 315, 327, -227, 368, - 315, -227, 330, 369, 371, 193, 372, 163, 164, 373, - 440, 441, 374, 428, 315, 315, 383, 379, 315, 190, - 365, 313, 384, 152, 370, 380, 314, 313, 191, 17, - 68, 391, 314, 176, 177, 178, 179, 180, 392, -227, - -227, 393, 394, 458, 395, 316, 416, 159, 437, 316, - 438, 376, 442, 457, 443, 444, 360, 445, 462, 465, - 254, 327, 477, 316, 316, 327, 467, 316, 500, 193, - 311, 489, 311, 193, 490, 312, 502, 312, 504, 327, - 327, 505, 506, 327, 190, 190, 509, 193, 193, 480, - 511, 193, 515, 191, 191, 362, 519, 520, 521, 23, - 522, 315, 524, 525, 498, 24, 311, 315, 385, 311, - 526, 312, 25, 386, 312, 390, -228, 516, 377, 313, - -228, 313, 192, 0, 314, 425, 314, 0, 311, 311, - 193, 190, -229, 312, 312, 0, -229, 0, 0, 0, - 191, 0, 0, 0, 488, 317, 0, 0, -228, 0, - 316, -228, 0, 0, 0, 313, 316, 313, 313, 0, - 314, 0, 314, 314, -229, 0, 327, -229, 0, 0, - 0, 0, 327, 435, 193, 0, 0, 313, 313, 0, - 193, 0, 314, 314, 0, 0, 0, 192, 192, -228, - -228, 0, 0, 0, 0, 193, 193, 0, 0, 315, - 0, 315, 0, 0, -230, -229, -229, 0, -230, 317, - 0, 0, 0, 317, 0, 0, 0, 34, 0, 0, - 0, 6, 0, 481, 0, 483, 0, 317, 317, 0, - 318, 317, 0, 73, 192, 315, -230, 315, 315, -230, - 0, 0, 193, 0, 0, 0, 0, 0, 316, 188, - 316, 0, 400, 0, 0, 0, 0, 315, 315, 514, - 0, 0, 517, 0, 327, 0, 327, 151, 0, 487, - 155, 156, 193, 0, 193, 0, 0, -230, -230, 0, - 0, 527, 528, 0, 316, 0, 316, 316, 0, 0, - 17, 68, 0, 0, 318, 0, 0, 0, 318, 0, - 327, 0, 327, 327, 0, 0, 316, 316, 193, 0, - 193, 193, 318, 318, 317, 0, 318, 0, 0, 0, - 317, 0, 327, 327, 0, 0, 0, 0, 0, 0, - 193, 193, 0, 319, 0, 0, 0, 0, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 0, 214, - 215, 216, 217, 218, 219, 220, 221, 320, 224, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 252, 0, 0, 319, 0, 318, - 0, 319, 0, 0, 0, 318, 328, 0, 0, 321, - 0, 0, 317, 0, 317, 319, 319, 0, 322, 319, - 0, 320, 0, 0, 0, 320, 163, 164, 0, 349, - 167, 168, 169, 170, 171, 172, 0, 0, 0, 320, - 320, 0, 0, 320, 0, 0, 0, 0, 317, 0, - 317, 317, 176, 177, 178, 179, 180, 224, 0, 323, - 0, 0, 0, 0, 0, 0, 0, 0, 367, 0, - 317, 317, 0, 321, 0, 0, 0, 321, 0, 0, - 382, 0, 322, 0, 0, 0, 322, 0, 0, 0, - 0, 321, 321, 0, 0, 321, 0, 318, 0, 318, - 387, 388, 319, 0, 322, 0, 324, 0, 319, 0, + 16, 217, 31, 161, 374, 210, 279, 437, 379, 16, + 438, 19, 20, 338, 439, 211, 198, 199, 200, 162, + 26, 1, 2, 3, 4, 5, 33, 34, 6, 275, + 21, 6, 34, 22, 130, 474, 6, 38, 39, 40, + 41, -235, 131, 6, 127, -235, 27, 48, 28, 128, + 163, 6, 29, 54, 55, 56, 57, 58, 59, 208, + 157, 30, 245, 154, 158, 126, 178, 407, 408, 213, + 210, 129, 370, -235, 179, 180, -235, 371, 475, 132, + 211, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 514, 133, 516, 134, 518, 431, 7, 276, + 17, 68, 135, -227, 421, 17, 68, -227, 212, 371, + 159, 160, 17, 68, -235, -235, 179, 469, -246, 477, + 136, 7, 371, -228, 371, 34, 137, -228, 218, 6, + 38, 39, 40, 41, 437, -227, 138, 438, -227, -229, + 48, 439, 139, -229, 17, 18, 54, 55, 56, 57, + 58, 59, -230, 331, 384, -228, -230, 158, -228, 140, + 30, 478, 484, 505, 72, 429, 371, 371, 371, 332, + 141, -229, 142, 212, -229, 34, -227, -227, 519, 6, + 201, 179, 143, 371, -230, 446, 447, -230, 152, 153, + 144, 145, 487, 146, 489, 147, -228, -228, 17, 68, + 163, 148, 149, 202, 150, 214, 215, 208, 216, 203, + 209, 204, -229, -229, 281, 464, 336, 205, 164, 331, + 206, 339, 207, 331, 179, -230, -230, 219, 520, 220, + 221, 523, 210, 232, 152, 332, 161, 161, 213, 332, + 331, 246, 211, -231, 276, 372, 360, -231, 17, 68, + 533, 534, 162, 162, 377, 378, 332, 380, 381, 382, + 383, 486, 387, 165, 388, 392, 163, 434, 166, 393, + 163, 389, 385, 398, 399, -231, 504, 422, -231, 426, + 400, 443, 336, 163, 163, 401, 336, 163, 402, -232, + 179, 210, 210, -232, 179, 444, 448, 160, 449, 336, + 336, 211, 211, 336, 450, 451, -233, 179, 179, 468, + -233, 179, 331, 463, 471, 483, -231, -231, 161, -234, + 473, -232, 495, -234, -232, 34, 496, 506, 332, 6, + 508, 510, 511, 512, 162, 212, 515, 210, -233, 517, + 525, -233, 521, 179, 183, 184, 371, 211, 530, 526, + 494, -234, 527, 528, -234, 531, 532, 208, 23, 163, + 245, 24, -232, -232, 25, 163, 397, 522, 164, 386, + 196, 197, 198, 199, 200, 336, 172, 0, 0, -233, + -233, 336, 441, 179, 196, 197, 198, 199, 200, 179, + 0, 0, -234, -234, 212, 212, 0, 0, 17, 68, + 0, 0, 179, 179, 0, 0, 0, 331, 0, 331, + 0, 0, 0, 165, 0, 0, 0, 0, 166, 0, + 0, 0, 0, 332, 0, 332, 0, 0, 0, 167, + 0, 0, 0, 0, 164, 0, 0, 0, 164, 73, + 212, 0, 0, 331, 0, 161, 331, 0, 179, 0, + 0, 164, 164, 0, 163, 164, 163, 0, 0, 332, + 0, 162, 332, 0, 0, 331, 331, 0, 0, 0, + 336, 0, 336, 151, 0, 493, 155, 156, 179, 165, + 179, 332, 332, 165, 166, 0, 0, 0, 166, 0, + 163, 0, 163, 163, 0, 0, 165, 165, 0, 0, + 165, 166, 166, 168, 0, 166, 336, 0, 336, 336, + 0, 0, 163, 163, 179, 0, 179, 179, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 164, 336, 336, + 0, 0, 0, 164, 0, 0, 179, 179, 169, 0, + 0, 0, 0, 170, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 0, 233, 234, 235, 236, 237, + 238, 239, 240, 0, 243, 0, 0, 0, 0, 244, + 0, 0, 165, 0, 0, 0, 0, 166, 165, 167, + 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 274, 0, 164, 0, 164, 0, 0, 0, 0, 0, + 0, 337, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 0, 167, + 0, 0, 0, 168, 358, 0, 0, 0, 164, 0, + 164, 164, 167, 167, 171, 0, 167, 165, 0, 165, + 0, 0, 166, 0, 166, 0, 0, 0, 0, 0, + 164, 164, 0, 0, 0, 243, 0, 0, 169, 0, + 0, 0, 0, 333, 173, 376, 0, 0, 0, 174, + 0, 0, 0, 165, 175, 165, 165, 391, 166, 0, + 166, 166, 0, 0, 0, 0, 0, 0, 0, 168, + 0, 0, 0, 168, 0, 165, 165, 0, 0, 0, + 166, 166, 0, 0, 0, 0, 168, 168, 167, 0, + 168, 0, 0, 0, 167, 0, 0, 0, 0, 0, + 0, 0, 423, 0, 169, 0, 0, 0, 169, 333, + 0, 0, 0, 333, 0, 0, 0, 0, 424, 0, + 0, 169, 169, 427, 0, 169, 333, 333, 0, 0, + 333, 0, 0, 428, 0, 0, 0, 0, 0, 0, + 433, 0, 435, 0, 0, 442, 0, 0, 0, 0, + 176, 0, 0, 0, 0, 177, 0, 0, 0, 0, + 0, 0, 168, 0, 334, 0, 0, 0, 168, 0, + 0, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 167, 0, 167, 0, 467, 0, 0, + 0, 0, 0, 0, 335, 0, 0, 169, 0, 174, + 0, 0, 333, 169, 175, 0, 0, 0, 333, 0, + 479, 480, 481, 482, 0, 0, 0, 0, 0, 167, + 0, 167, 167, 0, 0, 0, 0, 0, 0, 0, + 334, 0, 0, 488, 334, 490, 492, 0, 0, 0, + 0, 167, 167, 0, 0, 0, 0, 334, 334, 0, + 0, 334, 0, 0, 0, 0, 0, 168, 0, 168, + 335, 0, 0, 0, 335, 174, 0, 0, 0, 174, + 175, 0, 524, 0, 175, 0, 0, 394, 395, 0, + 0, 335, 174, 174, 0, 0, 174, 175, 175, 0, + 0, 175, 169, 168, 169, 168, 168, 333, 0, 333, + 176, 0, 0, 0, 0, 177, 0, 0, 0, 0, + 0, 0, 0, 183, 184, 168, 168, 187, 188, 189, + 190, 191, 192, 334, 0, 0, 0, 0, 169, 334, + 169, 169, 0, 333, 0, 333, 333, 194, 195, 196, + 197, 198, 199, 200, 0, 0, 0, 0, 0, 0, + 169, 169, 0, 335, 0, 333, 333, 0, 174, 440, + 0, 0, 0, 175, 174, 0, 176, 0, 0, 175, + 176, 177, 0, 0, 0, 177, 0, 0, 0, 0, + 0, 0, 0, 176, 176, 0, 0, 176, 177, 177, + 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 6, 38, 39, 40, 41, 0, + 0, 0, 0, 0, 0, 48, 0, 0, 334, 0, + 334, 54, 55, 56, 57, 58, 59, 0, 0, 0, + 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, + 299, 300, 0, 0, 0, 0, 0, 0, 335, 0, + 335, 0, 0, 174, 334, 174, 334, 334, 175, 176, + 175, 0, 0, 0, 177, 176, 0, 0, 0, 0, + 177, 0, 0, 17, 68, 0, 334, 334, 0, 0, + 0, 0, 0, 0, 335, 0, 440, 335, 0, 174, + 0, 174, 174, 0, 175, 0, 175, 175, 0, 0, + 0, 0, 0, 0, 0, 241, 335, 335, 0, 0, + 242, 174, 174, 0, 0, 182, 175, 175, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 325, 323, 0, 0, 320, 323, 0, 0, - 0, 0, 320, 318, 0, 318, 318, 417, 0, 0, - 0, 323, 323, 0, 0, 323, 0, 0, 0, 0, - 0, 0, 0, 418, 0, 318, 318, 421, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 422, 0, - 324, 0, 0, 0, 324, 427, 0, 429, 321, 0, - 436, 0, 0, 0, 321, 0, 325, 322, 324, 324, - 325, 0, 324, 434, 0, 0, 0, 0, 0, 0, - 319, 0, 319, 0, 325, 325, 0, 0, 325, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 0, 0, 0, 0, 320, 461, 320, 0, 323, 0, - 0, 0, 0, 0, 323, 0, 319, 0, 319, 319, - 0, 0, 0, 0, 0, 0, 0, 0, 473, 474, - 475, 476, 0, 0, 326, 0, 0, 0, 319, 319, - 320, 0, 320, 320, 0, 0, 0, 0, 0, 0, - 0, 482, 0, 484, 486, 324, 321, 0, 321, 0, - 0, 324, 320, 320, 0, 322, 0, 322, 0, 0, - 0, 325, 0, 0, 0, 0, 0, 325, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 518, 0, 321, 0, 321, 321, 0, 0, 326, 0, - 0, 322, 326, 434, 322, 0, 323, 0, 323, 0, - 0, 0, 0, 0, 321, 321, 326, 326, 0, 0, - 326, 0, 34, 322, 322, 0, 6, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 323, 0, 323, 323, 0, 0, 0, 0, - 0, 0, 0, 324, 188, 324, 0, 400, 0, 0, - 0, 0, 401, 402, 323, 323, 0, 0, 0, 325, - 0, 325, 0, 0, 0, 0, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 0, 0, 324, - 0, 324, 324, 0, 0, 17, 68, 0, 0, 0, - 0, 0, 0, 326, 0, 325, 0, 325, 325, 326, - 0, 324, 324, 0, 0, 0, 0, 0, 0, 261, - 0, 0, 0, 0, 0, 0, 262, 325, 325, 263, - 264, 0, 265, 266, 267, 268, 0, 269, 270, 271, - 272, 273, 274, 275, 276, 34, 0, 0, 0, 6, - 38, 39, 40, 41, 0, 0, 0, 0, 0, 0, - 48, 0, 0, 0, 0, 0, 54, 55, 56, 57, - 58, 59, 0, 0, 0, 197, 277, 278, 0, 0, - 0, 0, 0, 163, 164, 279, 280, 0, 0, 169, - 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, - 34, 326, 0, 326, 6, 38, 39, 40, 41, 176, - 177, 178, 179, 180, 0, 48, 0, 0, 17, 68, - 0, 54, 55, 56, 57, 58, 59, 0, 0, 0, - 0, 261, 278, 0, 0, 0, 0, 326, 262, 326, - 326, 263, 264, 0, 265, 266, 267, 268, 0, 269, - 270, 271, 272, 273, 274, 275, 276, 34, 0, 326, - 326, 6, 38, 39, 40, 41, 0, 0, 0, 0, - 0, 0, 48, 17, 68, 0, 0, 0, 54, 55, - 56, 57, 58, 59, 0, 0, 0, 197, 389, 278, - 0, 0, 0, 364, 0, 0, 0, 279, 280, 262, - 0, 0, 263, 264, 0, 265, 266, 267, 268, 0, - 269, 270, 271, 272, 273, 274, 275, 276, 34, 0, - 0, 0, 6, 38, 39, 40, 41, 0, 0, 0, - 17, 68, 0, 48, 0, 0, 0, 0, 0, 54, - 55, 56, 57, 58, 59, 0, 0, 0, 197, 0, - 278, 0, 0, 0, 424, 0, 0, 0, 279, 280, - 262, 0, 0, 263, 264, 0, 265, 266, 267, 268, - 0, 269, 270, 271, 272, 273, 274, 275, 276, 34, + 0, 193, 194, 195, 196, 197, 198, 199, 200, 0, + 0, 0, 0, 282, 176, 0, 176, 0, 0, 177, + 283, 177, 0, 284, 285, 0, 286, 287, 288, 289, + 0, 290, 291, 292, 293, 294, 295, 296, 297, 34, 0, 0, 0, 6, 38, 39, 40, 41, 0, 0, - 0, 17, 68, 0, 48, 0, 0, 0, 0, 0, - 54, 55, 56, 57, 58, 59, 0, 0, 0, 197, - 0, 278, 396, 397, 0, 398, 399, 0, 0, 279, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 34, 0, 0, 0, 6, 0, 0, - 0, 222, 0, 0, 0, 0, 223, 0, 0, 0, - 0, 162, 17, 68, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 0, 188, 0, 0, 400, 0, - 0, 0, 0, 401, 402, 0, 0, 173, 174, 175, - 176, 177, 178, 179, 180, 0, 0, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 0, 0, - 0, 0, 0, 0, 0, 262, 17, 68, 263, 264, - 0, 265, 266, 267, 268, 0, 269, 270, 271, 272, - 273, 274, 275, 276, 34, 0, 0, 0, 6, 38, - 39, 40, 41, 0, 0, 0, 0, 0, 0, 48, - 0, 0, 0, 0, 0, 54, 55, 56, 57, 58, - 59, 0, 0, 0, 197, 0, 278, 0, 0, 0, - 0, 0, 0, 0, 279, 280, 0, 34, 35, 36, - 37, 6, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 350, 17, 68, 251, - 153, 0, 162, 63, 0, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 0, 0, 0, 64, - 65, 0, 0, 0, 0, 0, 0, 0, 173, 174, - 175, 176, 177, 178, 179, 180, 66, 0, 0, 67, - 17, 68, 30, 69, 70, 71, 72, 34, 35, 36, - 37, 6, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 0, 0, 0, 62, - 0, 0, 0, 63, 0, 381, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, - 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66, 0, 0, 67, - 17, 68, 30, 69, 70, 71, 72, 34, 35, 36, - 37, 6, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 352, 0, 0, 62, - 0, 0, 162, 63, 0, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 0, 0, 0, 64, - 65, 0, 0, 0, 0, 0, 0, 0, 173, 174, - 175, 176, 177, 178, 179, 180, 66, 0, 0, 67, - 17, 68, 30, 69, 70, 71, 72, 34, 35, 36, - 37, 6, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 353, 0, 0, 251, - 0, 0, 162, 63, 0, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 0, 0, 0, 64, - 65, 0, 0, 0, 0, 0, 0, 0, 173, 174, - 175, 176, 177, 178, 179, 180, 66, 0, 0, 67, - 17, 68, 30, 69, 70, 71, 72, 34, 0, 0, + 176, 0, 176, 176, 48, 177, 0, 177, 177, 0, + 54, 55, 56, 57, 58, 59, 0, 0, 0, 216, + 298, 158, 176, 176, 282, 0, 0, 177, 177, 299, + 300, 283, 0, 0, 284, 285, 0, 286, 287, 288, + 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, + 34, 0, 0, 0, 6, 38, 39, 40, 41, 0, + 0, 0, 17, 68, 0, 48, 0, 0, 0, 0, + 0, 54, 55, 56, 57, 58, 59, 0, 0, 0, + 216, 396, 158, 0, 0, 0, 373, 0, 0, 0, + 299, 300, 283, 0, 0, 284, 285, 0, 286, 287, + 288, 289, 0, 290, 291, 292, 293, 294, 295, 296, + 297, 34, 0, 0, 0, 6, 38, 39, 40, 41, + 0, 0, 0, 17, 68, 0, 48, 0, 0, 0, + 0, 0, 54, 55, 56, 57, 58, 59, 0, 0, + 0, 216, 0, 158, 0, 0, 0, 430, 0, 0, + 0, 299, 300, 283, 0, 0, 284, 285, 0, 286, + 287, 288, 289, 0, 290, 291, 292, 293, 294, 295, + 296, 297, 34, 0, 0, 0, 6, 38, 39, 40, + 41, 0, 0, 0, 17, 68, 0, 48, 0, 0, + 0, 0, 0, 54, 55, 56, 57, 58, 59, 0, + 0, 0, 216, 0, 158, 403, 404, 0, 405, 406, + 0, 0, 299, 300, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, + 6, 0, 0, 0, 498, 0, 0, 0, 0, 499, + 0, 0, 0, 0, 182, 17, 68, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 0, 208, 0, + 0, 245, 0, 0, 0, 0, 407, 408, 0, 0, + 193, 194, 195, 196, 197, 198, 199, 200, 0, 0, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 0, 0, 0, 0, 0, 0, 0, 283, 17, + 68, 284, 285, 0, 286, 287, 288, 289, 0, 290, + 291, 292, 293, 294, 295, 296, 297, 34, 0, 0, 0, 6, 38, 39, 40, 41, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 54, 55, - 56, 57, 58, 59, 0, 0, 0, 0, 0, 278, - 0, 0, 0, 0, 0, 0, 492, 279, 280, 0, - 0, 493, 0, 0, 0, 0, 162, 0, 0, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 56, 57, 58, 59, 0, 0, 0, 216, 0, 158, + 0, 0, 0, 0, 0, 0, 0, 299, 300, 0, + 34, 35, 36, 37, 6, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 359, + 17, 68, 273, 153, 0, 182, 63, 0, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, + 0, 0, 64, 65, 0, 0, 0, 0, 0, 0, + 0, 193, 194, 195, 196, 197, 198, 199, 200, 66, + 0, 0, 67, 17, 68, 30, 69, 70, 71, 72, + 34, 35, 36, 37, 6, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, + 0, 0, 62, 183, 184, 0, 63, 0, 390, 189, + 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64, 65, 0, 0, 0, 0, 0, 196, + 197, 198, 199, 200, 0, 0, 0, 0, 0, 66, + 0, 0, 67, 17, 68, 30, 69, 70, 71, 72, + 34, 35, 36, 37, 6, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 362, + 0, 0, 62, 0, 0, 182, 63, 0, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, + 0, 0, 64, 65, 0, 0, 0, 0, 0, 0, + 0, 193, 194, 195, 196, 197, 198, 199, 200, 66, + 0, 0, 67, 17, 68, 30, 69, 70, 71, 72, + 34, 35, 36, 37, 6, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, + 0, 0, 273, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 500, 0, 0, 0, 0, 501, + 0, 0, 64, 65, 182, 0, 0, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 0, 0, 66, + 0, 0, 67, 17, 68, 30, 69, 70, 71, 72, + 193, 194, 195, 196, 197, 198, 199, 200, 502, 0, + 0, 0, 0, 503, 0, 0, 0, 0, 182, 0, + 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 341, 0, 193, 194, 195, 196, 197, 198, + 199, 200, 182, 0, 0, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 342, 0, 193, 194, + 195, 196, 197, 198, 199, 200, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 68, 173, 174, 175, 176, 177, 178, 179, 180, - 494, 0, 0, 0, 0, 495, 0, 0, 0, 0, - 162, 0, 0, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 173, 174, 175, 176, - 177, 178, 179, 180, 496, 0, 0, 0, 0, 497, - 0, 0, 0, 0, 162, 0, 0, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 332, 0, - 173, 174, 175, 176, 177, 178, 179, 180, 162, 0, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 333, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 162, 0, 0, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 334, 0, 173, 174, - 175, 176, 177, 178, 179, 180, 162, 0, 0, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 343, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 182, 0, 0, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 344, 0, 193, 194, 195, 196, + 197, 198, 199, 200, 182, 0, 0, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 345, 0, + 193, 194, 195, 196, 197, 198, 199, 200, 182, 0, + 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 346, 0, 193, 194, 195, 196, 197, 198, + 199, 200, 182, 0, 0, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 347, 0, 193, 194, + 195, 196, 197, 198, 199, 200, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 335, 0, 173, 174, 175, 176, 177, 178, 179, 180, - 162, 0, 0, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 336, 0, 173, 174, 175, 176, - 177, 178, 179, 180, 162, 0, 0, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, - 173, 174, 175, 176, 177, 178, 179, 180, 162, 0, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 338, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 162, 0, 0, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 339, 0, 173, 174, - 175, 176, 177, 178, 179, 180, 162, 0, 0, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 348, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 182, 0, 0, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 349, 0, 193, 194, 195, 196, + 197, 198, 199, 200, 182, 0, 0, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 350, 0, + 193, 194, 195, 196, 197, 198, 199, 200, 182, 0, + 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 351, 0, 193, 194, 195, 196, 197, 198, + 199, 200, 182, 0, 0, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 352, 0, 193, 194, + 195, 196, 197, 198, 199, 200, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 340, 0, 173, 174, 175, 176, 177, 178, 179, 180, - 162, 0, 0, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 341, 0, 173, 174, 175, 176, - 177, 178, 179, 180, 162, 0, 0, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 342, 0, - 173, 174, 175, 176, 177, 178, 179, 180, 162, 0, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 343, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 162, 0, 0, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 344, 0, 173, 174, - 175, 176, 177, 178, 179, 180, 162, 0, 0, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 353, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 182, 0, 0, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 354, 0, 193, 194, 195, 196, + 197, 198, 199, 200, 182, 0, 0, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, + 193, 194, 195, 196, 197, 198, 199, 200, 182, 0, + 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 357, 0, 193, 194, 195, 196, 197, 198, + 199, 200, 182, 0, 0, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 241, 0, 193, 194, + 195, 196, 197, 198, 199, 200, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 345, 0, 173, 174, 175, 176, 177, 178, 179, 180, - 162, 0, 0, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 346, 0, 173, 174, 175, 176, - 177, 178, 179, 180, 162, 0, 0, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 348, 0, - 173, 174, 175, 176, 177, 178, 179, 180, 162, 0, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 459, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 162, 0, 0, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 460, 0, 173, 174, - 175, 176, 177, 178, 179, 180, 162, 0, 0, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 464, 0, 173, 174, 175, 176, 177, 178, 179, 180, - 162, 0, 0, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 466, 0, 173, 174, 175, 176, - 177, 178, 179, 180, 162, 0, 0, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 0, 0, 0, + 465, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 182, 0, 0, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 466, 0, 193, 194, 195, 196, + 197, 198, 199, 200, 182, 0, 0, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 470, 0, - 173, 174, 175, 176, 177, 178, 179, 180, 162, 0, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 479, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 162, 0, 0, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 491, 0, 173, 174, - 175, 176, 177, 178, 179, 180, 162, 0, 0, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 193, 194, 195, 196, 197, 198, 199, 200, 182, 0, + 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 472, 0, 193, 194, 195, 196, 197, 198, + 199, 200, 182, 0, 0, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 476, 0, 193, 194, + 195, 196, 197, 198, 199, 200, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 501, 0, 173, 174, 175, 176, 177, 178, 179, 180, - 162, 0, 0, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 503, 0, 173, 174, 175, 176, - 177, 178, 179, 180, 162, 0, 0, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, - 173, 174, 175, 176, 177, 178, 179, 180, 162, 0, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 354, 0, 0, 0, 0, 0, 162, 0, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 355, 0, 0, 0, 0, 0, 162, 0, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 356, 0, 0, 0, 0, 0, 162, 0, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 357, 0, 0, 0, 0, 0, 162, 0, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 358, 0, 0, 0, 0, 0, 162, 0, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 359, 0, 0, 0, 0, 0, 162, 0, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 414, 0, 0, 0, 0, 0, 162, 0, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 173, 174, 175, 176, 177, 178, - 179, 180, 331, 0, 0, 0, 0, 162, 0, 0, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 485, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 182, 0, 0, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 497, 0, 193, 194, 195, 196, + 197, 198, 199, 200, 182, 0, 0, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 507, 0, + 193, 194, 195, 196, 197, 198, 199, 200, 182, 0, + 0, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 509, 0, 193, 194, 195, 196, 197, 198, + 199, 200, 182, 0, 0, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 529, 0, 193, 194, + 195, 196, 197, 198, 199, 200, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 173, 174, 175, 176, 177, 178, 179, - 180, 347, 0, 0, 0, 0, 162, 0, 0, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 363, 0, 0, 0, 0, 0, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 173, 174, 175, 176, 177, 178, 179, 180, - 419, 0, 0, 0, 0, 162, 0, 0, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 0, 0, + 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 364, 0, 0, 0, 0, 0, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 173, 174, 175, 176, 177, 178, 179, 180, 351, - 0, 162, 0, 0, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 173, 174, 175, - 176, 177, 178, 179, 180, 161, 162, 0, 0, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 365, 0, 0, 0, 0, 0, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 173, 174, 175, 176, 177, 178, 179, 180, - 426, 162, 0, 0, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 173, 174, 175, - 176, 177, 178, 179, 180, 439, 162, 0, 0, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 162, - 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 0, 0, 0, 0, 0, 173, 174, 175, 176, 177, - 178, 179, 180, 163, 164, 0, 166, 167, 168, 169, - 170, 171, 172, 163, 164, 0, 0, 167, 168, 169, - 170, 171, 172, 0, 0, 0, 173, 174, 175, 176, - 177, 178, 179, 180, 0, 0, 173, 174, 175, 176, - 177, 178, 179, 180, 163, 164, 0, 0, 167, 168, - 169, 170, 171, 172, 163, 164, 0, 0, 167, 168, - 169, 170, 171, 172, 0, 0, 0, 0, 174, 175, - 176, 177, 178, 179, 180, 0, 0, 0, 174, 0, - 176, 177, 178, 179, 180 + 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 366, 0, 0, 0, 0, 0, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 367, 0, 0, 0, 0, 0, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 368, 0, 0, 0, 0, 0, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 369, 0, 0, 0, 0, 0, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 420, 0, 0, 0, 0, 0, 182, 0, 0, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 340, 0, 0, 0, 0, 182, 0, 0, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 193, 194, 195, 196, 197, 198, 199, 200, 356, + 0, 0, 0, 0, 182, 0, 0, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 193, 194, 195, 196, 197, 198, 199, 200, 425, 0, + 0, 0, 0, 182, 0, 0, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 194, 195, 196, 197, 198, 199, 200, 361, 0, 182, + 0, 0, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 194, 195, 196, 197, + 198, 199, 200, 181, 182, 0, 0, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 193, 194, 195, 196, 197, 198, 199, 200, 432, 182, + 0, 0, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 194, 195, 196, 197, + 198, 199, 200, 445, 182, 0, 0, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 182, 0, 0, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 0, 0, + 0, 0, 0, 193, 194, 195, 196, 197, 198, 199, + 200, 183, 184, 0, 186, 187, 188, 189, 190, 191, + 192, 183, 184, 0, 0, 187, 188, 189, 190, 191, + 192, 0, 0, 0, 193, 194, 195, 196, 197, 198, + 199, 200, 0, 0, 193, 194, 195, 196, 197, 198, + 199, 200, 183, 184, 0, 0, 187, 188, 189, 190, + 191, 192, 183, 184, 0, 0, 187, 188, 189, 190, + 191, 192, 0, 0, 0, 0, 194, 0, 196, 197, + 198, 199, 200, 0, 0, 0, 0, 0, 196, 197, + 198, 199, 200 }; const short parser::yycheck_[] = { - 0, 127, 21, 197, 107, 41, 372, 372, 197, 9, - 41, 3, 4, 107, 372, 28, 65, 41, 65, 37, - 111, 194, 66, 41, 115, 116, 26, 71, 201, 11, - 12, 13, 14, 15, 34, 106, 110, 111, 69, 69, - 70, 112, 34, 66, 91, 116, 0, 65, 71, 37, - 75, 69, 197, 41, 72, 66, 66, 197, 71, 41, - 71, 71, 112, 63, 66, 66, 75, 261, 66, 71, - 71, 265, 261, 37, 65, 111, 265, 41, 37, 110, - 111, 69, 41, 66, 72, 279, 280, 111, 71, 283, - 279, 280, 110, 111, 283, 37, 66, 66, 65, 41, - 65, 71, 71, 65, 65, 69, 111, 107, 72, 65, - 69, 69, 65, 72, 65, 107, 261, 107, 108, 109, - 265, 261, 110, 111, 65, 265, 65, 69, 128, 111, - 72, 65, 197, 65, 279, 280, 502, 502, 283, 279, - 280, 65, 65, 283, 502, 65, 110, 111, 65, 65, - 65, 110, 111, 493, 65, 495, 37, 497, 67, 73, - 41, 105, 106, 107, 108, 109, 37, 69, 110, 111, - 41, 69, 366, 69, 69, 69, 69, 366, 372, 65, - 69, 197, 73, 372, 66, 75, 73, 65, 69, 73, - 363, 72, 65, 70, 74, 195, 261, 197, 69, 75, - 265, 72, 202, 65, 65, 197, 65, 79, 80, 65, - 383, 384, 65, 25, 279, 280, 65, 75, 283, 322, - 261, 366, 65, 69, 265, 75, 366, 372, 322, 110, - 111, 75, 372, 105, 106, 107, 108, 109, 75, 110, - 111, 75, 75, 416, 75, 261, 65, 116, 74, 265, - 74, 270, 65, 70, 65, 65, 256, 65, 65, 65, - 111, 261, 65, 279, 280, 265, 75, 283, 23, 261, - 464, 75, 466, 265, 75, 464, 75, 466, 28, 279, - 280, 75, 75, 283, 387, 388, 75, 279, 280, 462, - 75, 283, 75, 387, 388, 71, 66, 66, 66, 9, - 66, 366, 75, 75, 477, 9, 500, 372, 502, 503, - 75, 500, 9, 502, 503, 283, 37, 502, 270, 464, - 41, 466, 322, -1, 464, 366, 466, -1, 522, 523, - 322, 434, 37, 522, 523, -1, 41, -1, -1, -1, - 434, -1, -1, -1, 470, 197, -1, -1, 69, -1, - 366, 72, -1, -1, -1, 500, 372, 502, 503, -1, - 500, -1, 502, 503, 69, -1, 366, 72, -1, -1, - -1, -1, 372, 373, 366, -1, -1, 522, 523, -1, - 372, -1, 522, 523, -1, -1, -1, 387, 388, 110, - 111, -1, -1, -1, -1, 387, 388, -1, -1, 464, - -1, 466, -1, -1, 37, 110, 111, -1, 41, 261, - -1, -1, -1, 265, -1, -1, -1, 37, -1, -1, - -1, 41, -1, 464, -1, 466, -1, 279, 280, -1, - 197, 283, -1, 27, 434, 500, 69, 502, 503, 72, - -1, -1, 434, -1, -1, -1, -1, -1, 464, 69, - 466, -1, 72, -1, -1, -1, -1, 522, 523, 500, - -1, -1, 503, -1, 464, -1, 466, 61, -1, 469, - 64, 65, 464, -1, 466, -1, -1, 110, 111, -1, - -1, 522, 523, -1, 500, -1, 502, 503, -1, -1, - 110, 111, -1, -1, 261, -1, -1, -1, 265, -1, - 500, -1, 502, 503, -1, -1, 522, 523, 500, -1, - 502, 503, 279, 280, 366, -1, 283, -1, -1, -1, - 372, -1, 522, 523, -1, -1, -1, -1, -1, -1, - 522, 523, -1, 197, -1, -1, -1, -1, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, -1, 143, - 144, 145, 146, 147, 148, 149, 150, 197, 152, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, -1, -1, 261, -1, 366, - -1, 265, -1, -1, -1, 372, 200, -1, -1, 197, - -1, -1, 464, -1, 466, 279, 280, -1, 197, 283, - -1, 261, -1, -1, -1, 265, 79, 80, -1, 223, - 83, 84, 85, 86, 87, 88, -1, -1, -1, 279, - 280, -1, -1, 283, -1, -1, -1, -1, 500, -1, - 502, 503, 105, 106, 107, 108, 109, 251, -1, 197, - -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, - 522, 523, -1, 261, -1, -1, -1, 265, -1, -1, - 274, -1, 261, -1, -1, -1, 265, -1, -1, -1, - -1, 279, 280, -1, -1, 283, -1, 464, -1, 466, - 279, 280, 366, -1, 283, -1, 197, -1, 372, -1, + 0, 127, 21, 66, 282, 108, 213, 381, 286, 9, + 381, 3, 4, 220, 381, 108, 107, 108, 109, 66, + 65, 11, 12, 13, 14, 15, 26, 37, 41, 41, + 65, 41, 37, 0, 34, 28, 41, 42, 43, 44, + 45, 37, 34, 41, 66, 41, 91, 52, 75, 71, + 66, 41, 75, 58, 59, 60, 61, 62, 63, 69, + 65, 112, 72, 63, 69, 66, 66, 77, 78, 65, + 173, 69, 66, 69, 66, 111, 72, 71, 71, 65, + 173, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 499, 65, 501, 65, 503, 375, 111, 111, + 110, 111, 65, 37, 66, 110, 111, 41, 108, 71, + 115, 116, 110, 111, 110, 111, 108, 66, 73, 66, + 65, 111, 71, 37, 71, 37, 65, 41, 128, 41, + 42, 43, 44, 45, 508, 69, 65, 508, 72, 37, + 52, 508, 65, 41, 110, 111, 58, 59, 60, 61, + 62, 63, 37, 216, 106, 69, 41, 69, 72, 65, + 112, 66, 66, 66, 116, 372, 71, 71, 71, 216, + 65, 69, 65, 173, 72, 37, 110, 111, 66, 41, + 69, 173, 65, 71, 69, 392, 393, 72, 69, 70, + 65, 65, 470, 65, 472, 65, 110, 111, 110, 111, + 216, 65, 65, 69, 65, 73, 75, 69, 67, 69, + 72, 69, 110, 111, 214, 422, 216, 69, 66, 282, + 69, 221, 69, 286, 216, 110, 111, 69, 506, 65, + 73, 509, 335, 66, 69, 282, 299, 300, 65, 286, + 303, 73, 335, 37, 111, 65, 246, 41, 110, 111, + 528, 529, 299, 300, 75, 65, 303, 65, 65, 65, + 65, 468, 74, 66, 75, 65, 282, 25, 66, 65, + 286, 75, 291, 75, 75, 69, 483, 65, 72, 70, + 75, 74, 282, 299, 300, 75, 286, 303, 75, 37, + 282, 394, 395, 41, 286, 74, 65, 116, 65, 299, + 300, 394, 395, 303, 65, 65, 37, 299, 300, 65, + 41, 303, 375, 70, 65, 65, 110, 111, 381, 37, + 75, 69, 75, 41, 72, 37, 75, 23, 375, 41, + 75, 28, 75, 75, 381, 335, 75, 440, 69, 75, + 66, 72, 75, 335, 79, 80, 71, 440, 75, 66, + 476, 69, 66, 66, 72, 75, 75, 69, 9, 375, + 72, 9, 110, 111, 9, 381, 303, 508, 216, 291, + 105, 106, 107, 108, 109, 375, 66, -1, -1, 110, + 111, 381, 382, 375, 105, 106, 107, 108, 109, 381, + -1, -1, 110, 111, 394, 395, -1, -1, 110, 111, + -1, -1, 394, 395, -1, -1, -1, 470, -1, 472, + -1, -1, -1, 216, -1, -1, -1, -1, 216, -1, + -1, -1, -1, 470, -1, 472, -1, -1, -1, 66, + -1, -1, -1, -1, 282, -1, -1, -1, 286, 27, + 440, -1, -1, 506, -1, 508, 509, -1, 440, -1, + -1, 299, 300, -1, 470, 303, 472, -1, -1, 506, + -1, 508, 509, -1, -1, 528, 529, -1, -1, -1, + 470, -1, 472, 61, -1, 475, 64, 65, 470, 282, + 472, 528, 529, 286, 282, -1, -1, -1, 286, -1, + 506, -1, 508, 509, -1, -1, 299, 300, -1, -1, + 303, 299, 300, 66, -1, 303, 506, -1, 508, 509, + -1, -1, 528, 529, 506, -1, 508, 509, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 375, 528, 529, + -1, -1, -1, 381, -1, -1, 528, 529, 66, -1, + -1, -1, -1, 66, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, -1, 143, 144, 145, 146, 147, + 148, 149, 150, -1, 152, -1, -1, -1, -1, 157, + -1, -1, 375, -1, -1, -1, -1, 375, 381, 216, + -1, -1, -1, 381, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, -1, 470, -1, 472, -1, -1, -1, -1, -1, + -1, 219, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 282, -1, -1, -1, 286, + -1, -1, -1, 216, 242, -1, -1, -1, 506, -1, + 508, 509, 299, 300, 66, -1, 303, 470, -1, 472, + -1, -1, 470, -1, 472, -1, -1, -1, -1, -1, + 528, 529, -1, -1, -1, 273, -1, -1, 216, -1, + -1, -1, -1, 216, 66, 283, -1, -1, -1, 66, + -1, -1, -1, 506, 66, 508, 509, 295, 506, -1, + 508, 509, -1, -1, -1, -1, -1, -1, -1, 282, + -1, -1, -1, 286, -1, 528, 529, -1, -1, -1, + 528, 529, -1, -1, -1, -1, 299, 300, 375, -1, + 303, -1, -1, -1, 381, -1, -1, -1, -1, -1, + -1, -1, 340, -1, 282, -1, -1, -1, 286, 282, + -1, -1, -1, 286, -1, -1, -1, -1, 356, -1, + -1, 299, 300, 361, -1, 303, 299, 300, -1, -1, + 303, -1, -1, 371, -1, -1, -1, -1, -1, -1, + 378, -1, 380, -1, -1, 383, -1, -1, -1, -1, + 66, -1, -1, -1, -1, 66, -1, -1, -1, -1, + -1, -1, 375, -1, 216, -1, -1, -1, 381, -1, + -1, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, -1, 470, -1, 472, -1, 425, -1, -1, + -1, -1, -1, -1, 216, -1, -1, 375, -1, 216, + -1, -1, 375, 381, 216, -1, -1, -1, 381, -1, + 448, 449, 450, 451, -1, -1, -1, -1, -1, 506, + -1, 508, 509, -1, -1, -1, -1, -1, -1, -1, + 282, -1, -1, 471, 286, 473, 474, -1, -1, -1, + -1, 528, 529, -1, -1, -1, -1, 299, 300, -1, + -1, 303, -1, -1, -1, -1, -1, 470, -1, 472, + 282, -1, -1, -1, 286, 282, -1, -1, -1, 286, + 282, -1, 510, -1, 286, -1, -1, 299, 300, -1, + -1, 303, 299, 300, -1, -1, 303, 299, 300, -1, + -1, 303, 470, 506, 472, 508, 509, 470, -1, 472, + 216, -1, -1, -1, -1, 216, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 528, 529, 83, 84, 85, + 86, 87, 88, 375, -1, -1, -1, -1, 506, 381, + 508, 509, -1, 506, -1, 508, 509, 103, 104, 105, + 106, 107, 108, 109, -1, -1, -1, -1, -1, -1, + 528, 529, -1, 375, -1, 528, 529, -1, 375, 381, + -1, -1, -1, 375, 381, -1, 282, -1, -1, 381, + 286, 282, -1, -1, -1, 286, -1, -1, -1, -1, + -1, -1, -1, 299, 300, -1, -1, 303, 299, 300, + -1, -1, 303, -1, -1, -1, -1, -1, -1, -1, + 37, -1, -1, -1, 41, 42, 43, 44, 45, -1, + -1, -1, -1, -1, -1, 52, -1, -1, 470, -1, + 472, 58, 59, 60, 61, 62, 63, -1, -1, -1, + -1, -1, 69, -1, -1, -1, -1, -1, -1, -1, + 77, 78, -1, -1, -1, -1, -1, -1, 470, -1, + 472, -1, -1, 470, 506, 472, 508, 509, 470, 375, + 472, -1, -1, -1, 375, 381, -1, -1, -1, -1, + 381, -1, -1, 110, 111, -1, 528, 529, -1, -1, + -1, -1, -1, -1, 506, -1, 508, 509, -1, 506, + -1, 508, 509, -1, 506, -1, 508, 509, -1, -1, + -1, -1, -1, -1, -1, 66, 528, 529, -1, -1, + 71, 528, 529, -1, -1, 76, 528, 529, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 197, 261, -1, -1, 366, 265, -1, -1, - -1, -1, 372, 500, -1, 502, 503, 331, -1, -1, - -1, 279, 280, -1, -1, 283, -1, -1, -1, -1, - -1, -1, -1, 347, -1, 522, 523, 351, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 362, -1, - 261, -1, -1, -1, 265, 369, -1, 371, 366, -1, - 374, -1, -1, -1, 372, -1, 261, 366, 279, 280, - 265, -1, 283, 372, -1, -1, -1, -1, -1, -1, - 464, -1, 466, -1, 279, 280, -1, -1, 283, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - -1, -1, -1, -1, 464, 419, 466, -1, 366, -1, - -1, -1, -1, -1, 372, -1, 500, -1, 502, 503, - -1, -1, -1, -1, -1, -1, -1, -1, 442, 443, - 444, 445, -1, -1, 197, -1, -1, -1, 522, 523, - 500, -1, 502, 503, -1, -1, -1, -1, -1, -1, - -1, 465, -1, 467, 468, 366, 464, -1, 466, -1, - -1, 372, 522, 523, -1, 464, -1, 466, -1, -1, - -1, 366, -1, -1, -1, -1, -1, 372, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 504, -1, 500, -1, 502, 503, -1, -1, 261, -1, - -1, 500, 265, 502, 503, -1, 464, -1, 466, -1, - -1, -1, -1, -1, 522, 523, 279, 280, -1, -1, - 283, -1, 37, 522, 523, -1, 41, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 500, -1, 502, 503, -1, -1, -1, -1, - -1, -1, -1, 464, 69, 466, -1, 72, -1, -1, - -1, -1, 77, 78, 522, 523, -1, -1, -1, 464, - -1, 466, -1, -1, -1, -1, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, -1, -1, 500, - -1, 502, 503, -1, -1, 110, 111, -1, -1, -1, - -1, -1, -1, 366, -1, 500, -1, 502, 503, 372, - -1, 522, 523, -1, -1, -1, -1, -1, -1, 11, - -1, -1, -1, -1, -1, -1, 18, 522, 523, 21, - 22, -1, 24, 25, 26, 27, -1, 29, 30, 31, - 32, 33, 34, 35, 36, 37, -1, -1, -1, 41, - 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, - 52, -1, -1, -1, -1, -1, 58, 59, 60, 61, - 62, 63, -1, -1, -1, 67, 68, 69, -1, -1, - -1, -1, -1, 79, 80, 77, 78, -1, -1, 85, - 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, - 37, 464, -1, 466, 41, 42, 43, 44, 45, 105, - 106, 107, 108, 109, -1, 52, -1, -1, 110, 111, - -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, - -1, 11, 69, -1, -1, -1, -1, 500, 18, 502, - 503, 21, 22, -1, 24, 25, 26, 27, -1, 29, - 30, 31, 32, 33, 34, 35, 36, 37, -1, 522, - 523, 41, 42, 43, 44, 45, -1, -1, -1, -1, - -1, -1, 52, 110, 111, -1, -1, -1, 58, 59, - 60, 61, 62, 63, -1, -1, -1, 67, 68, 69, - -1, -1, -1, 12, -1, -1, -1, 77, 78, 18, - -1, -1, 21, 22, -1, 24, 25, 26, 27, -1, - 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, - -1, -1, 41, 42, 43, 44, 45, -1, -1, -1, - 110, 111, -1, 52, -1, -1, -1, -1, -1, 58, - 59, 60, 61, 62, 63, -1, -1, -1, 67, -1, - 69, -1, -1, -1, 12, -1, -1, -1, 77, 78, - 18, -1, -1, 21, 22, -1, 24, 25, 26, 27, + -1, 102, 103, 104, 105, 106, 107, 108, 109, -1, + -1, -1, -1, 11, 470, -1, 472, -1, -1, 470, + 18, 472, -1, 21, 22, -1, 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, -1, -1, 41, 42, 43, 44, 45, -1, -1, - -1, 110, 111, -1, 52, -1, -1, -1, -1, -1, + 506, -1, 508, 509, 52, 506, -1, 508, 509, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, 67, - -1, 69, 16, 17, -1, 19, 20, -1, -1, 77, - 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 37, -1, -1, -1, 41, -1, -1, - -1, 66, -1, -1, -1, -1, 71, -1, -1, -1, - -1, 76, 110, 111, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, -1, 69, -1, -1, 72, -1, - -1, -1, -1, 77, 78, -1, -1, 102, 103, 104, - 105, 106, 107, 108, 109, -1, -1, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, -1, -1, - -1, -1, -1, -1, -1, 18, 110, 111, 21, 22, - -1, 24, 25, 26, 27, -1, 29, 30, 31, 32, - 33, 34, 35, 36, 37, -1, -1, -1, 41, 42, - 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, - -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, - 63, -1, -1, -1, 67, -1, 69, -1, -1, -1, - -1, -1, -1, -1, 77, 78, -1, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 70, 110, 111, 69, - 70, -1, 76, 73, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, -1, -1, -1, -1, 89, - 90, -1, -1, -1, -1, -1, -1, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 106, -1, -1, 109, - 110, 111, 112, 113, 114, 115, 116, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, -1, -1, -1, 69, - -1, -1, -1, 73, -1, 75, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, - 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 106, -1, -1, 109, - 110, 111, 112, 113, 114, 115, 116, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 70, -1, -1, 69, - -1, -1, 76, 73, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, -1, -1, -1, -1, 89, - 90, -1, -1, -1, -1, -1, -1, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 106, -1, -1, 109, - 110, 111, 112, 113, 114, 115, 116, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 70, -1, -1, 69, - -1, -1, 76, 73, -1, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, -1, -1, -1, -1, 89, - 90, -1, -1, -1, -1, -1, -1, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 106, -1, -1, 109, - 110, 111, 112, 113, 114, 115, 116, 37, -1, -1, + 68, 69, 528, 529, 11, -1, -1, 528, 529, 77, + 78, 18, -1, -1, 21, 22, -1, 24, 25, 26, + 27, -1, 29, 30, 31, 32, 33, 34, 35, 36, + 37, -1, -1, -1, 41, 42, 43, 44, 45, -1, + -1, -1, 110, 111, -1, 52, -1, -1, -1, -1, + -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, + 67, 68, 69, -1, -1, -1, 12, -1, -1, -1, + 77, 78, 18, -1, -1, 21, 22, -1, 24, 25, + 26, 27, -1, 29, 30, 31, 32, 33, 34, 35, + 36, 37, -1, -1, -1, 41, 42, 43, 44, 45, + -1, -1, -1, 110, 111, -1, 52, -1, -1, -1, + -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, + -1, 67, -1, 69, -1, -1, -1, 12, -1, -1, + -1, 77, 78, 18, -1, -1, 21, 22, -1, 24, + 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, -1, -1, 41, 42, 43, 44, + 45, -1, -1, -1, 110, 111, -1, 52, -1, -1, + -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, + -1, -1, 67, -1, 69, 16, 17, -1, 19, 20, + -1, -1, 77, 78, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, + 41, -1, -1, -1, 66, -1, -1, -1, -1, 71, + -1, -1, -1, -1, 76, 110, 111, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, -1, 69, -1, + -1, 72, -1, -1, -1, -1, 77, 78, -1, -1, + 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, -1, -1, -1, -1, -1, -1, -1, 18, 110, + 111, 21, 22, -1, 24, 25, 26, 27, -1, 29, + 30, 31, 32, 33, 34, 35, 36, 37, -1, -1, -1, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, 52, -1, -1, -1, -1, -1, 58, 59, - 60, 61, 62, 63, -1, -1, -1, -1, -1, 69, - -1, -1, -1, -1, -1, -1, 66, 77, 78, -1, - -1, 71, -1, -1, -1, -1, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 110, 111, 102, 103, 104, 105, 106, 107, 108, 109, - 66, -1, -1, -1, -1, 71, -1, -1, -1, -1, - 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, + 60, 61, 62, 63, -1, -1, -1, 67, -1, 69, + -1, -1, -1, -1, -1, -1, -1, 77, 78, -1, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 70, + 110, 111, 69, 70, -1, 76, 73, -1, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, + -1, -1, 89, 90, -1, -1, -1, -1, -1, -1, + -1, 102, 103, 104, 105, 106, 107, 108, 109, 106, + -1, -1, 109, 110, 111, 112, 113, 114, 115, 116, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, + -1, -1, 69, 79, 80, -1, 73, -1, 75, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, - 106, 107, 108, 109, 66, -1, -1, -1, -1, 71, - -1, -1, -1, -1, 76, -1, -1, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, - 102, 103, 104, 105, 106, 107, 108, 109, 76, -1, + -1, -1, 89, 90, -1, -1, -1, -1, -1, 105, + 106, 107, 108, 109, -1, -1, -1, -1, -1, 106, + -1, -1, 109, 110, 111, 112, 113, 114, 115, 116, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 70, + -1, -1, 69, -1, -1, 76, 73, -1, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, + -1, -1, 89, 90, -1, -1, -1, -1, -1, -1, + -1, 102, 103, 104, 105, 106, 107, 108, 109, 106, + -1, -1, 109, 110, 111, 112, 113, 114, 115, 116, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, + -1, -1, 69, -1, -1, -1, 73, -1, -1, -1, + -1, -1, -1, -1, 66, -1, -1, -1, -1, 71, + -1, -1, 89, 90, 76, -1, -1, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, -1, -1, 106, + -1, -1, 109, 110, 111, 112, 113, 114, 115, 116, + 102, 103, 104, 105, 106, 107, 108, 109, 66, -1, + -1, -1, -1, 71, -1, -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, 102, 103, 104, 105, 106, 107, @@ -5100,71 +5138,82 @@ namespace xsk { namespace arc { namespace t6 { 102, 103, 104, 105, 106, 107, 108, 109, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 70, -1, -1, -1, -1, -1, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 70, -1, -1, -1, -1, -1, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 70, -1, -1, -1, -1, -1, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 70, -1, -1, -1, -1, -1, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 70, -1, -1, -1, -1, -1, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 70, -1, -1, -1, -1, -1, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 70, -1, -1, -1, -1, -1, 76, -1, - -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 71, -1, -1, -1, -1, 76, -1, -1, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + -1, -1, 66, -1, 102, 103, 104, 105, 106, 107, + 108, 109, 76, -1, -1, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 66, -1, 102, 103, + 104, 105, 106, 107, 108, 109, 76, -1, -1, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, - 109, 71, -1, -1, -1, -1, 76, -1, -1, 79, + -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, + 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, + 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, + 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, + 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, + 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, + 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, + 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, + 70, -1, -1, -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 71, -1, -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, 105, 106, 107, 108, 109, 74, - -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, 106, 107, 108, 109, 75, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, + -1, 102, 103, 104, 105, 106, 107, 108, 109, 71, + -1, -1, -1, -1, 76, -1, -1, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, 106, 107, 108, 109, 75, 76, -1, -1, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 76, + 102, 103, 104, 105, 106, 107, 108, 109, 71, -1, + -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, + 103, 104, 105, 106, 107, 108, 109, 74, -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 102, 103, 104, 105, 106, 107, 108, 109, + 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, 106, - 107, 108, 109, 79, 80, -1, 82, 83, 84, 85, - 86, 87, 88, 79, 80, -1, -1, 83, 84, 85, - 86, 87, 88, -1, -1, -1, 102, 103, 104, 105, - 106, 107, 108, 109, -1, -1, 102, 103, 104, 105, - 106, 107, 108, 109, 79, 80, -1, -1, 83, 84, - 85, 86, 87, 88, 79, 80, -1, -1, 83, 84, - 85, 86, 87, 88, -1, -1, -1, -1, 103, 104, - 105, 106, 107, 108, 109, -1, -1, -1, 103, -1, - 105, 106, 107, 108, 109 + 107, 108, 109, 75, 76, -1, -1, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 102, 103, 104, 105, 106, 107, 108, 109, 75, 76, + -1, -1, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 102, 103, 104, 105, 106, + 107, 108, 109, 75, 76, -1, -1, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 76, -1, -1, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 102, 103, 104, 105, 106, 107, 108, 109, -1, -1, + -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, + 109, 79, 80, -1, 82, 83, 84, 85, 86, 87, + 88, 79, 80, -1, -1, 83, 84, 85, 86, 87, + 88, -1, -1, -1, 102, 103, 104, 105, 106, 107, + 108, 109, -1, -1, 102, 103, 104, 105, 106, 107, + 108, 109, 79, 80, -1, -1, 83, 84, 85, 86, + 87, 88, 79, 80, -1, -1, 83, 84, 85, 86, + 87, 88, -1, -1, -1, -1, 103, -1, 105, 106, + 107, 108, 109, -1, -1, -1, -1, -1, 105, 106, + 107, 108, 109 }; const unsigned char @@ -5173,56 +5222,57 @@ namespace xsk { namespace arc { namespace t6 { 0, 11, 12, 13, 14, 15, 41, 111, 127, 128, 129, 130, 131, 132, 133, 134, 215, 110, 111, 216, 216, 65, 0, 129, 130, 131, 65, 91, 75, 75, - 112, 218, 178, 215, 37, 38, 39, 40, 42, 43, + 112, 218, 179, 215, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 69, 73, 89, 90, 106, 109, 111, 113, 114, 115, 116, 164, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 181, 182, 183, 184, 185, 186, 187, + 175, 176, 177, 178, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 66, 66, 71, 69, 215, 216, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 164, 69, 70, 215, 164, 164, 111, 115, 116, + 65, 164, 69, 70, 215, 164, 164, 65, 69, 115, + 116, 175, 176, 188, 194, 195, 196, 197, 198, 199, + 202, 203, 205, 206, 209, 210, 211, 212, 215, 216, 111, 75, 76, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 102, 103, 104, 105, 106, 107, 108, 109, 69, 69, 69, 69, 69, 69, 69, 69, 72, - 176, 177, 215, 216, 65, 73, 75, 67, 140, 215, - 69, 65, 73, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 66, 164, 164, 164, 164, 164, 164, - 164, 164, 66, 71, 164, 164, 164, 164, 164, 164, + 177, 178, 215, 65, 73, 75, 67, 140, 215, 69, + 65, 73, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 66, 164, 164, 164, 164, 164, 164, 164, + 164, 66, 71, 164, 164, 72, 73, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 69, 164, 41, 111, 214, 73, 164, 179, 180, - 215, 11, 18, 21, 22, 24, 25, 26, 27, 29, - 30, 31, 32, 33, 34, 35, 36, 68, 69, 77, + 164, 164, 164, 69, 164, 41, 111, 214, 164, 180, + 181, 215, 11, 18, 21, 22, 24, 25, 26, 27, + 29, 30, 31, 32, 33, 34, 35, 36, 68, 77, 78, 135, 136, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 166, 167, - 168, 174, 175, 187, 193, 194, 195, 196, 197, 198, - 201, 202, 205, 208, 209, 210, 211, 215, 164, 179, - 215, 71, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 71, 66, 164, - 70, 74, 70, 70, 70, 70, 70, 70, 70, 70, - 215, 66, 71, 65, 12, 135, 137, 164, 75, 65, - 135, 65, 65, 65, 65, 106, 218, 222, 74, 75, - 75, 75, 164, 65, 65, 174, 175, 205, 205, 68, - 136, 75, 75, 75, 75, 75, 16, 17, 19, 20, - 72, 77, 78, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 70, 66, 65, 164, 164, 71, - 70, 164, 164, 179, 12, 135, 75, 164, 25, 164, - 141, 166, 167, 168, 205, 215, 164, 74, 74, 75, - 179, 179, 65, 65, 65, 65, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 70, 179, 66, - 66, 164, 65, 66, 66, 65, 66, 75, 28, 71, - 66, 66, 66, 164, 164, 164, 164, 65, 66, 66, - 179, 135, 164, 135, 164, 165, 164, 215, 140, 75, - 75, 66, 66, 71, 66, 71, 66, 71, 179, 66, - 23, 66, 75, 66, 28, 75, 75, 179, 180, 75, - 180, 75, 180, 66, 135, 75, 141, 135, 164, 66, - 66, 66, 66, 66, 75, 75, 75, 135, 135 + 168, 175, 176, 202, 203, 206, 215, 164, 180, 215, + 71, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 71, 66, 164, 70, + 215, 74, 70, 70, 70, 70, 70, 70, 70, 70, + 66, 71, 65, 12, 135, 137, 164, 75, 65, 135, + 65, 65, 65, 65, 106, 218, 222, 74, 75, 75, + 75, 164, 65, 65, 206, 206, 68, 136, 75, 75, + 75, 75, 75, 16, 17, 19, 20, 77, 78, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 70, 66, 65, 164, 164, 71, 70, 164, 164, 180, + 12, 135, 75, 164, 25, 164, 141, 166, 167, 168, + 206, 215, 164, 74, 74, 75, 180, 180, 65, 65, + 65, 65, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 70, 180, 66, 66, 164, 65, 66, + 66, 65, 66, 75, 28, 71, 66, 66, 66, 164, + 164, 164, 164, 65, 66, 66, 180, 135, 164, 135, + 164, 165, 164, 215, 140, 75, 75, 66, 66, 71, + 66, 71, 66, 71, 180, 66, 23, 66, 75, 66, + 28, 75, 75, 180, 181, 75, 181, 75, 181, 66, + 135, 75, 141, 135, 164, 66, 66, 66, 66, 66, + 75, 75, 75, 135, 135 }; const unsigned char @@ -5245,15 +5295,15 @@ namespace xsk { namespace arc { namespace t6 { 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 172, 173, 174, 174, 175, 175, 176, 176, - 176, 176, 177, 177, 178, 178, 178, 179, 179, 180, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 200, 201, 201, 201, 201, 201, 201, 201, 201, - 202, 203, 204, 205, 205, 205, 205, 205, 205, 205, - 205, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 215, 216, 216, 217, 218, 219, 220, 221, - 221, 222, 222, 223, 224 + 171, 171, 172, 173, 173, 173, 173, 174, 175, 175, + 176, 176, 177, 177, 177, 177, 178, 178, 179, 179, + 179, 180, 180, 181, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 201, 202, 202, 202, 202, + 202, 202, 202, 202, 203, 204, 205, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 215, 216, 216, 217, 218, + 219, 220, 221, 221, 222, 222, 223, 224 }; const signed char @@ -5276,15 +5326,15 @@ namespace xsk { namespace arc { namespace t6 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 1, 1, 2, 2, 4, 6, - 5, 7, 8, 9, 3, 1, 0, 1, 0, 3, - 1, 6, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 3, 4, 4, 4, 4, 4, 4, 6, 4, - 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, - 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, - 1, 1, 1, 1, 1, 1, 1, 7, 1, 2, - 1, 2, 1, 1, 1 + 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, + 2, 2, 4, 6, 5, 7, 8, 9, 3, 1, + 0, 1, 0, 3, 1, 6, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, + 4, 4, 6, 4, 2, 3, 4, 4, 4, 4, + 4, 4, 4, 4, 3, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 7, 1, 2, 1, 2, 1, 1, 1 }; @@ -5311,15 +5361,15 @@ namespace xsk { namespace arc { namespace t6 { 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, - 671, 672, 676, 681, 686, 687, 690, 691, 695, 697, - 699, 701, 706, 708, 713, 715, 718, 722, 725, 729, - 731, 736, 741, 746, 751, 756, 761, 766, 771, 776, - 781, 786, 791, 796, 801, 806, 811, 816, 821, 826, - 831, 833, 838, 840, 842, 844, 846, 848, 850, 852, - 857, 862, 867, 872, 873, 874, 875, 876, 877, 878, - 879, 880, 884, 889, 894, 899, 904, 909, 914, 919, - 924, 929, 931, 936, 938, 943, 948, 953, 958, 963, - 965, 970, 972, 977, 982 + 671, 672, 676, 681, 683, 685, 687, 692, 697, 698, + 701, 702, 706, 708, 710, 712, 717, 719, 724, 726, + 729, 733, 736, 740, 742, 747, 752, 757, 762, 767, + 772, 777, 782, 787, 792, 797, 802, 807, 812, 817, + 822, 827, 832, 837, 842, 844, 849, 851, 853, 855, + 857, 859, 861, 863, 868, 873, 878, 883, 884, 885, + 886, 887, 888, 889, 890, 891, 895, 900, 905, 910, + 915, 920, 925, 930, 935, 937, 942, 944, 949, 954, + 959, 964, 969, 971, 976, 978, 983, 988 }; void @@ -5352,9 +5402,9 @@ namespace xsk { namespace arc { namespace t6 { #line 13 "parser.ypp" } } } // xsk::arc::t6 -#line 5356 "parser.cpp" +#line 5406 "parser.cpp" -#line 986 "parser.ypp" +#line 992 "parser.ypp" void xsk::arc::t6::parser::error(const xsk::arc::location& loc, const std::string& msg) diff --git a/src/t6/xsk/parser.hpp b/src/t6/xsk/parser.hpp index dded1270..08c37776 100644 --- a/src/t6/xsk/parser.hpp +++ b/src/t6/xsk/parser.hpp @@ -447,7 +447,6 @@ namespace xsk { namespace arc { namespace t6 { // expr_binary // expr_primitive // expr_object - // expr_identifier_neg char dummy6[sizeof (ast::expr)]; // expr_abs @@ -554,131 +553,134 @@ namespace xsk { namespace arc { namespace t6 { // expr_method char dummy40[sizeof (ast::expr_method::ptr)]; + // expr_negate + char dummy41[sizeof (ast::expr_negate::ptr)]; + // expr_not - char dummy41[sizeof (ast::expr_not::ptr)]; + char dummy42[sizeof (ast::expr_not::ptr)]; // expr_parameters - char dummy42[sizeof (ast::expr_parameters::ptr)]; + char dummy43[sizeof (ast::expr_parameters::ptr)]; // expr_paren - char dummy43[sizeof (ast::expr_paren::ptr)]; + char dummy44[sizeof (ast::expr_paren::ptr)]; // expr_path - char dummy44[sizeof (ast::expr_path::ptr)]; + char dummy45[sizeof (ast::expr_path::ptr)]; // expr_reference - char dummy45[sizeof (ast::expr_reference::ptr)]; + char dummy46[sizeof (ast::expr_reference::ptr)]; // expr_self - char dummy46[sizeof (ast::expr_self::ptr)]; + char dummy47[sizeof (ast::expr_self::ptr)]; // expr_size - char dummy47[sizeof (ast::expr_size::ptr)]; + char dummy48[sizeof (ast::expr_size::ptr)]; // expr_string - char dummy48[sizeof (ast::expr_string::ptr)]; + char dummy49[sizeof (ast::expr_string::ptr)]; // expr_true - char dummy49[sizeof (ast::expr_true::ptr)]; + char dummy50[sizeof (ast::expr_true::ptr)]; // expr_undefined - char dummy50[sizeof (ast::expr_undefined::ptr)]; + char dummy51[sizeof (ast::expr_undefined::ptr)]; // expr_vector - char dummy51[sizeof (ast::expr_vector::ptr)]; + char dummy52[sizeof (ast::expr_vector::ptr)]; // expr_vectorscale - char dummy52[sizeof (ast::expr_vectorscale::ptr)]; + char dummy53[sizeof (ast::expr_vectorscale::ptr)]; // expr_vectortoangles - char dummy53[sizeof (ast::expr_vectortoangles::ptr)]; + char dummy54[sizeof (ast::expr_vectortoangles::ptr)]; // include - char dummy54[sizeof (ast::include::ptr)]; + char dummy55[sizeof (ast::include::ptr)]; // program - char dummy55[sizeof (ast::program::ptr)]; + char dummy56[sizeof (ast::program::ptr)]; // stmt // stmt_or_dev - char dummy56[sizeof (ast::stmt)]; + char dummy57[sizeof (ast::stmt)]; // stmt_assign - char dummy57[sizeof (ast::stmt_assign::ptr)]; + char dummy58[sizeof (ast::stmt_assign::ptr)]; // stmt_break - char dummy58[sizeof (ast::stmt_break::ptr)]; + char dummy59[sizeof (ast::stmt_break::ptr)]; // stmt_call - char dummy59[sizeof (ast::stmt_call::ptr)]; + char dummy60[sizeof (ast::stmt_call::ptr)]; // stmt_case - char dummy60[sizeof (ast::stmt_case::ptr)]; + char dummy61[sizeof (ast::stmt_case::ptr)]; // stmt_continue - char dummy61[sizeof (ast::stmt_continue::ptr)]; + char dummy62[sizeof (ast::stmt_continue::ptr)]; // stmt_default - char dummy62[sizeof (ast::stmt_default::ptr)]; + char dummy63[sizeof (ast::stmt_default::ptr)]; // stmt_dev - char dummy63[sizeof (ast::stmt_dev::ptr)]; + char dummy64[sizeof (ast::stmt_dev::ptr)]; // stmt_dowhile - char dummy64[sizeof (ast::stmt_dowhile::ptr)]; + char dummy65[sizeof (ast::stmt_dowhile::ptr)]; // stmt_endon - char dummy65[sizeof (ast::stmt_endon::ptr)]; + char dummy66[sizeof (ast::stmt_endon::ptr)]; // stmt_expr - char dummy66[sizeof (ast::stmt_expr::ptr)]; + char dummy67[sizeof (ast::stmt_expr::ptr)]; // stmt_for - char dummy67[sizeof (ast::stmt_for::ptr)]; + char dummy68[sizeof (ast::stmt_for::ptr)]; // stmt_foreach - char dummy68[sizeof (ast::stmt_foreach::ptr)]; + char dummy69[sizeof (ast::stmt_foreach::ptr)]; // stmt_if - char dummy69[sizeof (ast::stmt_if::ptr)]; + char dummy70[sizeof (ast::stmt_if::ptr)]; // stmt_ifelse - char dummy70[sizeof (ast::stmt_ifelse::ptr)]; + char dummy71[sizeof (ast::stmt_ifelse::ptr)]; // stmt_list // stmt_or_dev_list // stmt_block - char dummy71[sizeof (ast::stmt_list::ptr)]; + char dummy72[sizeof (ast::stmt_list::ptr)]; // stmt_notify - char dummy72[sizeof (ast::stmt_notify::ptr)]; + char dummy73[sizeof (ast::stmt_notify::ptr)]; // stmt_prof_begin - char dummy73[sizeof (ast::stmt_prof_begin::ptr)]; + char dummy74[sizeof (ast::stmt_prof_begin::ptr)]; // stmt_prof_end - char dummy74[sizeof (ast::stmt_prof_end::ptr)]; + char dummy75[sizeof (ast::stmt_prof_end::ptr)]; // stmt_return - char dummy75[sizeof (ast::stmt_return::ptr)]; + char dummy76[sizeof (ast::stmt_return::ptr)]; // stmt_switch - char dummy76[sizeof (ast::stmt_switch::ptr)]; + char dummy77[sizeof (ast::stmt_switch::ptr)]; // stmt_wait - char dummy77[sizeof (ast::stmt_wait::ptr)]; + char dummy78[sizeof (ast::stmt_wait::ptr)]; // stmt_waittill - char dummy78[sizeof (ast::stmt_waittill::ptr)]; + char dummy79[sizeof (ast::stmt_waittill::ptr)]; // stmt_waittillframeend - char dummy79[sizeof (ast::stmt_waittillframeend::ptr)]; + char dummy80[sizeof (ast::stmt_waittillframeend::ptr)]; // stmt_waittillmatch - char dummy80[sizeof (ast::stmt_waittillmatch::ptr)]; + char dummy81[sizeof (ast::stmt_waittillmatch::ptr)]; // stmt_while - char dummy81[sizeof (ast::stmt_while::ptr)]; + char dummy82[sizeof (ast::stmt_while::ptr)]; // "path" // "identifier" @@ -687,7 +689,7 @@ namespace xsk { namespace arc { namespace t6 { // "hash" // "float" // "integer" - char dummy82[sizeof (std::string)]; + char dummy83[sizeof (std::string)]; }; /// The size of the largest semantic type. @@ -1054,47 +1056,47 @@ namespace xsk { namespace arc { namespace t6 { S_expr_binary = 170, // expr_binary S_expr_primitive = 171, // expr_primitive S_expr_complement = 172, // expr_complement - S_expr_not = 173, // expr_not - S_expr_call = 174, // expr_call - S_expr_method = 175, // expr_method - S_expr_function = 176, // expr_function - S_expr_pointer = 177, // expr_pointer - S_expr_parameters = 178, // expr_parameters - S_expr_arguments = 179, // expr_arguments - S_expr_arguments_no_empty = 180, // expr_arguments_no_empty - S_expr_getnextarraykey = 181, // expr_getnextarraykey - S_expr_getfirstarraykey = 182, // expr_getfirstarraykey - S_expr_getdvarcoloralpha = 183, // expr_getdvarcoloralpha - S_expr_getdvarcolorblue = 184, // expr_getdvarcolorblue - S_expr_getdvarcolorgreen = 185, // expr_getdvarcolorgreen - S_expr_getdvarcolorred = 186, // expr_getdvarcolorred - S_expr_getdvarvector = 187, // expr_getdvarvector - S_expr_getdvarfloat = 188, // expr_getdvarfloat - S_expr_getdvarint = 189, // expr_getdvarint - S_expr_getdvar = 190, // expr_getdvar - S_expr_gettime = 191, // expr_gettime - S_expr_abs = 192, // expr_abs - S_expr_vectortoangles = 193, // expr_vectortoangles - S_expr_angleclamp180 = 194, // expr_angleclamp180 - S_expr_anglestoforward = 195, // expr_anglestoforward - S_expr_anglestoright = 196, // expr_anglestoright - S_expr_anglestoup = 197, // expr_anglestoup - S_expr_vectorscale = 198, // expr_vectorscale - S_expr_isdefined = 199, // expr_isdefined - S_expr_reference = 200, // expr_reference - S_expr_array = 201, // expr_array - S_expr_field = 202, // expr_field - S_expr_size = 203, // expr_size - S_expr_paren = 204, // expr_paren - S_expr_object = 205, // expr_object - S_expr_empty_array = 206, // expr_empty_array - S_expr_undefined = 207, // expr_undefined - S_expr_game = 208, // expr_game - S_expr_self = 209, // expr_self - S_expr_anim = 210, // expr_anim - S_expr_level = 211, // expr_level - S_expr_animation = 212, // expr_animation - S_expr_identifier_neg = 213, // expr_identifier_neg + S_expr_negate = 173, // expr_negate + S_expr_not = 174, // expr_not + S_expr_call = 175, // expr_call + S_expr_method = 176, // expr_method + S_expr_function = 177, // expr_function + S_expr_pointer = 178, // expr_pointer + S_expr_parameters = 179, // expr_parameters + S_expr_arguments = 180, // expr_arguments + S_expr_arguments_no_empty = 181, // expr_arguments_no_empty + S_expr_getnextarraykey = 182, // expr_getnextarraykey + S_expr_getfirstarraykey = 183, // expr_getfirstarraykey + S_expr_getdvarcoloralpha = 184, // expr_getdvarcoloralpha + S_expr_getdvarcolorblue = 185, // expr_getdvarcolorblue + S_expr_getdvarcolorgreen = 186, // expr_getdvarcolorgreen + S_expr_getdvarcolorred = 187, // expr_getdvarcolorred + S_expr_getdvarvector = 188, // expr_getdvarvector + S_expr_getdvarfloat = 189, // expr_getdvarfloat + S_expr_getdvarint = 190, // expr_getdvarint + S_expr_getdvar = 191, // expr_getdvar + S_expr_gettime = 192, // expr_gettime + S_expr_abs = 193, // expr_abs + S_expr_vectortoangles = 194, // expr_vectortoangles + S_expr_angleclamp180 = 195, // expr_angleclamp180 + S_expr_anglestoforward = 196, // expr_anglestoforward + S_expr_anglestoright = 197, // expr_anglestoright + S_expr_anglestoup = 198, // expr_anglestoup + S_expr_vectorscale = 199, // expr_vectorscale + S_expr_isdefined = 200, // expr_isdefined + S_expr_reference = 201, // expr_reference + S_expr_array = 202, // expr_array + S_expr_field = 203, // expr_field + S_expr_size = 204, // expr_size + S_expr_paren = 205, // expr_paren + S_expr_object = 206, // expr_object + S_expr_empty_array = 207, // expr_empty_array + S_expr_undefined = 208, // expr_undefined + S_expr_game = 209, // expr_game + S_expr_self = 210, // expr_self + S_expr_anim = 211, // expr_anim + S_expr_level = 212, // expr_level + S_expr_animation = 213, // expr_animation S_expr_identifier_nosize = 214, // expr_identifier_nosize S_expr_identifier = 215, // expr_identifier S_expr_path = 216, // expr_path @@ -1172,7 +1174,6 @@ namespace xsk { namespace arc { namespace t6 { 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; @@ -1314,6 +1315,10 @@ namespace xsk { namespace arc { namespace t6 { value.move< ast::expr_method::ptr > (std::move (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (std::move (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (std::move (that.value)); break; @@ -2074,6 +2079,20 @@ namespace xsk { namespace arc { namespace t6 { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, ast::expr_negate::ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const ast::expr_negate::ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ast::expr_not::ptr&& v, location_type&& l) : Base (t) @@ -2716,7 +2735,6 @@ 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; @@ -2858,6 +2876,10 @@ switch (yykind) value.template destroy< ast::expr_method::ptr > (); break; + case symbol_kind::S_expr_negate: // expr_negate + value.template destroy< ast::expr_negate::ptr > (); + break; + case symbol_kind::S_expr_not: // expr_not value.template destroy< ast::expr_not::ptr > (); break; @@ -5167,7 +5189,7 @@ switch (yykind) // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. // Performed when YYTABLE does not specify something else to do. Zero // means the default is an error. - static const unsigned char yydefact_[]; + static const short yydefact_[]; // YYPGOTO[NTERM-NUM]. static const short yypgoto_[]; @@ -5431,7 +5453,7 @@ switch (yykind) /// Constants. enum { - yylast_ = 3494, ///< Last index in yytable_. + yylast_ = 3562, ///< Last index in yytable_. yynnts_ = 99, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -5489,7 +5511,6 @@ 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; @@ -5631,6 +5652,10 @@ switch (yykind) value.copy< ast::expr_method::ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.copy< ast::expr_negate::ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.copy< ast::expr_not::ptr > (YY_MOVE (that.value)); break; @@ -5869,7 +5894,6 @@ 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; @@ -6011,6 +6035,10 @@ switch (yykind) value.move< ast::expr_method::ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_expr_negate: // expr_negate + value.move< ast::expr_negate::ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_expr_not: // expr_not value.move< ast::expr_not::ptr > (YY_MOVE (s.value)); break; @@ -6255,7 +6283,7 @@ switch (yykind) #line 13 "parser.ypp" } } } // xsk::arc::t6 -#line 6259 "parser.hpp" +#line 6287 "parser.hpp" diff --git a/src/utils/xsk/arc/nodetree.cpp b/src/utils/xsk/arc/nodetree.cpp index 5e3f9f04..eeb8495b 100644 --- a/src/utils/xsk/arc/nodetree.cpp +++ b/src/utils/xsk/arc/nodetree.cpp @@ -292,6 +292,9 @@ expr_call::expr_call(const location& loc, ast::call call) : node(kind::expr_call expr_complement::expr_complement(expr rvalue) : node(kind::expr_complement), rvalue(std::move(rvalue)) {} expr_complement::expr_complement(const location& loc, expr rvalue) : node(kind::expr_complement, loc), rvalue(std::move(rvalue)) {} +expr_negate::expr_negate(expr rvalue) : node(kind::expr_negate), rvalue(std::move(rvalue)) {} +expr_negate::expr_negate(const location& loc, expr rvalue) : node(kind::expr_negate, loc), rvalue(std::move(rvalue)) {} + expr_not::expr_not(expr rvalue) : node(kind::expr_not), rvalue(std::move(rvalue)) {} expr_not::expr_not(const location& loc, expr rvalue) : node(kind::expr_not, loc), rvalue(std::move(rvalue)) {} @@ -806,6 +809,11 @@ auto expr_complement::print() const -> std::string return "~" + rvalue.print(); } +auto expr_negate::print() const -> std::string +{ + return "-" + rvalue.print(); +} + auto expr_not::print() const -> std::string { return "!" + rvalue.print(); @@ -1694,6 +1702,7 @@ expr::~expr() case kind::expr_method: as_method.~unique_ptr(); return; case kind::expr_call: as_call.~unique_ptr(); return; case kind::expr_complement: as_complement.~unique_ptr(); return; + case kind::expr_negate: as_negate.~unique_ptr(); return; case kind::expr_not: as_not.~unique_ptr(); return; case kind::expr_add: as_add.~unique_ptr(); return; case kind::expr_sub: as_sub.~unique_ptr(); return; diff --git a/src/utils/xsk/arc/nodetree.hpp b/src/utils/xsk/arc/nodetree.hpp index 0cf35157..abd532fa 100644 --- a/src/utils/xsk/arc/nodetree.hpp +++ b/src/utils/xsk/arc/nodetree.hpp @@ -59,6 +59,7 @@ enum class kind expr_method, expr_call, expr_complement, + expr_negate, expr_not, expr_add, expr_sub, @@ -189,6 +190,7 @@ struct expr_function; struct expr_method; struct expr_call; struct expr_complement; +struct expr_negate; struct expr_not; struct expr_binary; struct expr_add; @@ -341,6 +343,7 @@ union expr std::unique_ptr as_method; std::unique_ptr as_call; std::unique_ptr as_complement; + std::unique_ptr as_negate; std::unique_ptr as_not; std::unique_ptr as_binary; std::unique_ptr as_add; @@ -1051,6 +1054,17 @@ struct expr_complement : public node auto print() const -> std::string override; }; +struct expr_negate : public node +{ + using ptr = std::unique_ptr; + + expr rvalue; + + expr_negate(expr rvalue); + expr_negate(const location& loc, expr rvalue); + auto print() const -> std::string override; +}; + struct expr_not : public node { using ptr = std::unique_ptr; diff --git a/src/utils/xsk/gsc/nodetree.cpp b/src/utils/xsk/gsc/nodetree.cpp index a38ae8c3..fce10b8f 100644 --- a/src/utils/xsk/gsc/nodetree.cpp +++ b/src/utils/xsk/gsc/nodetree.cpp @@ -239,6 +239,9 @@ expr_call::expr_call(const location& loc, ast::call call) : node(kind::expr_call expr_complement::expr_complement(expr rvalue) : node(kind::expr_complement), rvalue(std::move(rvalue)) {} expr_complement::expr_complement(const location& loc, expr rvalue) : node(kind::expr_complement, loc), rvalue(std::move(rvalue)) {} +expr_negate::expr_negate(expr rvalue) : node(kind::expr_negate), rvalue(std::move(rvalue)) {} +expr_negate::expr_negate(const location& loc, expr rvalue) : node(kind::expr_negate, loc), rvalue(std::move(rvalue)) {} + expr_not::expr_not(expr rvalue) : node(kind::expr_not), rvalue(std::move(rvalue)) {} expr_not::expr_not(const location& loc, expr rvalue) : node(kind::expr_not, loc), rvalue(std::move(rvalue)) {} @@ -693,6 +696,11 @@ auto expr_complement::print() const -> std::string return "~" + rvalue.print(); } +auto expr_negate::print() const -> std::string +{ + return "-" + rvalue.print(); +} + auto expr_not::print() const -> std::string { return "!" + rvalue.print(); @@ -1577,6 +1585,7 @@ expr::~expr() case kind::expr_method: as_method.~unique_ptr(); return; case kind::expr_call: as_call.~unique_ptr(); return; case kind::expr_complement: as_complement.~unique_ptr(); return; + case kind::expr_negate: as_negate.~unique_ptr(); return; case kind::expr_not: as_not.~unique_ptr(); return; case kind::expr_add: as_add.~unique_ptr(); return; case kind::expr_sub: as_sub.~unique_ptr(); return; diff --git a/src/utils/xsk/gsc/nodetree.hpp b/src/utils/xsk/gsc/nodetree.hpp index a4e156d3..dca9d6f6 100644 --- a/src/utils/xsk/gsc/nodetree.hpp +++ b/src/utils/xsk/gsc/nodetree.hpp @@ -44,6 +44,7 @@ enum class kind expr_method, expr_call, expr_complement, + expr_negate, expr_not, expr_add, expr_sub, @@ -162,6 +163,7 @@ struct expr_function; struct expr_method; struct expr_call; struct expr_complement; +struct expr_negate; struct expr_not; struct expr_binary; struct expr_add; @@ -301,6 +303,7 @@ union expr std::unique_ptr as_method; std::unique_ptr as_call; std::unique_ptr as_complement; + std::unique_ptr as_negate; std::unique_ptr as_not; std::unique_ptr as_binary; std::unique_ptr as_add; @@ -843,6 +846,17 @@ struct expr_complement : public node auto print() const -> std::string override; }; +struct expr_negate : public node +{ + using ptr = std::unique_ptr; + + expr rvalue; + + expr_negate(expr rvalue); + expr_negate(const location& loc, expr rvalue); + auto print() const -> std::string override; +}; + struct expr_not : public node { using ptr = std::unique_ptr;