From 8eaf8c1d43c39b2d766adf5515cbefbfe458d794 Mon Sep 17 00:00:00 2001 From: paladin-t Date: Wed, 13 Apr 2016 14:52:34 +0800 Subject: [PATCH] *fixed a negative calculation issue with brackets. --- HISTORY | 3 +++ core/my_basic.c | 19 +++++++++++++++---- output/my_basic.exe | Bin 367616 -> 368128 bytes 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/HISTORY b/HISTORY index a1009a9..dff3f0d 100755 --- a/HISTORY +++ b/HISTORY @@ -1,3 +1,6 @@ +Apr. 13 2016 +Fixed a negative calculation issue with brackets + Apr. 11 2016 Fixed a calculation issue with the NOT statement diff --git a/core/my_basic.c b/core/my_basic.c index 908aef9..5132ef5 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -12368,6 +12368,7 @@ _exit: /* Operator - (negative) */ static int _core_neg(mb_interpreter_t* s, void** l) { int result = MB_FUNC_OK; + _ls_node_t* ast = 0; mb_value_t arg; _running_context_t* running = 0; int* inep = 0; @@ -12376,6 +12377,8 @@ static int _core_neg(mb_interpreter_t* s, void** l) { mb_assert(s && l); running = s->running_context; + ast = *l; + if(ast) ast = ast->next; if(!_ls_empty(s->in_neg_expr)) inep = (int*)_ls_back(s->in_neg_expr)->data; @@ -12384,15 +12387,23 @@ static int _core_neg(mb_interpreter_t* s, void** l) { (*inep)++; calc_depth = running->calc_depth; - running->calc_depth = 1; mb_make_nil(arg); + if(ast && _IS_FUNC((_object_t*)ast->data, _core_open_bracket)) { + mb_check(mb_attempt_open_bracket(s, l)); - mb_check(mb_attempt_func_begin(s, l)); + mb_check(mb_pop_value(s, l, &arg)); - mb_check(mb_pop_value(s, l, &arg)); + mb_check(mb_attempt_close_bracket(s, l)); + } else { + running->calc_depth = 1; - mb_check(mb_attempt_func_end(s, l)); + mb_check(mb_attempt_func_begin(s, l)); + + mb_check(mb_pop_value(s, l, &arg)); + + mb_check(mb_attempt_func_end(s, l)); + } if(inep) (*inep)--; diff --git a/output/my_basic.exe b/output/my_basic.exe index 13889848a2c33f2c67e9e432f423a3044373c588..af803f377d34aff6b6322666d0d3afc49c100533 100755 GIT binary patch delta 16285 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