debug stmts

This commit is contained in:
xensik 2021-05-20 20:26:39 +02:00
parent e99263d697
commit 3d94bb6fb9
43 changed files with 14310 additions and 12004 deletions

View File

@ -55,6 +55,9 @@ RGX_DEFAULT (.|\n)
<DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); } <DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); }
<DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); } <DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); }
"breakpoint" { return h1::parser::make_BREAKPOINT(loc); }
"prof_begin" { return h1::parser::make_PROFBEGIN(loc); }
"prof_end" { return h1::parser::make_PROFEND(loc); }
"#include" { return h1::parser::make_INCLUDE(loc); } "#include" { return h1::parser::make_INCLUDE(loc); }
"#using_animtree" { return h1::parser::make_USINGTREE(loc); } "#using_animtree" { return h1::parser::make_USINGTREE(loc); }
"#animtree" { return h1::parser::make_ANIMTREE(loc); } "#animtree" { return h1::parser::make_ANIMTREE(loc); }
@ -84,7 +87,7 @@ RGX_DEFAULT (.|\n)
"true" { return h1::parser::make_TRUE(loc); } "true" { return h1::parser::make_TRUE(loc); }
"false" { return h1::parser::make_FALSE(loc); } "false" { return h1::parser::make_FALSE(loc); }
"undefined" { return h1::parser::make_UNDEFINED(loc); } "undefined" { return h1::parser::make_UNDEFINED(loc); }
"size" { return h1::parser::make_SIZE(loc); } ".size" { return h1::parser::make_SIZE(loc); }
"game" { return h1::parser::make_GAME(loc); } "game" { return h1::parser::make_GAME(loc); }
"self" { return h1::parser::make_SELF(loc); } "self" { return h1::parser::make_SELF(loc); }
"anim" { return h1::parser::make_ANIM(loc); } "anim" { return h1::parser::make_ANIM(loc); }

View File

@ -45,6 +45,9 @@ using namespace xsk::gsc;
xsk::gsc::h1::parser::symbol_type H1lex(yyscan_t yyscanner, xsk::gsc::location& loc); xsk::gsc::h1::parser::symbol_type H1lex(yyscan_t yyscanner, xsk::gsc::location& loc);
} }
%token BREAKPOINT "breakpoint"
%token PROFBEGIN "prof_begin"
%token PROFEND "prof_end"
%token INCLUDE "#include" %token INCLUDE "#include"
%token USINGTREE "#using_animtree" %token USINGTREE "#using_animtree"
%token ANIMTREE "#animtree" %token ANIMTREE "#animtree"
@ -74,7 +77,7 @@ xsk::gsc::h1::parser::symbol_type H1lex(yyscan_t yyscanner, xsk::gsc::location&
%token TRUE "true" %token TRUE "true"
%token FALSE "false" %token FALSE "false"
%token UNDEFINED "undefined" %token UNDEFINED "undefined"
%token SIZE "size" %token SIZE ".size"
%token GAME "game" %token GAME "game"
%token SELF "self" %token SELF "self"
%token ANIM "anim" %token ANIM "anim"
@ -160,6 +163,9 @@ xsk::gsc::h1::parser::symbol_type H1lex(yyscan_t yyscanner, xsk::gsc::location&
%type <stmt_break_ptr> stmt_break %type <stmt_break_ptr> stmt_break
%type <stmt_continue_ptr> stmt_continue %type <stmt_continue_ptr> stmt_continue
%type <stmt_return_ptr> stmt_return %type <stmt_return_ptr> stmt_return
%type <stmt_breakpoint_ptr> stmt_breakpoint
%type <stmt_prof_begin_ptr> stmt_prof_begin
%type <stmt_prof_end_ptr> stmt_prof_end
%type <stmt_ptr> for_stmt %type <stmt_ptr> for_stmt
%type <expr_ptr> for_expr %type <expr_ptr> for_expr
%type <expr_assign_ptr> expr_assign %type <expr_assign_ptr> expr_assign
@ -211,8 +217,8 @@ xsk::gsc::h1::parser::symbol_type H1lex(yyscan_t yyscanner, xsk::gsc::location&
%left OR %left OR
%left AND %left AND
%left BITWISE_OR %left BITWISE_OR
%left BITWISE_AND
%left BITWISE_EXOR %left BITWISE_EXOR
%left BITWISE_AND
%left EQUALITY INEQUALITY %left EQUALITY INEQUALITY
%left LESS GREATER LESS_EQUAL GREATER_EQUAL %left LESS GREATER LESS_EQUAL GREATER_EQUAL
%left LSHIFT RSHIFT %left LSHIFT RSHIFT
@ -302,6 +308,9 @@ stmt
| stmt_break { $$.as_break = std::move($1); } | stmt_break { $$.as_break = std::move($1); }
| stmt_continue { $$.as_continue = std::move($1); } | stmt_continue { $$.as_continue = std::move($1); }
| stmt_return { $$.as_return = std::move($1); } | stmt_return { $$.as_return = std::move($1); }
| stmt_breakpoint { $$.as_breakpoint = std::move($1); }
| stmt_prof_begin { $$.as_prof_begin = std::move($1); }
| stmt_prof_end { $$.as_prof_end = std::move($1); }
; ;
stmt_block stmt_block
@ -434,6 +443,21 @@ stmt_return
{ $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); } { $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); }
; ;
stmt_breakpoint
: BREAKPOINT SEMICOLON
{ $$ = std::make_unique<node_stmt_breakpoint>(@$); }
;
stmt_prof_begin
: PROFBEGIN LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_begin>(@$, std::move($3)); }
;
stmt_prof_end
: PROFEND LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_end>(@$, std::move($3)); }
;
for_stmt for_stmt
: expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); } : expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); }
| { $$.as_node = std::make_unique<node>(@$); } | { $$.as_node = std::make_unique<node>(@$); }
@ -600,7 +624,7 @@ expr_field
; ;
expr_size expr_size
: object DOT SIZE : object SIZE
{ $$ = std::make_unique<node_expr_size>(@$, std::move($1)); } { $$ = std::make_unique<node_expr_size>(@$, std::move($1)); }
; ;

View File

@ -55,6 +55,9 @@ RGX_DEFAULT (.|\n)
<DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); } <DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); }
<DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); } <DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); }
"breakpoint" { return h2::parser::make_BREAKPOINT(loc); }
"prof_begin" { return h2::parser::make_PROFBEGIN(loc); }
"prof_end" { return h2::parser::make_PROFEND(loc); }
"#include" { return h2::parser::make_INCLUDE(loc); } "#include" { return h2::parser::make_INCLUDE(loc); }
"#using_animtree" { return h2::parser::make_USINGTREE(loc); } "#using_animtree" { return h2::parser::make_USINGTREE(loc); }
"#animtree" { return h2::parser::make_ANIMTREE(loc); } "#animtree" { return h2::parser::make_ANIMTREE(loc); }
@ -84,7 +87,7 @@ RGX_DEFAULT (.|\n)
"true" { return h2::parser::make_TRUE(loc); } "true" { return h2::parser::make_TRUE(loc); }
"false" { return h2::parser::make_FALSE(loc); } "false" { return h2::parser::make_FALSE(loc); }
"undefined" { return h2::parser::make_UNDEFINED(loc); } "undefined" { return h2::parser::make_UNDEFINED(loc); }
"size" { return h2::parser::make_SIZE(loc); } ".size" { return h2::parser::make_SIZE(loc); }
"game" { return h2::parser::make_GAME(loc); } "game" { return h2::parser::make_GAME(loc); }
"self" { return h2::parser::make_SELF(loc); } "self" { return h2::parser::make_SELF(loc); }
"anim" { return h2::parser::make_ANIM(loc); } "anim" { return h2::parser::make_ANIM(loc); }

View File

@ -45,6 +45,9 @@ using namespace xsk::gsc;
xsk::gsc::h2::parser::symbol_type H2lex(yyscan_t yyscanner, xsk::gsc::location& loc); xsk::gsc::h2::parser::symbol_type H2lex(yyscan_t yyscanner, xsk::gsc::location& loc);
} }
%token BREAKPOINT "breakpoint"
%token PROFBEGIN "prof_begin"
%token PROFEND "prof_end"
%token INCLUDE "#include" %token INCLUDE "#include"
%token USINGTREE "#using_animtree" %token USINGTREE "#using_animtree"
%token ANIMTREE "#animtree" %token ANIMTREE "#animtree"
@ -74,7 +77,7 @@ xsk::gsc::h2::parser::symbol_type H2lex(yyscan_t yyscanner, xsk::gsc::location&
%token TRUE "true" %token TRUE "true"
%token FALSE "false" %token FALSE "false"
%token UNDEFINED "undefined" %token UNDEFINED "undefined"
%token SIZE "size" %token SIZE ".size"
%token GAME "game" %token GAME "game"
%token SELF "self" %token SELF "self"
%token ANIM "anim" %token ANIM "anim"
@ -160,6 +163,9 @@ xsk::gsc::h2::parser::symbol_type H2lex(yyscan_t yyscanner, xsk::gsc::location&
%type <stmt_break_ptr> stmt_break %type <stmt_break_ptr> stmt_break
%type <stmt_continue_ptr> stmt_continue %type <stmt_continue_ptr> stmt_continue
%type <stmt_return_ptr> stmt_return %type <stmt_return_ptr> stmt_return
%type <stmt_breakpoint_ptr> stmt_breakpoint
%type <stmt_prof_begin_ptr> stmt_prof_begin
%type <stmt_prof_end_ptr> stmt_prof_end
%type <stmt_ptr> for_stmt %type <stmt_ptr> for_stmt
%type <expr_ptr> for_expr %type <expr_ptr> for_expr
%type <expr_assign_ptr> expr_assign %type <expr_assign_ptr> expr_assign
@ -211,8 +217,8 @@ xsk::gsc::h2::parser::symbol_type H2lex(yyscan_t yyscanner, xsk::gsc::location&
%left OR %left OR
%left AND %left AND
%left BITWISE_OR %left BITWISE_OR
%left BITWISE_AND
%left BITWISE_EXOR %left BITWISE_EXOR
%left BITWISE_AND
%left EQUALITY INEQUALITY %left EQUALITY INEQUALITY
%left LESS GREATER LESS_EQUAL GREATER_EQUAL %left LESS GREATER LESS_EQUAL GREATER_EQUAL
%left LSHIFT RSHIFT %left LSHIFT RSHIFT
@ -302,6 +308,9 @@ stmt
| stmt_break { $$.as_break = std::move($1); } | stmt_break { $$.as_break = std::move($1); }
| stmt_continue { $$.as_continue = std::move($1); } | stmt_continue { $$.as_continue = std::move($1); }
| stmt_return { $$.as_return = std::move($1); } | stmt_return { $$.as_return = std::move($1); }
| stmt_breakpoint { $$.as_breakpoint = std::move($1); }
| stmt_prof_begin { $$.as_prof_begin = std::move($1); }
| stmt_prof_end { $$.as_prof_end = std::move($1); }
; ;
stmt_block stmt_block
@ -434,6 +443,21 @@ stmt_return
{ $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); } { $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); }
; ;
stmt_breakpoint
: BREAKPOINT SEMICOLON
{ $$ = std::make_unique<node_stmt_breakpoint>(@$); }
;
stmt_prof_begin
: PROFBEGIN LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_begin>(@$, std::move($3)); }
;
stmt_prof_end
: PROFEND LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_end>(@$, std::move($3)); }
;
for_stmt for_stmt
: expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); } : expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); }
| { $$.as_node = std::make_unique<node>(@$); } | { $$.as_node = std::make_unique<node>(@$); }
@ -600,7 +624,7 @@ expr_field
; ;
expr_size expr_size
: object DOT SIZE : object SIZE
{ $$ = std::make_unique<node_expr_size>(@$, std::move($1)); } { $$ = std::make_unique<node_expr_size>(@$, std::move($1)); }
; ;

View File

@ -55,6 +55,9 @@ RGX_DEFAULT (.|\n)
<DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); } <DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); }
<DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); } <DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); }
"breakpoint" { return iw5::parser::make_BREAKPOINT(loc); }
"prof_begin" { return iw5::parser::make_PROFBEGIN(loc); }
"prof_end" { return iw5::parser::make_PROFEND(loc); }
"#include" { return iw5::parser::make_INCLUDE(loc); } "#include" { return iw5::parser::make_INCLUDE(loc); }
"#using_animtree" { return iw5::parser::make_USINGTREE(loc); } "#using_animtree" { return iw5::parser::make_USINGTREE(loc); }
"#animtree" { return iw5::parser::make_ANIMTREE(loc); } "#animtree" { return iw5::parser::make_ANIMTREE(loc); }
@ -83,7 +86,7 @@ RGX_DEFAULT (.|\n)
"true" { return iw5::parser::make_TRUE(loc); } "true" { return iw5::parser::make_TRUE(loc); }
"false" { return iw5::parser::make_FALSE(loc); } "false" { return iw5::parser::make_FALSE(loc); }
"undefined" { return iw5::parser::make_UNDEFINED(loc); } "undefined" { return iw5::parser::make_UNDEFINED(loc); }
"size" { return iw5::parser::make_SIZE(loc); } ".size" { return iw5::parser::make_SIZE(loc); }
"game" { return iw5::parser::make_GAME(loc); } "game" { return iw5::parser::make_GAME(loc); }
"self" { return iw5::parser::make_SELF(loc); } "self" { return iw5::parser::make_SELF(loc); }
"anim" { return iw5::parser::make_ANIM(loc); } "anim" { return iw5::parser::make_ANIM(loc); }

View File

@ -45,6 +45,9 @@ using namespace xsk::gsc;
xsk::gsc::iw5::parser::symbol_type IW5lex(yyscan_t yyscanner, xsk::gsc::location& loc); xsk::gsc::iw5::parser::symbol_type IW5lex(yyscan_t yyscanner, xsk::gsc::location& loc);
} }
%token BREAKPOINT "breakpoint"
%token PROFBEGIN "prof_begin"
%token PROFEND "prof_end"
%token INCLUDE "#include" %token INCLUDE "#include"
%token USINGTREE "#using_animtree" %token USINGTREE "#using_animtree"
%token ANIMTREE "#animtree" %token ANIMTREE "#animtree"
@ -73,7 +76,7 @@ xsk::gsc::iw5::parser::symbol_type IW5lex(yyscan_t yyscanner, xsk::gsc::location
%token TRUE "true" %token TRUE "true"
%token FALSE "false" %token FALSE "false"
%token UNDEFINED "undefined" %token UNDEFINED "undefined"
%token SIZE "size" %token SIZE ".size"
%token GAME "game" %token GAME "game"
%token SELF "self" %token SELF "self"
%token ANIM "anim" %token ANIM "anim"
@ -158,6 +161,9 @@ xsk::gsc::iw5::parser::symbol_type IW5lex(yyscan_t yyscanner, xsk::gsc::location
%type <stmt_break_ptr> stmt_break %type <stmt_break_ptr> stmt_break
%type <stmt_continue_ptr> stmt_continue %type <stmt_continue_ptr> stmt_continue
%type <stmt_return_ptr> stmt_return %type <stmt_return_ptr> stmt_return
%type <stmt_breakpoint_ptr> stmt_breakpoint
%type <stmt_prof_begin_ptr> stmt_prof_begin
%type <stmt_prof_end_ptr> stmt_prof_end
%type <stmt_ptr> for_stmt %type <stmt_ptr> for_stmt
%type <expr_ptr> for_expr %type <expr_ptr> for_expr
%type <expr_assign_ptr> expr_assign %type <expr_assign_ptr> expr_assign
@ -209,8 +215,8 @@ xsk::gsc::iw5::parser::symbol_type IW5lex(yyscan_t yyscanner, xsk::gsc::location
%left OR %left OR
%left AND %left AND
%left BITWISE_OR %left BITWISE_OR
%left BITWISE_AND
%left BITWISE_EXOR %left BITWISE_EXOR
%left BITWISE_AND
%left EQUALITY INEQUALITY %left EQUALITY INEQUALITY
%left LESS GREATER LESS_EQUAL GREATER_EQUAL %left LESS GREATER LESS_EQUAL GREATER_EQUAL
%left LSHIFT RSHIFT %left LSHIFT RSHIFT
@ -299,6 +305,9 @@ stmt
| stmt_break { $$.as_break = std::move($1); } | stmt_break { $$.as_break = std::move($1); }
| stmt_continue { $$.as_continue = std::move($1); } | stmt_continue { $$.as_continue = std::move($1); }
| stmt_return { $$.as_return = std::move($1); } | stmt_return { $$.as_return = std::move($1); }
| stmt_breakpoint { $$.as_breakpoint = std::move($1); }
| stmt_prof_begin { $$.as_prof_begin = std::move($1); }
| stmt_prof_end { $$.as_prof_end = std::move($1); }
; ;
stmt_block stmt_block
@ -424,6 +433,21 @@ stmt_return
{ $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); } { $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); }
; ;
stmt_breakpoint
: BREAKPOINT SEMICOLON
{ $$ = std::make_unique<node_stmt_breakpoint>(@$); }
;
stmt_prof_begin
: PROFBEGIN LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_begin>(@$, std::move($3)); }
;
stmt_prof_end
: PROFEND LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_end>(@$, std::move($3)); }
;
for_stmt for_stmt
: expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); } : expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); }
| { $$.as_node = std::make_unique<node>(@$); } | { $$.as_node = std::make_unique<node>(@$); }
@ -590,7 +614,7 @@ expr_field
; ;
expr_size expr_size
: object DOT SIZE : object SIZE
{ $$ = std::make_unique<node_expr_size>(@$, std::move($1)); } { $$ = std::make_unique<node_expr_size>(@$, std::move($1)); }
; ;

View File

@ -55,6 +55,9 @@ RGX_DEFAULT (.|\n)
<DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); } <DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); }
<DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); } <DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); }
"breakpoint" { return iw6::parser::make_BREAKPOINT(loc); }
"prof_begin" { return iw6::parser::make_PROFBEGIN(loc); }
"prof_end" { return iw6::parser::make_PROFEND(loc); }
"#include" { return iw6::parser::make_INCLUDE(loc); } "#include" { return iw6::parser::make_INCLUDE(loc); }
"#using_animtree" { return iw6::parser::make_USINGTREE(loc); } "#using_animtree" { return iw6::parser::make_USINGTREE(loc); }
"#animtree" { return iw6::parser::make_ANIMTREE(loc); } "#animtree" { return iw6::parser::make_ANIMTREE(loc); }
@ -83,7 +86,7 @@ RGX_DEFAULT (.|\n)
"true" { return iw6::parser::make_TRUE(loc); } "true" { return iw6::parser::make_TRUE(loc); }
"false" { return iw6::parser::make_FALSE(loc); } "false" { return iw6::parser::make_FALSE(loc); }
"undefined" { return iw6::parser::make_UNDEFINED(loc); } "undefined" { return iw6::parser::make_UNDEFINED(loc); }
"size" { return iw6::parser::make_SIZE(loc); } ".size" { return iw6::parser::make_SIZE(loc); }
"game" { return iw6::parser::make_GAME(loc); } "game" { return iw6::parser::make_GAME(loc); }
"self" { return iw6::parser::make_SELF(loc); } "self" { return iw6::parser::make_SELF(loc); }
"anim" { return iw6::parser::make_ANIM(loc); } "anim" { return iw6::parser::make_ANIM(loc); }

View File

@ -45,6 +45,9 @@ using namespace xsk::gsc;
xsk::gsc::iw6::parser::symbol_type IW6lex(yyscan_t yyscanner, xsk::gsc::location& loc); xsk::gsc::iw6::parser::symbol_type IW6lex(yyscan_t yyscanner, xsk::gsc::location& loc);
} }
%token BREAKPOINT "breakpoint"
%token PROFBEGIN "prof_begin"
%token PROFEND "prof_end"
%token INCLUDE "#include" %token INCLUDE "#include"
%token USINGTREE "#using_animtree" %token USINGTREE "#using_animtree"
%token ANIMTREE "#animtree" %token ANIMTREE "#animtree"
@ -73,7 +76,7 @@ xsk::gsc::iw6::parser::symbol_type IW6lex(yyscan_t yyscanner, xsk::gsc::location
%token TRUE "true" %token TRUE "true"
%token FALSE "false" %token FALSE "false"
%token UNDEFINED "undefined" %token UNDEFINED "undefined"
%token SIZE "size" %token SIZE ".size"
%token GAME "game" %token GAME "game"
%token SELF "self" %token SELF "self"
%token ANIM "anim" %token ANIM "anim"
@ -158,6 +161,9 @@ xsk::gsc::iw6::parser::symbol_type IW6lex(yyscan_t yyscanner, xsk::gsc::location
%type <stmt_break_ptr> stmt_break %type <stmt_break_ptr> stmt_break
%type <stmt_continue_ptr> stmt_continue %type <stmt_continue_ptr> stmt_continue
%type <stmt_return_ptr> stmt_return %type <stmt_return_ptr> stmt_return
%type <stmt_breakpoint_ptr> stmt_breakpoint
%type <stmt_prof_begin_ptr> stmt_prof_begin
%type <stmt_prof_end_ptr> stmt_prof_end
%type <stmt_ptr> for_stmt %type <stmt_ptr> for_stmt
%type <expr_ptr> for_expr %type <expr_ptr> for_expr
%type <expr_assign_ptr> expr_assign %type <expr_assign_ptr> expr_assign
@ -209,8 +215,8 @@ xsk::gsc::iw6::parser::symbol_type IW6lex(yyscan_t yyscanner, xsk::gsc::location
%left OR %left OR
%left AND %left AND
%left BITWISE_OR %left BITWISE_OR
%left BITWISE_AND
%left BITWISE_EXOR %left BITWISE_EXOR
%left BITWISE_AND
%left EQUALITY INEQUALITY %left EQUALITY INEQUALITY
%left LESS GREATER LESS_EQUAL GREATER_EQUAL %left LESS GREATER LESS_EQUAL GREATER_EQUAL
%left LSHIFT RSHIFT %left LSHIFT RSHIFT
@ -299,6 +305,9 @@ stmt
| stmt_break { $$.as_break = std::move($1); } | stmt_break { $$.as_break = std::move($1); }
| stmt_continue { $$.as_continue = std::move($1); } | stmt_continue { $$.as_continue = std::move($1); }
| stmt_return { $$.as_return = std::move($1); } | stmt_return { $$.as_return = std::move($1); }
| stmt_breakpoint { $$.as_breakpoint = std::move($1); }
| stmt_prof_begin { $$.as_prof_begin = std::move($1); }
| stmt_prof_end { $$.as_prof_end = std::move($1); }
; ;
stmt_block stmt_block
@ -424,6 +433,21 @@ stmt_return
{ $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); } { $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); }
; ;
stmt_breakpoint
: BREAKPOINT SEMICOLON
{ $$ = std::make_unique<node_stmt_breakpoint>(@$); }
;
stmt_prof_begin
: PROFBEGIN LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_begin>(@$, std::move($3)); }
;
stmt_prof_end
: PROFEND LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_end>(@$, std::move($3)); }
;
for_stmt for_stmt
: expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); } : expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); }
| { $$.as_node = std::make_unique<node>(@$); } | { $$.as_node = std::make_unique<node>(@$); }
@ -590,7 +614,7 @@ expr_field
; ;
expr_size expr_size
: object DOT SIZE : object SIZE
{ $$ = std::make_unique<node_expr_size>(@$, std::move($1)); } { $$ = std::make_unique<node_expr_size>(@$, std::move($1)); }
; ;

View File

@ -55,6 +55,9 @@ RGX_DEFAULT (.|\n)
<DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); } <DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); }
<DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); } <DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); }
"breakpoint" { return iw7::parser::make_BREAKPOINT(loc); }
"prof_begin" { return iw7::parser::make_PROFBEGIN(loc); }
"prof_end" { return iw7::parser::make_PROFEND(loc); }
"#include" { return iw7::parser::make_INCLUDE(loc); } "#include" { return iw7::parser::make_INCLUDE(loc); }
"#using_animtree" { return iw7::parser::make_USINGTREE(loc); } "#using_animtree" { return iw7::parser::make_USINGTREE(loc); }
"#animtree" { return iw7::parser::make_ANIMTREE(loc); } "#animtree" { return iw7::parser::make_ANIMTREE(loc); }
@ -83,7 +86,7 @@ RGX_DEFAULT (.|\n)
"true" { return iw7::parser::make_TRUE(loc); } "true" { return iw7::parser::make_TRUE(loc); }
"false" { return iw7::parser::make_FALSE(loc); } "false" { return iw7::parser::make_FALSE(loc); }
"undefined" { return iw7::parser::make_UNDEFINED(loc); } "undefined" { return iw7::parser::make_UNDEFINED(loc); }
"size" { return iw7::parser::make_SIZE(loc); } ".size" { return iw7::parser::make_SIZE(loc); }
"game" { return iw7::parser::make_GAME(loc); } "game" { return iw7::parser::make_GAME(loc); }
"self" { return iw7::parser::make_SELF(loc); } "self" { return iw7::parser::make_SELF(loc); }
"anim" { return iw7::parser::make_ANIM(loc); } "anim" { return iw7::parser::make_ANIM(loc); }

View File

@ -45,6 +45,9 @@ using namespace xsk::gsc;
xsk::gsc::iw7::parser::symbol_type IW7lex(yyscan_t yyscanner, xsk::gsc::location& loc); xsk::gsc::iw7::parser::symbol_type IW7lex(yyscan_t yyscanner, xsk::gsc::location& loc);
} }
%token BREAKPOINT "breakpoint"
%token PROFBEGIN "prof_begin"
%token PROFEND "prof_end"
%token INCLUDE "#include" %token INCLUDE "#include"
%token USINGTREE "#using_animtree" %token USINGTREE "#using_animtree"
%token ANIMTREE "#animtree" %token ANIMTREE "#animtree"
@ -73,7 +76,7 @@ xsk::gsc::iw7::parser::symbol_type IW7lex(yyscan_t yyscanner, xsk::gsc::location
%token TRUE "true" %token TRUE "true"
%token FALSE "false" %token FALSE "false"
%token UNDEFINED "undefined" %token UNDEFINED "undefined"
%token SIZE "size" %token SIZE ".size"
%token GAME "game" %token GAME "game"
%token SELF "self" %token SELF "self"
%token ANIM "anim" %token ANIM "anim"
@ -158,6 +161,9 @@ xsk::gsc::iw7::parser::symbol_type IW7lex(yyscan_t yyscanner, xsk::gsc::location
%type <stmt_break_ptr> stmt_break %type <stmt_break_ptr> stmt_break
%type <stmt_continue_ptr> stmt_continue %type <stmt_continue_ptr> stmt_continue
%type <stmt_return_ptr> stmt_return %type <stmt_return_ptr> stmt_return
%type <stmt_breakpoint_ptr> stmt_breakpoint
%type <stmt_prof_begin_ptr> stmt_prof_begin
%type <stmt_prof_end_ptr> stmt_prof_end
%type <stmt_ptr> for_stmt %type <stmt_ptr> for_stmt
%type <expr_ptr> for_expr %type <expr_ptr> for_expr
%type <expr_assign_ptr> expr_assign %type <expr_assign_ptr> expr_assign
@ -209,8 +215,8 @@ xsk::gsc::iw7::parser::symbol_type IW7lex(yyscan_t yyscanner, xsk::gsc::location
%left OR %left OR
%left AND %left AND
%left BITWISE_OR %left BITWISE_OR
%left BITWISE_AND
%left BITWISE_EXOR %left BITWISE_EXOR
%left BITWISE_AND
%left EQUALITY INEQUALITY %left EQUALITY INEQUALITY
%left LESS GREATER LESS_EQUAL GREATER_EQUAL %left LESS GREATER LESS_EQUAL GREATER_EQUAL
%left LSHIFT RSHIFT %left LSHIFT RSHIFT
@ -299,6 +305,9 @@ stmt
| stmt_break { $$.as_break = std::move($1); } | stmt_break { $$.as_break = std::move($1); }
| stmt_continue { $$.as_continue = std::move($1); } | stmt_continue { $$.as_continue = std::move($1); }
| stmt_return { $$.as_return = std::move($1); } | stmt_return { $$.as_return = std::move($1); }
| stmt_breakpoint { $$.as_breakpoint = std::move($1); }
| stmt_prof_begin { $$.as_prof_begin = std::move($1); }
| stmt_prof_end { $$.as_prof_end = std::move($1); }
; ;
stmt_block stmt_block
@ -424,6 +433,21 @@ stmt_return
{ $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); } { $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); }
; ;
stmt_breakpoint
: BREAKPOINT SEMICOLON
{ $$ = std::make_unique<node_stmt_breakpoint>(@$); }
;
stmt_prof_begin
: PROFBEGIN LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_begin>(@$, std::move($3)); }
;
stmt_prof_end
: PROFEND LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_end>(@$, std::move($3)); }
;
for_stmt for_stmt
: expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); } : expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); }
| { $$.as_node = std::make_unique<node>(@$); } | { $$.as_node = std::make_unique<node>(@$); }
@ -590,7 +614,7 @@ expr_field
; ;
expr_size expr_size
: object DOT SIZE : object SIZE
{ $$ = std::make_unique<node_expr_size>(@$, std::move($1)); } { $$ = std::make_unique<node_expr_size>(@$, std::move($1)); }
; ;

View File

@ -55,6 +55,9 @@ RGX_DEFAULT (.|\n)
<DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); } <DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); }
<DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); } <DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); }
"breakpoint" { return s1::parser::make_BREAKPOINT(loc); }
"prof_begin" { return s1::parser::make_PROFBEGIN(loc); }
"prof_end" { return s1::parser::make_PROFEND(loc); }
"#include" { return s1::parser::make_INCLUDE(loc); } "#include" { return s1::parser::make_INCLUDE(loc); }
"#using_animtree" { return s1::parser::make_USINGTREE(loc); } "#using_animtree" { return s1::parser::make_USINGTREE(loc); }
"#animtree" { return s1::parser::make_ANIMTREE(loc); } "#animtree" { return s1::parser::make_ANIMTREE(loc); }
@ -84,7 +87,7 @@ RGX_DEFAULT (.|\n)
"true" { return s1::parser::make_TRUE(loc); } "true" { return s1::parser::make_TRUE(loc); }
"false" { return s1::parser::make_FALSE(loc); } "false" { return s1::parser::make_FALSE(loc); }
"undefined" { return s1::parser::make_UNDEFINED(loc); } "undefined" { return s1::parser::make_UNDEFINED(loc); }
"size" { return s1::parser::make_SIZE(loc); } ".size" { return s1::parser::make_SIZE(loc); }
"game" { return s1::parser::make_GAME(loc); } "game" { return s1::parser::make_GAME(loc); }
"self" { return s1::parser::make_SELF(loc); } "self" { return s1::parser::make_SELF(loc); }
"anim" { return s1::parser::make_ANIM(loc); } "anim" { return s1::parser::make_ANIM(loc); }

View File

@ -45,6 +45,9 @@ using namespace xsk::gsc;
xsk::gsc::s1::parser::symbol_type S1lex(yyscan_t yyscanner, xsk::gsc::location& loc); xsk::gsc::s1::parser::symbol_type S1lex(yyscan_t yyscanner, xsk::gsc::location& loc);
} }
%token BREAKPOINT "breakpoint"
%token PROFBEGIN "prof_begin"
%token PROFEND "prof_end"
%token INCLUDE "#include" %token INCLUDE "#include"
%token USINGTREE "#using_animtree" %token USINGTREE "#using_animtree"
%token ANIMTREE "#animtree" %token ANIMTREE "#animtree"
@ -74,7 +77,7 @@ xsk::gsc::s1::parser::symbol_type S1lex(yyscan_t yyscanner, xsk::gsc::location&
%token TRUE "true" %token TRUE "true"
%token FALSE "false" %token FALSE "false"
%token UNDEFINED "undefined" %token UNDEFINED "undefined"
%token SIZE "size" %token SIZE ".size"
%token GAME "game" %token GAME "game"
%token SELF "self" %token SELF "self"
%token ANIM "anim" %token ANIM "anim"
@ -160,6 +163,9 @@ xsk::gsc::s1::parser::symbol_type S1lex(yyscan_t yyscanner, xsk::gsc::location&
%type <stmt_break_ptr> stmt_break %type <stmt_break_ptr> stmt_break
%type <stmt_continue_ptr> stmt_continue %type <stmt_continue_ptr> stmt_continue
%type <stmt_return_ptr> stmt_return %type <stmt_return_ptr> stmt_return
%type <stmt_breakpoint_ptr> stmt_breakpoint
%type <stmt_prof_begin_ptr> stmt_prof_begin
%type <stmt_prof_end_ptr> stmt_prof_end
%type <stmt_ptr> for_stmt %type <stmt_ptr> for_stmt
%type <expr_ptr> for_expr %type <expr_ptr> for_expr
%type <expr_assign_ptr> expr_assign %type <expr_assign_ptr> expr_assign
@ -211,8 +217,8 @@ xsk::gsc::s1::parser::symbol_type S1lex(yyscan_t yyscanner, xsk::gsc::location&
%left OR %left OR
%left AND %left AND
%left BITWISE_OR %left BITWISE_OR
%left BITWISE_AND
%left BITWISE_EXOR %left BITWISE_EXOR
%left BITWISE_AND
%left EQUALITY INEQUALITY %left EQUALITY INEQUALITY
%left LESS GREATER LESS_EQUAL GREATER_EQUAL %left LESS GREATER LESS_EQUAL GREATER_EQUAL
%left LSHIFT RSHIFT %left LSHIFT RSHIFT
@ -302,6 +308,9 @@ stmt
| stmt_break { $$.as_break = std::move($1); } | stmt_break { $$.as_break = std::move($1); }
| stmt_continue { $$.as_continue = std::move($1); } | stmt_continue { $$.as_continue = std::move($1); }
| stmt_return { $$.as_return = std::move($1); } | stmt_return { $$.as_return = std::move($1); }
| stmt_breakpoint { $$.as_breakpoint = std::move($1); }
| stmt_prof_begin { $$.as_prof_begin = std::move($1); }
| stmt_prof_end { $$.as_prof_end = std::move($1); }
; ;
stmt_block stmt_block
@ -434,6 +443,21 @@ stmt_return
{ $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); } { $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); }
; ;
stmt_breakpoint
: BREAKPOINT SEMICOLON
{ $$ = std::make_unique<node_stmt_breakpoint>(@$); }
;
stmt_prof_begin
: PROFBEGIN LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_begin>(@$, std::move($3)); }
;
stmt_prof_end
: PROFEND LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_end>(@$, std::move($3)); }
;
for_stmt for_stmt
: expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); } : expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); }
| { $$.as_node = std::make_unique<node>(@$); } | { $$.as_node = std::make_unique<node>(@$); }
@ -600,7 +624,7 @@ expr_field
; ;
expr_size expr_size
: object DOT SIZE : object SIZE
{ $$ = std::make_unique<node_expr_size>(@$, std::move($1)); } { $$ = std::make_unique<node_expr_size>(@$, std::move($1)); }
; ;

View File

@ -55,6 +55,9 @@ RGX_DEFAULT (.|\n)
<DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); } <DEVELOPER_BLOCK_STATE>\n { loc.lines(yyleng); loc.step(); }
<DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); } <DEVELOPER_BLOCK_STATE>"#/" { BEGIN(INITIAL); }
"breakpoint" { return s2::parser::make_BREAKPOINT(loc); }
"prof_begin" { return s2::parser::make_PROFBEGIN(loc); }
"prof_end" { return s2::parser::make_PROFEND(loc); }
"#include" { return s2::parser::make_INCLUDE(loc); } "#include" { return s2::parser::make_INCLUDE(loc); }
"#using_animtree" { return s2::parser::make_USINGTREE(loc); } "#using_animtree" { return s2::parser::make_USINGTREE(loc); }
"#animtree" { return s2::parser::make_ANIMTREE(loc); } "#animtree" { return s2::parser::make_ANIMTREE(loc); }
@ -84,7 +87,7 @@ RGX_DEFAULT (.|\n)
"true" { return s2::parser::make_TRUE(loc); } "true" { return s2::parser::make_TRUE(loc); }
"false" { return s2::parser::make_FALSE(loc); } "false" { return s2::parser::make_FALSE(loc); }
"undefined" { return s2::parser::make_UNDEFINED(loc); } "undefined" { return s2::parser::make_UNDEFINED(loc); }
"size" { return s2::parser::make_SIZE(loc); } ".size" { return s2::parser::make_SIZE(loc); }
"game" { return s2::parser::make_GAME(loc); } "game" { return s2::parser::make_GAME(loc); }
"self" { return s2::parser::make_SELF(loc); } "self" { return s2::parser::make_SELF(loc); }
"anim" { return s2::parser::make_ANIM(loc); } "anim" { return s2::parser::make_ANIM(loc); }

View File

@ -45,6 +45,9 @@ using namespace xsk::gsc;
xsk::gsc::s2::parser::symbol_type S2lex(yyscan_t yyscanner, xsk::gsc::location& loc); xsk::gsc::s2::parser::symbol_type S2lex(yyscan_t yyscanner, xsk::gsc::location& loc);
} }
%token BREAKPOINT "breakpoint"
%token PROFBEGIN "prof_begin"
%token PROFEND "prof_end"
%token INCLUDE "#include" %token INCLUDE "#include"
%token USINGTREE "#using_animtree" %token USINGTREE "#using_animtree"
%token ANIMTREE "#animtree" %token ANIMTREE "#animtree"
@ -74,7 +77,7 @@ xsk::gsc::s2::parser::symbol_type S2lex(yyscan_t yyscanner, xsk::gsc::location&
%token TRUE "true" %token TRUE "true"
%token FALSE "false" %token FALSE "false"
%token UNDEFINED "undefined" %token UNDEFINED "undefined"
%token SIZE "size" %token SIZE ".size"
%token GAME "game" %token GAME "game"
%token SELF "self" %token SELF "self"
%token ANIM "anim" %token ANIM "anim"
@ -160,6 +163,9 @@ xsk::gsc::s2::parser::symbol_type S2lex(yyscan_t yyscanner, xsk::gsc::location&
%type <stmt_break_ptr> stmt_break %type <stmt_break_ptr> stmt_break
%type <stmt_continue_ptr> stmt_continue %type <stmt_continue_ptr> stmt_continue
%type <stmt_return_ptr> stmt_return %type <stmt_return_ptr> stmt_return
%type <stmt_breakpoint_ptr> stmt_breakpoint
%type <stmt_prof_begin_ptr> stmt_prof_begin
%type <stmt_prof_end_ptr> stmt_prof_end
%type <stmt_ptr> for_stmt %type <stmt_ptr> for_stmt
%type <expr_ptr> for_expr %type <expr_ptr> for_expr
%type <expr_assign_ptr> expr_assign %type <expr_assign_ptr> expr_assign
@ -211,8 +217,8 @@ xsk::gsc::s2::parser::symbol_type S2lex(yyscan_t yyscanner, xsk::gsc::location&
%left OR %left OR
%left AND %left AND
%left BITWISE_OR %left BITWISE_OR
%left BITWISE_AND
%left BITWISE_EXOR %left BITWISE_EXOR
%left BITWISE_AND
%left EQUALITY INEQUALITY %left EQUALITY INEQUALITY
%left LESS GREATER LESS_EQUAL GREATER_EQUAL %left LESS GREATER LESS_EQUAL GREATER_EQUAL
%left LSHIFT RSHIFT %left LSHIFT RSHIFT
@ -302,6 +308,9 @@ stmt
| stmt_break { $$.as_break = std::move($1); } | stmt_break { $$.as_break = std::move($1); }
| stmt_continue { $$.as_continue = std::move($1); } | stmt_continue { $$.as_continue = std::move($1); }
| stmt_return { $$.as_return = std::move($1); } | stmt_return { $$.as_return = std::move($1); }
| stmt_breakpoint { $$.as_breakpoint = std::move($1); }
| stmt_prof_begin { $$.as_prof_begin = std::move($1); }
| stmt_prof_end { $$.as_prof_end = std::move($1); }
; ;
stmt_block stmt_block
@ -434,6 +443,21 @@ stmt_return
{ $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); } { $$ = std::make_unique<node_stmt_return>(@$, std::make_unique<node>(@$)); }
; ;
stmt_breakpoint
: BREAKPOINT SEMICOLON
{ $$ = std::make_unique<node_stmt_breakpoint>(@$); }
;
stmt_prof_begin
: PROFBEGIN LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_begin>(@$, std::move($3)); }
;
stmt_prof_end
: PROFEND LPAREN expr_arguments RPAREN SEMICOLON
{ $$ = std::make_unique<node_stmt_prof_end>(@$, std::move($3)); }
;
for_stmt for_stmt
: expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); } : expr_assign { $$.as_list = std::make_unique<node_stmt_list>(@$); $$.as_list->stmts.push_back(stmt_ptr(std::make_unique<node_stmt_assign>(@$, std::move($1)))); }
| { $$.as_node = std::make_unique<node>(@$); } | { $$.as_node = std::make_unique<node>(@$); }
@ -600,7 +624,7 @@ expr_field
; ;
expr_size expr_size
: object DOT SIZE : object SIZE
{ $$ = std::make_unique<node_expr_size>(@$, std::move($1)); } { $$ = std::make_unique<node_expr_size>(@$, std::move($1)); }
; ;

File diff suppressed because it is too large Load Diff

View File

@ -700,7 +700,7 @@ extern int yylex (yyscan_t yyscanner);
#undef yyTABLES_NAME #undef yyTABLES_NAME
#endif #endif
#line 146 "lexer.lpp" #line 149 "lexer.lpp"
#line 706 "lexer.hpp" #line 706 "lexer.hpp"

File diff suppressed because it is too large Load Diff

View File

@ -510,88 +510,97 @@ namespace xsk { namespace gsc { namespace h1 {
// stmt_break // stmt_break
char dummy27[sizeof (stmt_break_ptr)]; char dummy27[sizeof (stmt_break_ptr)];
// stmt_breakpoint
char dummy28[sizeof (stmt_breakpoint_ptr)];
// stmt_call // stmt_call
char dummy28[sizeof (stmt_call_ptr)]; char dummy29[sizeof (stmt_call_ptr)];
// stmt_case // stmt_case
char dummy29[sizeof (stmt_case_ptr)]; char dummy30[sizeof (stmt_case_ptr)];
// stmt_continue // stmt_continue
char dummy30[sizeof (stmt_continue_ptr)]; char dummy31[sizeof (stmt_continue_ptr)];
// stmt_default // stmt_default
char dummy31[sizeof (stmt_default_ptr)]; char dummy32[sizeof (stmt_default_ptr)];
// stmt_endon // stmt_endon
char dummy32[sizeof (stmt_endon_ptr)]; char dummy33[sizeof (stmt_endon_ptr)];
// stmt_for // stmt_for
char dummy33[sizeof (stmt_for_ptr)]; char dummy34[sizeof (stmt_for_ptr)];
// stmt_foreach // stmt_foreach
char dummy34[sizeof (stmt_foreach_ptr)]; char dummy35[sizeof (stmt_foreach_ptr)];
// stmt_if // stmt_if
char dummy35[sizeof (stmt_if_ptr)]; char dummy36[sizeof (stmt_if_ptr)];
// stmt_ifelse // stmt_ifelse
char dummy36[sizeof (stmt_ifelse_ptr)]; char dummy37[sizeof (stmt_ifelse_ptr)];
// stmt_block // stmt_block
// stmt_list // stmt_list
char dummy37[sizeof (stmt_list_ptr)]; char dummy38[sizeof (stmt_list_ptr)];
// stmt_notify // stmt_notify
char dummy38[sizeof (stmt_notify_ptr)]; char dummy39[sizeof (stmt_notify_ptr)];
// stmt_prof_begin
char dummy40[sizeof (stmt_prof_begin_ptr)];
// stmt_prof_end
char dummy41[sizeof (stmt_prof_end_ptr)];
// stmt // stmt
// for_stmt // for_stmt
char dummy39[sizeof (stmt_ptr)]; char dummy42[sizeof (stmt_ptr)];
// stmt_return // stmt_return
char dummy40[sizeof (stmt_return_ptr)]; char dummy43[sizeof (stmt_return_ptr)];
// stmt_switch // stmt_switch
char dummy41[sizeof (stmt_switch_ptr)]; char dummy44[sizeof (stmt_switch_ptr)];
// stmt_wait // stmt_wait
char dummy42[sizeof (stmt_wait_ptr)]; char dummy45[sizeof (stmt_wait_ptr)];
// stmt_waitframe // stmt_waitframe
char dummy43[sizeof (stmt_waitframe_ptr)]; char dummy46[sizeof (stmt_waitframe_ptr)];
// stmt_waittill // stmt_waittill
char dummy44[sizeof (stmt_waittill_ptr)]; char dummy47[sizeof (stmt_waittill_ptr)];
// stmt_waittillframeend // stmt_waittillframeend
char dummy45[sizeof (stmt_waittillframeend_ptr)]; char dummy48[sizeof (stmt_waittillframeend_ptr)];
// stmt_waittillmatch // stmt_waittillmatch
char dummy46[sizeof (stmt_waittillmatch_ptr)]; char dummy49[sizeof (stmt_waittillmatch_ptr)];
// stmt_while // stmt_while
char dummy47[sizeof (stmt_while_ptr)]; char dummy50[sizeof (stmt_while_ptr)];
// string // string
char dummy48[sizeof (string_ptr)]; char dummy51[sizeof (string_ptr)];
// thisthread // thisthread
char dummy49[sizeof (thisthread_ptr)]; char dummy52[sizeof (thisthread_ptr)];
// thread // thread
char dummy50[sizeof (thread_ptr)]; char dummy53[sizeof (thread_ptr)];
// true // true
char dummy51[sizeof (true_ptr)]; char dummy54[sizeof (true_ptr)];
// undefined // undefined
char dummy52[sizeof (undefined_ptr)]; char dummy55[sizeof (undefined_ptr)];
// usingtree // usingtree
char dummy53[sizeof (usingtree_ptr)]; char dummy56[sizeof (usingtree_ptr)];
// vector // vector
char dummy54[sizeof (vector_ptr)]; char dummy57[sizeof (vector_ptr)];
}; };
/// The size of the largest semantic type. /// The size of the largest semantic type.
@ -643,98 +652,101 @@ namespace xsk { namespace gsc { namespace h1 {
H1EOF = 0, // "end of file" H1EOF = 0, // "end of file"
H1error = 1, // error H1error = 1, // error
H1UNDEF = 2, // "invalid token" H1UNDEF = 2, // "invalid token"
INCLUDE = 3, // "#include" BREAKPOINT = 3, // "breakpoint"
USINGTREE = 4, // "#using_animtree" PROFBEGIN = 4, // "prof_begin"
ANIMTREE = 5, // "#animtree" PROFEND = 5, // "prof_end"
ENDON = 6, // "endon" INCLUDE = 6, // "#include"
NOTIFY = 7, // "notify" USINGTREE = 7, // "#using_animtree"
WAIT = 8, // "wait" ANIMTREE = 8, // "#animtree"
WAITTILL = 9, // "waittill" ENDON = 9, // "endon"
WAITTILLMATCH = 10, // "waittillmatch" NOTIFY = 10, // "notify"
WAITTILLFRAMEEND = 11, // "waittillframeend" WAIT = 11, // "wait"
WAITFRAME = 12, // "waitframe" WAITTILL = 12, // "waittill"
IF = 13, // "if" WAITTILLMATCH = 13, // "waittillmatch"
ELSE = 14, // "else" WAITTILLFRAMEEND = 14, // "waittillframeend"
WHILE = 15, // "while" WAITFRAME = 15, // "waitframe"
FOR = 16, // "for" IF = 16, // "if"
FOREACH = 17, // "foreach" ELSE = 17, // "else"
IN = 18, // "in" WHILE = 18, // "while"
SWITCH = 19, // "switch" FOR = 19, // "for"
CASE = 20, // "case" FOREACH = 20, // "foreach"
DEFAULT = 21, // "default" IN = 21, // "in"
BREAK = 22, // "break" SWITCH = 22, // "switch"
CONTINUE = 23, // "continue" CASE = 23, // "case"
RETURN = 24, // "return" DEFAULT = 24, // "default"
THREAD = 25, // "thread" BREAK = 25, // "break"
CHILDTHREAD = 26, // "childthread" CONTINUE = 26, // "continue"
THISTHREAD = 27, // "thisthread" RETURN = 27, // "return"
CALL = 28, // "call" THREAD = 28, // "thread"
TRUE = 29, // "true" CHILDTHREAD = 29, // "childthread"
FALSE = 30, // "false" THISTHREAD = 30, // "thisthread"
UNDEFINED = 31, // "undefined" CALL = 31, // "call"
SIZE = 32, // "size" TRUE = 32, // "true"
GAME = 33, // "game" FALSE = 33, // "false"
SELF = 34, // "self" UNDEFINED = 34, // "undefined"
ANIM = 35, // "anim" SIZE = 35, // ".size"
LEVEL = 36, // "level" GAME = 36, // "game"
LPAREN = 37, // "(" SELF = 37, // "self"
RPAREN = 38, // ")" ANIM = 38, // "anim"
LBRACE = 39, // "{" LEVEL = 39, // "level"
RBRACE = 40, // "}" LPAREN = 40, // "("
LBRACKET = 41, // "[" RPAREN = 41, // ")"
RBRACKET = 42, // "]" LBRACE = 42, // "{"
COMMA = 43, // "," RBRACE = 43, // "}"
DOT = 44, // "." LBRACKET = 44, // "["
DOUBLECOLON = 45, // "::" RBRACKET = 45, // "]"
COLON = 46, // ":" COMMA = 46, // ","
SEMICOLON = 47, // ";" DOT = 47, // "."
INCREMENT = 48, // "++" DOUBLECOLON = 48, // "::"
DECREMENT = 49, // "--" COLON = 49, // ":"
LSHIFT = 50, // "<<" SEMICOLON = 50, // ";"
RSHIFT = 51, // ">>" INCREMENT = 51, // "++"
OR = 52, // "||" DECREMENT = 52, // "--"
AND = 53, // "&&" LSHIFT = 53, // "<<"
EQUALITY = 54, // "==" RSHIFT = 54, // ">>"
INEQUALITY = 55, // "!=" OR = 55, // "||"
LESS_EQUAL = 56, // "<=" AND = 56, // "&&"
GREATER_EQUAL = 57, // ">=" EQUALITY = 57, // "=="
LESS = 58, // "<" INEQUALITY = 58, // "!="
GREATER = 59, // ">" LESS_EQUAL = 59, // "<="
NOT = 60, // "!" GREATER_EQUAL = 60, // ">="
COMPLEMENT = 61, // "~" LESS = 61, // "<"
ASSIGN = 62, // "=" GREATER = 62, // ">"
ASSIGN_ADD = 63, // "+=" NOT = 63, // "!"
ASSIGN_SUB = 64, // "-=" COMPLEMENT = 64, // "~"
ASSIGN_MULT = 65, // "*=" ASSIGN = 65, // "="
ASSIGN_DIV = 66, // "/=" ASSIGN_ADD = 66, // "+="
ASSIGN_MOD = 67, // "%=" ASSIGN_SUB = 67, // "-="
ASSIGN_BITWISE_OR = 68, // "|=" ASSIGN_MULT = 68, // "*="
ASSIGN_BITWISE_AND = 69, // "&=" ASSIGN_DIV = 69, // "/="
ASSIGN_BITWISE_EXOR = 70, // "^=" ASSIGN_MOD = 70, // "%="
ASSIGN_RSHIFT = 71, // ">>=" ASSIGN_BITWISE_OR = 71, // "|="
ASSIGN_LSHIFT = 72, // "<<=" ASSIGN_BITWISE_AND = 72, // "&="
BITWISE_OR = 73, // "|" ASSIGN_BITWISE_EXOR = 73, // "^="
BITWISE_AND = 74, // "&" ASSIGN_RSHIFT = 74, // ">>="
BITWISE_EXOR = 75, // "^" ASSIGN_LSHIFT = 75, // "<<="
ADD = 76, // "+" BITWISE_OR = 76, // "|"
SUB = 77, // "-" BITWISE_AND = 77, // "&"
MULT = 78, // "*" BITWISE_EXOR = 78, // "^"
DIV = 79, // "/" ADD = 79, // "+"
MOD = 80, // "%" SUB = 80, // "-"
FILE = 81, // "file path" MULT = 81, // "*"
NAME = 82, // "identifier" DIV = 82, // "/"
STRING = 83, // "string literal" MOD = 83, // "%"
ISTRING = 84, // "localized string" FILE = 84, // "file path"
FLOAT = 85, // "float" NAME = 85, // "identifier"
INTEGER = 86, // "int" STRING = 86, // "string literal"
ADD_ARRAY = 87, // ADD_ARRAY ISTRING = 87, // "localized string"
THEN = 88, // THEN FLOAT = 88, // "float"
NEG = 89, // NEG INTEGER = 89, // "int"
ANIMREF = 90, // ANIMREF ADD_ARRAY = 90, // ADD_ARRAY
PREINC = 91, // PREINC THEN = 91, // THEN
PREDEC = 92, // PREDEC NEG = 92, // NEG
POSTINC = 93, // POSTINC ANIMREF = 93, // ANIMREF
POSTDEC = 94 // POSTDEC PREINC = 94, // PREINC
PREDEC = 95, // PREDEC
POSTINC = 96, // POSTINC
POSTDEC = 97 // POSTDEC
}; };
/// Backward compatibility alias (Bison 3.6). /// Backward compatibility alias (Bison 3.6).
typedef token_kind_type yytokentype; typedef token_kind_type yytokentype;
@ -751,176 +763,182 @@ namespace xsk { namespace gsc { namespace h1 {
{ {
enum symbol_kind_type enum symbol_kind_type
{ {
YYNTOKENS = 95, ///< Number of tokens. YYNTOKENS = 98, ///< Number of tokens.
S_YYEMPTY = -2, S_YYEMPTY = -2,
S_YYEOF = 0, // "end of file" S_YYEOF = 0, // "end of file"
S_YYerror = 1, // error S_YYerror = 1, // error
S_YYUNDEF = 2, // "invalid token" S_YYUNDEF = 2, // "invalid token"
S_INCLUDE = 3, // "#include" S_BREAKPOINT = 3, // "breakpoint"
S_USINGTREE = 4, // "#using_animtree" S_PROFBEGIN = 4, // "prof_begin"
S_ANIMTREE = 5, // "#animtree" S_PROFEND = 5, // "prof_end"
S_ENDON = 6, // "endon" S_INCLUDE = 6, // "#include"
S_NOTIFY = 7, // "notify" S_USINGTREE = 7, // "#using_animtree"
S_WAIT = 8, // "wait" S_ANIMTREE = 8, // "#animtree"
S_WAITTILL = 9, // "waittill" S_ENDON = 9, // "endon"
S_WAITTILLMATCH = 10, // "waittillmatch" S_NOTIFY = 10, // "notify"
S_WAITTILLFRAMEEND = 11, // "waittillframeend" S_WAIT = 11, // "wait"
S_WAITFRAME = 12, // "waitframe" S_WAITTILL = 12, // "waittill"
S_IF = 13, // "if" S_WAITTILLMATCH = 13, // "waittillmatch"
S_ELSE = 14, // "else" S_WAITTILLFRAMEEND = 14, // "waittillframeend"
S_WHILE = 15, // "while" S_WAITFRAME = 15, // "waitframe"
S_FOR = 16, // "for" S_IF = 16, // "if"
S_FOREACH = 17, // "foreach" S_ELSE = 17, // "else"
S_IN = 18, // "in" S_WHILE = 18, // "while"
S_SWITCH = 19, // "switch" S_FOR = 19, // "for"
S_CASE = 20, // "case" S_FOREACH = 20, // "foreach"
S_DEFAULT = 21, // "default" S_IN = 21, // "in"
S_BREAK = 22, // "break" S_SWITCH = 22, // "switch"
S_CONTINUE = 23, // "continue" S_CASE = 23, // "case"
S_RETURN = 24, // "return" S_DEFAULT = 24, // "default"
S_THREAD = 25, // "thread" S_BREAK = 25, // "break"
S_CHILDTHREAD = 26, // "childthread" S_CONTINUE = 26, // "continue"
S_THISTHREAD = 27, // "thisthread" S_RETURN = 27, // "return"
S_CALL = 28, // "call" S_THREAD = 28, // "thread"
S_TRUE = 29, // "true" S_CHILDTHREAD = 29, // "childthread"
S_FALSE = 30, // "false" S_THISTHREAD = 30, // "thisthread"
S_UNDEFINED = 31, // "undefined" S_CALL = 31, // "call"
S_SIZE = 32, // "size" S_TRUE = 32, // "true"
S_GAME = 33, // "game" S_FALSE = 33, // "false"
S_SELF = 34, // "self" S_UNDEFINED = 34, // "undefined"
S_ANIM = 35, // "anim" S_SIZE = 35, // ".size"
S_LEVEL = 36, // "level" S_GAME = 36, // "game"
S_LPAREN = 37, // "(" S_SELF = 37, // "self"
S_RPAREN = 38, // ")" S_ANIM = 38, // "anim"
S_LBRACE = 39, // "{" S_LEVEL = 39, // "level"
S_RBRACE = 40, // "}" S_LPAREN = 40, // "("
S_LBRACKET = 41, // "[" S_RPAREN = 41, // ")"
S_RBRACKET = 42, // "]" S_LBRACE = 42, // "{"
S_COMMA = 43, // "," S_RBRACE = 43, // "}"
S_DOT = 44, // "." S_LBRACKET = 44, // "["
S_DOUBLECOLON = 45, // "::" S_RBRACKET = 45, // "]"
S_COLON = 46, // ":" S_COMMA = 46, // ","
S_SEMICOLON = 47, // ";" S_DOT = 47, // "."
S_INCREMENT = 48, // "++" S_DOUBLECOLON = 48, // "::"
S_DECREMENT = 49, // "--" S_COLON = 49, // ":"
S_LSHIFT = 50, // "<<" S_SEMICOLON = 50, // ";"
S_RSHIFT = 51, // ">>" S_INCREMENT = 51, // "++"
S_OR = 52, // "||" S_DECREMENT = 52, // "--"
S_AND = 53, // "&&" S_LSHIFT = 53, // "<<"
S_EQUALITY = 54, // "==" S_RSHIFT = 54, // ">>"
S_INEQUALITY = 55, // "!=" S_OR = 55, // "||"
S_LESS_EQUAL = 56, // "<=" S_AND = 56, // "&&"
S_GREATER_EQUAL = 57, // ">=" S_EQUALITY = 57, // "=="
S_LESS = 58, // "<" S_INEQUALITY = 58, // "!="
S_GREATER = 59, // ">" S_LESS_EQUAL = 59, // "<="
S_NOT = 60, // "!" S_GREATER_EQUAL = 60, // ">="
S_COMPLEMENT = 61, // "~" S_LESS = 61, // "<"
S_ASSIGN = 62, // "=" S_GREATER = 62, // ">"
S_ASSIGN_ADD = 63, // "+=" S_NOT = 63, // "!"
S_ASSIGN_SUB = 64, // "-=" S_COMPLEMENT = 64, // "~"
S_ASSIGN_MULT = 65, // "*=" S_ASSIGN = 65, // "="
S_ASSIGN_DIV = 66, // "/=" S_ASSIGN_ADD = 66, // "+="
S_ASSIGN_MOD = 67, // "%=" S_ASSIGN_SUB = 67, // "-="
S_ASSIGN_BITWISE_OR = 68, // "|=" S_ASSIGN_MULT = 68, // "*="
S_ASSIGN_BITWISE_AND = 69, // "&=" S_ASSIGN_DIV = 69, // "/="
S_ASSIGN_BITWISE_EXOR = 70, // "^=" S_ASSIGN_MOD = 70, // "%="
S_ASSIGN_RSHIFT = 71, // ">>=" S_ASSIGN_BITWISE_OR = 71, // "|="
S_ASSIGN_LSHIFT = 72, // "<<=" S_ASSIGN_BITWISE_AND = 72, // "&="
S_BITWISE_OR = 73, // "|" S_ASSIGN_BITWISE_EXOR = 73, // "^="
S_BITWISE_AND = 74, // "&" S_ASSIGN_RSHIFT = 74, // ">>="
S_BITWISE_EXOR = 75, // "^" S_ASSIGN_LSHIFT = 75, // "<<="
S_ADD = 76, // "+" S_BITWISE_OR = 76, // "|"
S_SUB = 77, // "-" S_BITWISE_AND = 77, // "&"
S_MULT = 78, // "*" S_BITWISE_EXOR = 78, // "^"
S_DIV = 79, // "/" S_ADD = 79, // "+"
S_MOD = 80, // "%" S_SUB = 80, // "-"
S_FILE = 81, // "file path" S_MULT = 81, // "*"
S_NAME = 82, // "identifier" S_DIV = 82, // "/"
S_STRING = 83, // "string literal" S_MOD = 83, // "%"
S_ISTRING = 84, // "localized string" S_FILE = 84, // "file path"
S_FLOAT = 85, // "float" S_NAME = 85, // "identifier"
S_INTEGER = 86, // "int" S_STRING = 86, // "string literal"
S_ADD_ARRAY = 87, // ADD_ARRAY S_ISTRING = 87, // "localized string"
S_THEN = 88, // THEN S_FLOAT = 88, // "float"
S_NEG = 89, // NEG S_INTEGER = 89, // "int"
S_ANIMREF = 90, // ANIMREF S_ADD_ARRAY = 90, // ADD_ARRAY
S_PREINC = 91, // PREINC S_THEN = 91, // THEN
S_PREDEC = 92, // PREDEC S_NEG = 92, // NEG
S_POSTINC = 93, // POSTINC S_ANIMREF = 93, // ANIMREF
S_POSTDEC = 94, // POSTDEC S_PREINC = 94, // PREINC
S_YYACCEPT = 95, // $accept S_PREDEC = 95, // PREDEC
S_root = 96, // root S_POSTINC = 96, // POSTINC
S_program = 97, // program S_POSTDEC = 97, // POSTDEC
S_include = 98, // include S_YYACCEPT = 98, // $accept
S_define = 99, // define S_root = 99, // root
S_usingtree = 100, // usingtree S_program = 100, // program
S_constant = 101, // constant S_include = 101, // include
S_thread = 102, // thread S_define = 102, // define
S_parameters = 103, // parameters S_usingtree = 103, // usingtree
S_stmt = 104, // stmt S_constant = 104, // constant
S_stmt_block = 105, // stmt_block S_thread = 105, // thread
S_stmt_list = 106, // stmt_list S_parameters = 106, // parameters
S_stmt_call = 107, // stmt_call S_stmt = 107, // stmt
S_stmt_assign = 108, // stmt_assign S_stmt_block = 108, // stmt_block
S_stmt_endon = 109, // stmt_endon S_stmt_list = 109, // stmt_list
S_stmt_notify = 110, // stmt_notify S_stmt_call = 110, // stmt_call
S_stmt_wait = 111, // stmt_wait S_stmt_assign = 111, // stmt_assign
S_stmt_waittill = 112, // stmt_waittill S_stmt_endon = 112, // stmt_endon
S_stmt_waittillmatch = 113, // stmt_waittillmatch S_stmt_notify = 113, // stmt_notify
S_stmt_waittillframeend = 114, // stmt_waittillframeend S_stmt_wait = 114, // stmt_wait
S_stmt_waitframe = 115, // stmt_waitframe S_stmt_waittill = 115, // stmt_waittill
S_stmt_if = 116, // stmt_if S_stmt_waittillmatch = 116, // stmt_waittillmatch
S_stmt_ifelse = 117, // stmt_ifelse S_stmt_waittillframeend = 117, // stmt_waittillframeend
S_stmt_while = 118, // stmt_while S_stmt_waitframe = 118, // stmt_waitframe
S_stmt_for = 119, // stmt_for S_stmt_if = 119, // stmt_if
S_stmt_foreach = 120, // stmt_foreach S_stmt_ifelse = 120, // stmt_ifelse
S_stmt_switch = 121, // stmt_switch S_stmt_while = 121, // stmt_while
S_stmt_case = 122, // stmt_case S_stmt_for = 122, // stmt_for
S_stmt_default = 123, // stmt_default S_stmt_foreach = 123, // stmt_foreach
S_stmt_break = 124, // stmt_break S_stmt_switch = 124, // stmt_switch
S_stmt_continue = 125, // stmt_continue S_stmt_case = 125, // stmt_case
S_stmt_return = 126, // stmt_return S_stmt_default = 126, // stmt_default
S_for_stmt = 127, // for_stmt S_stmt_break = 127, // stmt_break
S_for_expr = 128, // for_expr S_stmt_continue = 128, // stmt_continue
S_expr = 129, // expr S_stmt_return = 129, // stmt_return
S_expr_assign = 130, // expr_assign S_stmt_breakpoint = 130, // stmt_breakpoint
S_expr_compare = 131, // expr_compare S_stmt_prof_begin = 131, // stmt_prof_begin
S_expr_binary = 132, // expr_binary S_stmt_prof_end = 132, // stmt_prof_end
S_expr_primitive = 133, // expr_primitive S_for_stmt = 133, // for_stmt
S_expr_call = 134, // expr_call S_for_expr = 134, // for_expr
S_expr_call_thread = 135, // expr_call_thread S_expr = 135, // expr
S_expr_call_childthread = 136, // expr_call_childthread S_expr_assign = 136, // expr_assign
S_expr_call_function = 137, // expr_call_function S_expr_compare = 137, // expr_compare
S_expr_call_pointer = 138, // expr_call_pointer S_expr_binary = 138, // expr_binary
S_expr_arguments = 139, // expr_arguments S_expr_primitive = 139, // expr_primitive
S_expr_arguments_filled = 140, // expr_arguments_filled S_expr_call = 140, // expr_call
S_expr_arguments_empty = 141, // expr_arguments_empty S_expr_call_thread = 141, // expr_call_thread
S_expr_function = 142, // expr_function S_expr_call_childthread = 142, // expr_call_childthread
S_expr_add_array = 143, // expr_add_array S_expr_call_function = 143, // expr_call_function
S_expr_array = 144, // expr_array S_expr_call_pointer = 144, // expr_call_pointer
S_expr_field = 145, // expr_field S_expr_arguments = 145, // expr_arguments
S_expr_size = 146, // expr_size S_expr_arguments_filled = 146, // expr_arguments_filled
S_object = 147, // object S_expr_arguments_empty = 147, // expr_arguments_empty
S_thisthread = 148, // thisthread S_expr_function = 148, // expr_function
S_empty_array = 149, // empty_array S_expr_add_array = 149, // expr_add_array
S_undefined = 150, // undefined S_expr_array = 150, // expr_array
S_game = 151, // game S_expr_field = 151, // expr_field
S_self = 152, // self S_expr_size = 152, // expr_size
S_anim = 153, // anim S_object = 153, // object
S_level = 154, // level S_thisthread = 154, // thisthread
S_animation = 155, // animation S_empty_array = 155, // empty_array
S_animtree = 156, // animtree S_undefined = 156, // undefined
S_name = 157, // name S_game = 157, // game
S_file = 158, // file S_self = 158, // self
S_istring = 159, // istring S_anim = 159, // anim
S_string = 160, // string S_level = 160, // level
S_vector = 161, // vector S_animation = 161, // animation
S_neg_float = 162, // neg_float S_animtree = 162, // animtree
S_neg_integer = 163, // neg_integer S_name = 163, // name
S_float = 164, // float S_file = 164, // file
S_integer = 165, // integer S_istring = 165, // istring
S_false = 166, // false S_string = 166, // string
S_true = 167 // true S_vector = 167, // vector
S_neg_float = 168, // neg_float
S_neg_integer = 169, // neg_integer
S_float = 170, // float
S_integer = 171, // integer
S_false = 172, // false
S_true = 173 // true
}; };
}; };
@ -1086,6 +1104,10 @@ namespace xsk { namespace gsc { namespace h1 {
value.move< stmt_break_ptr > (std::move (that.value)); value.move< stmt_break_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (std::move (that.value)); value.move< stmt_call_ptr > (std::move (that.value));
break; break;
@ -1131,6 +1153,14 @@ namespace xsk { namespace gsc { namespace h1 {
value.move< stmt_notify_ptr > (std::move (that.value)); value.move< stmt_notify_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (std::move (that.value)); value.move< stmt_ptr > (std::move (that.value));
@ -1597,6 +1627,20 @@ namespace xsk { namespace gsc { namespace h1 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_breakpoint_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_breakpoint_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -1751,6 +1795,34 @@ namespace xsk { namespace gsc { namespace h1 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_begin_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_begin_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_end_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_end_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -2126,6 +2198,10 @@ switch (yykind)
value.template destroy< stmt_break_ptr > (); value.template destroy< stmt_break_ptr > ();
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.template destroy< stmt_breakpoint_ptr > ();
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.template destroy< stmt_call_ptr > (); value.template destroy< stmt_call_ptr > ();
break; break;
@ -2171,6 +2247,14 @@ switch (yykind)
value.template destroy< stmt_notify_ptr > (); value.template destroy< stmt_notify_ptr > ();
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.template destroy< stmt_prof_begin_ptr > ();
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.template destroy< stmt_prof_end_ptr > ();
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.template destroy< stmt_ptr > (); value.template destroy< stmt_ptr > ();
@ -2437,6 +2521,51 @@ switch (yykind)
return symbol_type (token::H1UNDEF, l); return symbol_type (token::H1UNDEF, l);
} }
#endif #endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_BREAKPOINT (location_type l)
{
return symbol_type (token::BREAKPOINT, std::move (l));
}
#else
static
symbol_type
make_BREAKPOINT (const location_type& l)
{
return symbol_type (token::BREAKPOINT, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFBEGIN (location_type l)
{
return symbol_type (token::PROFBEGIN, std::move (l));
}
#else
static
symbol_type
make_PROFBEGIN (const location_type& l)
{
return symbol_type (token::PROFBEGIN, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFEND (location_type l)
{
return symbol_type (token::PROFEND, std::move (l));
}
#else
static
symbol_type
make_PROFEND (const location_type& l)
{
return symbol_type (token::PROFEND, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
static static
symbol_type symbol_type
@ -4161,8 +4290,8 @@ switch (yykind)
/// Constants. /// Constants.
enum enum
{ {
yylast_ = 1581, ///< Last index in yytable_. yylast_ = 1646, ///< Last index in yytable_.
yynnts_ = 73, ///< Number of nonterminal symbols. yynnts_ = 76, ///< Number of nonterminal symbols.
yyfinal_ = 15 ///< Termination state number. yyfinal_ = 15 ///< Termination state number.
}; };
@ -4319,6 +4448,10 @@ switch (yykind)
value.copy< stmt_break_ptr > (YY_MOVE (that.value)); value.copy< stmt_break_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.copy< stmt_breakpoint_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.copy< stmt_call_ptr > (YY_MOVE (that.value)); value.copy< stmt_call_ptr > (YY_MOVE (that.value));
break; break;
@ -4364,6 +4497,14 @@ switch (yykind)
value.copy< stmt_notify_ptr > (YY_MOVE (that.value)); value.copy< stmt_notify_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.copy< stmt_prof_begin_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.copy< stmt_prof_end_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.copy< stmt_ptr > (YY_MOVE (that.value)); value.copy< stmt_ptr > (YY_MOVE (that.value));
@ -4587,6 +4728,10 @@ switch (yykind)
value.move< stmt_break_ptr > (YY_MOVE (s.value)); value.move< stmt_break_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (YY_MOVE (s.value)); value.move< stmt_call_ptr > (YY_MOVE (s.value));
break; break;
@ -4632,6 +4777,14 @@ switch (yykind)
value.move< stmt_notify_ptr > (YY_MOVE (s.value)); value.move< stmt_notify_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (YY_MOVE (s.value)); value.move< stmt_ptr > (YY_MOVE (s.value));
@ -4760,7 +4913,7 @@ switch (yykind)
#line 13 "parser.ypp" #line 13 "parser.ypp"
} } } // xsk::gsc::h1 } } } // xsk::gsc::h1
#line 4764 "parser.hpp" #line 4917 "parser.hpp"

File diff suppressed because it is too large Load Diff

View File

@ -700,7 +700,7 @@ extern int yylex (yyscan_t yyscanner);
#undef yyTABLES_NAME #undef yyTABLES_NAME
#endif #endif
#line 146 "lexer.lpp" #line 149 "lexer.lpp"
#line 706 "lexer.hpp" #line 706 "lexer.hpp"

File diff suppressed because it is too large Load Diff

View File

@ -510,88 +510,97 @@ namespace xsk { namespace gsc { namespace h2 {
// stmt_break // stmt_break
char dummy27[sizeof (stmt_break_ptr)]; char dummy27[sizeof (stmt_break_ptr)];
// stmt_breakpoint
char dummy28[sizeof (stmt_breakpoint_ptr)];
// stmt_call // stmt_call
char dummy28[sizeof (stmt_call_ptr)]; char dummy29[sizeof (stmt_call_ptr)];
// stmt_case // stmt_case
char dummy29[sizeof (stmt_case_ptr)]; char dummy30[sizeof (stmt_case_ptr)];
// stmt_continue // stmt_continue
char dummy30[sizeof (stmt_continue_ptr)]; char dummy31[sizeof (stmt_continue_ptr)];
// stmt_default // stmt_default
char dummy31[sizeof (stmt_default_ptr)]; char dummy32[sizeof (stmt_default_ptr)];
// stmt_endon // stmt_endon
char dummy32[sizeof (stmt_endon_ptr)]; char dummy33[sizeof (stmt_endon_ptr)];
// stmt_for // stmt_for
char dummy33[sizeof (stmt_for_ptr)]; char dummy34[sizeof (stmt_for_ptr)];
// stmt_foreach // stmt_foreach
char dummy34[sizeof (stmt_foreach_ptr)]; char dummy35[sizeof (stmt_foreach_ptr)];
// stmt_if // stmt_if
char dummy35[sizeof (stmt_if_ptr)]; char dummy36[sizeof (stmt_if_ptr)];
// stmt_ifelse // stmt_ifelse
char dummy36[sizeof (stmt_ifelse_ptr)]; char dummy37[sizeof (stmt_ifelse_ptr)];
// stmt_block // stmt_block
// stmt_list // stmt_list
char dummy37[sizeof (stmt_list_ptr)]; char dummy38[sizeof (stmt_list_ptr)];
// stmt_notify // stmt_notify
char dummy38[sizeof (stmt_notify_ptr)]; char dummy39[sizeof (stmt_notify_ptr)];
// stmt_prof_begin
char dummy40[sizeof (stmt_prof_begin_ptr)];
// stmt_prof_end
char dummy41[sizeof (stmt_prof_end_ptr)];
// stmt // stmt
// for_stmt // for_stmt
char dummy39[sizeof (stmt_ptr)]; char dummy42[sizeof (stmt_ptr)];
// stmt_return // stmt_return
char dummy40[sizeof (stmt_return_ptr)]; char dummy43[sizeof (stmt_return_ptr)];
// stmt_switch // stmt_switch
char dummy41[sizeof (stmt_switch_ptr)]; char dummy44[sizeof (stmt_switch_ptr)];
// stmt_wait // stmt_wait
char dummy42[sizeof (stmt_wait_ptr)]; char dummy45[sizeof (stmt_wait_ptr)];
// stmt_waitframe // stmt_waitframe
char dummy43[sizeof (stmt_waitframe_ptr)]; char dummy46[sizeof (stmt_waitframe_ptr)];
// stmt_waittill // stmt_waittill
char dummy44[sizeof (stmt_waittill_ptr)]; char dummy47[sizeof (stmt_waittill_ptr)];
// stmt_waittillframeend // stmt_waittillframeend
char dummy45[sizeof (stmt_waittillframeend_ptr)]; char dummy48[sizeof (stmt_waittillframeend_ptr)];
// stmt_waittillmatch // stmt_waittillmatch
char dummy46[sizeof (stmt_waittillmatch_ptr)]; char dummy49[sizeof (stmt_waittillmatch_ptr)];
// stmt_while // stmt_while
char dummy47[sizeof (stmt_while_ptr)]; char dummy50[sizeof (stmt_while_ptr)];
// string // string
char dummy48[sizeof (string_ptr)]; char dummy51[sizeof (string_ptr)];
// thisthread // thisthread
char dummy49[sizeof (thisthread_ptr)]; char dummy52[sizeof (thisthread_ptr)];
// thread // thread
char dummy50[sizeof (thread_ptr)]; char dummy53[sizeof (thread_ptr)];
// true // true
char dummy51[sizeof (true_ptr)]; char dummy54[sizeof (true_ptr)];
// undefined // undefined
char dummy52[sizeof (undefined_ptr)]; char dummy55[sizeof (undefined_ptr)];
// usingtree // usingtree
char dummy53[sizeof (usingtree_ptr)]; char dummy56[sizeof (usingtree_ptr)];
// vector // vector
char dummy54[sizeof (vector_ptr)]; char dummy57[sizeof (vector_ptr)];
}; };
/// The size of the largest semantic type. /// The size of the largest semantic type.
@ -643,98 +652,101 @@ namespace xsk { namespace gsc { namespace h2 {
H2EOF = 0, // "end of file" H2EOF = 0, // "end of file"
H2error = 1, // error H2error = 1, // error
H2UNDEF = 2, // "invalid token" H2UNDEF = 2, // "invalid token"
INCLUDE = 3, // "#include" BREAKPOINT = 3, // "breakpoint"
USINGTREE = 4, // "#using_animtree" PROFBEGIN = 4, // "prof_begin"
ANIMTREE = 5, // "#animtree" PROFEND = 5, // "prof_end"
ENDON = 6, // "endon" INCLUDE = 6, // "#include"
NOTIFY = 7, // "notify" USINGTREE = 7, // "#using_animtree"
WAIT = 8, // "wait" ANIMTREE = 8, // "#animtree"
WAITTILL = 9, // "waittill" ENDON = 9, // "endon"
WAITTILLMATCH = 10, // "waittillmatch" NOTIFY = 10, // "notify"
WAITTILLFRAMEEND = 11, // "waittillframeend" WAIT = 11, // "wait"
WAITFRAME = 12, // "waitframe" WAITTILL = 12, // "waittill"
IF = 13, // "if" WAITTILLMATCH = 13, // "waittillmatch"
ELSE = 14, // "else" WAITTILLFRAMEEND = 14, // "waittillframeend"
WHILE = 15, // "while" WAITFRAME = 15, // "waitframe"
FOR = 16, // "for" IF = 16, // "if"
FOREACH = 17, // "foreach" ELSE = 17, // "else"
IN = 18, // "in" WHILE = 18, // "while"
SWITCH = 19, // "switch" FOR = 19, // "for"
CASE = 20, // "case" FOREACH = 20, // "foreach"
DEFAULT = 21, // "default" IN = 21, // "in"
BREAK = 22, // "break" SWITCH = 22, // "switch"
CONTINUE = 23, // "continue" CASE = 23, // "case"
RETURN = 24, // "return" DEFAULT = 24, // "default"
THREAD = 25, // "thread" BREAK = 25, // "break"
CHILDTHREAD = 26, // "childthread" CONTINUE = 26, // "continue"
THISTHREAD = 27, // "thisthread" RETURN = 27, // "return"
CALL = 28, // "call" THREAD = 28, // "thread"
TRUE = 29, // "true" CHILDTHREAD = 29, // "childthread"
FALSE = 30, // "false" THISTHREAD = 30, // "thisthread"
UNDEFINED = 31, // "undefined" CALL = 31, // "call"
SIZE = 32, // "size" TRUE = 32, // "true"
GAME = 33, // "game" FALSE = 33, // "false"
SELF = 34, // "self" UNDEFINED = 34, // "undefined"
ANIM = 35, // "anim" SIZE = 35, // ".size"
LEVEL = 36, // "level" GAME = 36, // "game"
LPAREN = 37, // "(" SELF = 37, // "self"
RPAREN = 38, // ")" ANIM = 38, // "anim"
LBRACE = 39, // "{" LEVEL = 39, // "level"
RBRACE = 40, // "}" LPAREN = 40, // "("
LBRACKET = 41, // "[" RPAREN = 41, // ")"
RBRACKET = 42, // "]" LBRACE = 42, // "{"
COMMA = 43, // "," RBRACE = 43, // "}"
DOT = 44, // "." LBRACKET = 44, // "["
DOUBLECOLON = 45, // "::" RBRACKET = 45, // "]"
COLON = 46, // ":" COMMA = 46, // ","
SEMICOLON = 47, // ";" DOT = 47, // "."
INCREMENT = 48, // "++" DOUBLECOLON = 48, // "::"
DECREMENT = 49, // "--" COLON = 49, // ":"
LSHIFT = 50, // "<<" SEMICOLON = 50, // ";"
RSHIFT = 51, // ">>" INCREMENT = 51, // "++"
OR = 52, // "||" DECREMENT = 52, // "--"
AND = 53, // "&&" LSHIFT = 53, // "<<"
EQUALITY = 54, // "==" RSHIFT = 54, // ">>"
INEQUALITY = 55, // "!=" OR = 55, // "||"
LESS_EQUAL = 56, // "<=" AND = 56, // "&&"
GREATER_EQUAL = 57, // ">=" EQUALITY = 57, // "=="
LESS = 58, // "<" INEQUALITY = 58, // "!="
GREATER = 59, // ">" LESS_EQUAL = 59, // "<="
NOT = 60, // "!" GREATER_EQUAL = 60, // ">="
COMPLEMENT = 61, // "~" LESS = 61, // "<"
ASSIGN = 62, // "=" GREATER = 62, // ">"
ASSIGN_ADD = 63, // "+=" NOT = 63, // "!"
ASSIGN_SUB = 64, // "-=" COMPLEMENT = 64, // "~"
ASSIGN_MULT = 65, // "*=" ASSIGN = 65, // "="
ASSIGN_DIV = 66, // "/=" ASSIGN_ADD = 66, // "+="
ASSIGN_MOD = 67, // "%=" ASSIGN_SUB = 67, // "-="
ASSIGN_BITWISE_OR = 68, // "|=" ASSIGN_MULT = 68, // "*="
ASSIGN_BITWISE_AND = 69, // "&=" ASSIGN_DIV = 69, // "/="
ASSIGN_BITWISE_EXOR = 70, // "^=" ASSIGN_MOD = 70, // "%="
ASSIGN_RSHIFT = 71, // ">>=" ASSIGN_BITWISE_OR = 71, // "|="
ASSIGN_LSHIFT = 72, // "<<=" ASSIGN_BITWISE_AND = 72, // "&="
BITWISE_OR = 73, // "|" ASSIGN_BITWISE_EXOR = 73, // "^="
BITWISE_AND = 74, // "&" ASSIGN_RSHIFT = 74, // ">>="
BITWISE_EXOR = 75, // "^" ASSIGN_LSHIFT = 75, // "<<="
ADD = 76, // "+" BITWISE_OR = 76, // "|"
SUB = 77, // "-" BITWISE_AND = 77, // "&"
MULT = 78, // "*" BITWISE_EXOR = 78, // "^"
DIV = 79, // "/" ADD = 79, // "+"
MOD = 80, // "%" SUB = 80, // "-"
FILE = 81, // "file path" MULT = 81, // "*"
NAME = 82, // "identifier" DIV = 82, // "/"
STRING = 83, // "string literal" MOD = 83, // "%"
ISTRING = 84, // "localized string" FILE = 84, // "file path"
FLOAT = 85, // "float" NAME = 85, // "identifier"
INTEGER = 86, // "int" STRING = 86, // "string literal"
ADD_ARRAY = 87, // ADD_ARRAY ISTRING = 87, // "localized string"
THEN = 88, // THEN FLOAT = 88, // "float"
NEG = 89, // NEG INTEGER = 89, // "int"
ANIMREF = 90, // ANIMREF ADD_ARRAY = 90, // ADD_ARRAY
PREINC = 91, // PREINC THEN = 91, // THEN
PREDEC = 92, // PREDEC NEG = 92, // NEG
POSTINC = 93, // POSTINC ANIMREF = 93, // ANIMREF
POSTDEC = 94 // POSTDEC PREINC = 94, // PREINC
PREDEC = 95, // PREDEC
POSTINC = 96, // POSTINC
POSTDEC = 97 // POSTDEC
}; };
/// Backward compatibility alias (Bison 3.6). /// Backward compatibility alias (Bison 3.6).
typedef token_kind_type yytokentype; typedef token_kind_type yytokentype;
@ -751,176 +763,182 @@ namespace xsk { namespace gsc { namespace h2 {
{ {
enum symbol_kind_type enum symbol_kind_type
{ {
YYNTOKENS = 95, ///< Number of tokens. YYNTOKENS = 98, ///< Number of tokens.
S_YYEMPTY = -2, S_YYEMPTY = -2,
S_YYEOF = 0, // "end of file" S_YYEOF = 0, // "end of file"
S_YYerror = 1, // error S_YYerror = 1, // error
S_YYUNDEF = 2, // "invalid token" S_YYUNDEF = 2, // "invalid token"
S_INCLUDE = 3, // "#include" S_BREAKPOINT = 3, // "breakpoint"
S_USINGTREE = 4, // "#using_animtree" S_PROFBEGIN = 4, // "prof_begin"
S_ANIMTREE = 5, // "#animtree" S_PROFEND = 5, // "prof_end"
S_ENDON = 6, // "endon" S_INCLUDE = 6, // "#include"
S_NOTIFY = 7, // "notify" S_USINGTREE = 7, // "#using_animtree"
S_WAIT = 8, // "wait" S_ANIMTREE = 8, // "#animtree"
S_WAITTILL = 9, // "waittill" S_ENDON = 9, // "endon"
S_WAITTILLMATCH = 10, // "waittillmatch" S_NOTIFY = 10, // "notify"
S_WAITTILLFRAMEEND = 11, // "waittillframeend" S_WAIT = 11, // "wait"
S_WAITFRAME = 12, // "waitframe" S_WAITTILL = 12, // "waittill"
S_IF = 13, // "if" S_WAITTILLMATCH = 13, // "waittillmatch"
S_ELSE = 14, // "else" S_WAITTILLFRAMEEND = 14, // "waittillframeend"
S_WHILE = 15, // "while" S_WAITFRAME = 15, // "waitframe"
S_FOR = 16, // "for" S_IF = 16, // "if"
S_FOREACH = 17, // "foreach" S_ELSE = 17, // "else"
S_IN = 18, // "in" S_WHILE = 18, // "while"
S_SWITCH = 19, // "switch" S_FOR = 19, // "for"
S_CASE = 20, // "case" S_FOREACH = 20, // "foreach"
S_DEFAULT = 21, // "default" S_IN = 21, // "in"
S_BREAK = 22, // "break" S_SWITCH = 22, // "switch"
S_CONTINUE = 23, // "continue" S_CASE = 23, // "case"
S_RETURN = 24, // "return" S_DEFAULT = 24, // "default"
S_THREAD = 25, // "thread" S_BREAK = 25, // "break"
S_CHILDTHREAD = 26, // "childthread" S_CONTINUE = 26, // "continue"
S_THISTHREAD = 27, // "thisthread" S_RETURN = 27, // "return"
S_CALL = 28, // "call" S_THREAD = 28, // "thread"
S_TRUE = 29, // "true" S_CHILDTHREAD = 29, // "childthread"
S_FALSE = 30, // "false" S_THISTHREAD = 30, // "thisthread"
S_UNDEFINED = 31, // "undefined" S_CALL = 31, // "call"
S_SIZE = 32, // "size" S_TRUE = 32, // "true"
S_GAME = 33, // "game" S_FALSE = 33, // "false"
S_SELF = 34, // "self" S_UNDEFINED = 34, // "undefined"
S_ANIM = 35, // "anim" S_SIZE = 35, // ".size"
S_LEVEL = 36, // "level" S_GAME = 36, // "game"
S_LPAREN = 37, // "(" S_SELF = 37, // "self"
S_RPAREN = 38, // ")" S_ANIM = 38, // "anim"
S_LBRACE = 39, // "{" S_LEVEL = 39, // "level"
S_RBRACE = 40, // "}" S_LPAREN = 40, // "("
S_LBRACKET = 41, // "[" S_RPAREN = 41, // ")"
S_RBRACKET = 42, // "]" S_LBRACE = 42, // "{"
S_COMMA = 43, // "," S_RBRACE = 43, // "}"
S_DOT = 44, // "." S_LBRACKET = 44, // "["
S_DOUBLECOLON = 45, // "::" S_RBRACKET = 45, // "]"
S_COLON = 46, // ":" S_COMMA = 46, // ","
S_SEMICOLON = 47, // ";" S_DOT = 47, // "."
S_INCREMENT = 48, // "++" S_DOUBLECOLON = 48, // "::"
S_DECREMENT = 49, // "--" S_COLON = 49, // ":"
S_LSHIFT = 50, // "<<" S_SEMICOLON = 50, // ";"
S_RSHIFT = 51, // ">>" S_INCREMENT = 51, // "++"
S_OR = 52, // "||" S_DECREMENT = 52, // "--"
S_AND = 53, // "&&" S_LSHIFT = 53, // "<<"
S_EQUALITY = 54, // "==" S_RSHIFT = 54, // ">>"
S_INEQUALITY = 55, // "!=" S_OR = 55, // "||"
S_LESS_EQUAL = 56, // "<=" S_AND = 56, // "&&"
S_GREATER_EQUAL = 57, // ">=" S_EQUALITY = 57, // "=="
S_LESS = 58, // "<" S_INEQUALITY = 58, // "!="
S_GREATER = 59, // ">" S_LESS_EQUAL = 59, // "<="
S_NOT = 60, // "!" S_GREATER_EQUAL = 60, // ">="
S_COMPLEMENT = 61, // "~" S_LESS = 61, // "<"
S_ASSIGN = 62, // "=" S_GREATER = 62, // ">"
S_ASSIGN_ADD = 63, // "+=" S_NOT = 63, // "!"
S_ASSIGN_SUB = 64, // "-=" S_COMPLEMENT = 64, // "~"
S_ASSIGN_MULT = 65, // "*=" S_ASSIGN = 65, // "="
S_ASSIGN_DIV = 66, // "/=" S_ASSIGN_ADD = 66, // "+="
S_ASSIGN_MOD = 67, // "%=" S_ASSIGN_SUB = 67, // "-="
S_ASSIGN_BITWISE_OR = 68, // "|=" S_ASSIGN_MULT = 68, // "*="
S_ASSIGN_BITWISE_AND = 69, // "&=" S_ASSIGN_DIV = 69, // "/="
S_ASSIGN_BITWISE_EXOR = 70, // "^=" S_ASSIGN_MOD = 70, // "%="
S_ASSIGN_RSHIFT = 71, // ">>=" S_ASSIGN_BITWISE_OR = 71, // "|="
S_ASSIGN_LSHIFT = 72, // "<<=" S_ASSIGN_BITWISE_AND = 72, // "&="
S_BITWISE_OR = 73, // "|" S_ASSIGN_BITWISE_EXOR = 73, // "^="
S_BITWISE_AND = 74, // "&" S_ASSIGN_RSHIFT = 74, // ">>="
S_BITWISE_EXOR = 75, // "^" S_ASSIGN_LSHIFT = 75, // "<<="
S_ADD = 76, // "+" S_BITWISE_OR = 76, // "|"
S_SUB = 77, // "-" S_BITWISE_AND = 77, // "&"
S_MULT = 78, // "*" S_BITWISE_EXOR = 78, // "^"
S_DIV = 79, // "/" S_ADD = 79, // "+"
S_MOD = 80, // "%" S_SUB = 80, // "-"
S_FILE = 81, // "file path" S_MULT = 81, // "*"
S_NAME = 82, // "identifier" S_DIV = 82, // "/"
S_STRING = 83, // "string literal" S_MOD = 83, // "%"
S_ISTRING = 84, // "localized string" S_FILE = 84, // "file path"
S_FLOAT = 85, // "float" S_NAME = 85, // "identifier"
S_INTEGER = 86, // "int" S_STRING = 86, // "string literal"
S_ADD_ARRAY = 87, // ADD_ARRAY S_ISTRING = 87, // "localized string"
S_THEN = 88, // THEN S_FLOAT = 88, // "float"
S_NEG = 89, // NEG S_INTEGER = 89, // "int"
S_ANIMREF = 90, // ANIMREF S_ADD_ARRAY = 90, // ADD_ARRAY
S_PREINC = 91, // PREINC S_THEN = 91, // THEN
S_PREDEC = 92, // PREDEC S_NEG = 92, // NEG
S_POSTINC = 93, // POSTINC S_ANIMREF = 93, // ANIMREF
S_POSTDEC = 94, // POSTDEC S_PREINC = 94, // PREINC
S_YYACCEPT = 95, // $accept S_PREDEC = 95, // PREDEC
S_root = 96, // root S_POSTINC = 96, // POSTINC
S_program = 97, // program S_POSTDEC = 97, // POSTDEC
S_include = 98, // include S_YYACCEPT = 98, // $accept
S_define = 99, // define S_root = 99, // root
S_usingtree = 100, // usingtree S_program = 100, // program
S_constant = 101, // constant S_include = 101, // include
S_thread = 102, // thread S_define = 102, // define
S_parameters = 103, // parameters S_usingtree = 103, // usingtree
S_stmt = 104, // stmt S_constant = 104, // constant
S_stmt_block = 105, // stmt_block S_thread = 105, // thread
S_stmt_list = 106, // stmt_list S_parameters = 106, // parameters
S_stmt_call = 107, // stmt_call S_stmt = 107, // stmt
S_stmt_assign = 108, // stmt_assign S_stmt_block = 108, // stmt_block
S_stmt_endon = 109, // stmt_endon S_stmt_list = 109, // stmt_list
S_stmt_notify = 110, // stmt_notify S_stmt_call = 110, // stmt_call
S_stmt_wait = 111, // stmt_wait S_stmt_assign = 111, // stmt_assign
S_stmt_waittill = 112, // stmt_waittill S_stmt_endon = 112, // stmt_endon
S_stmt_waittillmatch = 113, // stmt_waittillmatch S_stmt_notify = 113, // stmt_notify
S_stmt_waittillframeend = 114, // stmt_waittillframeend S_stmt_wait = 114, // stmt_wait
S_stmt_waitframe = 115, // stmt_waitframe S_stmt_waittill = 115, // stmt_waittill
S_stmt_if = 116, // stmt_if S_stmt_waittillmatch = 116, // stmt_waittillmatch
S_stmt_ifelse = 117, // stmt_ifelse S_stmt_waittillframeend = 117, // stmt_waittillframeend
S_stmt_while = 118, // stmt_while S_stmt_waitframe = 118, // stmt_waitframe
S_stmt_for = 119, // stmt_for S_stmt_if = 119, // stmt_if
S_stmt_foreach = 120, // stmt_foreach S_stmt_ifelse = 120, // stmt_ifelse
S_stmt_switch = 121, // stmt_switch S_stmt_while = 121, // stmt_while
S_stmt_case = 122, // stmt_case S_stmt_for = 122, // stmt_for
S_stmt_default = 123, // stmt_default S_stmt_foreach = 123, // stmt_foreach
S_stmt_break = 124, // stmt_break S_stmt_switch = 124, // stmt_switch
S_stmt_continue = 125, // stmt_continue S_stmt_case = 125, // stmt_case
S_stmt_return = 126, // stmt_return S_stmt_default = 126, // stmt_default
S_for_stmt = 127, // for_stmt S_stmt_break = 127, // stmt_break
S_for_expr = 128, // for_expr S_stmt_continue = 128, // stmt_continue
S_expr = 129, // expr S_stmt_return = 129, // stmt_return
S_expr_assign = 130, // expr_assign S_stmt_breakpoint = 130, // stmt_breakpoint
S_expr_compare = 131, // expr_compare S_stmt_prof_begin = 131, // stmt_prof_begin
S_expr_binary = 132, // expr_binary S_stmt_prof_end = 132, // stmt_prof_end
S_expr_primitive = 133, // expr_primitive S_for_stmt = 133, // for_stmt
S_expr_call = 134, // expr_call S_for_expr = 134, // for_expr
S_expr_call_thread = 135, // expr_call_thread S_expr = 135, // expr
S_expr_call_childthread = 136, // expr_call_childthread S_expr_assign = 136, // expr_assign
S_expr_call_function = 137, // expr_call_function S_expr_compare = 137, // expr_compare
S_expr_call_pointer = 138, // expr_call_pointer S_expr_binary = 138, // expr_binary
S_expr_arguments = 139, // expr_arguments S_expr_primitive = 139, // expr_primitive
S_expr_arguments_filled = 140, // expr_arguments_filled S_expr_call = 140, // expr_call
S_expr_arguments_empty = 141, // expr_arguments_empty S_expr_call_thread = 141, // expr_call_thread
S_expr_function = 142, // expr_function S_expr_call_childthread = 142, // expr_call_childthread
S_expr_add_array = 143, // expr_add_array S_expr_call_function = 143, // expr_call_function
S_expr_array = 144, // expr_array S_expr_call_pointer = 144, // expr_call_pointer
S_expr_field = 145, // expr_field S_expr_arguments = 145, // expr_arguments
S_expr_size = 146, // expr_size S_expr_arguments_filled = 146, // expr_arguments_filled
S_object = 147, // object S_expr_arguments_empty = 147, // expr_arguments_empty
S_thisthread = 148, // thisthread S_expr_function = 148, // expr_function
S_empty_array = 149, // empty_array S_expr_add_array = 149, // expr_add_array
S_undefined = 150, // undefined S_expr_array = 150, // expr_array
S_game = 151, // game S_expr_field = 151, // expr_field
S_self = 152, // self S_expr_size = 152, // expr_size
S_anim = 153, // anim S_object = 153, // object
S_level = 154, // level S_thisthread = 154, // thisthread
S_animation = 155, // animation S_empty_array = 155, // empty_array
S_animtree = 156, // animtree S_undefined = 156, // undefined
S_name = 157, // name S_game = 157, // game
S_file = 158, // file S_self = 158, // self
S_istring = 159, // istring S_anim = 159, // anim
S_string = 160, // string S_level = 160, // level
S_vector = 161, // vector S_animation = 161, // animation
S_neg_float = 162, // neg_float S_animtree = 162, // animtree
S_neg_integer = 163, // neg_integer S_name = 163, // name
S_float = 164, // float S_file = 164, // file
S_integer = 165, // integer S_istring = 165, // istring
S_false = 166, // false S_string = 166, // string
S_true = 167 // true S_vector = 167, // vector
S_neg_float = 168, // neg_float
S_neg_integer = 169, // neg_integer
S_float = 170, // float
S_integer = 171, // integer
S_false = 172, // false
S_true = 173 // true
}; };
}; };
@ -1086,6 +1104,10 @@ namespace xsk { namespace gsc { namespace h2 {
value.move< stmt_break_ptr > (std::move (that.value)); value.move< stmt_break_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (std::move (that.value)); value.move< stmt_call_ptr > (std::move (that.value));
break; break;
@ -1131,6 +1153,14 @@ namespace xsk { namespace gsc { namespace h2 {
value.move< stmt_notify_ptr > (std::move (that.value)); value.move< stmt_notify_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (std::move (that.value)); value.move< stmt_ptr > (std::move (that.value));
@ -1597,6 +1627,20 @@ namespace xsk { namespace gsc { namespace h2 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_breakpoint_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_breakpoint_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -1751,6 +1795,34 @@ namespace xsk { namespace gsc { namespace h2 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_begin_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_begin_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_end_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_end_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -2126,6 +2198,10 @@ switch (yykind)
value.template destroy< stmt_break_ptr > (); value.template destroy< stmt_break_ptr > ();
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.template destroy< stmt_breakpoint_ptr > ();
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.template destroy< stmt_call_ptr > (); value.template destroy< stmt_call_ptr > ();
break; break;
@ -2171,6 +2247,14 @@ switch (yykind)
value.template destroy< stmt_notify_ptr > (); value.template destroy< stmt_notify_ptr > ();
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.template destroy< stmt_prof_begin_ptr > ();
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.template destroy< stmt_prof_end_ptr > ();
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.template destroy< stmt_ptr > (); value.template destroy< stmt_ptr > ();
@ -2437,6 +2521,51 @@ switch (yykind)
return symbol_type (token::H2UNDEF, l); return symbol_type (token::H2UNDEF, l);
} }
#endif #endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_BREAKPOINT (location_type l)
{
return symbol_type (token::BREAKPOINT, std::move (l));
}
#else
static
symbol_type
make_BREAKPOINT (const location_type& l)
{
return symbol_type (token::BREAKPOINT, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFBEGIN (location_type l)
{
return symbol_type (token::PROFBEGIN, std::move (l));
}
#else
static
symbol_type
make_PROFBEGIN (const location_type& l)
{
return symbol_type (token::PROFBEGIN, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFEND (location_type l)
{
return symbol_type (token::PROFEND, std::move (l));
}
#else
static
symbol_type
make_PROFEND (const location_type& l)
{
return symbol_type (token::PROFEND, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
static static
symbol_type symbol_type
@ -4161,8 +4290,8 @@ switch (yykind)
/// Constants. /// Constants.
enum enum
{ {
yylast_ = 1581, ///< Last index in yytable_. yylast_ = 1646, ///< Last index in yytable_.
yynnts_ = 73, ///< Number of nonterminal symbols. yynnts_ = 76, ///< Number of nonterminal symbols.
yyfinal_ = 15 ///< Termination state number. yyfinal_ = 15 ///< Termination state number.
}; };
@ -4319,6 +4448,10 @@ switch (yykind)
value.copy< stmt_break_ptr > (YY_MOVE (that.value)); value.copy< stmt_break_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.copy< stmt_breakpoint_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.copy< stmt_call_ptr > (YY_MOVE (that.value)); value.copy< stmt_call_ptr > (YY_MOVE (that.value));
break; break;
@ -4364,6 +4497,14 @@ switch (yykind)
value.copy< stmt_notify_ptr > (YY_MOVE (that.value)); value.copy< stmt_notify_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.copy< stmt_prof_begin_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.copy< stmt_prof_end_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.copy< stmt_ptr > (YY_MOVE (that.value)); value.copy< stmt_ptr > (YY_MOVE (that.value));
@ -4587,6 +4728,10 @@ switch (yykind)
value.move< stmt_break_ptr > (YY_MOVE (s.value)); value.move< stmt_break_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (YY_MOVE (s.value)); value.move< stmt_call_ptr > (YY_MOVE (s.value));
break; break;
@ -4632,6 +4777,14 @@ switch (yykind)
value.move< stmt_notify_ptr > (YY_MOVE (s.value)); value.move< stmt_notify_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (YY_MOVE (s.value)); value.move< stmt_ptr > (YY_MOVE (s.value));
@ -4760,7 +4913,7 @@ switch (yykind)
#line 13 "parser.ypp" #line 13 "parser.ypp"
} } } // xsk::gsc::h2 } } } // xsk::gsc::h2
#line 4764 "parser.hpp" #line 4917 "parser.hpp"

File diff suppressed because it is too large Load Diff

View File

@ -700,7 +700,7 @@ extern int yylex (yyscan_t yyscanner);
#undef yyTABLES_NAME #undef yyTABLES_NAME
#endif #endif
#line 145 "lexer.lpp" #line 148 "lexer.lpp"
#line 706 "lexer.hpp" #line 706 "lexer.hpp"

File diff suppressed because it is too large Load Diff

View File

@ -510,85 +510,94 @@ namespace xsk { namespace gsc { namespace iw5 {
// stmt_break // stmt_break
char dummy27[sizeof (stmt_break_ptr)]; char dummy27[sizeof (stmt_break_ptr)];
// stmt_breakpoint
char dummy28[sizeof (stmt_breakpoint_ptr)];
// stmt_call // stmt_call
char dummy28[sizeof (stmt_call_ptr)]; char dummy29[sizeof (stmt_call_ptr)];
// stmt_case // stmt_case
char dummy29[sizeof (stmt_case_ptr)]; char dummy30[sizeof (stmt_case_ptr)];
// stmt_continue // stmt_continue
char dummy30[sizeof (stmt_continue_ptr)]; char dummy31[sizeof (stmt_continue_ptr)];
// stmt_default // stmt_default
char dummy31[sizeof (stmt_default_ptr)]; char dummy32[sizeof (stmt_default_ptr)];
// stmt_endon // stmt_endon
char dummy32[sizeof (stmt_endon_ptr)]; char dummy33[sizeof (stmt_endon_ptr)];
// stmt_for // stmt_for
char dummy33[sizeof (stmt_for_ptr)]; char dummy34[sizeof (stmt_for_ptr)];
// stmt_foreach // stmt_foreach
char dummy34[sizeof (stmt_foreach_ptr)]; char dummy35[sizeof (stmt_foreach_ptr)];
// stmt_if // stmt_if
char dummy35[sizeof (stmt_if_ptr)]; char dummy36[sizeof (stmt_if_ptr)];
// stmt_ifelse // stmt_ifelse
char dummy36[sizeof (stmt_ifelse_ptr)]; char dummy37[sizeof (stmt_ifelse_ptr)];
// stmt_block // stmt_block
// stmt_list // stmt_list
char dummy37[sizeof (stmt_list_ptr)]; char dummy38[sizeof (stmt_list_ptr)];
// stmt_notify // stmt_notify
char dummy38[sizeof (stmt_notify_ptr)]; char dummy39[sizeof (stmt_notify_ptr)];
// stmt_prof_begin
char dummy40[sizeof (stmt_prof_begin_ptr)];
// stmt_prof_end
char dummy41[sizeof (stmt_prof_end_ptr)];
// stmt // stmt
// for_stmt // for_stmt
char dummy39[sizeof (stmt_ptr)]; char dummy42[sizeof (stmt_ptr)];
// stmt_return // stmt_return
char dummy40[sizeof (stmt_return_ptr)]; char dummy43[sizeof (stmt_return_ptr)];
// stmt_switch // stmt_switch
char dummy41[sizeof (stmt_switch_ptr)]; char dummy44[sizeof (stmt_switch_ptr)];
// stmt_wait // stmt_wait
char dummy42[sizeof (stmt_wait_ptr)]; char dummy45[sizeof (stmt_wait_ptr)];
// stmt_waittill // stmt_waittill
char dummy43[sizeof (stmt_waittill_ptr)]; char dummy46[sizeof (stmt_waittill_ptr)];
// stmt_waittillframeend // stmt_waittillframeend
char dummy44[sizeof (stmt_waittillframeend_ptr)]; char dummy47[sizeof (stmt_waittillframeend_ptr)];
// stmt_waittillmatch // stmt_waittillmatch
char dummy45[sizeof (stmt_waittillmatch_ptr)]; char dummy48[sizeof (stmt_waittillmatch_ptr)];
// stmt_while // stmt_while
char dummy46[sizeof (stmt_while_ptr)]; char dummy49[sizeof (stmt_while_ptr)];
// string // string
char dummy47[sizeof (string_ptr)]; char dummy50[sizeof (string_ptr)];
// thisthread // thisthread
char dummy48[sizeof (thisthread_ptr)]; char dummy51[sizeof (thisthread_ptr)];
// thread // thread
char dummy49[sizeof (thread_ptr)]; char dummy52[sizeof (thread_ptr)];
// true // true
char dummy50[sizeof (true_ptr)]; char dummy53[sizeof (true_ptr)];
// undefined // undefined
char dummy51[sizeof (undefined_ptr)]; char dummy54[sizeof (undefined_ptr)];
// usingtree // usingtree
char dummy52[sizeof (usingtree_ptr)]; char dummy55[sizeof (usingtree_ptr)];
// vector // vector
char dummy53[sizeof (vector_ptr)]; char dummy56[sizeof (vector_ptr)];
}; };
/// The size of the largest semantic type. /// The size of the largest semantic type.
@ -640,97 +649,100 @@ namespace xsk { namespace gsc { namespace iw5 {
IW5EOF = 0, // "end of file" IW5EOF = 0, // "end of file"
IW5error = 1, // error IW5error = 1, // error
IW5UNDEF = 2, // "invalid token" IW5UNDEF = 2, // "invalid token"
INCLUDE = 3, // "#include" BREAKPOINT = 3, // "breakpoint"
USINGTREE = 4, // "#using_animtree" PROFBEGIN = 4, // "prof_begin"
ANIMTREE = 5, // "#animtree" PROFEND = 5, // "prof_end"
ENDON = 6, // "endon" INCLUDE = 6, // "#include"
NOTIFY = 7, // "notify" USINGTREE = 7, // "#using_animtree"
WAIT = 8, // "wait" ANIMTREE = 8, // "#animtree"
WAITTILL = 9, // "waittill" ENDON = 9, // "endon"
WAITTILLMATCH = 10, // "waittillmatch" NOTIFY = 10, // "notify"
WAITTILLFRAMEEND = 11, // "waittillframeend" WAIT = 11, // "wait"
IF = 12, // "if" WAITTILL = 12, // "waittill"
ELSE = 13, // "else" WAITTILLMATCH = 13, // "waittillmatch"
WHILE = 14, // "while" WAITTILLFRAMEEND = 14, // "waittillframeend"
FOR = 15, // "for" IF = 15, // "if"
FOREACH = 16, // "foreach" ELSE = 16, // "else"
IN = 17, // "in" WHILE = 17, // "while"
SWITCH = 18, // "switch" FOR = 18, // "for"
CASE = 19, // "case" FOREACH = 19, // "foreach"
DEFAULT = 20, // "default" IN = 20, // "in"
BREAK = 21, // "break" SWITCH = 21, // "switch"
CONTINUE = 22, // "continue" CASE = 22, // "case"
RETURN = 23, // "return" DEFAULT = 23, // "default"
THREAD = 24, // "thread" BREAK = 24, // "break"
CHILDTHREAD = 25, // "childthread" CONTINUE = 25, // "continue"
THISTHREAD = 26, // "thisthread" RETURN = 26, // "return"
CALL = 27, // "call" THREAD = 27, // "thread"
TRUE = 28, // "true" CHILDTHREAD = 28, // "childthread"
FALSE = 29, // "false" THISTHREAD = 29, // "thisthread"
UNDEFINED = 30, // "undefined" CALL = 30, // "call"
SIZE = 31, // "size" TRUE = 31, // "true"
GAME = 32, // "game" FALSE = 32, // "false"
SELF = 33, // "self" UNDEFINED = 33, // "undefined"
ANIM = 34, // "anim" SIZE = 34, // ".size"
LEVEL = 35, // "level" GAME = 35, // "game"
LPAREN = 36, // "(" SELF = 36, // "self"
RPAREN = 37, // ")" ANIM = 37, // "anim"
LBRACE = 38, // "{" LEVEL = 38, // "level"
RBRACE = 39, // "}" LPAREN = 39, // "("
LBRACKET = 40, // "[" RPAREN = 40, // ")"
RBRACKET = 41, // "]" LBRACE = 41, // "{"
COMMA = 42, // "," RBRACE = 42, // "}"
DOT = 43, // "." LBRACKET = 43, // "["
DOUBLECOLON = 44, // "::" RBRACKET = 44, // "]"
COLON = 45, // ":" COMMA = 45, // ","
SEMICOLON = 46, // ";" DOT = 46, // "."
INCREMENT = 47, // "++" DOUBLECOLON = 47, // "::"
DECREMENT = 48, // "--" COLON = 48, // ":"
LSHIFT = 49, // "<<" SEMICOLON = 49, // ";"
RSHIFT = 50, // ">>" INCREMENT = 50, // "++"
OR = 51, // "||" DECREMENT = 51, // "--"
AND = 52, // "&&" LSHIFT = 52, // "<<"
EQUALITY = 53, // "==" RSHIFT = 53, // ">>"
INEQUALITY = 54, // "!=" OR = 54, // "||"
LESS_EQUAL = 55, // "<=" AND = 55, // "&&"
GREATER_EQUAL = 56, // ">=" EQUALITY = 56, // "=="
LESS = 57, // "<" INEQUALITY = 57, // "!="
GREATER = 58, // ">" LESS_EQUAL = 58, // "<="
NOT = 59, // "!" GREATER_EQUAL = 59, // ">="
COMPLEMENT = 60, // "~" LESS = 60, // "<"
ASSIGN = 61, // "=" GREATER = 61, // ">"
ASSIGN_ADD = 62, // "+=" NOT = 62, // "!"
ASSIGN_SUB = 63, // "-=" COMPLEMENT = 63, // "~"
ASSIGN_MULT = 64, // "*=" ASSIGN = 64, // "="
ASSIGN_DIV = 65, // "/=" ASSIGN_ADD = 65, // "+="
ASSIGN_MOD = 66, // "%=" ASSIGN_SUB = 66, // "-="
ASSIGN_BITWISE_OR = 67, // "|=" ASSIGN_MULT = 67, // "*="
ASSIGN_BITWISE_AND = 68, // "&=" ASSIGN_DIV = 68, // "/="
ASSIGN_BITWISE_EXOR = 69, // "^=" ASSIGN_MOD = 69, // "%="
ASSIGN_RSHIFT = 70, // ">>=" ASSIGN_BITWISE_OR = 70, // "|="
ASSIGN_LSHIFT = 71, // "<<=" ASSIGN_BITWISE_AND = 71, // "&="
BITWISE_OR = 72, // "|" ASSIGN_BITWISE_EXOR = 72, // "^="
BITWISE_AND = 73, // "&" ASSIGN_RSHIFT = 73, // ">>="
BITWISE_EXOR = 74, // "^" ASSIGN_LSHIFT = 74, // "<<="
ADD = 75, // "+" BITWISE_OR = 75, // "|"
SUB = 76, // "-" BITWISE_AND = 76, // "&"
MULT = 77, // "*" BITWISE_EXOR = 77, // "^"
DIV = 78, // "/" ADD = 78, // "+"
MOD = 79, // "%" SUB = 79, // "-"
FILE = 80, // "file path" MULT = 80, // "*"
NAME = 81, // "identifier" DIV = 81, // "/"
STRING = 82, // "string literal" MOD = 82, // "%"
ISTRING = 83, // "localized string" FILE = 83, // "file path"
FLOAT = 84, // "float" NAME = 84, // "identifier"
INTEGER = 85, // "int" STRING = 85, // "string literal"
ADD_ARRAY = 86, // ADD_ARRAY ISTRING = 86, // "localized string"
THEN = 87, // THEN FLOAT = 87, // "float"
NEG = 88, // NEG INTEGER = 88, // "int"
ANIMREF = 89, // ANIMREF ADD_ARRAY = 89, // ADD_ARRAY
PREINC = 90, // PREINC THEN = 90, // THEN
PREDEC = 91, // PREDEC NEG = 91, // NEG
POSTINC = 92, // POSTINC ANIMREF = 92, // ANIMREF
POSTDEC = 93 // POSTDEC PREINC = 93, // PREINC
PREDEC = 94, // PREDEC
POSTINC = 95, // POSTINC
POSTDEC = 96 // POSTDEC
}; };
/// Backward compatibility alias (Bison 3.6). /// Backward compatibility alias (Bison 3.6).
typedef token_kind_type yytokentype; typedef token_kind_type yytokentype;
@ -747,174 +759,180 @@ namespace xsk { namespace gsc { namespace iw5 {
{ {
enum symbol_kind_type enum symbol_kind_type
{ {
YYNTOKENS = 94, ///< Number of tokens. YYNTOKENS = 97, ///< Number of tokens.
S_YYEMPTY = -2, S_YYEMPTY = -2,
S_YYEOF = 0, // "end of file" S_YYEOF = 0, // "end of file"
S_YYerror = 1, // error S_YYerror = 1, // error
S_YYUNDEF = 2, // "invalid token" S_YYUNDEF = 2, // "invalid token"
S_INCLUDE = 3, // "#include" S_BREAKPOINT = 3, // "breakpoint"
S_USINGTREE = 4, // "#using_animtree" S_PROFBEGIN = 4, // "prof_begin"
S_ANIMTREE = 5, // "#animtree" S_PROFEND = 5, // "prof_end"
S_ENDON = 6, // "endon" S_INCLUDE = 6, // "#include"
S_NOTIFY = 7, // "notify" S_USINGTREE = 7, // "#using_animtree"
S_WAIT = 8, // "wait" S_ANIMTREE = 8, // "#animtree"
S_WAITTILL = 9, // "waittill" S_ENDON = 9, // "endon"
S_WAITTILLMATCH = 10, // "waittillmatch" S_NOTIFY = 10, // "notify"
S_WAITTILLFRAMEEND = 11, // "waittillframeend" S_WAIT = 11, // "wait"
S_IF = 12, // "if" S_WAITTILL = 12, // "waittill"
S_ELSE = 13, // "else" S_WAITTILLMATCH = 13, // "waittillmatch"
S_WHILE = 14, // "while" S_WAITTILLFRAMEEND = 14, // "waittillframeend"
S_FOR = 15, // "for" S_IF = 15, // "if"
S_FOREACH = 16, // "foreach" S_ELSE = 16, // "else"
S_IN = 17, // "in" S_WHILE = 17, // "while"
S_SWITCH = 18, // "switch" S_FOR = 18, // "for"
S_CASE = 19, // "case" S_FOREACH = 19, // "foreach"
S_DEFAULT = 20, // "default" S_IN = 20, // "in"
S_BREAK = 21, // "break" S_SWITCH = 21, // "switch"
S_CONTINUE = 22, // "continue" S_CASE = 22, // "case"
S_RETURN = 23, // "return" S_DEFAULT = 23, // "default"
S_THREAD = 24, // "thread" S_BREAK = 24, // "break"
S_CHILDTHREAD = 25, // "childthread" S_CONTINUE = 25, // "continue"
S_THISTHREAD = 26, // "thisthread" S_RETURN = 26, // "return"
S_CALL = 27, // "call" S_THREAD = 27, // "thread"
S_TRUE = 28, // "true" S_CHILDTHREAD = 28, // "childthread"
S_FALSE = 29, // "false" S_THISTHREAD = 29, // "thisthread"
S_UNDEFINED = 30, // "undefined" S_CALL = 30, // "call"
S_SIZE = 31, // "size" S_TRUE = 31, // "true"
S_GAME = 32, // "game" S_FALSE = 32, // "false"
S_SELF = 33, // "self" S_UNDEFINED = 33, // "undefined"
S_ANIM = 34, // "anim" S_SIZE = 34, // ".size"
S_LEVEL = 35, // "level" S_GAME = 35, // "game"
S_LPAREN = 36, // "(" S_SELF = 36, // "self"
S_RPAREN = 37, // ")" S_ANIM = 37, // "anim"
S_LBRACE = 38, // "{" S_LEVEL = 38, // "level"
S_RBRACE = 39, // "}" S_LPAREN = 39, // "("
S_LBRACKET = 40, // "[" S_RPAREN = 40, // ")"
S_RBRACKET = 41, // "]" S_LBRACE = 41, // "{"
S_COMMA = 42, // "," S_RBRACE = 42, // "}"
S_DOT = 43, // "." S_LBRACKET = 43, // "["
S_DOUBLECOLON = 44, // "::" S_RBRACKET = 44, // "]"
S_COLON = 45, // ":" S_COMMA = 45, // ","
S_SEMICOLON = 46, // ";" S_DOT = 46, // "."
S_INCREMENT = 47, // "++" S_DOUBLECOLON = 47, // "::"
S_DECREMENT = 48, // "--" S_COLON = 48, // ":"
S_LSHIFT = 49, // "<<" S_SEMICOLON = 49, // ";"
S_RSHIFT = 50, // ">>" S_INCREMENT = 50, // "++"
S_OR = 51, // "||" S_DECREMENT = 51, // "--"
S_AND = 52, // "&&" S_LSHIFT = 52, // "<<"
S_EQUALITY = 53, // "==" S_RSHIFT = 53, // ">>"
S_INEQUALITY = 54, // "!=" S_OR = 54, // "||"
S_LESS_EQUAL = 55, // "<=" S_AND = 55, // "&&"
S_GREATER_EQUAL = 56, // ">=" S_EQUALITY = 56, // "=="
S_LESS = 57, // "<" S_INEQUALITY = 57, // "!="
S_GREATER = 58, // ">" S_LESS_EQUAL = 58, // "<="
S_NOT = 59, // "!" S_GREATER_EQUAL = 59, // ">="
S_COMPLEMENT = 60, // "~" S_LESS = 60, // "<"
S_ASSIGN = 61, // "=" S_GREATER = 61, // ">"
S_ASSIGN_ADD = 62, // "+=" S_NOT = 62, // "!"
S_ASSIGN_SUB = 63, // "-=" S_COMPLEMENT = 63, // "~"
S_ASSIGN_MULT = 64, // "*=" S_ASSIGN = 64, // "="
S_ASSIGN_DIV = 65, // "/=" S_ASSIGN_ADD = 65, // "+="
S_ASSIGN_MOD = 66, // "%=" S_ASSIGN_SUB = 66, // "-="
S_ASSIGN_BITWISE_OR = 67, // "|=" S_ASSIGN_MULT = 67, // "*="
S_ASSIGN_BITWISE_AND = 68, // "&=" S_ASSIGN_DIV = 68, // "/="
S_ASSIGN_BITWISE_EXOR = 69, // "^=" S_ASSIGN_MOD = 69, // "%="
S_ASSIGN_RSHIFT = 70, // ">>=" S_ASSIGN_BITWISE_OR = 70, // "|="
S_ASSIGN_LSHIFT = 71, // "<<=" S_ASSIGN_BITWISE_AND = 71, // "&="
S_BITWISE_OR = 72, // "|" S_ASSIGN_BITWISE_EXOR = 72, // "^="
S_BITWISE_AND = 73, // "&" S_ASSIGN_RSHIFT = 73, // ">>="
S_BITWISE_EXOR = 74, // "^" S_ASSIGN_LSHIFT = 74, // "<<="
S_ADD = 75, // "+" S_BITWISE_OR = 75, // "|"
S_SUB = 76, // "-" S_BITWISE_AND = 76, // "&"
S_MULT = 77, // "*" S_BITWISE_EXOR = 77, // "^"
S_DIV = 78, // "/" S_ADD = 78, // "+"
S_MOD = 79, // "%" S_SUB = 79, // "-"
S_FILE = 80, // "file path" S_MULT = 80, // "*"
S_NAME = 81, // "identifier" S_DIV = 81, // "/"
S_STRING = 82, // "string literal" S_MOD = 82, // "%"
S_ISTRING = 83, // "localized string" S_FILE = 83, // "file path"
S_FLOAT = 84, // "float" S_NAME = 84, // "identifier"
S_INTEGER = 85, // "int" S_STRING = 85, // "string literal"
S_ADD_ARRAY = 86, // ADD_ARRAY S_ISTRING = 86, // "localized string"
S_THEN = 87, // THEN S_FLOAT = 87, // "float"
S_NEG = 88, // NEG S_INTEGER = 88, // "int"
S_ANIMREF = 89, // ANIMREF S_ADD_ARRAY = 89, // ADD_ARRAY
S_PREINC = 90, // PREINC S_THEN = 90, // THEN
S_PREDEC = 91, // PREDEC S_NEG = 91, // NEG
S_POSTINC = 92, // POSTINC S_ANIMREF = 92, // ANIMREF
S_POSTDEC = 93, // POSTDEC S_PREINC = 93, // PREINC
S_YYACCEPT = 94, // $accept S_PREDEC = 94, // PREDEC
S_root = 95, // root S_POSTINC = 95, // POSTINC
S_program = 96, // program S_POSTDEC = 96, // POSTDEC
S_include = 97, // include S_YYACCEPT = 97, // $accept
S_define = 98, // define S_root = 98, // root
S_usingtree = 99, // usingtree S_program = 99, // program
S_constant = 100, // constant S_include = 100, // include
S_thread = 101, // thread S_define = 101, // define
S_parameters = 102, // parameters S_usingtree = 102, // usingtree
S_stmt = 103, // stmt S_constant = 103, // constant
S_stmt_block = 104, // stmt_block S_thread = 104, // thread
S_stmt_list = 105, // stmt_list S_parameters = 105, // parameters
S_stmt_call = 106, // stmt_call S_stmt = 106, // stmt
S_stmt_assign = 107, // stmt_assign S_stmt_block = 107, // stmt_block
S_stmt_endon = 108, // stmt_endon S_stmt_list = 108, // stmt_list
S_stmt_notify = 109, // stmt_notify S_stmt_call = 109, // stmt_call
S_stmt_wait = 110, // stmt_wait S_stmt_assign = 110, // stmt_assign
S_stmt_waittill = 111, // stmt_waittill S_stmt_endon = 111, // stmt_endon
S_stmt_waittillmatch = 112, // stmt_waittillmatch S_stmt_notify = 112, // stmt_notify
S_stmt_waittillframeend = 113, // stmt_waittillframeend S_stmt_wait = 113, // stmt_wait
S_stmt_if = 114, // stmt_if S_stmt_waittill = 114, // stmt_waittill
S_stmt_ifelse = 115, // stmt_ifelse S_stmt_waittillmatch = 115, // stmt_waittillmatch
S_stmt_while = 116, // stmt_while S_stmt_waittillframeend = 116, // stmt_waittillframeend
S_stmt_for = 117, // stmt_for S_stmt_if = 117, // stmt_if
S_stmt_foreach = 118, // stmt_foreach S_stmt_ifelse = 118, // stmt_ifelse
S_stmt_switch = 119, // stmt_switch S_stmt_while = 119, // stmt_while
S_stmt_case = 120, // stmt_case S_stmt_for = 120, // stmt_for
S_stmt_default = 121, // stmt_default S_stmt_foreach = 121, // stmt_foreach
S_stmt_break = 122, // stmt_break S_stmt_switch = 122, // stmt_switch
S_stmt_continue = 123, // stmt_continue S_stmt_case = 123, // stmt_case
S_stmt_return = 124, // stmt_return S_stmt_default = 124, // stmt_default
S_for_stmt = 125, // for_stmt S_stmt_break = 125, // stmt_break
S_for_expr = 126, // for_expr S_stmt_continue = 126, // stmt_continue
S_expr = 127, // expr S_stmt_return = 127, // stmt_return
S_expr_assign = 128, // expr_assign S_stmt_breakpoint = 128, // stmt_breakpoint
S_expr_compare = 129, // expr_compare S_stmt_prof_begin = 129, // stmt_prof_begin
S_expr_binary = 130, // expr_binary S_stmt_prof_end = 130, // stmt_prof_end
S_expr_primitive = 131, // expr_primitive S_for_stmt = 131, // for_stmt
S_expr_call = 132, // expr_call S_for_expr = 132, // for_expr
S_expr_call_thread = 133, // expr_call_thread S_expr = 133, // expr
S_expr_call_childthread = 134, // expr_call_childthread S_expr_assign = 134, // expr_assign
S_expr_call_function = 135, // expr_call_function S_expr_compare = 135, // expr_compare
S_expr_call_pointer = 136, // expr_call_pointer S_expr_binary = 136, // expr_binary
S_expr_arguments = 137, // expr_arguments S_expr_primitive = 137, // expr_primitive
S_expr_arguments_filled = 138, // expr_arguments_filled S_expr_call = 138, // expr_call
S_expr_arguments_empty = 139, // expr_arguments_empty S_expr_call_thread = 139, // expr_call_thread
S_expr_function = 140, // expr_function S_expr_call_childthread = 140, // expr_call_childthread
S_expr_add_array = 141, // expr_add_array S_expr_call_function = 141, // expr_call_function
S_expr_array = 142, // expr_array S_expr_call_pointer = 142, // expr_call_pointer
S_expr_field = 143, // expr_field S_expr_arguments = 143, // expr_arguments
S_expr_size = 144, // expr_size S_expr_arguments_filled = 144, // expr_arguments_filled
S_object = 145, // object S_expr_arguments_empty = 145, // expr_arguments_empty
S_thisthread = 146, // thisthread S_expr_function = 146, // expr_function
S_empty_array = 147, // empty_array S_expr_add_array = 147, // expr_add_array
S_undefined = 148, // undefined S_expr_array = 148, // expr_array
S_game = 149, // game S_expr_field = 149, // expr_field
S_self = 150, // self S_expr_size = 150, // expr_size
S_anim = 151, // anim S_object = 151, // object
S_level = 152, // level S_thisthread = 152, // thisthread
S_animation = 153, // animation S_empty_array = 153, // empty_array
S_animtree = 154, // animtree S_undefined = 154, // undefined
S_name = 155, // name S_game = 155, // game
S_file = 156, // file S_self = 156, // self
S_istring = 157, // istring S_anim = 157, // anim
S_string = 158, // string S_level = 158, // level
S_vector = 159, // vector S_animation = 159, // animation
S_neg_float = 160, // neg_float S_animtree = 160, // animtree
S_neg_integer = 161, // neg_integer S_name = 161, // name
S_float = 162, // float S_file = 162, // file
S_integer = 163, // integer S_istring = 163, // istring
S_false = 164, // false S_string = 164, // string
S_true = 165 // true S_vector = 165, // vector
S_neg_float = 166, // neg_float
S_neg_integer = 167, // neg_integer
S_float = 168, // float
S_integer = 169, // integer
S_false = 170, // false
S_true = 171 // true
}; };
}; };
@ -1080,6 +1098,10 @@ namespace xsk { namespace gsc { namespace iw5 {
value.move< stmt_break_ptr > (std::move (that.value)); value.move< stmt_break_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (std::move (that.value)); value.move< stmt_call_ptr > (std::move (that.value));
break; break;
@ -1125,6 +1147,14 @@ namespace xsk { namespace gsc { namespace iw5 {
value.move< stmt_notify_ptr > (std::move (that.value)); value.move< stmt_notify_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (std::move (that.value)); value.move< stmt_ptr > (std::move (that.value));
@ -1587,6 +1617,20 @@ namespace xsk { namespace gsc { namespace iw5 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_breakpoint_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_breakpoint_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -1741,6 +1785,34 @@ namespace xsk { namespace gsc { namespace iw5 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_begin_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_begin_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_end_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_end_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -2102,6 +2174,10 @@ switch (yykind)
value.template destroy< stmt_break_ptr > (); value.template destroy< stmt_break_ptr > ();
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.template destroy< stmt_breakpoint_ptr > ();
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.template destroy< stmt_call_ptr > (); value.template destroy< stmt_call_ptr > ();
break; break;
@ -2147,6 +2223,14 @@ switch (yykind)
value.template destroy< stmt_notify_ptr > (); value.template destroy< stmt_notify_ptr > ();
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.template destroy< stmt_prof_begin_ptr > ();
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.template destroy< stmt_prof_end_ptr > ();
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.template destroy< stmt_ptr > (); value.template destroy< stmt_ptr > ();
@ -2409,6 +2493,51 @@ switch (yykind)
return symbol_type (token::IW5UNDEF, l); return symbol_type (token::IW5UNDEF, l);
} }
#endif #endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_BREAKPOINT (location_type l)
{
return symbol_type (token::BREAKPOINT, std::move (l));
}
#else
static
symbol_type
make_BREAKPOINT (const location_type& l)
{
return symbol_type (token::BREAKPOINT, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFBEGIN (location_type l)
{
return symbol_type (token::PROFBEGIN, std::move (l));
}
#else
static
symbol_type
make_PROFBEGIN (const location_type& l)
{
return symbol_type (token::PROFBEGIN, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFEND (location_type l)
{
return symbol_type (token::PROFEND, std::move (l));
}
#else
static
symbol_type
make_PROFEND (const location_type& l)
{
return symbol_type (token::PROFEND, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
static static
symbol_type symbol_type
@ -4118,8 +4247,8 @@ switch (yykind)
/// Constants. /// Constants.
enum enum
{ {
yylast_ = 1590, ///< Last index in yytable_. yylast_ = 1556, ///< Last index in yytable_.
yynnts_ = 72, ///< Number of nonterminal symbols. yynnts_ = 75, ///< Number of nonterminal symbols.
yyfinal_ = 15 ///< Termination state number. yyfinal_ = 15 ///< Termination state number.
}; };
@ -4276,6 +4405,10 @@ switch (yykind)
value.copy< stmt_break_ptr > (YY_MOVE (that.value)); value.copy< stmt_break_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.copy< stmt_breakpoint_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.copy< stmt_call_ptr > (YY_MOVE (that.value)); value.copy< stmt_call_ptr > (YY_MOVE (that.value));
break; break;
@ -4321,6 +4454,14 @@ switch (yykind)
value.copy< stmt_notify_ptr > (YY_MOVE (that.value)); value.copy< stmt_notify_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.copy< stmt_prof_begin_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.copy< stmt_prof_end_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.copy< stmt_ptr > (YY_MOVE (that.value)); value.copy< stmt_ptr > (YY_MOVE (that.value));
@ -4540,6 +4681,10 @@ switch (yykind)
value.move< stmt_break_ptr > (YY_MOVE (s.value)); value.move< stmt_break_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (YY_MOVE (s.value)); value.move< stmt_call_ptr > (YY_MOVE (s.value));
break; break;
@ -4585,6 +4730,14 @@ switch (yykind)
value.move< stmt_notify_ptr > (YY_MOVE (s.value)); value.move< stmt_notify_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (YY_MOVE (s.value)); value.move< stmt_ptr > (YY_MOVE (s.value));
@ -4709,7 +4862,7 @@ switch (yykind)
#line 13 "parser.ypp" #line 13 "parser.ypp"
} } } // xsk::gsc::iw5 } } } // xsk::gsc::iw5
#line 4713 "parser.hpp" #line 4866 "parser.hpp"

File diff suppressed because it is too large Load Diff

View File

@ -700,7 +700,7 @@ extern int yylex (yyscan_t yyscanner);
#undef yyTABLES_NAME #undef yyTABLES_NAME
#endif #endif
#line 145 "lexer.lpp" #line 148 "lexer.lpp"
#line 706 "lexer.hpp" #line 706 "lexer.hpp"

File diff suppressed because it is too large Load Diff

View File

@ -510,85 +510,94 @@ namespace xsk { namespace gsc { namespace iw6 {
// stmt_break // stmt_break
char dummy27[sizeof (stmt_break_ptr)]; char dummy27[sizeof (stmt_break_ptr)];
// stmt_breakpoint
char dummy28[sizeof (stmt_breakpoint_ptr)];
// stmt_call // stmt_call
char dummy28[sizeof (stmt_call_ptr)]; char dummy29[sizeof (stmt_call_ptr)];
// stmt_case // stmt_case
char dummy29[sizeof (stmt_case_ptr)]; char dummy30[sizeof (stmt_case_ptr)];
// stmt_continue // stmt_continue
char dummy30[sizeof (stmt_continue_ptr)]; char dummy31[sizeof (stmt_continue_ptr)];
// stmt_default // stmt_default
char dummy31[sizeof (stmt_default_ptr)]; char dummy32[sizeof (stmt_default_ptr)];
// stmt_endon // stmt_endon
char dummy32[sizeof (stmt_endon_ptr)]; char dummy33[sizeof (stmt_endon_ptr)];
// stmt_for // stmt_for
char dummy33[sizeof (stmt_for_ptr)]; char dummy34[sizeof (stmt_for_ptr)];
// stmt_foreach // stmt_foreach
char dummy34[sizeof (stmt_foreach_ptr)]; char dummy35[sizeof (stmt_foreach_ptr)];
// stmt_if // stmt_if
char dummy35[sizeof (stmt_if_ptr)]; char dummy36[sizeof (stmt_if_ptr)];
// stmt_ifelse // stmt_ifelse
char dummy36[sizeof (stmt_ifelse_ptr)]; char dummy37[sizeof (stmt_ifelse_ptr)];
// stmt_block // stmt_block
// stmt_list // stmt_list
char dummy37[sizeof (stmt_list_ptr)]; char dummy38[sizeof (stmt_list_ptr)];
// stmt_notify // stmt_notify
char dummy38[sizeof (stmt_notify_ptr)]; char dummy39[sizeof (stmt_notify_ptr)];
// stmt_prof_begin
char dummy40[sizeof (stmt_prof_begin_ptr)];
// stmt_prof_end
char dummy41[sizeof (stmt_prof_end_ptr)];
// stmt // stmt
// for_stmt // for_stmt
char dummy39[sizeof (stmt_ptr)]; char dummy42[sizeof (stmt_ptr)];
// stmt_return // stmt_return
char dummy40[sizeof (stmt_return_ptr)]; char dummy43[sizeof (stmt_return_ptr)];
// stmt_switch // stmt_switch
char dummy41[sizeof (stmt_switch_ptr)]; char dummy44[sizeof (stmt_switch_ptr)];
// stmt_wait // stmt_wait
char dummy42[sizeof (stmt_wait_ptr)]; char dummy45[sizeof (stmt_wait_ptr)];
// stmt_waittill // stmt_waittill
char dummy43[sizeof (stmt_waittill_ptr)]; char dummy46[sizeof (stmt_waittill_ptr)];
// stmt_waittillframeend // stmt_waittillframeend
char dummy44[sizeof (stmt_waittillframeend_ptr)]; char dummy47[sizeof (stmt_waittillframeend_ptr)];
// stmt_waittillmatch // stmt_waittillmatch
char dummy45[sizeof (stmt_waittillmatch_ptr)]; char dummy48[sizeof (stmt_waittillmatch_ptr)];
// stmt_while // stmt_while
char dummy46[sizeof (stmt_while_ptr)]; char dummy49[sizeof (stmt_while_ptr)];
// string // string
char dummy47[sizeof (string_ptr)]; char dummy50[sizeof (string_ptr)];
// thisthread // thisthread
char dummy48[sizeof (thisthread_ptr)]; char dummy51[sizeof (thisthread_ptr)];
// thread // thread
char dummy49[sizeof (thread_ptr)]; char dummy52[sizeof (thread_ptr)];
// true // true
char dummy50[sizeof (true_ptr)]; char dummy53[sizeof (true_ptr)];
// undefined // undefined
char dummy51[sizeof (undefined_ptr)]; char dummy54[sizeof (undefined_ptr)];
// usingtree // usingtree
char dummy52[sizeof (usingtree_ptr)]; char dummy55[sizeof (usingtree_ptr)];
// vector // vector
char dummy53[sizeof (vector_ptr)]; char dummy56[sizeof (vector_ptr)];
}; };
/// The size of the largest semantic type. /// The size of the largest semantic type.
@ -640,97 +649,100 @@ namespace xsk { namespace gsc { namespace iw6 {
IW6EOF = 0, // "end of file" IW6EOF = 0, // "end of file"
IW6error = 1, // error IW6error = 1, // error
IW6UNDEF = 2, // "invalid token" IW6UNDEF = 2, // "invalid token"
INCLUDE = 3, // "#include" BREAKPOINT = 3, // "breakpoint"
USINGTREE = 4, // "#using_animtree" PROFBEGIN = 4, // "prof_begin"
ANIMTREE = 5, // "#animtree" PROFEND = 5, // "prof_end"
ENDON = 6, // "endon" INCLUDE = 6, // "#include"
NOTIFY = 7, // "notify" USINGTREE = 7, // "#using_animtree"
WAIT = 8, // "wait" ANIMTREE = 8, // "#animtree"
WAITTILL = 9, // "waittill" ENDON = 9, // "endon"
WAITTILLMATCH = 10, // "waittillmatch" NOTIFY = 10, // "notify"
WAITTILLFRAMEEND = 11, // "waittillframeend" WAIT = 11, // "wait"
IF = 12, // "if" WAITTILL = 12, // "waittill"
ELSE = 13, // "else" WAITTILLMATCH = 13, // "waittillmatch"
WHILE = 14, // "while" WAITTILLFRAMEEND = 14, // "waittillframeend"
FOR = 15, // "for" IF = 15, // "if"
FOREACH = 16, // "foreach" ELSE = 16, // "else"
IN = 17, // "in" WHILE = 17, // "while"
SWITCH = 18, // "switch" FOR = 18, // "for"
CASE = 19, // "case" FOREACH = 19, // "foreach"
DEFAULT = 20, // "default" IN = 20, // "in"
BREAK = 21, // "break" SWITCH = 21, // "switch"
CONTINUE = 22, // "continue" CASE = 22, // "case"
RETURN = 23, // "return" DEFAULT = 23, // "default"
THREAD = 24, // "thread" BREAK = 24, // "break"
CHILDTHREAD = 25, // "childthread" CONTINUE = 25, // "continue"
THISTHREAD = 26, // "thisthread" RETURN = 26, // "return"
CALL = 27, // "call" THREAD = 27, // "thread"
TRUE = 28, // "true" CHILDTHREAD = 28, // "childthread"
FALSE = 29, // "false" THISTHREAD = 29, // "thisthread"
UNDEFINED = 30, // "undefined" CALL = 30, // "call"
SIZE = 31, // "size" TRUE = 31, // "true"
GAME = 32, // "game" FALSE = 32, // "false"
SELF = 33, // "self" UNDEFINED = 33, // "undefined"
ANIM = 34, // "anim" SIZE = 34, // ".size"
LEVEL = 35, // "level" GAME = 35, // "game"
LPAREN = 36, // "(" SELF = 36, // "self"
RPAREN = 37, // ")" ANIM = 37, // "anim"
LBRACE = 38, // "{" LEVEL = 38, // "level"
RBRACE = 39, // "}" LPAREN = 39, // "("
LBRACKET = 40, // "[" RPAREN = 40, // ")"
RBRACKET = 41, // "]" LBRACE = 41, // "{"
COMMA = 42, // "," RBRACE = 42, // "}"
DOT = 43, // "." LBRACKET = 43, // "["
DOUBLECOLON = 44, // "::" RBRACKET = 44, // "]"
COLON = 45, // ":" COMMA = 45, // ","
SEMICOLON = 46, // ";" DOT = 46, // "."
INCREMENT = 47, // "++" DOUBLECOLON = 47, // "::"
DECREMENT = 48, // "--" COLON = 48, // ":"
LSHIFT = 49, // "<<" SEMICOLON = 49, // ";"
RSHIFT = 50, // ">>" INCREMENT = 50, // "++"
OR = 51, // "||" DECREMENT = 51, // "--"
AND = 52, // "&&" LSHIFT = 52, // "<<"
EQUALITY = 53, // "==" RSHIFT = 53, // ">>"
INEQUALITY = 54, // "!=" OR = 54, // "||"
LESS_EQUAL = 55, // "<=" AND = 55, // "&&"
GREATER_EQUAL = 56, // ">=" EQUALITY = 56, // "=="
LESS = 57, // "<" INEQUALITY = 57, // "!="
GREATER = 58, // ">" LESS_EQUAL = 58, // "<="
NOT = 59, // "!" GREATER_EQUAL = 59, // ">="
COMPLEMENT = 60, // "~" LESS = 60, // "<"
ASSIGN = 61, // "=" GREATER = 61, // ">"
ASSIGN_ADD = 62, // "+=" NOT = 62, // "!"
ASSIGN_SUB = 63, // "-=" COMPLEMENT = 63, // "~"
ASSIGN_MULT = 64, // "*=" ASSIGN = 64, // "="
ASSIGN_DIV = 65, // "/=" ASSIGN_ADD = 65, // "+="
ASSIGN_MOD = 66, // "%=" ASSIGN_SUB = 66, // "-="
ASSIGN_BITWISE_OR = 67, // "|=" ASSIGN_MULT = 67, // "*="
ASSIGN_BITWISE_AND = 68, // "&=" ASSIGN_DIV = 68, // "/="
ASSIGN_BITWISE_EXOR = 69, // "^=" ASSIGN_MOD = 69, // "%="
ASSIGN_RSHIFT = 70, // ">>=" ASSIGN_BITWISE_OR = 70, // "|="
ASSIGN_LSHIFT = 71, // "<<=" ASSIGN_BITWISE_AND = 71, // "&="
BITWISE_OR = 72, // "|" ASSIGN_BITWISE_EXOR = 72, // "^="
BITWISE_AND = 73, // "&" ASSIGN_RSHIFT = 73, // ">>="
BITWISE_EXOR = 74, // "^" ASSIGN_LSHIFT = 74, // "<<="
ADD = 75, // "+" BITWISE_OR = 75, // "|"
SUB = 76, // "-" BITWISE_AND = 76, // "&"
MULT = 77, // "*" BITWISE_EXOR = 77, // "^"
DIV = 78, // "/" ADD = 78, // "+"
MOD = 79, // "%" SUB = 79, // "-"
FILE = 80, // "file path" MULT = 80, // "*"
NAME = 81, // "identifier" DIV = 81, // "/"
STRING = 82, // "string literal" MOD = 82, // "%"
ISTRING = 83, // "localized string" FILE = 83, // "file path"
FLOAT = 84, // "float" NAME = 84, // "identifier"
INTEGER = 85, // "int" STRING = 85, // "string literal"
ADD_ARRAY = 86, // ADD_ARRAY ISTRING = 86, // "localized string"
THEN = 87, // THEN FLOAT = 87, // "float"
NEG = 88, // NEG INTEGER = 88, // "int"
ANIMREF = 89, // ANIMREF ADD_ARRAY = 89, // ADD_ARRAY
PREINC = 90, // PREINC THEN = 90, // THEN
PREDEC = 91, // PREDEC NEG = 91, // NEG
POSTINC = 92, // POSTINC ANIMREF = 92, // ANIMREF
POSTDEC = 93 // POSTDEC PREINC = 93, // PREINC
PREDEC = 94, // PREDEC
POSTINC = 95, // POSTINC
POSTDEC = 96 // POSTDEC
}; };
/// Backward compatibility alias (Bison 3.6). /// Backward compatibility alias (Bison 3.6).
typedef token_kind_type yytokentype; typedef token_kind_type yytokentype;
@ -747,174 +759,180 @@ namespace xsk { namespace gsc { namespace iw6 {
{ {
enum symbol_kind_type enum symbol_kind_type
{ {
YYNTOKENS = 94, ///< Number of tokens. YYNTOKENS = 97, ///< Number of tokens.
S_YYEMPTY = -2, S_YYEMPTY = -2,
S_YYEOF = 0, // "end of file" S_YYEOF = 0, // "end of file"
S_YYerror = 1, // error S_YYerror = 1, // error
S_YYUNDEF = 2, // "invalid token" S_YYUNDEF = 2, // "invalid token"
S_INCLUDE = 3, // "#include" S_BREAKPOINT = 3, // "breakpoint"
S_USINGTREE = 4, // "#using_animtree" S_PROFBEGIN = 4, // "prof_begin"
S_ANIMTREE = 5, // "#animtree" S_PROFEND = 5, // "prof_end"
S_ENDON = 6, // "endon" S_INCLUDE = 6, // "#include"
S_NOTIFY = 7, // "notify" S_USINGTREE = 7, // "#using_animtree"
S_WAIT = 8, // "wait" S_ANIMTREE = 8, // "#animtree"
S_WAITTILL = 9, // "waittill" S_ENDON = 9, // "endon"
S_WAITTILLMATCH = 10, // "waittillmatch" S_NOTIFY = 10, // "notify"
S_WAITTILLFRAMEEND = 11, // "waittillframeend" S_WAIT = 11, // "wait"
S_IF = 12, // "if" S_WAITTILL = 12, // "waittill"
S_ELSE = 13, // "else" S_WAITTILLMATCH = 13, // "waittillmatch"
S_WHILE = 14, // "while" S_WAITTILLFRAMEEND = 14, // "waittillframeend"
S_FOR = 15, // "for" S_IF = 15, // "if"
S_FOREACH = 16, // "foreach" S_ELSE = 16, // "else"
S_IN = 17, // "in" S_WHILE = 17, // "while"
S_SWITCH = 18, // "switch" S_FOR = 18, // "for"
S_CASE = 19, // "case" S_FOREACH = 19, // "foreach"
S_DEFAULT = 20, // "default" S_IN = 20, // "in"
S_BREAK = 21, // "break" S_SWITCH = 21, // "switch"
S_CONTINUE = 22, // "continue" S_CASE = 22, // "case"
S_RETURN = 23, // "return" S_DEFAULT = 23, // "default"
S_THREAD = 24, // "thread" S_BREAK = 24, // "break"
S_CHILDTHREAD = 25, // "childthread" S_CONTINUE = 25, // "continue"
S_THISTHREAD = 26, // "thisthread" S_RETURN = 26, // "return"
S_CALL = 27, // "call" S_THREAD = 27, // "thread"
S_TRUE = 28, // "true" S_CHILDTHREAD = 28, // "childthread"
S_FALSE = 29, // "false" S_THISTHREAD = 29, // "thisthread"
S_UNDEFINED = 30, // "undefined" S_CALL = 30, // "call"
S_SIZE = 31, // "size" S_TRUE = 31, // "true"
S_GAME = 32, // "game" S_FALSE = 32, // "false"
S_SELF = 33, // "self" S_UNDEFINED = 33, // "undefined"
S_ANIM = 34, // "anim" S_SIZE = 34, // ".size"
S_LEVEL = 35, // "level" S_GAME = 35, // "game"
S_LPAREN = 36, // "(" S_SELF = 36, // "self"
S_RPAREN = 37, // ")" S_ANIM = 37, // "anim"
S_LBRACE = 38, // "{" S_LEVEL = 38, // "level"
S_RBRACE = 39, // "}" S_LPAREN = 39, // "("
S_LBRACKET = 40, // "[" S_RPAREN = 40, // ")"
S_RBRACKET = 41, // "]" S_LBRACE = 41, // "{"
S_COMMA = 42, // "," S_RBRACE = 42, // "}"
S_DOT = 43, // "." S_LBRACKET = 43, // "["
S_DOUBLECOLON = 44, // "::" S_RBRACKET = 44, // "]"
S_COLON = 45, // ":" S_COMMA = 45, // ","
S_SEMICOLON = 46, // ";" S_DOT = 46, // "."
S_INCREMENT = 47, // "++" S_DOUBLECOLON = 47, // "::"
S_DECREMENT = 48, // "--" S_COLON = 48, // ":"
S_LSHIFT = 49, // "<<" S_SEMICOLON = 49, // ";"
S_RSHIFT = 50, // ">>" S_INCREMENT = 50, // "++"
S_OR = 51, // "||" S_DECREMENT = 51, // "--"
S_AND = 52, // "&&" S_LSHIFT = 52, // "<<"
S_EQUALITY = 53, // "==" S_RSHIFT = 53, // ">>"
S_INEQUALITY = 54, // "!=" S_OR = 54, // "||"
S_LESS_EQUAL = 55, // "<=" S_AND = 55, // "&&"
S_GREATER_EQUAL = 56, // ">=" S_EQUALITY = 56, // "=="
S_LESS = 57, // "<" S_INEQUALITY = 57, // "!="
S_GREATER = 58, // ">" S_LESS_EQUAL = 58, // "<="
S_NOT = 59, // "!" S_GREATER_EQUAL = 59, // ">="
S_COMPLEMENT = 60, // "~" S_LESS = 60, // "<"
S_ASSIGN = 61, // "=" S_GREATER = 61, // ">"
S_ASSIGN_ADD = 62, // "+=" S_NOT = 62, // "!"
S_ASSIGN_SUB = 63, // "-=" S_COMPLEMENT = 63, // "~"
S_ASSIGN_MULT = 64, // "*=" S_ASSIGN = 64, // "="
S_ASSIGN_DIV = 65, // "/=" S_ASSIGN_ADD = 65, // "+="
S_ASSIGN_MOD = 66, // "%=" S_ASSIGN_SUB = 66, // "-="
S_ASSIGN_BITWISE_OR = 67, // "|=" S_ASSIGN_MULT = 67, // "*="
S_ASSIGN_BITWISE_AND = 68, // "&=" S_ASSIGN_DIV = 68, // "/="
S_ASSIGN_BITWISE_EXOR = 69, // "^=" S_ASSIGN_MOD = 69, // "%="
S_ASSIGN_RSHIFT = 70, // ">>=" S_ASSIGN_BITWISE_OR = 70, // "|="
S_ASSIGN_LSHIFT = 71, // "<<=" S_ASSIGN_BITWISE_AND = 71, // "&="
S_BITWISE_OR = 72, // "|" S_ASSIGN_BITWISE_EXOR = 72, // "^="
S_BITWISE_AND = 73, // "&" S_ASSIGN_RSHIFT = 73, // ">>="
S_BITWISE_EXOR = 74, // "^" S_ASSIGN_LSHIFT = 74, // "<<="
S_ADD = 75, // "+" S_BITWISE_OR = 75, // "|"
S_SUB = 76, // "-" S_BITWISE_AND = 76, // "&"
S_MULT = 77, // "*" S_BITWISE_EXOR = 77, // "^"
S_DIV = 78, // "/" S_ADD = 78, // "+"
S_MOD = 79, // "%" S_SUB = 79, // "-"
S_FILE = 80, // "file path" S_MULT = 80, // "*"
S_NAME = 81, // "identifier" S_DIV = 81, // "/"
S_STRING = 82, // "string literal" S_MOD = 82, // "%"
S_ISTRING = 83, // "localized string" S_FILE = 83, // "file path"
S_FLOAT = 84, // "float" S_NAME = 84, // "identifier"
S_INTEGER = 85, // "int" S_STRING = 85, // "string literal"
S_ADD_ARRAY = 86, // ADD_ARRAY S_ISTRING = 86, // "localized string"
S_THEN = 87, // THEN S_FLOAT = 87, // "float"
S_NEG = 88, // NEG S_INTEGER = 88, // "int"
S_ANIMREF = 89, // ANIMREF S_ADD_ARRAY = 89, // ADD_ARRAY
S_PREINC = 90, // PREINC S_THEN = 90, // THEN
S_PREDEC = 91, // PREDEC S_NEG = 91, // NEG
S_POSTINC = 92, // POSTINC S_ANIMREF = 92, // ANIMREF
S_POSTDEC = 93, // POSTDEC S_PREINC = 93, // PREINC
S_YYACCEPT = 94, // $accept S_PREDEC = 94, // PREDEC
S_root = 95, // root S_POSTINC = 95, // POSTINC
S_program = 96, // program S_POSTDEC = 96, // POSTDEC
S_include = 97, // include S_YYACCEPT = 97, // $accept
S_define = 98, // define S_root = 98, // root
S_usingtree = 99, // usingtree S_program = 99, // program
S_constant = 100, // constant S_include = 100, // include
S_thread = 101, // thread S_define = 101, // define
S_parameters = 102, // parameters S_usingtree = 102, // usingtree
S_stmt = 103, // stmt S_constant = 103, // constant
S_stmt_block = 104, // stmt_block S_thread = 104, // thread
S_stmt_list = 105, // stmt_list S_parameters = 105, // parameters
S_stmt_call = 106, // stmt_call S_stmt = 106, // stmt
S_stmt_assign = 107, // stmt_assign S_stmt_block = 107, // stmt_block
S_stmt_endon = 108, // stmt_endon S_stmt_list = 108, // stmt_list
S_stmt_notify = 109, // stmt_notify S_stmt_call = 109, // stmt_call
S_stmt_wait = 110, // stmt_wait S_stmt_assign = 110, // stmt_assign
S_stmt_waittill = 111, // stmt_waittill S_stmt_endon = 111, // stmt_endon
S_stmt_waittillmatch = 112, // stmt_waittillmatch S_stmt_notify = 112, // stmt_notify
S_stmt_waittillframeend = 113, // stmt_waittillframeend S_stmt_wait = 113, // stmt_wait
S_stmt_if = 114, // stmt_if S_stmt_waittill = 114, // stmt_waittill
S_stmt_ifelse = 115, // stmt_ifelse S_stmt_waittillmatch = 115, // stmt_waittillmatch
S_stmt_while = 116, // stmt_while S_stmt_waittillframeend = 116, // stmt_waittillframeend
S_stmt_for = 117, // stmt_for S_stmt_if = 117, // stmt_if
S_stmt_foreach = 118, // stmt_foreach S_stmt_ifelse = 118, // stmt_ifelse
S_stmt_switch = 119, // stmt_switch S_stmt_while = 119, // stmt_while
S_stmt_case = 120, // stmt_case S_stmt_for = 120, // stmt_for
S_stmt_default = 121, // stmt_default S_stmt_foreach = 121, // stmt_foreach
S_stmt_break = 122, // stmt_break S_stmt_switch = 122, // stmt_switch
S_stmt_continue = 123, // stmt_continue S_stmt_case = 123, // stmt_case
S_stmt_return = 124, // stmt_return S_stmt_default = 124, // stmt_default
S_for_stmt = 125, // for_stmt S_stmt_break = 125, // stmt_break
S_for_expr = 126, // for_expr S_stmt_continue = 126, // stmt_continue
S_expr = 127, // expr S_stmt_return = 127, // stmt_return
S_expr_assign = 128, // expr_assign S_stmt_breakpoint = 128, // stmt_breakpoint
S_expr_compare = 129, // expr_compare S_stmt_prof_begin = 129, // stmt_prof_begin
S_expr_binary = 130, // expr_binary S_stmt_prof_end = 130, // stmt_prof_end
S_expr_primitive = 131, // expr_primitive S_for_stmt = 131, // for_stmt
S_expr_call = 132, // expr_call S_for_expr = 132, // for_expr
S_expr_call_thread = 133, // expr_call_thread S_expr = 133, // expr
S_expr_call_childthread = 134, // expr_call_childthread S_expr_assign = 134, // expr_assign
S_expr_call_function = 135, // expr_call_function S_expr_compare = 135, // expr_compare
S_expr_call_pointer = 136, // expr_call_pointer S_expr_binary = 136, // expr_binary
S_expr_arguments = 137, // expr_arguments S_expr_primitive = 137, // expr_primitive
S_expr_arguments_filled = 138, // expr_arguments_filled S_expr_call = 138, // expr_call
S_expr_arguments_empty = 139, // expr_arguments_empty S_expr_call_thread = 139, // expr_call_thread
S_expr_function = 140, // expr_function S_expr_call_childthread = 140, // expr_call_childthread
S_expr_add_array = 141, // expr_add_array S_expr_call_function = 141, // expr_call_function
S_expr_array = 142, // expr_array S_expr_call_pointer = 142, // expr_call_pointer
S_expr_field = 143, // expr_field S_expr_arguments = 143, // expr_arguments
S_expr_size = 144, // expr_size S_expr_arguments_filled = 144, // expr_arguments_filled
S_object = 145, // object S_expr_arguments_empty = 145, // expr_arguments_empty
S_thisthread = 146, // thisthread S_expr_function = 146, // expr_function
S_empty_array = 147, // empty_array S_expr_add_array = 147, // expr_add_array
S_undefined = 148, // undefined S_expr_array = 148, // expr_array
S_game = 149, // game S_expr_field = 149, // expr_field
S_self = 150, // self S_expr_size = 150, // expr_size
S_anim = 151, // anim S_object = 151, // object
S_level = 152, // level S_thisthread = 152, // thisthread
S_animation = 153, // animation S_empty_array = 153, // empty_array
S_animtree = 154, // animtree S_undefined = 154, // undefined
S_name = 155, // name S_game = 155, // game
S_file = 156, // file S_self = 156, // self
S_istring = 157, // istring S_anim = 157, // anim
S_string = 158, // string S_level = 158, // level
S_vector = 159, // vector S_animation = 159, // animation
S_neg_float = 160, // neg_float S_animtree = 160, // animtree
S_neg_integer = 161, // neg_integer S_name = 161, // name
S_float = 162, // float S_file = 162, // file
S_integer = 163, // integer S_istring = 163, // istring
S_false = 164, // false S_string = 164, // string
S_true = 165 // true S_vector = 165, // vector
S_neg_float = 166, // neg_float
S_neg_integer = 167, // neg_integer
S_float = 168, // float
S_integer = 169, // integer
S_false = 170, // false
S_true = 171 // true
}; };
}; };
@ -1080,6 +1098,10 @@ namespace xsk { namespace gsc { namespace iw6 {
value.move< stmt_break_ptr > (std::move (that.value)); value.move< stmt_break_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (std::move (that.value)); value.move< stmt_call_ptr > (std::move (that.value));
break; break;
@ -1125,6 +1147,14 @@ namespace xsk { namespace gsc { namespace iw6 {
value.move< stmt_notify_ptr > (std::move (that.value)); value.move< stmt_notify_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (std::move (that.value)); value.move< stmt_ptr > (std::move (that.value));
@ -1587,6 +1617,20 @@ namespace xsk { namespace gsc { namespace iw6 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_breakpoint_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_breakpoint_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -1741,6 +1785,34 @@ namespace xsk { namespace gsc { namespace iw6 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_begin_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_begin_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_end_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_end_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -2102,6 +2174,10 @@ switch (yykind)
value.template destroy< stmt_break_ptr > (); value.template destroy< stmt_break_ptr > ();
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.template destroy< stmt_breakpoint_ptr > ();
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.template destroy< stmt_call_ptr > (); value.template destroy< stmt_call_ptr > ();
break; break;
@ -2147,6 +2223,14 @@ switch (yykind)
value.template destroy< stmt_notify_ptr > (); value.template destroy< stmt_notify_ptr > ();
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.template destroy< stmt_prof_begin_ptr > ();
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.template destroy< stmt_prof_end_ptr > ();
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.template destroy< stmt_ptr > (); value.template destroy< stmt_ptr > ();
@ -2409,6 +2493,51 @@ switch (yykind)
return symbol_type (token::IW6UNDEF, l); return symbol_type (token::IW6UNDEF, l);
} }
#endif #endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_BREAKPOINT (location_type l)
{
return symbol_type (token::BREAKPOINT, std::move (l));
}
#else
static
symbol_type
make_BREAKPOINT (const location_type& l)
{
return symbol_type (token::BREAKPOINT, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFBEGIN (location_type l)
{
return symbol_type (token::PROFBEGIN, std::move (l));
}
#else
static
symbol_type
make_PROFBEGIN (const location_type& l)
{
return symbol_type (token::PROFBEGIN, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFEND (location_type l)
{
return symbol_type (token::PROFEND, std::move (l));
}
#else
static
symbol_type
make_PROFEND (const location_type& l)
{
return symbol_type (token::PROFEND, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
static static
symbol_type symbol_type
@ -4118,8 +4247,8 @@ switch (yykind)
/// Constants. /// Constants.
enum enum
{ {
yylast_ = 1580, ///< Last index in yytable_. yylast_ = 1591, ///< Last index in yytable_.
yynnts_ = 72, ///< Number of nonterminal symbols. yynnts_ = 75, ///< Number of nonterminal symbols.
yyfinal_ = 15 ///< Termination state number. yyfinal_ = 15 ///< Termination state number.
}; };
@ -4276,6 +4405,10 @@ switch (yykind)
value.copy< stmt_break_ptr > (YY_MOVE (that.value)); value.copy< stmt_break_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.copy< stmt_breakpoint_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.copy< stmt_call_ptr > (YY_MOVE (that.value)); value.copy< stmt_call_ptr > (YY_MOVE (that.value));
break; break;
@ -4321,6 +4454,14 @@ switch (yykind)
value.copy< stmt_notify_ptr > (YY_MOVE (that.value)); value.copy< stmt_notify_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.copy< stmt_prof_begin_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.copy< stmt_prof_end_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.copy< stmt_ptr > (YY_MOVE (that.value)); value.copy< stmt_ptr > (YY_MOVE (that.value));
@ -4540,6 +4681,10 @@ switch (yykind)
value.move< stmt_break_ptr > (YY_MOVE (s.value)); value.move< stmt_break_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (YY_MOVE (s.value)); value.move< stmt_call_ptr > (YY_MOVE (s.value));
break; break;
@ -4585,6 +4730,14 @@ switch (yykind)
value.move< stmt_notify_ptr > (YY_MOVE (s.value)); value.move< stmt_notify_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (YY_MOVE (s.value)); value.move< stmt_ptr > (YY_MOVE (s.value));
@ -4709,7 +4862,7 @@ switch (yykind)
#line 13 "parser.ypp" #line 13 "parser.ypp"
} } } // xsk::gsc::iw6 } } } // xsk::gsc::iw6
#line 4713 "parser.hpp" #line 4866 "parser.hpp"

File diff suppressed because it is too large Load Diff

View File

@ -700,7 +700,7 @@ extern int yylex (yyscan_t yyscanner);
#undef yyTABLES_NAME #undef yyTABLES_NAME
#endif #endif
#line 145 "lexer.lpp" #line 148 "lexer.lpp"
#line 706 "lexer.hpp" #line 706 "lexer.hpp"

File diff suppressed because it is too large Load Diff

View File

@ -510,85 +510,94 @@ namespace xsk { namespace gsc { namespace iw7 {
// stmt_break // stmt_break
char dummy27[sizeof (stmt_break_ptr)]; char dummy27[sizeof (stmt_break_ptr)];
// stmt_breakpoint
char dummy28[sizeof (stmt_breakpoint_ptr)];
// stmt_call // stmt_call
char dummy28[sizeof (stmt_call_ptr)]; char dummy29[sizeof (stmt_call_ptr)];
// stmt_case // stmt_case
char dummy29[sizeof (stmt_case_ptr)]; char dummy30[sizeof (stmt_case_ptr)];
// stmt_continue // stmt_continue
char dummy30[sizeof (stmt_continue_ptr)]; char dummy31[sizeof (stmt_continue_ptr)];
// stmt_default // stmt_default
char dummy31[sizeof (stmt_default_ptr)]; char dummy32[sizeof (stmt_default_ptr)];
// stmt_endon // stmt_endon
char dummy32[sizeof (stmt_endon_ptr)]; char dummy33[sizeof (stmt_endon_ptr)];
// stmt_for // stmt_for
char dummy33[sizeof (stmt_for_ptr)]; char dummy34[sizeof (stmt_for_ptr)];
// stmt_foreach // stmt_foreach
char dummy34[sizeof (stmt_foreach_ptr)]; char dummy35[sizeof (stmt_foreach_ptr)];
// stmt_if // stmt_if
char dummy35[sizeof (stmt_if_ptr)]; char dummy36[sizeof (stmt_if_ptr)];
// stmt_ifelse // stmt_ifelse
char dummy36[sizeof (stmt_ifelse_ptr)]; char dummy37[sizeof (stmt_ifelse_ptr)];
// stmt_block // stmt_block
// stmt_list // stmt_list
char dummy37[sizeof (stmt_list_ptr)]; char dummy38[sizeof (stmt_list_ptr)];
// stmt_notify // stmt_notify
char dummy38[sizeof (stmt_notify_ptr)]; char dummy39[sizeof (stmt_notify_ptr)];
// stmt_prof_begin
char dummy40[sizeof (stmt_prof_begin_ptr)];
// stmt_prof_end
char dummy41[sizeof (stmt_prof_end_ptr)];
// stmt // stmt
// for_stmt // for_stmt
char dummy39[sizeof (stmt_ptr)]; char dummy42[sizeof (stmt_ptr)];
// stmt_return // stmt_return
char dummy40[sizeof (stmt_return_ptr)]; char dummy43[sizeof (stmt_return_ptr)];
// stmt_switch // stmt_switch
char dummy41[sizeof (stmt_switch_ptr)]; char dummy44[sizeof (stmt_switch_ptr)];
// stmt_wait // stmt_wait
char dummy42[sizeof (stmt_wait_ptr)]; char dummy45[sizeof (stmt_wait_ptr)];
// stmt_waittill // stmt_waittill
char dummy43[sizeof (stmt_waittill_ptr)]; char dummy46[sizeof (stmt_waittill_ptr)];
// stmt_waittillframeend // stmt_waittillframeend
char dummy44[sizeof (stmt_waittillframeend_ptr)]; char dummy47[sizeof (stmt_waittillframeend_ptr)];
// stmt_waittillmatch // stmt_waittillmatch
char dummy45[sizeof (stmt_waittillmatch_ptr)]; char dummy48[sizeof (stmt_waittillmatch_ptr)];
// stmt_while // stmt_while
char dummy46[sizeof (stmt_while_ptr)]; char dummy49[sizeof (stmt_while_ptr)];
// string // string
char dummy47[sizeof (string_ptr)]; char dummy50[sizeof (string_ptr)];
// thisthread // thisthread
char dummy48[sizeof (thisthread_ptr)]; char dummy51[sizeof (thisthread_ptr)];
// thread // thread
char dummy49[sizeof (thread_ptr)]; char dummy52[sizeof (thread_ptr)];
// true // true
char dummy50[sizeof (true_ptr)]; char dummy53[sizeof (true_ptr)];
// undefined // undefined
char dummy51[sizeof (undefined_ptr)]; char dummy54[sizeof (undefined_ptr)];
// usingtree // usingtree
char dummy52[sizeof (usingtree_ptr)]; char dummy55[sizeof (usingtree_ptr)];
// vector // vector
char dummy53[sizeof (vector_ptr)]; char dummy56[sizeof (vector_ptr)];
}; };
/// The size of the largest semantic type. /// The size of the largest semantic type.
@ -640,97 +649,100 @@ namespace xsk { namespace gsc { namespace iw7 {
IW7EOF = 0, // "end of file" IW7EOF = 0, // "end of file"
IW7error = 1, // error IW7error = 1, // error
IW7UNDEF = 2, // "invalid token" IW7UNDEF = 2, // "invalid token"
INCLUDE = 3, // "#include" BREAKPOINT = 3, // "breakpoint"
USINGTREE = 4, // "#using_animtree" PROFBEGIN = 4, // "prof_begin"
ANIMTREE = 5, // "#animtree" PROFEND = 5, // "prof_end"
ENDON = 6, // "endon" INCLUDE = 6, // "#include"
NOTIFY = 7, // "notify" USINGTREE = 7, // "#using_animtree"
WAIT = 8, // "wait" ANIMTREE = 8, // "#animtree"
WAITTILL = 9, // "waittill" ENDON = 9, // "endon"
WAITTILLMATCH = 10, // "waittillmatch" NOTIFY = 10, // "notify"
WAITTILLFRAMEEND = 11, // "waittillframeend" WAIT = 11, // "wait"
IF = 12, // "if" WAITTILL = 12, // "waittill"
ELSE = 13, // "else" WAITTILLMATCH = 13, // "waittillmatch"
WHILE = 14, // "while" WAITTILLFRAMEEND = 14, // "waittillframeend"
FOR = 15, // "for" IF = 15, // "if"
FOREACH = 16, // "foreach" ELSE = 16, // "else"
IN = 17, // "in" WHILE = 17, // "while"
SWITCH = 18, // "switch" FOR = 18, // "for"
CASE = 19, // "case" FOREACH = 19, // "foreach"
DEFAULT = 20, // "default" IN = 20, // "in"
BREAK = 21, // "break" SWITCH = 21, // "switch"
CONTINUE = 22, // "continue" CASE = 22, // "case"
RETURN = 23, // "return" DEFAULT = 23, // "default"
THREAD = 24, // "thread" BREAK = 24, // "break"
CHILDTHREAD = 25, // "childthread" CONTINUE = 25, // "continue"
THISTHREAD = 26, // "thisthread" RETURN = 26, // "return"
CALL = 27, // "call" THREAD = 27, // "thread"
TRUE = 28, // "true" CHILDTHREAD = 28, // "childthread"
FALSE = 29, // "false" THISTHREAD = 29, // "thisthread"
UNDEFINED = 30, // "undefined" CALL = 30, // "call"
SIZE = 31, // "size" TRUE = 31, // "true"
GAME = 32, // "game" FALSE = 32, // "false"
SELF = 33, // "self" UNDEFINED = 33, // "undefined"
ANIM = 34, // "anim" SIZE = 34, // ".size"
LEVEL = 35, // "level" GAME = 35, // "game"
LPAREN = 36, // "(" SELF = 36, // "self"
RPAREN = 37, // ")" ANIM = 37, // "anim"
LBRACE = 38, // "{" LEVEL = 38, // "level"
RBRACE = 39, // "}" LPAREN = 39, // "("
LBRACKET = 40, // "[" RPAREN = 40, // ")"
RBRACKET = 41, // "]" LBRACE = 41, // "{"
COMMA = 42, // "," RBRACE = 42, // "}"
DOT = 43, // "." LBRACKET = 43, // "["
DOUBLECOLON = 44, // "::" RBRACKET = 44, // "]"
COLON = 45, // ":" COMMA = 45, // ","
SEMICOLON = 46, // ";" DOT = 46, // "."
INCREMENT = 47, // "++" DOUBLECOLON = 47, // "::"
DECREMENT = 48, // "--" COLON = 48, // ":"
LSHIFT = 49, // "<<" SEMICOLON = 49, // ";"
RSHIFT = 50, // ">>" INCREMENT = 50, // "++"
OR = 51, // "||" DECREMENT = 51, // "--"
AND = 52, // "&&" LSHIFT = 52, // "<<"
EQUALITY = 53, // "==" RSHIFT = 53, // ">>"
INEQUALITY = 54, // "!=" OR = 54, // "||"
LESS_EQUAL = 55, // "<=" AND = 55, // "&&"
GREATER_EQUAL = 56, // ">=" EQUALITY = 56, // "=="
LESS = 57, // "<" INEQUALITY = 57, // "!="
GREATER = 58, // ">" LESS_EQUAL = 58, // "<="
NOT = 59, // "!" GREATER_EQUAL = 59, // ">="
COMPLEMENT = 60, // "~" LESS = 60, // "<"
ASSIGN = 61, // "=" GREATER = 61, // ">"
ASSIGN_ADD = 62, // "+=" NOT = 62, // "!"
ASSIGN_SUB = 63, // "-=" COMPLEMENT = 63, // "~"
ASSIGN_MULT = 64, // "*=" ASSIGN = 64, // "="
ASSIGN_DIV = 65, // "/=" ASSIGN_ADD = 65, // "+="
ASSIGN_MOD = 66, // "%=" ASSIGN_SUB = 66, // "-="
ASSIGN_BITWISE_OR = 67, // "|=" ASSIGN_MULT = 67, // "*="
ASSIGN_BITWISE_AND = 68, // "&=" ASSIGN_DIV = 68, // "/="
ASSIGN_BITWISE_EXOR = 69, // "^=" ASSIGN_MOD = 69, // "%="
ASSIGN_RSHIFT = 70, // ">>=" ASSIGN_BITWISE_OR = 70, // "|="
ASSIGN_LSHIFT = 71, // "<<=" ASSIGN_BITWISE_AND = 71, // "&="
BITWISE_OR = 72, // "|" ASSIGN_BITWISE_EXOR = 72, // "^="
BITWISE_AND = 73, // "&" ASSIGN_RSHIFT = 73, // ">>="
BITWISE_EXOR = 74, // "^" ASSIGN_LSHIFT = 74, // "<<="
ADD = 75, // "+" BITWISE_OR = 75, // "|"
SUB = 76, // "-" BITWISE_AND = 76, // "&"
MULT = 77, // "*" BITWISE_EXOR = 77, // "^"
DIV = 78, // "/" ADD = 78, // "+"
MOD = 79, // "%" SUB = 79, // "-"
FILE = 80, // "file path" MULT = 80, // "*"
NAME = 81, // "identifier" DIV = 81, // "/"
STRING = 82, // "string literal" MOD = 82, // "%"
ISTRING = 83, // "localized string" FILE = 83, // "file path"
FLOAT = 84, // "float" NAME = 84, // "identifier"
INTEGER = 85, // "int" STRING = 85, // "string literal"
ADD_ARRAY = 86, // ADD_ARRAY ISTRING = 86, // "localized string"
THEN = 87, // THEN FLOAT = 87, // "float"
NEG = 88, // NEG INTEGER = 88, // "int"
ANIMREF = 89, // ANIMREF ADD_ARRAY = 89, // ADD_ARRAY
PREINC = 90, // PREINC THEN = 90, // THEN
PREDEC = 91, // PREDEC NEG = 91, // NEG
POSTINC = 92, // POSTINC ANIMREF = 92, // ANIMREF
POSTDEC = 93 // POSTDEC PREINC = 93, // PREINC
PREDEC = 94, // PREDEC
POSTINC = 95, // POSTINC
POSTDEC = 96 // POSTDEC
}; };
/// Backward compatibility alias (Bison 3.6). /// Backward compatibility alias (Bison 3.6).
typedef token_kind_type yytokentype; typedef token_kind_type yytokentype;
@ -747,174 +759,180 @@ namespace xsk { namespace gsc { namespace iw7 {
{ {
enum symbol_kind_type enum symbol_kind_type
{ {
YYNTOKENS = 94, ///< Number of tokens. YYNTOKENS = 97, ///< Number of tokens.
S_YYEMPTY = -2, S_YYEMPTY = -2,
S_YYEOF = 0, // "end of file" S_YYEOF = 0, // "end of file"
S_YYerror = 1, // error S_YYerror = 1, // error
S_YYUNDEF = 2, // "invalid token" S_YYUNDEF = 2, // "invalid token"
S_INCLUDE = 3, // "#include" S_BREAKPOINT = 3, // "breakpoint"
S_USINGTREE = 4, // "#using_animtree" S_PROFBEGIN = 4, // "prof_begin"
S_ANIMTREE = 5, // "#animtree" S_PROFEND = 5, // "prof_end"
S_ENDON = 6, // "endon" S_INCLUDE = 6, // "#include"
S_NOTIFY = 7, // "notify" S_USINGTREE = 7, // "#using_animtree"
S_WAIT = 8, // "wait" S_ANIMTREE = 8, // "#animtree"
S_WAITTILL = 9, // "waittill" S_ENDON = 9, // "endon"
S_WAITTILLMATCH = 10, // "waittillmatch" S_NOTIFY = 10, // "notify"
S_WAITTILLFRAMEEND = 11, // "waittillframeend" S_WAIT = 11, // "wait"
S_IF = 12, // "if" S_WAITTILL = 12, // "waittill"
S_ELSE = 13, // "else" S_WAITTILLMATCH = 13, // "waittillmatch"
S_WHILE = 14, // "while" S_WAITTILLFRAMEEND = 14, // "waittillframeend"
S_FOR = 15, // "for" S_IF = 15, // "if"
S_FOREACH = 16, // "foreach" S_ELSE = 16, // "else"
S_IN = 17, // "in" S_WHILE = 17, // "while"
S_SWITCH = 18, // "switch" S_FOR = 18, // "for"
S_CASE = 19, // "case" S_FOREACH = 19, // "foreach"
S_DEFAULT = 20, // "default" S_IN = 20, // "in"
S_BREAK = 21, // "break" S_SWITCH = 21, // "switch"
S_CONTINUE = 22, // "continue" S_CASE = 22, // "case"
S_RETURN = 23, // "return" S_DEFAULT = 23, // "default"
S_THREAD = 24, // "thread" S_BREAK = 24, // "break"
S_CHILDTHREAD = 25, // "childthread" S_CONTINUE = 25, // "continue"
S_THISTHREAD = 26, // "thisthread" S_RETURN = 26, // "return"
S_CALL = 27, // "call" S_THREAD = 27, // "thread"
S_TRUE = 28, // "true" S_CHILDTHREAD = 28, // "childthread"
S_FALSE = 29, // "false" S_THISTHREAD = 29, // "thisthread"
S_UNDEFINED = 30, // "undefined" S_CALL = 30, // "call"
S_SIZE = 31, // "size" S_TRUE = 31, // "true"
S_GAME = 32, // "game" S_FALSE = 32, // "false"
S_SELF = 33, // "self" S_UNDEFINED = 33, // "undefined"
S_ANIM = 34, // "anim" S_SIZE = 34, // ".size"
S_LEVEL = 35, // "level" S_GAME = 35, // "game"
S_LPAREN = 36, // "(" S_SELF = 36, // "self"
S_RPAREN = 37, // ")" S_ANIM = 37, // "anim"
S_LBRACE = 38, // "{" S_LEVEL = 38, // "level"
S_RBRACE = 39, // "}" S_LPAREN = 39, // "("
S_LBRACKET = 40, // "[" S_RPAREN = 40, // ")"
S_RBRACKET = 41, // "]" S_LBRACE = 41, // "{"
S_COMMA = 42, // "," S_RBRACE = 42, // "}"
S_DOT = 43, // "." S_LBRACKET = 43, // "["
S_DOUBLECOLON = 44, // "::" S_RBRACKET = 44, // "]"
S_COLON = 45, // ":" S_COMMA = 45, // ","
S_SEMICOLON = 46, // ";" S_DOT = 46, // "."
S_INCREMENT = 47, // "++" S_DOUBLECOLON = 47, // "::"
S_DECREMENT = 48, // "--" S_COLON = 48, // ":"
S_LSHIFT = 49, // "<<" S_SEMICOLON = 49, // ";"
S_RSHIFT = 50, // ">>" S_INCREMENT = 50, // "++"
S_OR = 51, // "||" S_DECREMENT = 51, // "--"
S_AND = 52, // "&&" S_LSHIFT = 52, // "<<"
S_EQUALITY = 53, // "==" S_RSHIFT = 53, // ">>"
S_INEQUALITY = 54, // "!=" S_OR = 54, // "||"
S_LESS_EQUAL = 55, // "<=" S_AND = 55, // "&&"
S_GREATER_EQUAL = 56, // ">=" S_EQUALITY = 56, // "=="
S_LESS = 57, // "<" S_INEQUALITY = 57, // "!="
S_GREATER = 58, // ">" S_LESS_EQUAL = 58, // "<="
S_NOT = 59, // "!" S_GREATER_EQUAL = 59, // ">="
S_COMPLEMENT = 60, // "~" S_LESS = 60, // "<"
S_ASSIGN = 61, // "=" S_GREATER = 61, // ">"
S_ASSIGN_ADD = 62, // "+=" S_NOT = 62, // "!"
S_ASSIGN_SUB = 63, // "-=" S_COMPLEMENT = 63, // "~"
S_ASSIGN_MULT = 64, // "*=" S_ASSIGN = 64, // "="
S_ASSIGN_DIV = 65, // "/=" S_ASSIGN_ADD = 65, // "+="
S_ASSIGN_MOD = 66, // "%=" S_ASSIGN_SUB = 66, // "-="
S_ASSIGN_BITWISE_OR = 67, // "|=" S_ASSIGN_MULT = 67, // "*="
S_ASSIGN_BITWISE_AND = 68, // "&=" S_ASSIGN_DIV = 68, // "/="
S_ASSIGN_BITWISE_EXOR = 69, // "^=" S_ASSIGN_MOD = 69, // "%="
S_ASSIGN_RSHIFT = 70, // ">>=" S_ASSIGN_BITWISE_OR = 70, // "|="
S_ASSIGN_LSHIFT = 71, // "<<=" S_ASSIGN_BITWISE_AND = 71, // "&="
S_BITWISE_OR = 72, // "|" S_ASSIGN_BITWISE_EXOR = 72, // "^="
S_BITWISE_AND = 73, // "&" S_ASSIGN_RSHIFT = 73, // ">>="
S_BITWISE_EXOR = 74, // "^" S_ASSIGN_LSHIFT = 74, // "<<="
S_ADD = 75, // "+" S_BITWISE_OR = 75, // "|"
S_SUB = 76, // "-" S_BITWISE_AND = 76, // "&"
S_MULT = 77, // "*" S_BITWISE_EXOR = 77, // "^"
S_DIV = 78, // "/" S_ADD = 78, // "+"
S_MOD = 79, // "%" S_SUB = 79, // "-"
S_FILE = 80, // "file path" S_MULT = 80, // "*"
S_NAME = 81, // "identifier" S_DIV = 81, // "/"
S_STRING = 82, // "string literal" S_MOD = 82, // "%"
S_ISTRING = 83, // "localized string" S_FILE = 83, // "file path"
S_FLOAT = 84, // "float" S_NAME = 84, // "identifier"
S_INTEGER = 85, // "int" S_STRING = 85, // "string literal"
S_ADD_ARRAY = 86, // ADD_ARRAY S_ISTRING = 86, // "localized string"
S_THEN = 87, // THEN S_FLOAT = 87, // "float"
S_NEG = 88, // NEG S_INTEGER = 88, // "int"
S_ANIMREF = 89, // ANIMREF S_ADD_ARRAY = 89, // ADD_ARRAY
S_PREINC = 90, // PREINC S_THEN = 90, // THEN
S_PREDEC = 91, // PREDEC S_NEG = 91, // NEG
S_POSTINC = 92, // POSTINC S_ANIMREF = 92, // ANIMREF
S_POSTDEC = 93, // POSTDEC S_PREINC = 93, // PREINC
S_YYACCEPT = 94, // $accept S_PREDEC = 94, // PREDEC
S_root = 95, // root S_POSTINC = 95, // POSTINC
S_program = 96, // program S_POSTDEC = 96, // POSTDEC
S_include = 97, // include S_YYACCEPT = 97, // $accept
S_define = 98, // define S_root = 98, // root
S_usingtree = 99, // usingtree S_program = 99, // program
S_constant = 100, // constant S_include = 100, // include
S_thread = 101, // thread S_define = 101, // define
S_parameters = 102, // parameters S_usingtree = 102, // usingtree
S_stmt = 103, // stmt S_constant = 103, // constant
S_stmt_block = 104, // stmt_block S_thread = 104, // thread
S_stmt_list = 105, // stmt_list S_parameters = 105, // parameters
S_stmt_call = 106, // stmt_call S_stmt = 106, // stmt
S_stmt_assign = 107, // stmt_assign S_stmt_block = 107, // stmt_block
S_stmt_endon = 108, // stmt_endon S_stmt_list = 108, // stmt_list
S_stmt_notify = 109, // stmt_notify S_stmt_call = 109, // stmt_call
S_stmt_wait = 110, // stmt_wait S_stmt_assign = 110, // stmt_assign
S_stmt_waittill = 111, // stmt_waittill S_stmt_endon = 111, // stmt_endon
S_stmt_waittillmatch = 112, // stmt_waittillmatch S_stmt_notify = 112, // stmt_notify
S_stmt_waittillframeend = 113, // stmt_waittillframeend S_stmt_wait = 113, // stmt_wait
S_stmt_if = 114, // stmt_if S_stmt_waittill = 114, // stmt_waittill
S_stmt_ifelse = 115, // stmt_ifelse S_stmt_waittillmatch = 115, // stmt_waittillmatch
S_stmt_while = 116, // stmt_while S_stmt_waittillframeend = 116, // stmt_waittillframeend
S_stmt_for = 117, // stmt_for S_stmt_if = 117, // stmt_if
S_stmt_foreach = 118, // stmt_foreach S_stmt_ifelse = 118, // stmt_ifelse
S_stmt_switch = 119, // stmt_switch S_stmt_while = 119, // stmt_while
S_stmt_case = 120, // stmt_case S_stmt_for = 120, // stmt_for
S_stmt_default = 121, // stmt_default S_stmt_foreach = 121, // stmt_foreach
S_stmt_break = 122, // stmt_break S_stmt_switch = 122, // stmt_switch
S_stmt_continue = 123, // stmt_continue S_stmt_case = 123, // stmt_case
S_stmt_return = 124, // stmt_return S_stmt_default = 124, // stmt_default
S_for_stmt = 125, // for_stmt S_stmt_break = 125, // stmt_break
S_for_expr = 126, // for_expr S_stmt_continue = 126, // stmt_continue
S_expr = 127, // expr S_stmt_return = 127, // stmt_return
S_expr_assign = 128, // expr_assign S_stmt_breakpoint = 128, // stmt_breakpoint
S_expr_compare = 129, // expr_compare S_stmt_prof_begin = 129, // stmt_prof_begin
S_expr_binary = 130, // expr_binary S_stmt_prof_end = 130, // stmt_prof_end
S_expr_primitive = 131, // expr_primitive S_for_stmt = 131, // for_stmt
S_expr_call = 132, // expr_call S_for_expr = 132, // for_expr
S_expr_call_thread = 133, // expr_call_thread S_expr = 133, // expr
S_expr_call_childthread = 134, // expr_call_childthread S_expr_assign = 134, // expr_assign
S_expr_call_function = 135, // expr_call_function S_expr_compare = 135, // expr_compare
S_expr_call_pointer = 136, // expr_call_pointer S_expr_binary = 136, // expr_binary
S_expr_arguments = 137, // expr_arguments S_expr_primitive = 137, // expr_primitive
S_expr_arguments_filled = 138, // expr_arguments_filled S_expr_call = 138, // expr_call
S_expr_arguments_empty = 139, // expr_arguments_empty S_expr_call_thread = 139, // expr_call_thread
S_expr_function = 140, // expr_function S_expr_call_childthread = 140, // expr_call_childthread
S_expr_add_array = 141, // expr_add_array S_expr_call_function = 141, // expr_call_function
S_expr_array = 142, // expr_array S_expr_call_pointer = 142, // expr_call_pointer
S_expr_field = 143, // expr_field S_expr_arguments = 143, // expr_arguments
S_expr_size = 144, // expr_size S_expr_arguments_filled = 144, // expr_arguments_filled
S_object = 145, // object S_expr_arguments_empty = 145, // expr_arguments_empty
S_thisthread = 146, // thisthread S_expr_function = 146, // expr_function
S_empty_array = 147, // empty_array S_expr_add_array = 147, // expr_add_array
S_undefined = 148, // undefined S_expr_array = 148, // expr_array
S_game = 149, // game S_expr_field = 149, // expr_field
S_self = 150, // self S_expr_size = 150, // expr_size
S_anim = 151, // anim S_object = 151, // object
S_level = 152, // level S_thisthread = 152, // thisthread
S_animation = 153, // animation S_empty_array = 153, // empty_array
S_animtree = 154, // animtree S_undefined = 154, // undefined
S_name = 155, // name S_game = 155, // game
S_file = 156, // file S_self = 156, // self
S_istring = 157, // istring S_anim = 157, // anim
S_string = 158, // string S_level = 158, // level
S_vector = 159, // vector S_animation = 159, // animation
S_neg_float = 160, // neg_float S_animtree = 160, // animtree
S_neg_integer = 161, // neg_integer S_name = 161, // name
S_float = 162, // float S_file = 162, // file
S_integer = 163, // integer S_istring = 163, // istring
S_false = 164, // false S_string = 164, // string
S_true = 165 // true S_vector = 165, // vector
S_neg_float = 166, // neg_float
S_neg_integer = 167, // neg_integer
S_float = 168, // float
S_integer = 169, // integer
S_false = 170, // false
S_true = 171 // true
}; };
}; };
@ -1080,6 +1098,10 @@ namespace xsk { namespace gsc { namespace iw7 {
value.move< stmt_break_ptr > (std::move (that.value)); value.move< stmt_break_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (std::move (that.value)); value.move< stmt_call_ptr > (std::move (that.value));
break; break;
@ -1125,6 +1147,14 @@ namespace xsk { namespace gsc { namespace iw7 {
value.move< stmt_notify_ptr > (std::move (that.value)); value.move< stmt_notify_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (std::move (that.value)); value.move< stmt_ptr > (std::move (that.value));
@ -1587,6 +1617,20 @@ namespace xsk { namespace gsc { namespace iw7 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_breakpoint_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_breakpoint_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -1741,6 +1785,34 @@ namespace xsk { namespace gsc { namespace iw7 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_begin_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_begin_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_end_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_end_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -2102,6 +2174,10 @@ switch (yykind)
value.template destroy< stmt_break_ptr > (); value.template destroy< stmt_break_ptr > ();
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.template destroy< stmt_breakpoint_ptr > ();
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.template destroy< stmt_call_ptr > (); value.template destroy< stmt_call_ptr > ();
break; break;
@ -2147,6 +2223,14 @@ switch (yykind)
value.template destroy< stmt_notify_ptr > (); value.template destroy< stmt_notify_ptr > ();
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.template destroy< stmt_prof_begin_ptr > ();
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.template destroy< stmt_prof_end_ptr > ();
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.template destroy< stmt_ptr > (); value.template destroy< stmt_ptr > ();
@ -2409,6 +2493,51 @@ switch (yykind)
return symbol_type (token::IW7UNDEF, l); return symbol_type (token::IW7UNDEF, l);
} }
#endif #endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_BREAKPOINT (location_type l)
{
return symbol_type (token::BREAKPOINT, std::move (l));
}
#else
static
symbol_type
make_BREAKPOINT (const location_type& l)
{
return symbol_type (token::BREAKPOINT, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFBEGIN (location_type l)
{
return symbol_type (token::PROFBEGIN, std::move (l));
}
#else
static
symbol_type
make_PROFBEGIN (const location_type& l)
{
return symbol_type (token::PROFBEGIN, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFEND (location_type l)
{
return symbol_type (token::PROFEND, std::move (l));
}
#else
static
symbol_type
make_PROFEND (const location_type& l)
{
return symbol_type (token::PROFEND, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
static static
symbol_type symbol_type
@ -4118,8 +4247,8 @@ switch (yykind)
/// Constants. /// Constants.
enum enum
{ {
yylast_ = 1580, ///< Last index in yytable_. yylast_ = 1591, ///< Last index in yytable_.
yynnts_ = 72, ///< Number of nonterminal symbols. yynnts_ = 75, ///< Number of nonterminal symbols.
yyfinal_ = 15 ///< Termination state number. yyfinal_ = 15 ///< Termination state number.
}; };
@ -4276,6 +4405,10 @@ switch (yykind)
value.copy< stmt_break_ptr > (YY_MOVE (that.value)); value.copy< stmt_break_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.copy< stmt_breakpoint_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.copy< stmt_call_ptr > (YY_MOVE (that.value)); value.copy< stmt_call_ptr > (YY_MOVE (that.value));
break; break;
@ -4321,6 +4454,14 @@ switch (yykind)
value.copy< stmt_notify_ptr > (YY_MOVE (that.value)); value.copy< stmt_notify_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.copy< stmt_prof_begin_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.copy< stmt_prof_end_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.copy< stmt_ptr > (YY_MOVE (that.value)); value.copy< stmt_ptr > (YY_MOVE (that.value));
@ -4540,6 +4681,10 @@ switch (yykind)
value.move< stmt_break_ptr > (YY_MOVE (s.value)); value.move< stmt_break_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (YY_MOVE (s.value)); value.move< stmt_call_ptr > (YY_MOVE (s.value));
break; break;
@ -4585,6 +4730,14 @@ switch (yykind)
value.move< stmt_notify_ptr > (YY_MOVE (s.value)); value.move< stmt_notify_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (YY_MOVE (s.value)); value.move< stmt_ptr > (YY_MOVE (s.value));
@ -4709,7 +4862,7 @@ switch (yykind)
#line 13 "parser.ypp" #line 13 "parser.ypp"
} } } // xsk::gsc::iw7 } } } // xsk::gsc::iw7
#line 4713 "parser.hpp" #line 4866 "parser.hpp"

File diff suppressed because it is too large Load Diff

View File

@ -700,7 +700,7 @@ extern int yylex (yyscan_t yyscanner);
#undef yyTABLES_NAME #undef yyTABLES_NAME
#endif #endif
#line 146 "lexer.lpp" #line 149 "lexer.lpp"
#line 706 "lexer.hpp" #line 706 "lexer.hpp"

File diff suppressed because it is too large Load Diff

View File

@ -510,88 +510,97 @@ namespace xsk { namespace gsc { namespace s1 {
// stmt_break // stmt_break
char dummy27[sizeof (stmt_break_ptr)]; char dummy27[sizeof (stmt_break_ptr)];
// stmt_breakpoint
char dummy28[sizeof (stmt_breakpoint_ptr)];
// stmt_call // stmt_call
char dummy28[sizeof (stmt_call_ptr)]; char dummy29[sizeof (stmt_call_ptr)];
// stmt_case // stmt_case
char dummy29[sizeof (stmt_case_ptr)]; char dummy30[sizeof (stmt_case_ptr)];
// stmt_continue // stmt_continue
char dummy30[sizeof (stmt_continue_ptr)]; char dummy31[sizeof (stmt_continue_ptr)];
// stmt_default // stmt_default
char dummy31[sizeof (stmt_default_ptr)]; char dummy32[sizeof (stmt_default_ptr)];
// stmt_endon // stmt_endon
char dummy32[sizeof (stmt_endon_ptr)]; char dummy33[sizeof (stmt_endon_ptr)];
// stmt_for // stmt_for
char dummy33[sizeof (stmt_for_ptr)]; char dummy34[sizeof (stmt_for_ptr)];
// stmt_foreach // stmt_foreach
char dummy34[sizeof (stmt_foreach_ptr)]; char dummy35[sizeof (stmt_foreach_ptr)];
// stmt_if // stmt_if
char dummy35[sizeof (stmt_if_ptr)]; char dummy36[sizeof (stmt_if_ptr)];
// stmt_ifelse // stmt_ifelse
char dummy36[sizeof (stmt_ifelse_ptr)]; char dummy37[sizeof (stmt_ifelse_ptr)];
// stmt_block // stmt_block
// stmt_list // stmt_list
char dummy37[sizeof (stmt_list_ptr)]; char dummy38[sizeof (stmt_list_ptr)];
// stmt_notify // stmt_notify
char dummy38[sizeof (stmt_notify_ptr)]; char dummy39[sizeof (stmt_notify_ptr)];
// stmt_prof_begin
char dummy40[sizeof (stmt_prof_begin_ptr)];
// stmt_prof_end
char dummy41[sizeof (stmt_prof_end_ptr)];
// stmt // stmt
// for_stmt // for_stmt
char dummy39[sizeof (stmt_ptr)]; char dummy42[sizeof (stmt_ptr)];
// stmt_return // stmt_return
char dummy40[sizeof (stmt_return_ptr)]; char dummy43[sizeof (stmt_return_ptr)];
// stmt_switch // stmt_switch
char dummy41[sizeof (stmt_switch_ptr)]; char dummy44[sizeof (stmt_switch_ptr)];
// stmt_wait // stmt_wait
char dummy42[sizeof (stmt_wait_ptr)]; char dummy45[sizeof (stmt_wait_ptr)];
// stmt_waitframe // stmt_waitframe
char dummy43[sizeof (stmt_waitframe_ptr)]; char dummy46[sizeof (stmt_waitframe_ptr)];
// stmt_waittill // stmt_waittill
char dummy44[sizeof (stmt_waittill_ptr)]; char dummy47[sizeof (stmt_waittill_ptr)];
// stmt_waittillframeend // stmt_waittillframeend
char dummy45[sizeof (stmt_waittillframeend_ptr)]; char dummy48[sizeof (stmt_waittillframeend_ptr)];
// stmt_waittillmatch // stmt_waittillmatch
char dummy46[sizeof (stmt_waittillmatch_ptr)]; char dummy49[sizeof (stmt_waittillmatch_ptr)];
// stmt_while // stmt_while
char dummy47[sizeof (stmt_while_ptr)]; char dummy50[sizeof (stmt_while_ptr)];
// string // string
char dummy48[sizeof (string_ptr)]; char dummy51[sizeof (string_ptr)];
// thisthread // thisthread
char dummy49[sizeof (thisthread_ptr)]; char dummy52[sizeof (thisthread_ptr)];
// thread // thread
char dummy50[sizeof (thread_ptr)]; char dummy53[sizeof (thread_ptr)];
// true // true
char dummy51[sizeof (true_ptr)]; char dummy54[sizeof (true_ptr)];
// undefined // undefined
char dummy52[sizeof (undefined_ptr)]; char dummy55[sizeof (undefined_ptr)];
// usingtree // usingtree
char dummy53[sizeof (usingtree_ptr)]; char dummy56[sizeof (usingtree_ptr)];
// vector // vector
char dummy54[sizeof (vector_ptr)]; char dummy57[sizeof (vector_ptr)];
}; };
/// The size of the largest semantic type. /// The size of the largest semantic type.
@ -643,98 +652,101 @@ namespace xsk { namespace gsc { namespace s1 {
S1EOF = 0, // "end of file" S1EOF = 0, // "end of file"
S1error = 1, // error S1error = 1, // error
S1UNDEF = 2, // "invalid token" S1UNDEF = 2, // "invalid token"
INCLUDE = 3, // "#include" BREAKPOINT = 3, // "breakpoint"
USINGTREE = 4, // "#using_animtree" PROFBEGIN = 4, // "prof_begin"
ANIMTREE = 5, // "#animtree" PROFEND = 5, // "prof_end"
ENDON = 6, // "endon" INCLUDE = 6, // "#include"
NOTIFY = 7, // "notify" USINGTREE = 7, // "#using_animtree"
WAIT = 8, // "wait" ANIMTREE = 8, // "#animtree"
WAITTILL = 9, // "waittill" ENDON = 9, // "endon"
WAITTILLMATCH = 10, // "waittillmatch" NOTIFY = 10, // "notify"
WAITTILLFRAMEEND = 11, // "waittillframeend" WAIT = 11, // "wait"
WAITFRAME = 12, // "waitframe" WAITTILL = 12, // "waittill"
IF = 13, // "if" WAITTILLMATCH = 13, // "waittillmatch"
ELSE = 14, // "else" WAITTILLFRAMEEND = 14, // "waittillframeend"
WHILE = 15, // "while" WAITFRAME = 15, // "waitframe"
FOR = 16, // "for" IF = 16, // "if"
FOREACH = 17, // "foreach" ELSE = 17, // "else"
IN = 18, // "in" WHILE = 18, // "while"
SWITCH = 19, // "switch" FOR = 19, // "for"
CASE = 20, // "case" FOREACH = 20, // "foreach"
DEFAULT = 21, // "default" IN = 21, // "in"
BREAK = 22, // "break" SWITCH = 22, // "switch"
CONTINUE = 23, // "continue" CASE = 23, // "case"
RETURN = 24, // "return" DEFAULT = 24, // "default"
THREAD = 25, // "thread" BREAK = 25, // "break"
CHILDTHREAD = 26, // "childthread" CONTINUE = 26, // "continue"
THISTHREAD = 27, // "thisthread" RETURN = 27, // "return"
CALL = 28, // "call" THREAD = 28, // "thread"
TRUE = 29, // "true" CHILDTHREAD = 29, // "childthread"
FALSE = 30, // "false" THISTHREAD = 30, // "thisthread"
UNDEFINED = 31, // "undefined" CALL = 31, // "call"
SIZE = 32, // "size" TRUE = 32, // "true"
GAME = 33, // "game" FALSE = 33, // "false"
SELF = 34, // "self" UNDEFINED = 34, // "undefined"
ANIM = 35, // "anim" SIZE = 35, // ".size"
LEVEL = 36, // "level" GAME = 36, // "game"
LPAREN = 37, // "(" SELF = 37, // "self"
RPAREN = 38, // ")" ANIM = 38, // "anim"
LBRACE = 39, // "{" LEVEL = 39, // "level"
RBRACE = 40, // "}" LPAREN = 40, // "("
LBRACKET = 41, // "[" RPAREN = 41, // ")"
RBRACKET = 42, // "]" LBRACE = 42, // "{"
COMMA = 43, // "," RBRACE = 43, // "}"
DOT = 44, // "." LBRACKET = 44, // "["
DOUBLECOLON = 45, // "::" RBRACKET = 45, // "]"
COLON = 46, // ":" COMMA = 46, // ","
SEMICOLON = 47, // ";" DOT = 47, // "."
INCREMENT = 48, // "++" DOUBLECOLON = 48, // "::"
DECREMENT = 49, // "--" COLON = 49, // ":"
LSHIFT = 50, // "<<" SEMICOLON = 50, // ";"
RSHIFT = 51, // ">>" INCREMENT = 51, // "++"
OR = 52, // "||" DECREMENT = 52, // "--"
AND = 53, // "&&" LSHIFT = 53, // "<<"
EQUALITY = 54, // "==" RSHIFT = 54, // ">>"
INEQUALITY = 55, // "!=" OR = 55, // "||"
LESS_EQUAL = 56, // "<=" AND = 56, // "&&"
GREATER_EQUAL = 57, // ">=" EQUALITY = 57, // "=="
LESS = 58, // "<" INEQUALITY = 58, // "!="
GREATER = 59, // ">" LESS_EQUAL = 59, // "<="
NOT = 60, // "!" GREATER_EQUAL = 60, // ">="
COMPLEMENT = 61, // "~" LESS = 61, // "<"
ASSIGN = 62, // "=" GREATER = 62, // ">"
ASSIGN_ADD = 63, // "+=" NOT = 63, // "!"
ASSIGN_SUB = 64, // "-=" COMPLEMENT = 64, // "~"
ASSIGN_MULT = 65, // "*=" ASSIGN = 65, // "="
ASSIGN_DIV = 66, // "/=" ASSIGN_ADD = 66, // "+="
ASSIGN_MOD = 67, // "%=" ASSIGN_SUB = 67, // "-="
ASSIGN_BITWISE_OR = 68, // "|=" ASSIGN_MULT = 68, // "*="
ASSIGN_BITWISE_AND = 69, // "&=" ASSIGN_DIV = 69, // "/="
ASSIGN_BITWISE_EXOR = 70, // "^=" ASSIGN_MOD = 70, // "%="
ASSIGN_RSHIFT = 71, // ">>=" ASSIGN_BITWISE_OR = 71, // "|="
ASSIGN_LSHIFT = 72, // "<<=" ASSIGN_BITWISE_AND = 72, // "&="
BITWISE_OR = 73, // "|" ASSIGN_BITWISE_EXOR = 73, // "^="
BITWISE_AND = 74, // "&" ASSIGN_RSHIFT = 74, // ">>="
BITWISE_EXOR = 75, // "^" ASSIGN_LSHIFT = 75, // "<<="
ADD = 76, // "+" BITWISE_OR = 76, // "|"
SUB = 77, // "-" BITWISE_AND = 77, // "&"
MULT = 78, // "*" BITWISE_EXOR = 78, // "^"
DIV = 79, // "/" ADD = 79, // "+"
MOD = 80, // "%" SUB = 80, // "-"
FILE = 81, // "file path" MULT = 81, // "*"
NAME = 82, // "identifier" DIV = 82, // "/"
STRING = 83, // "string literal" MOD = 83, // "%"
ISTRING = 84, // "localized string" FILE = 84, // "file path"
FLOAT = 85, // "float" NAME = 85, // "identifier"
INTEGER = 86, // "int" STRING = 86, // "string literal"
ADD_ARRAY = 87, // ADD_ARRAY ISTRING = 87, // "localized string"
THEN = 88, // THEN FLOAT = 88, // "float"
NEG = 89, // NEG INTEGER = 89, // "int"
ANIMREF = 90, // ANIMREF ADD_ARRAY = 90, // ADD_ARRAY
PREINC = 91, // PREINC THEN = 91, // THEN
PREDEC = 92, // PREDEC NEG = 92, // NEG
POSTINC = 93, // POSTINC ANIMREF = 93, // ANIMREF
POSTDEC = 94 // POSTDEC PREINC = 94, // PREINC
PREDEC = 95, // PREDEC
POSTINC = 96, // POSTINC
POSTDEC = 97 // POSTDEC
}; };
/// Backward compatibility alias (Bison 3.6). /// Backward compatibility alias (Bison 3.6).
typedef token_kind_type yytokentype; typedef token_kind_type yytokentype;
@ -751,176 +763,182 @@ namespace xsk { namespace gsc { namespace s1 {
{ {
enum symbol_kind_type enum symbol_kind_type
{ {
YYNTOKENS = 95, ///< Number of tokens. YYNTOKENS = 98, ///< Number of tokens.
S_YYEMPTY = -2, S_YYEMPTY = -2,
S_YYEOF = 0, // "end of file" S_YYEOF = 0, // "end of file"
S_YYerror = 1, // error S_YYerror = 1, // error
S_YYUNDEF = 2, // "invalid token" S_YYUNDEF = 2, // "invalid token"
S_INCLUDE = 3, // "#include" S_BREAKPOINT = 3, // "breakpoint"
S_USINGTREE = 4, // "#using_animtree" S_PROFBEGIN = 4, // "prof_begin"
S_ANIMTREE = 5, // "#animtree" S_PROFEND = 5, // "prof_end"
S_ENDON = 6, // "endon" S_INCLUDE = 6, // "#include"
S_NOTIFY = 7, // "notify" S_USINGTREE = 7, // "#using_animtree"
S_WAIT = 8, // "wait" S_ANIMTREE = 8, // "#animtree"
S_WAITTILL = 9, // "waittill" S_ENDON = 9, // "endon"
S_WAITTILLMATCH = 10, // "waittillmatch" S_NOTIFY = 10, // "notify"
S_WAITTILLFRAMEEND = 11, // "waittillframeend" S_WAIT = 11, // "wait"
S_WAITFRAME = 12, // "waitframe" S_WAITTILL = 12, // "waittill"
S_IF = 13, // "if" S_WAITTILLMATCH = 13, // "waittillmatch"
S_ELSE = 14, // "else" S_WAITTILLFRAMEEND = 14, // "waittillframeend"
S_WHILE = 15, // "while" S_WAITFRAME = 15, // "waitframe"
S_FOR = 16, // "for" S_IF = 16, // "if"
S_FOREACH = 17, // "foreach" S_ELSE = 17, // "else"
S_IN = 18, // "in" S_WHILE = 18, // "while"
S_SWITCH = 19, // "switch" S_FOR = 19, // "for"
S_CASE = 20, // "case" S_FOREACH = 20, // "foreach"
S_DEFAULT = 21, // "default" S_IN = 21, // "in"
S_BREAK = 22, // "break" S_SWITCH = 22, // "switch"
S_CONTINUE = 23, // "continue" S_CASE = 23, // "case"
S_RETURN = 24, // "return" S_DEFAULT = 24, // "default"
S_THREAD = 25, // "thread" S_BREAK = 25, // "break"
S_CHILDTHREAD = 26, // "childthread" S_CONTINUE = 26, // "continue"
S_THISTHREAD = 27, // "thisthread" S_RETURN = 27, // "return"
S_CALL = 28, // "call" S_THREAD = 28, // "thread"
S_TRUE = 29, // "true" S_CHILDTHREAD = 29, // "childthread"
S_FALSE = 30, // "false" S_THISTHREAD = 30, // "thisthread"
S_UNDEFINED = 31, // "undefined" S_CALL = 31, // "call"
S_SIZE = 32, // "size" S_TRUE = 32, // "true"
S_GAME = 33, // "game" S_FALSE = 33, // "false"
S_SELF = 34, // "self" S_UNDEFINED = 34, // "undefined"
S_ANIM = 35, // "anim" S_SIZE = 35, // ".size"
S_LEVEL = 36, // "level" S_GAME = 36, // "game"
S_LPAREN = 37, // "(" S_SELF = 37, // "self"
S_RPAREN = 38, // ")" S_ANIM = 38, // "anim"
S_LBRACE = 39, // "{" S_LEVEL = 39, // "level"
S_RBRACE = 40, // "}" S_LPAREN = 40, // "("
S_LBRACKET = 41, // "[" S_RPAREN = 41, // ")"
S_RBRACKET = 42, // "]" S_LBRACE = 42, // "{"
S_COMMA = 43, // "," S_RBRACE = 43, // "}"
S_DOT = 44, // "." S_LBRACKET = 44, // "["
S_DOUBLECOLON = 45, // "::" S_RBRACKET = 45, // "]"
S_COLON = 46, // ":" S_COMMA = 46, // ","
S_SEMICOLON = 47, // ";" S_DOT = 47, // "."
S_INCREMENT = 48, // "++" S_DOUBLECOLON = 48, // "::"
S_DECREMENT = 49, // "--" S_COLON = 49, // ":"
S_LSHIFT = 50, // "<<" S_SEMICOLON = 50, // ";"
S_RSHIFT = 51, // ">>" S_INCREMENT = 51, // "++"
S_OR = 52, // "||" S_DECREMENT = 52, // "--"
S_AND = 53, // "&&" S_LSHIFT = 53, // "<<"
S_EQUALITY = 54, // "==" S_RSHIFT = 54, // ">>"
S_INEQUALITY = 55, // "!=" S_OR = 55, // "||"
S_LESS_EQUAL = 56, // "<=" S_AND = 56, // "&&"
S_GREATER_EQUAL = 57, // ">=" S_EQUALITY = 57, // "=="
S_LESS = 58, // "<" S_INEQUALITY = 58, // "!="
S_GREATER = 59, // ">" S_LESS_EQUAL = 59, // "<="
S_NOT = 60, // "!" S_GREATER_EQUAL = 60, // ">="
S_COMPLEMENT = 61, // "~" S_LESS = 61, // "<"
S_ASSIGN = 62, // "=" S_GREATER = 62, // ">"
S_ASSIGN_ADD = 63, // "+=" S_NOT = 63, // "!"
S_ASSIGN_SUB = 64, // "-=" S_COMPLEMENT = 64, // "~"
S_ASSIGN_MULT = 65, // "*=" S_ASSIGN = 65, // "="
S_ASSIGN_DIV = 66, // "/=" S_ASSIGN_ADD = 66, // "+="
S_ASSIGN_MOD = 67, // "%=" S_ASSIGN_SUB = 67, // "-="
S_ASSIGN_BITWISE_OR = 68, // "|=" S_ASSIGN_MULT = 68, // "*="
S_ASSIGN_BITWISE_AND = 69, // "&=" S_ASSIGN_DIV = 69, // "/="
S_ASSIGN_BITWISE_EXOR = 70, // "^=" S_ASSIGN_MOD = 70, // "%="
S_ASSIGN_RSHIFT = 71, // ">>=" S_ASSIGN_BITWISE_OR = 71, // "|="
S_ASSIGN_LSHIFT = 72, // "<<=" S_ASSIGN_BITWISE_AND = 72, // "&="
S_BITWISE_OR = 73, // "|" S_ASSIGN_BITWISE_EXOR = 73, // "^="
S_BITWISE_AND = 74, // "&" S_ASSIGN_RSHIFT = 74, // ">>="
S_BITWISE_EXOR = 75, // "^" S_ASSIGN_LSHIFT = 75, // "<<="
S_ADD = 76, // "+" S_BITWISE_OR = 76, // "|"
S_SUB = 77, // "-" S_BITWISE_AND = 77, // "&"
S_MULT = 78, // "*" S_BITWISE_EXOR = 78, // "^"
S_DIV = 79, // "/" S_ADD = 79, // "+"
S_MOD = 80, // "%" S_SUB = 80, // "-"
S_FILE = 81, // "file path" S_MULT = 81, // "*"
S_NAME = 82, // "identifier" S_DIV = 82, // "/"
S_STRING = 83, // "string literal" S_MOD = 83, // "%"
S_ISTRING = 84, // "localized string" S_FILE = 84, // "file path"
S_FLOAT = 85, // "float" S_NAME = 85, // "identifier"
S_INTEGER = 86, // "int" S_STRING = 86, // "string literal"
S_ADD_ARRAY = 87, // ADD_ARRAY S_ISTRING = 87, // "localized string"
S_THEN = 88, // THEN S_FLOAT = 88, // "float"
S_NEG = 89, // NEG S_INTEGER = 89, // "int"
S_ANIMREF = 90, // ANIMREF S_ADD_ARRAY = 90, // ADD_ARRAY
S_PREINC = 91, // PREINC S_THEN = 91, // THEN
S_PREDEC = 92, // PREDEC S_NEG = 92, // NEG
S_POSTINC = 93, // POSTINC S_ANIMREF = 93, // ANIMREF
S_POSTDEC = 94, // POSTDEC S_PREINC = 94, // PREINC
S_YYACCEPT = 95, // $accept S_PREDEC = 95, // PREDEC
S_root = 96, // root S_POSTINC = 96, // POSTINC
S_program = 97, // program S_POSTDEC = 97, // POSTDEC
S_include = 98, // include S_YYACCEPT = 98, // $accept
S_define = 99, // define S_root = 99, // root
S_usingtree = 100, // usingtree S_program = 100, // program
S_constant = 101, // constant S_include = 101, // include
S_thread = 102, // thread S_define = 102, // define
S_parameters = 103, // parameters S_usingtree = 103, // usingtree
S_stmt = 104, // stmt S_constant = 104, // constant
S_stmt_block = 105, // stmt_block S_thread = 105, // thread
S_stmt_list = 106, // stmt_list S_parameters = 106, // parameters
S_stmt_call = 107, // stmt_call S_stmt = 107, // stmt
S_stmt_assign = 108, // stmt_assign S_stmt_block = 108, // stmt_block
S_stmt_endon = 109, // stmt_endon S_stmt_list = 109, // stmt_list
S_stmt_notify = 110, // stmt_notify S_stmt_call = 110, // stmt_call
S_stmt_wait = 111, // stmt_wait S_stmt_assign = 111, // stmt_assign
S_stmt_waittill = 112, // stmt_waittill S_stmt_endon = 112, // stmt_endon
S_stmt_waittillmatch = 113, // stmt_waittillmatch S_stmt_notify = 113, // stmt_notify
S_stmt_waittillframeend = 114, // stmt_waittillframeend S_stmt_wait = 114, // stmt_wait
S_stmt_waitframe = 115, // stmt_waitframe S_stmt_waittill = 115, // stmt_waittill
S_stmt_if = 116, // stmt_if S_stmt_waittillmatch = 116, // stmt_waittillmatch
S_stmt_ifelse = 117, // stmt_ifelse S_stmt_waittillframeend = 117, // stmt_waittillframeend
S_stmt_while = 118, // stmt_while S_stmt_waitframe = 118, // stmt_waitframe
S_stmt_for = 119, // stmt_for S_stmt_if = 119, // stmt_if
S_stmt_foreach = 120, // stmt_foreach S_stmt_ifelse = 120, // stmt_ifelse
S_stmt_switch = 121, // stmt_switch S_stmt_while = 121, // stmt_while
S_stmt_case = 122, // stmt_case S_stmt_for = 122, // stmt_for
S_stmt_default = 123, // stmt_default S_stmt_foreach = 123, // stmt_foreach
S_stmt_break = 124, // stmt_break S_stmt_switch = 124, // stmt_switch
S_stmt_continue = 125, // stmt_continue S_stmt_case = 125, // stmt_case
S_stmt_return = 126, // stmt_return S_stmt_default = 126, // stmt_default
S_for_stmt = 127, // for_stmt S_stmt_break = 127, // stmt_break
S_for_expr = 128, // for_expr S_stmt_continue = 128, // stmt_continue
S_expr = 129, // expr S_stmt_return = 129, // stmt_return
S_expr_assign = 130, // expr_assign S_stmt_breakpoint = 130, // stmt_breakpoint
S_expr_compare = 131, // expr_compare S_stmt_prof_begin = 131, // stmt_prof_begin
S_expr_binary = 132, // expr_binary S_stmt_prof_end = 132, // stmt_prof_end
S_expr_primitive = 133, // expr_primitive S_for_stmt = 133, // for_stmt
S_expr_call = 134, // expr_call S_for_expr = 134, // for_expr
S_expr_call_thread = 135, // expr_call_thread S_expr = 135, // expr
S_expr_call_childthread = 136, // expr_call_childthread S_expr_assign = 136, // expr_assign
S_expr_call_function = 137, // expr_call_function S_expr_compare = 137, // expr_compare
S_expr_call_pointer = 138, // expr_call_pointer S_expr_binary = 138, // expr_binary
S_expr_arguments = 139, // expr_arguments S_expr_primitive = 139, // expr_primitive
S_expr_arguments_filled = 140, // expr_arguments_filled S_expr_call = 140, // expr_call
S_expr_arguments_empty = 141, // expr_arguments_empty S_expr_call_thread = 141, // expr_call_thread
S_expr_function = 142, // expr_function S_expr_call_childthread = 142, // expr_call_childthread
S_expr_add_array = 143, // expr_add_array S_expr_call_function = 143, // expr_call_function
S_expr_array = 144, // expr_array S_expr_call_pointer = 144, // expr_call_pointer
S_expr_field = 145, // expr_field S_expr_arguments = 145, // expr_arguments
S_expr_size = 146, // expr_size S_expr_arguments_filled = 146, // expr_arguments_filled
S_object = 147, // object S_expr_arguments_empty = 147, // expr_arguments_empty
S_thisthread = 148, // thisthread S_expr_function = 148, // expr_function
S_empty_array = 149, // empty_array S_expr_add_array = 149, // expr_add_array
S_undefined = 150, // undefined S_expr_array = 150, // expr_array
S_game = 151, // game S_expr_field = 151, // expr_field
S_self = 152, // self S_expr_size = 152, // expr_size
S_anim = 153, // anim S_object = 153, // object
S_level = 154, // level S_thisthread = 154, // thisthread
S_animation = 155, // animation S_empty_array = 155, // empty_array
S_animtree = 156, // animtree S_undefined = 156, // undefined
S_name = 157, // name S_game = 157, // game
S_file = 158, // file S_self = 158, // self
S_istring = 159, // istring S_anim = 159, // anim
S_string = 160, // string S_level = 160, // level
S_vector = 161, // vector S_animation = 161, // animation
S_neg_float = 162, // neg_float S_animtree = 162, // animtree
S_neg_integer = 163, // neg_integer S_name = 163, // name
S_float = 164, // float S_file = 164, // file
S_integer = 165, // integer S_istring = 165, // istring
S_false = 166, // false S_string = 166, // string
S_true = 167 // true S_vector = 167, // vector
S_neg_float = 168, // neg_float
S_neg_integer = 169, // neg_integer
S_float = 170, // float
S_integer = 171, // integer
S_false = 172, // false
S_true = 173 // true
}; };
}; };
@ -1086,6 +1104,10 @@ namespace xsk { namespace gsc { namespace s1 {
value.move< stmt_break_ptr > (std::move (that.value)); value.move< stmt_break_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (std::move (that.value)); value.move< stmt_call_ptr > (std::move (that.value));
break; break;
@ -1131,6 +1153,14 @@ namespace xsk { namespace gsc { namespace s1 {
value.move< stmt_notify_ptr > (std::move (that.value)); value.move< stmt_notify_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (std::move (that.value)); value.move< stmt_ptr > (std::move (that.value));
@ -1597,6 +1627,20 @@ namespace xsk { namespace gsc { namespace s1 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_breakpoint_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_breakpoint_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -1751,6 +1795,34 @@ namespace xsk { namespace gsc { namespace s1 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_begin_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_begin_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_end_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_end_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -2126,6 +2198,10 @@ switch (yykind)
value.template destroy< stmt_break_ptr > (); value.template destroy< stmt_break_ptr > ();
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.template destroy< stmt_breakpoint_ptr > ();
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.template destroy< stmt_call_ptr > (); value.template destroy< stmt_call_ptr > ();
break; break;
@ -2171,6 +2247,14 @@ switch (yykind)
value.template destroy< stmt_notify_ptr > (); value.template destroy< stmt_notify_ptr > ();
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.template destroy< stmt_prof_begin_ptr > ();
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.template destroy< stmt_prof_end_ptr > ();
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.template destroy< stmt_ptr > (); value.template destroy< stmt_ptr > ();
@ -2437,6 +2521,51 @@ switch (yykind)
return symbol_type (token::S1UNDEF, l); return symbol_type (token::S1UNDEF, l);
} }
#endif #endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_BREAKPOINT (location_type l)
{
return symbol_type (token::BREAKPOINT, std::move (l));
}
#else
static
symbol_type
make_BREAKPOINT (const location_type& l)
{
return symbol_type (token::BREAKPOINT, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFBEGIN (location_type l)
{
return symbol_type (token::PROFBEGIN, std::move (l));
}
#else
static
symbol_type
make_PROFBEGIN (const location_type& l)
{
return symbol_type (token::PROFBEGIN, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFEND (location_type l)
{
return symbol_type (token::PROFEND, std::move (l));
}
#else
static
symbol_type
make_PROFEND (const location_type& l)
{
return symbol_type (token::PROFEND, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
static static
symbol_type symbol_type
@ -4161,8 +4290,8 @@ switch (yykind)
/// Constants. /// Constants.
enum enum
{ {
yylast_ = 1581, ///< Last index in yytable_. yylast_ = 1646, ///< Last index in yytable_.
yynnts_ = 73, ///< Number of nonterminal symbols. yynnts_ = 76, ///< Number of nonterminal symbols.
yyfinal_ = 15 ///< Termination state number. yyfinal_ = 15 ///< Termination state number.
}; };
@ -4319,6 +4448,10 @@ switch (yykind)
value.copy< stmt_break_ptr > (YY_MOVE (that.value)); value.copy< stmt_break_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.copy< stmt_breakpoint_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.copy< stmt_call_ptr > (YY_MOVE (that.value)); value.copy< stmt_call_ptr > (YY_MOVE (that.value));
break; break;
@ -4364,6 +4497,14 @@ switch (yykind)
value.copy< stmt_notify_ptr > (YY_MOVE (that.value)); value.copy< stmt_notify_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.copy< stmt_prof_begin_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.copy< stmt_prof_end_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.copy< stmt_ptr > (YY_MOVE (that.value)); value.copy< stmt_ptr > (YY_MOVE (that.value));
@ -4587,6 +4728,10 @@ switch (yykind)
value.move< stmt_break_ptr > (YY_MOVE (s.value)); value.move< stmt_break_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (YY_MOVE (s.value)); value.move< stmt_call_ptr > (YY_MOVE (s.value));
break; break;
@ -4632,6 +4777,14 @@ switch (yykind)
value.move< stmt_notify_ptr > (YY_MOVE (s.value)); value.move< stmt_notify_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (YY_MOVE (s.value)); value.move< stmt_ptr > (YY_MOVE (s.value));
@ -4760,7 +4913,7 @@ switch (yykind)
#line 13 "parser.ypp" #line 13 "parser.ypp"
} } } // xsk::gsc::s1 } } } // xsk::gsc::s1
#line 4764 "parser.hpp" #line 4917 "parser.hpp"

File diff suppressed because it is too large Load Diff

View File

@ -700,7 +700,7 @@ extern int yylex (yyscan_t yyscanner);
#undef yyTABLES_NAME #undef yyTABLES_NAME
#endif #endif
#line 146 "lexer.lpp" #line 149 "lexer.lpp"
#line 706 "lexer.hpp" #line 706 "lexer.hpp"

File diff suppressed because it is too large Load Diff

View File

@ -510,88 +510,97 @@ namespace xsk { namespace gsc { namespace s2 {
// stmt_break // stmt_break
char dummy27[sizeof (stmt_break_ptr)]; char dummy27[sizeof (stmt_break_ptr)];
// stmt_breakpoint
char dummy28[sizeof (stmt_breakpoint_ptr)];
// stmt_call // stmt_call
char dummy28[sizeof (stmt_call_ptr)]; char dummy29[sizeof (stmt_call_ptr)];
// stmt_case // stmt_case
char dummy29[sizeof (stmt_case_ptr)]; char dummy30[sizeof (stmt_case_ptr)];
// stmt_continue // stmt_continue
char dummy30[sizeof (stmt_continue_ptr)]; char dummy31[sizeof (stmt_continue_ptr)];
// stmt_default // stmt_default
char dummy31[sizeof (stmt_default_ptr)]; char dummy32[sizeof (stmt_default_ptr)];
// stmt_endon // stmt_endon
char dummy32[sizeof (stmt_endon_ptr)]; char dummy33[sizeof (stmt_endon_ptr)];
// stmt_for // stmt_for
char dummy33[sizeof (stmt_for_ptr)]; char dummy34[sizeof (stmt_for_ptr)];
// stmt_foreach // stmt_foreach
char dummy34[sizeof (stmt_foreach_ptr)]; char dummy35[sizeof (stmt_foreach_ptr)];
// stmt_if // stmt_if
char dummy35[sizeof (stmt_if_ptr)]; char dummy36[sizeof (stmt_if_ptr)];
// stmt_ifelse // stmt_ifelse
char dummy36[sizeof (stmt_ifelse_ptr)]; char dummy37[sizeof (stmt_ifelse_ptr)];
// stmt_block // stmt_block
// stmt_list // stmt_list
char dummy37[sizeof (stmt_list_ptr)]; char dummy38[sizeof (stmt_list_ptr)];
// stmt_notify // stmt_notify
char dummy38[sizeof (stmt_notify_ptr)]; char dummy39[sizeof (stmt_notify_ptr)];
// stmt_prof_begin
char dummy40[sizeof (stmt_prof_begin_ptr)];
// stmt_prof_end
char dummy41[sizeof (stmt_prof_end_ptr)];
// stmt // stmt
// for_stmt // for_stmt
char dummy39[sizeof (stmt_ptr)]; char dummy42[sizeof (stmt_ptr)];
// stmt_return // stmt_return
char dummy40[sizeof (stmt_return_ptr)]; char dummy43[sizeof (stmt_return_ptr)];
// stmt_switch // stmt_switch
char dummy41[sizeof (stmt_switch_ptr)]; char dummy44[sizeof (stmt_switch_ptr)];
// stmt_wait // stmt_wait
char dummy42[sizeof (stmt_wait_ptr)]; char dummy45[sizeof (stmt_wait_ptr)];
// stmt_waitframe // stmt_waitframe
char dummy43[sizeof (stmt_waitframe_ptr)]; char dummy46[sizeof (stmt_waitframe_ptr)];
// stmt_waittill // stmt_waittill
char dummy44[sizeof (stmt_waittill_ptr)]; char dummy47[sizeof (stmt_waittill_ptr)];
// stmt_waittillframeend // stmt_waittillframeend
char dummy45[sizeof (stmt_waittillframeend_ptr)]; char dummy48[sizeof (stmt_waittillframeend_ptr)];
// stmt_waittillmatch // stmt_waittillmatch
char dummy46[sizeof (stmt_waittillmatch_ptr)]; char dummy49[sizeof (stmt_waittillmatch_ptr)];
// stmt_while // stmt_while
char dummy47[sizeof (stmt_while_ptr)]; char dummy50[sizeof (stmt_while_ptr)];
// string // string
char dummy48[sizeof (string_ptr)]; char dummy51[sizeof (string_ptr)];
// thisthread // thisthread
char dummy49[sizeof (thisthread_ptr)]; char dummy52[sizeof (thisthread_ptr)];
// thread // thread
char dummy50[sizeof (thread_ptr)]; char dummy53[sizeof (thread_ptr)];
// true // true
char dummy51[sizeof (true_ptr)]; char dummy54[sizeof (true_ptr)];
// undefined // undefined
char dummy52[sizeof (undefined_ptr)]; char dummy55[sizeof (undefined_ptr)];
// usingtree // usingtree
char dummy53[sizeof (usingtree_ptr)]; char dummy56[sizeof (usingtree_ptr)];
// vector // vector
char dummy54[sizeof (vector_ptr)]; char dummy57[sizeof (vector_ptr)];
}; };
/// The size of the largest semantic type. /// The size of the largest semantic type.
@ -643,98 +652,101 @@ namespace xsk { namespace gsc { namespace s2 {
S2EOF = 0, // "end of file" S2EOF = 0, // "end of file"
S2error = 1, // error S2error = 1, // error
S2UNDEF = 2, // "invalid token" S2UNDEF = 2, // "invalid token"
INCLUDE = 3, // "#include" BREAKPOINT = 3, // "breakpoint"
USINGTREE = 4, // "#using_animtree" PROFBEGIN = 4, // "prof_begin"
ANIMTREE = 5, // "#animtree" PROFEND = 5, // "prof_end"
ENDON = 6, // "endon" INCLUDE = 6, // "#include"
NOTIFY = 7, // "notify" USINGTREE = 7, // "#using_animtree"
WAIT = 8, // "wait" ANIMTREE = 8, // "#animtree"
WAITTILL = 9, // "waittill" ENDON = 9, // "endon"
WAITTILLMATCH = 10, // "waittillmatch" NOTIFY = 10, // "notify"
WAITTILLFRAMEEND = 11, // "waittillframeend" WAIT = 11, // "wait"
WAITFRAME = 12, // "waitframe" WAITTILL = 12, // "waittill"
IF = 13, // "if" WAITTILLMATCH = 13, // "waittillmatch"
ELSE = 14, // "else" WAITTILLFRAMEEND = 14, // "waittillframeend"
WHILE = 15, // "while" WAITFRAME = 15, // "waitframe"
FOR = 16, // "for" IF = 16, // "if"
FOREACH = 17, // "foreach" ELSE = 17, // "else"
IN = 18, // "in" WHILE = 18, // "while"
SWITCH = 19, // "switch" FOR = 19, // "for"
CASE = 20, // "case" FOREACH = 20, // "foreach"
DEFAULT = 21, // "default" IN = 21, // "in"
BREAK = 22, // "break" SWITCH = 22, // "switch"
CONTINUE = 23, // "continue" CASE = 23, // "case"
RETURN = 24, // "return" DEFAULT = 24, // "default"
THREAD = 25, // "thread" BREAK = 25, // "break"
CHILDTHREAD = 26, // "childthread" CONTINUE = 26, // "continue"
THISTHREAD = 27, // "thisthread" RETURN = 27, // "return"
CALL = 28, // "call" THREAD = 28, // "thread"
TRUE = 29, // "true" CHILDTHREAD = 29, // "childthread"
FALSE = 30, // "false" THISTHREAD = 30, // "thisthread"
UNDEFINED = 31, // "undefined" CALL = 31, // "call"
SIZE = 32, // "size" TRUE = 32, // "true"
GAME = 33, // "game" FALSE = 33, // "false"
SELF = 34, // "self" UNDEFINED = 34, // "undefined"
ANIM = 35, // "anim" SIZE = 35, // ".size"
LEVEL = 36, // "level" GAME = 36, // "game"
LPAREN = 37, // "(" SELF = 37, // "self"
RPAREN = 38, // ")" ANIM = 38, // "anim"
LBRACE = 39, // "{" LEVEL = 39, // "level"
RBRACE = 40, // "}" LPAREN = 40, // "("
LBRACKET = 41, // "[" RPAREN = 41, // ")"
RBRACKET = 42, // "]" LBRACE = 42, // "{"
COMMA = 43, // "," RBRACE = 43, // "}"
DOT = 44, // "." LBRACKET = 44, // "["
DOUBLECOLON = 45, // "::" RBRACKET = 45, // "]"
COLON = 46, // ":" COMMA = 46, // ","
SEMICOLON = 47, // ";" DOT = 47, // "."
INCREMENT = 48, // "++" DOUBLECOLON = 48, // "::"
DECREMENT = 49, // "--" COLON = 49, // ":"
LSHIFT = 50, // "<<" SEMICOLON = 50, // ";"
RSHIFT = 51, // ">>" INCREMENT = 51, // "++"
OR = 52, // "||" DECREMENT = 52, // "--"
AND = 53, // "&&" LSHIFT = 53, // "<<"
EQUALITY = 54, // "==" RSHIFT = 54, // ">>"
INEQUALITY = 55, // "!=" OR = 55, // "||"
LESS_EQUAL = 56, // "<=" AND = 56, // "&&"
GREATER_EQUAL = 57, // ">=" EQUALITY = 57, // "=="
LESS = 58, // "<" INEQUALITY = 58, // "!="
GREATER = 59, // ">" LESS_EQUAL = 59, // "<="
NOT = 60, // "!" GREATER_EQUAL = 60, // ">="
COMPLEMENT = 61, // "~" LESS = 61, // "<"
ASSIGN = 62, // "=" GREATER = 62, // ">"
ASSIGN_ADD = 63, // "+=" NOT = 63, // "!"
ASSIGN_SUB = 64, // "-=" COMPLEMENT = 64, // "~"
ASSIGN_MULT = 65, // "*=" ASSIGN = 65, // "="
ASSIGN_DIV = 66, // "/=" ASSIGN_ADD = 66, // "+="
ASSIGN_MOD = 67, // "%=" ASSIGN_SUB = 67, // "-="
ASSIGN_BITWISE_OR = 68, // "|=" ASSIGN_MULT = 68, // "*="
ASSIGN_BITWISE_AND = 69, // "&=" ASSIGN_DIV = 69, // "/="
ASSIGN_BITWISE_EXOR = 70, // "^=" ASSIGN_MOD = 70, // "%="
ASSIGN_RSHIFT = 71, // ">>=" ASSIGN_BITWISE_OR = 71, // "|="
ASSIGN_LSHIFT = 72, // "<<=" ASSIGN_BITWISE_AND = 72, // "&="
BITWISE_OR = 73, // "|" ASSIGN_BITWISE_EXOR = 73, // "^="
BITWISE_AND = 74, // "&" ASSIGN_RSHIFT = 74, // ">>="
BITWISE_EXOR = 75, // "^" ASSIGN_LSHIFT = 75, // "<<="
ADD = 76, // "+" BITWISE_OR = 76, // "|"
SUB = 77, // "-" BITWISE_AND = 77, // "&"
MULT = 78, // "*" BITWISE_EXOR = 78, // "^"
DIV = 79, // "/" ADD = 79, // "+"
MOD = 80, // "%" SUB = 80, // "-"
FILE = 81, // "file path" MULT = 81, // "*"
NAME = 82, // "identifier" DIV = 82, // "/"
STRING = 83, // "string literal" MOD = 83, // "%"
ISTRING = 84, // "localized string" FILE = 84, // "file path"
FLOAT = 85, // "float" NAME = 85, // "identifier"
INTEGER = 86, // "int" STRING = 86, // "string literal"
ADD_ARRAY = 87, // ADD_ARRAY ISTRING = 87, // "localized string"
THEN = 88, // THEN FLOAT = 88, // "float"
NEG = 89, // NEG INTEGER = 89, // "int"
ANIMREF = 90, // ANIMREF ADD_ARRAY = 90, // ADD_ARRAY
PREINC = 91, // PREINC THEN = 91, // THEN
PREDEC = 92, // PREDEC NEG = 92, // NEG
POSTINC = 93, // POSTINC ANIMREF = 93, // ANIMREF
POSTDEC = 94 // POSTDEC PREINC = 94, // PREINC
PREDEC = 95, // PREDEC
POSTINC = 96, // POSTINC
POSTDEC = 97 // POSTDEC
}; };
/// Backward compatibility alias (Bison 3.6). /// Backward compatibility alias (Bison 3.6).
typedef token_kind_type yytokentype; typedef token_kind_type yytokentype;
@ -751,176 +763,182 @@ namespace xsk { namespace gsc { namespace s2 {
{ {
enum symbol_kind_type enum symbol_kind_type
{ {
YYNTOKENS = 95, ///< Number of tokens. YYNTOKENS = 98, ///< Number of tokens.
S_YYEMPTY = -2, S_YYEMPTY = -2,
S_YYEOF = 0, // "end of file" S_YYEOF = 0, // "end of file"
S_YYerror = 1, // error S_YYerror = 1, // error
S_YYUNDEF = 2, // "invalid token" S_YYUNDEF = 2, // "invalid token"
S_INCLUDE = 3, // "#include" S_BREAKPOINT = 3, // "breakpoint"
S_USINGTREE = 4, // "#using_animtree" S_PROFBEGIN = 4, // "prof_begin"
S_ANIMTREE = 5, // "#animtree" S_PROFEND = 5, // "prof_end"
S_ENDON = 6, // "endon" S_INCLUDE = 6, // "#include"
S_NOTIFY = 7, // "notify" S_USINGTREE = 7, // "#using_animtree"
S_WAIT = 8, // "wait" S_ANIMTREE = 8, // "#animtree"
S_WAITTILL = 9, // "waittill" S_ENDON = 9, // "endon"
S_WAITTILLMATCH = 10, // "waittillmatch" S_NOTIFY = 10, // "notify"
S_WAITTILLFRAMEEND = 11, // "waittillframeend" S_WAIT = 11, // "wait"
S_WAITFRAME = 12, // "waitframe" S_WAITTILL = 12, // "waittill"
S_IF = 13, // "if" S_WAITTILLMATCH = 13, // "waittillmatch"
S_ELSE = 14, // "else" S_WAITTILLFRAMEEND = 14, // "waittillframeend"
S_WHILE = 15, // "while" S_WAITFRAME = 15, // "waitframe"
S_FOR = 16, // "for" S_IF = 16, // "if"
S_FOREACH = 17, // "foreach" S_ELSE = 17, // "else"
S_IN = 18, // "in" S_WHILE = 18, // "while"
S_SWITCH = 19, // "switch" S_FOR = 19, // "for"
S_CASE = 20, // "case" S_FOREACH = 20, // "foreach"
S_DEFAULT = 21, // "default" S_IN = 21, // "in"
S_BREAK = 22, // "break" S_SWITCH = 22, // "switch"
S_CONTINUE = 23, // "continue" S_CASE = 23, // "case"
S_RETURN = 24, // "return" S_DEFAULT = 24, // "default"
S_THREAD = 25, // "thread" S_BREAK = 25, // "break"
S_CHILDTHREAD = 26, // "childthread" S_CONTINUE = 26, // "continue"
S_THISTHREAD = 27, // "thisthread" S_RETURN = 27, // "return"
S_CALL = 28, // "call" S_THREAD = 28, // "thread"
S_TRUE = 29, // "true" S_CHILDTHREAD = 29, // "childthread"
S_FALSE = 30, // "false" S_THISTHREAD = 30, // "thisthread"
S_UNDEFINED = 31, // "undefined" S_CALL = 31, // "call"
S_SIZE = 32, // "size" S_TRUE = 32, // "true"
S_GAME = 33, // "game" S_FALSE = 33, // "false"
S_SELF = 34, // "self" S_UNDEFINED = 34, // "undefined"
S_ANIM = 35, // "anim" S_SIZE = 35, // ".size"
S_LEVEL = 36, // "level" S_GAME = 36, // "game"
S_LPAREN = 37, // "(" S_SELF = 37, // "self"
S_RPAREN = 38, // ")" S_ANIM = 38, // "anim"
S_LBRACE = 39, // "{" S_LEVEL = 39, // "level"
S_RBRACE = 40, // "}" S_LPAREN = 40, // "("
S_LBRACKET = 41, // "[" S_RPAREN = 41, // ")"
S_RBRACKET = 42, // "]" S_LBRACE = 42, // "{"
S_COMMA = 43, // "," S_RBRACE = 43, // "}"
S_DOT = 44, // "." S_LBRACKET = 44, // "["
S_DOUBLECOLON = 45, // "::" S_RBRACKET = 45, // "]"
S_COLON = 46, // ":" S_COMMA = 46, // ","
S_SEMICOLON = 47, // ";" S_DOT = 47, // "."
S_INCREMENT = 48, // "++" S_DOUBLECOLON = 48, // "::"
S_DECREMENT = 49, // "--" S_COLON = 49, // ":"
S_LSHIFT = 50, // "<<" S_SEMICOLON = 50, // ";"
S_RSHIFT = 51, // ">>" S_INCREMENT = 51, // "++"
S_OR = 52, // "||" S_DECREMENT = 52, // "--"
S_AND = 53, // "&&" S_LSHIFT = 53, // "<<"
S_EQUALITY = 54, // "==" S_RSHIFT = 54, // ">>"
S_INEQUALITY = 55, // "!=" S_OR = 55, // "||"
S_LESS_EQUAL = 56, // "<=" S_AND = 56, // "&&"
S_GREATER_EQUAL = 57, // ">=" S_EQUALITY = 57, // "=="
S_LESS = 58, // "<" S_INEQUALITY = 58, // "!="
S_GREATER = 59, // ">" S_LESS_EQUAL = 59, // "<="
S_NOT = 60, // "!" S_GREATER_EQUAL = 60, // ">="
S_COMPLEMENT = 61, // "~" S_LESS = 61, // "<"
S_ASSIGN = 62, // "=" S_GREATER = 62, // ">"
S_ASSIGN_ADD = 63, // "+=" S_NOT = 63, // "!"
S_ASSIGN_SUB = 64, // "-=" S_COMPLEMENT = 64, // "~"
S_ASSIGN_MULT = 65, // "*=" S_ASSIGN = 65, // "="
S_ASSIGN_DIV = 66, // "/=" S_ASSIGN_ADD = 66, // "+="
S_ASSIGN_MOD = 67, // "%=" S_ASSIGN_SUB = 67, // "-="
S_ASSIGN_BITWISE_OR = 68, // "|=" S_ASSIGN_MULT = 68, // "*="
S_ASSIGN_BITWISE_AND = 69, // "&=" S_ASSIGN_DIV = 69, // "/="
S_ASSIGN_BITWISE_EXOR = 70, // "^=" S_ASSIGN_MOD = 70, // "%="
S_ASSIGN_RSHIFT = 71, // ">>=" S_ASSIGN_BITWISE_OR = 71, // "|="
S_ASSIGN_LSHIFT = 72, // "<<=" S_ASSIGN_BITWISE_AND = 72, // "&="
S_BITWISE_OR = 73, // "|" S_ASSIGN_BITWISE_EXOR = 73, // "^="
S_BITWISE_AND = 74, // "&" S_ASSIGN_RSHIFT = 74, // ">>="
S_BITWISE_EXOR = 75, // "^" S_ASSIGN_LSHIFT = 75, // "<<="
S_ADD = 76, // "+" S_BITWISE_OR = 76, // "|"
S_SUB = 77, // "-" S_BITWISE_AND = 77, // "&"
S_MULT = 78, // "*" S_BITWISE_EXOR = 78, // "^"
S_DIV = 79, // "/" S_ADD = 79, // "+"
S_MOD = 80, // "%" S_SUB = 80, // "-"
S_FILE = 81, // "file path" S_MULT = 81, // "*"
S_NAME = 82, // "identifier" S_DIV = 82, // "/"
S_STRING = 83, // "string literal" S_MOD = 83, // "%"
S_ISTRING = 84, // "localized string" S_FILE = 84, // "file path"
S_FLOAT = 85, // "float" S_NAME = 85, // "identifier"
S_INTEGER = 86, // "int" S_STRING = 86, // "string literal"
S_ADD_ARRAY = 87, // ADD_ARRAY S_ISTRING = 87, // "localized string"
S_THEN = 88, // THEN S_FLOAT = 88, // "float"
S_NEG = 89, // NEG S_INTEGER = 89, // "int"
S_ANIMREF = 90, // ANIMREF S_ADD_ARRAY = 90, // ADD_ARRAY
S_PREINC = 91, // PREINC S_THEN = 91, // THEN
S_PREDEC = 92, // PREDEC S_NEG = 92, // NEG
S_POSTINC = 93, // POSTINC S_ANIMREF = 93, // ANIMREF
S_POSTDEC = 94, // POSTDEC S_PREINC = 94, // PREINC
S_YYACCEPT = 95, // $accept S_PREDEC = 95, // PREDEC
S_root = 96, // root S_POSTINC = 96, // POSTINC
S_program = 97, // program S_POSTDEC = 97, // POSTDEC
S_include = 98, // include S_YYACCEPT = 98, // $accept
S_define = 99, // define S_root = 99, // root
S_usingtree = 100, // usingtree S_program = 100, // program
S_constant = 101, // constant S_include = 101, // include
S_thread = 102, // thread S_define = 102, // define
S_parameters = 103, // parameters S_usingtree = 103, // usingtree
S_stmt = 104, // stmt S_constant = 104, // constant
S_stmt_block = 105, // stmt_block S_thread = 105, // thread
S_stmt_list = 106, // stmt_list S_parameters = 106, // parameters
S_stmt_call = 107, // stmt_call S_stmt = 107, // stmt
S_stmt_assign = 108, // stmt_assign S_stmt_block = 108, // stmt_block
S_stmt_endon = 109, // stmt_endon S_stmt_list = 109, // stmt_list
S_stmt_notify = 110, // stmt_notify S_stmt_call = 110, // stmt_call
S_stmt_wait = 111, // stmt_wait S_stmt_assign = 111, // stmt_assign
S_stmt_waittill = 112, // stmt_waittill S_stmt_endon = 112, // stmt_endon
S_stmt_waittillmatch = 113, // stmt_waittillmatch S_stmt_notify = 113, // stmt_notify
S_stmt_waittillframeend = 114, // stmt_waittillframeend S_stmt_wait = 114, // stmt_wait
S_stmt_waitframe = 115, // stmt_waitframe S_stmt_waittill = 115, // stmt_waittill
S_stmt_if = 116, // stmt_if S_stmt_waittillmatch = 116, // stmt_waittillmatch
S_stmt_ifelse = 117, // stmt_ifelse S_stmt_waittillframeend = 117, // stmt_waittillframeend
S_stmt_while = 118, // stmt_while S_stmt_waitframe = 118, // stmt_waitframe
S_stmt_for = 119, // stmt_for S_stmt_if = 119, // stmt_if
S_stmt_foreach = 120, // stmt_foreach S_stmt_ifelse = 120, // stmt_ifelse
S_stmt_switch = 121, // stmt_switch S_stmt_while = 121, // stmt_while
S_stmt_case = 122, // stmt_case S_stmt_for = 122, // stmt_for
S_stmt_default = 123, // stmt_default S_stmt_foreach = 123, // stmt_foreach
S_stmt_break = 124, // stmt_break S_stmt_switch = 124, // stmt_switch
S_stmt_continue = 125, // stmt_continue S_stmt_case = 125, // stmt_case
S_stmt_return = 126, // stmt_return S_stmt_default = 126, // stmt_default
S_for_stmt = 127, // for_stmt S_stmt_break = 127, // stmt_break
S_for_expr = 128, // for_expr S_stmt_continue = 128, // stmt_continue
S_expr = 129, // expr S_stmt_return = 129, // stmt_return
S_expr_assign = 130, // expr_assign S_stmt_breakpoint = 130, // stmt_breakpoint
S_expr_compare = 131, // expr_compare S_stmt_prof_begin = 131, // stmt_prof_begin
S_expr_binary = 132, // expr_binary S_stmt_prof_end = 132, // stmt_prof_end
S_expr_primitive = 133, // expr_primitive S_for_stmt = 133, // for_stmt
S_expr_call = 134, // expr_call S_for_expr = 134, // for_expr
S_expr_call_thread = 135, // expr_call_thread S_expr = 135, // expr
S_expr_call_childthread = 136, // expr_call_childthread S_expr_assign = 136, // expr_assign
S_expr_call_function = 137, // expr_call_function S_expr_compare = 137, // expr_compare
S_expr_call_pointer = 138, // expr_call_pointer S_expr_binary = 138, // expr_binary
S_expr_arguments = 139, // expr_arguments S_expr_primitive = 139, // expr_primitive
S_expr_arguments_filled = 140, // expr_arguments_filled S_expr_call = 140, // expr_call
S_expr_arguments_empty = 141, // expr_arguments_empty S_expr_call_thread = 141, // expr_call_thread
S_expr_function = 142, // expr_function S_expr_call_childthread = 142, // expr_call_childthread
S_expr_add_array = 143, // expr_add_array S_expr_call_function = 143, // expr_call_function
S_expr_array = 144, // expr_array S_expr_call_pointer = 144, // expr_call_pointer
S_expr_field = 145, // expr_field S_expr_arguments = 145, // expr_arguments
S_expr_size = 146, // expr_size S_expr_arguments_filled = 146, // expr_arguments_filled
S_object = 147, // object S_expr_arguments_empty = 147, // expr_arguments_empty
S_thisthread = 148, // thisthread S_expr_function = 148, // expr_function
S_empty_array = 149, // empty_array S_expr_add_array = 149, // expr_add_array
S_undefined = 150, // undefined S_expr_array = 150, // expr_array
S_game = 151, // game S_expr_field = 151, // expr_field
S_self = 152, // self S_expr_size = 152, // expr_size
S_anim = 153, // anim S_object = 153, // object
S_level = 154, // level S_thisthread = 154, // thisthread
S_animation = 155, // animation S_empty_array = 155, // empty_array
S_animtree = 156, // animtree S_undefined = 156, // undefined
S_name = 157, // name S_game = 157, // game
S_file = 158, // file S_self = 158, // self
S_istring = 159, // istring S_anim = 159, // anim
S_string = 160, // string S_level = 160, // level
S_vector = 161, // vector S_animation = 161, // animation
S_neg_float = 162, // neg_float S_animtree = 162, // animtree
S_neg_integer = 163, // neg_integer S_name = 163, // name
S_float = 164, // float S_file = 164, // file
S_integer = 165, // integer S_istring = 165, // istring
S_false = 166, // false S_string = 166, // string
S_true = 167 // true S_vector = 167, // vector
S_neg_float = 168, // neg_float
S_neg_integer = 169, // neg_integer
S_float = 170, // float
S_integer = 171, // integer
S_false = 172, // false
S_true = 173 // true
}; };
}; };
@ -1086,6 +1104,10 @@ namespace xsk { namespace gsc { namespace s2 {
value.move< stmt_break_ptr > (std::move (that.value)); value.move< stmt_break_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (std::move (that.value)); value.move< stmt_call_ptr > (std::move (that.value));
break; break;
@ -1131,6 +1153,14 @@ namespace xsk { namespace gsc { namespace s2 {
value.move< stmt_notify_ptr > (std::move (that.value)); value.move< stmt_notify_ptr > (std::move (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (std::move (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (std::move (that.value)); value.move< stmt_ptr > (std::move (that.value));
@ -1597,6 +1627,20 @@ namespace xsk { namespace gsc { namespace s2 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_breakpoint_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_breakpoint_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_call_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -1751,6 +1795,34 @@ namespace xsk { namespace gsc { namespace s2 {
{} {}
#endif #endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_begin_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_begin_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_prof_end_ptr&& v, location_type&& l)
: Base (t)
, value (std::move (v))
, location (std::move (l))
{}
#else
basic_symbol (typename Base::kind_type t, const stmt_prof_end_ptr& v, const location_type& l)
: Base (t)
, value (v)
, location (l)
{}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l) basic_symbol (typename Base::kind_type t, stmt_ptr&& v, location_type&& l)
: Base (t) : Base (t)
@ -2126,6 +2198,10 @@ switch (yykind)
value.template destroy< stmt_break_ptr > (); value.template destroy< stmt_break_ptr > ();
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.template destroy< stmt_breakpoint_ptr > ();
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.template destroy< stmt_call_ptr > (); value.template destroy< stmt_call_ptr > ();
break; break;
@ -2171,6 +2247,14 @@ switch (yykind)
value.template destroy< stmt_notify_ptr > (); value.template destroy< stmt_notify_ptr > ();
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.template destroy< stmt_prof_begin_ptr > ();
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.template destroy< stmt_prof_end_ptr > ();
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.template destroy< stmt_ptr > (); value.template destroy< stmt_ptr > ();
@ -2437,6 +2521,51 @@ switch (yykind)
return symbol_type (token::S2UNDEF, l); return symbol_type (token::S2UNDEF, l);
} }
#endif #endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_BREAKPOINT (location_type l)
{
return symbol_type (token::BREAKPOINT, std::move (l));
}
#else
static
symbol_type
make_BREAKPOINT (const location_type& l)
{
return symbol_type (token::BREAKPOINT, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFBEGIN (location_type l)
{
return symbol_type (token::PROFBEGIN, std::move (l));
}
#else
static
symbol_type
make_PROFBEGIN (const location_type& l)
{
return symbol_type (token::PROFBEGIN, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_PROFEND (location_type l)
{
return symbol_type (token::PROFEND, std::move (l));
}
#else
static
symbol_type
make_PROFEND (const location_type& l)
{
return symbol_type (token::PROFEND, l);
}
#endif
#if 201103L <= YY_CPLUSPLUS #if 201103L <= YY_CPLUSPLUS
static static
symbol_type symbol_type
@ -4161,8 +4290,8 @@ switch (yykind)
/// Constants. /// Constants.
enum enum
{ {
yylast_ = 1581, ///< Last index in yytable_. yylast_ = 1646, ///< Last index in yytable_.
yynnts_ = 73, ///< Number of nonterminal symbols. yynnts_ = 76, ///< Number of nonterminal symbols.
yyfinal_ = 15 ///< Termination state number. yyfinal_ = 15 ///< Termination state number.
}; };
@ -4319,6 +4448,10 @@ switch (yykind)
value.copy< stmt_break_ptr > (YY_MOVE (that.value)); value.copy< stmt_break_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.copy< stmt_breakpoint_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.copy< stmt_call_ptr > (YY_MOVE (that.value)); value.copy< stmt_call_ptr > (YY_MOVE (that.value));
break; break;
@ -4364,6 +4497,14 @@ switch (yykind)
value.copy< stmt_notify_ptr > (YY_MOVE (that.value)); value.copy< stmt_notify_ptr > (YY_MOVE (that.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.copy< stmt_prof_begin_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.copy< stmt_prof_end_ptr > (YY_MOVE (that.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.copy< stmt_ptr > (YY_MOVE (that.value)); value.copy< stmt_ptr > (YY_MOVE (that.value));
@ -4587,6 +4728,10 @@ switch (yykind)
value.move< stmt_break_ptr > (YY_MOVE (s.value)); value.move< stmt_break_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_breakpoint: // stmt_breakpoint
value.move< stmt_breakpoint_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_call: // stmt_call case symbol_kind::S_stmt_call: // stmt_call
value.move< stmt_call_ptr > (YY_MOVE (s.value)); value.move< stmt_call_ptr > (YY_MOVE (s.value));
break; break;
@ -4632,6 +4777,14 @@ switch (yykind)
value.move< stmt_notify_ptr > (YY_MOVE (s.value)); value.move< stmt_notify_ptr > (YY_MOVE (s.value));
break; break;
case symbol_kind::S_stmt_prof_begin: // stmt_prof_begin
value.move< stmt_prof_begin_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt_prof_end: // stmt_prof_end
value.move< stmt_prof_end_ptr > (YY_MOVE (s.value));
break;
case symbol_kind::S_stmt: // stmt case symbol_kind::S_stmt: // stmt
case symbol_kind::S_for_stmt: // for_stmt case symbol_kind::S_for_stmt: // for_stmt
value.move< stmt_ptr > (YY_MOVE (s.value)); value.move< stmt_ptr > (YY_MOVE (s.value));
@ -4760,7 +4913,7 @@ switch (yykind)
#line 13 "parser.ypp" #line 13 "parser.ypp"
} } } // xsk::gsc::s2 } } } // xsk::gsc::s2
#line 4764 "parser.hpp" #line 4917 "parser.hpp"

View File

@ -93,6 +93,9 @@ enum class node_t
stmt_break, stmt_break,
stmt_continue, stmt_continue,
stmt_return, stmt_return,
stmt_breakpoint,
stmt_prof_begin,
stmt_prof_end,
parameters, parameters,
thread, thread,
constant, constant,
@ -201,6 +204,9 @@ struct node_stmt_default;
struct node_stmt_break; struct node_stmt_break;
struct node_stmt_continue; struct node_stmt_continue;
struct node_stmt_return; struct node_stmt_return;
struct node_stmt_breakpoint;
struct node_stmt_prof_begin;
struct node_stmt_prof_end;
struct node_parameters; struct node_parameters;
struct node_thread; struct node_thread;
struct node_constant; struct node_constant;
@ -305,6 +311,9 @@ using stmt_default_ptr = std::unique_ptr<node_stmt_default>;
using stmt_break_ptr = std::unique_ptr<node_stmt_break>; using stmt_break_ptr = std::unique_ptr<node_stmt_break>;
using stmt_continue_ptr = std::unique_ptr<node_stmt_continue>; using stmt_continue_ptr = std::unique_ptr<node_stmt_continue>;
using stmt_return_ptr = std::unique_ptr<node_stmt_return>; using stmt_return_ptr = std::unique_ptr<node_stmt_return>;
using stmt_breakpoint_ptr = std::unique_ptr<node_stmt_breakpoint>;
using stmt_prof_begin_ptr = std::unique_ptr<node_stmt_prof_begin>;
using stmt_prof_end_ptr = std::unique_ptr<node_stmt_prof_end>;
using parameters_ptr = std::unique_ptr<node_parameters>; using parameters_ptr = std::unique_ptr<node_parameters>;
using thread_ptr = std::unique_ptr<node_thread>; using thread_ptr = std::unique_ptr<node_thread>;
using constant_ptr = std::unique_ptr<node_constant>; using constant_ptr = std::unique_ptr<node_constant>;
@ -447,6 +456,9 @@ union stmt_ptr
stmt_break_ptr as_break; stmt_break_ptr as_break;
stmt_continue_ptr as_continue; stmt_continue_ptr as_continue;
stmt_return_ptr as_return; stmt_return_ptr as_return;
stmt_breakpoint_ptr as_breakpoint;
stmt_prof_begin_ptr as_prof_begin;
stmt_prof_end_ptr as_prof_end;
asm_loc_ptr as_loc; asm_loc_ptr as_loc;
asm_jump_cond_ptr as_cond; asm_jump_cond_ptr as_cond;
asm_jump_ptr as_jump; asm_jump_ptr as_jump;
@ -2208,6 +2220,52 @@ struct node_stmt_return : public node
}; };
}; };
struct node_stmt_breakpoint : public node
{
node_stmt_breakpoint()
: node(node_t::stmt_breakpoint) {}
node_stmt_breakpoint(const location& loc)
: node(node_t::stmt_breakpoint, loc) {}
auto print() -> std::string override
{
return "breakpoint;";
};
};
struct node_stmt_prof_begin : public node
{
expr_arguments_ptr args;
node_stmt_prof_begin(expr_arguments_ptr args)
: node(node_t::stmt_prof_begin), args(std::move(args)) {}
node_stmt_prof_begin(const location& loc, expr_arguments_ptr args)
: node(node_t::stmt_prof_begin, loc), args(std::move(args)) {}
auto print() -> std::string override
{
return "prof_begin(" + args->print() + ");";
};
};
struct node_stmt_prof_end : public node
{
expr_arguments_ptr args;
node_stmt_prof_end(expr_arguments_ptr args)
: node(node_t::stmt_prof_end), args(std::move(args)) {}
node_stmt_prof_end(const location& loc, expr_arguments_ptr args)
: node(node_t::stmt_prof_end, loc), args(std::move(args)) {}
auto print() -> std::string override
{
return "prof_end(" + args->print() + ");";
};
};
struct node_parameters : public node struct node_parameters : public node
{ {
std::vector<name_ptr> list; std::vector<name_ptr> list;