+added a clear_parser
parameter to the mb_run
function. +added an extra end of running checking after stepped.
This commit is contained in:
parent
f3b8fa1905
commit
aa083f26fc
4
HISTORY
4
HISTORY
@ -1,3 +1,7 @@
|
|||||||
|
May. 14 2017
|
||||||
|
Added a clear_parser parameter to the mb_run function
|
||||||
|
Added an extra end of running checking after stepped
|
||||||
|
|
||||||
May. 13 2017
|
May. 13 2017
|
||||||
Added an MB_ENABLE_FULL_ERROR macro
|
Added an MB_ENABLE_FULL_ERROR macro
|
||||||
|
|
||||||
|
Binary file not shown.
@ -10180,6 +10180,7 @@ static int _execute_statement(mb_interpreter_t* s, _ls_node_t** l, bool_t force_
|
|||||||
_running_context_t* running = 0;
|
_running_context_t* running = 0;
|
||||||
_ls_node_t* sub_stack = 0;
|
_ls_node_t* sub_stack = 0;
|
||||||
bool_t skip_to_eoi = true;
|
bool_t skip_to_eoi = true;
|
||||||
|
bool_t end_of_ast = false;
|
||||||
|
|
||||||
mb_assert(s && l);
|
mb_assert(s && l);
|
||||||
|
|
||||||
@ -10359,10 +10360,18 @@ _exit:
|
|||||||
|
|
||||||
*l = ast;
|
*l = ast;
|
||||||
|
|
||||||
|
if(!ast) {
|
||||||
|
ast = _ls_back(s->ast);
|
||||||
|
end_of_ast = true;
|
||||||
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
int ret = _stepped(s, ast);
|
int ret = _stepped(s, ast);
|
||||||
if(result == MB_FUNC_OK)
|
if(result == MB_FUNC_OK)
|
||||||
result = ret;
|
result = ret;
|
||||||
|
|
||||||
|
if(end_of_ast && ast && ast->next) /* May be changed when stepping */
|
||||||
|
*l = ast->next;
|
||||||
} while(0);
|
} while(0);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -13221,7 +13230,7 @@ _exit:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Run the current AST */
|
/* Run the current AST */
|
||||||
int mb_run(struct mb_interpreter_t* s) {
|
int mb_run(struct mb_interpreter_t* s, bool_t clear_parser) {
|
||||||
int result = MB_FUNC_OK;
|
int result = MB_FUNC_OK;
|
||||||
_ls_node_t* ast = 0;
|
_ls_node_t* ast = 0;
|
||||||
|
|
||||||
@ -13248,7 +13257,8 @@ int mb_run(struct mb_interpreter_t* s) {
|
|||||||
#endif /* MB_ENABLE_CLASS */
|
#endif /* MB_ENABLE_CLASS */
|
||||||
}
|
}
|
||||||
|
|
||||||
_destroy_parsing_context(&s->parsing_context);
|
if(clear_parser)
|
||||||
|
_destroy_parsing_context(&s->parsing_context);
|
||||||
|
|
||||||
s->handled_error = false;
|
s->handled_error = false;
|
||||||
|
|
||||||
|
@ -648,7 +648,7 @@ MBAPI int mb_eval_routine(struct mb_interpreter_t* s, void** l, mb_value_t val,
|
|||||||
|
|
||||||
MBAPI int mb_load_string(struct mb_interpreter_t* s, const char* l, bool_t reset/* = true*/);
|
MBAPI int mb_load_string(struct mb_interpreter_t* s, const char* l, bool_t reset/* = true*/);
|
||||||
MBAPI int mb_load_file(struct mb_interpreter_t* s, const char* f);
|
MBAPI int mb_load_file(struct mb_interpreter_t* s, const char* f);
|
||||||
MBAPI int mb_run(struct mb_interpreter_t* s);
|
MBAPI int mb_run(struct mb_interpreter_t* s, bool_t clear_parser/* = true*/);
|
||||||
MBAPI int mb_suspend(struct mb_interpreter_t* s, void** l);
|
MBAPI int mb_suspend(struct mb_interpreter_t* s, void** l);
|
||||||
MBAPI int mb_schedule_suspend(struct mb_interpreter_t* s, int t);
|
MBAPI int mb_schedule_suspend(struct mb_interpreter_t* s, int t);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user