diff --git a/core/my_basic.c b/core/my_basic.c index 24a918c..908aef9 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -12647,18 +12647,23 @@ static int _core_not(mb_interpreter_t* s, void** l) { if(ast) ast = ast->next; calc_depth = running->calc_depth; - if(ast && _IS_FUNC((_object_t*)ast->data, _core_open_bracket)) - running->calc_depth = _INFINITY_CALC_DEPTH; - else - 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)); + } switch(arg.type) { case MB_DT_NIL: diff --git a/output/my_basic.exe b/output/my_basic.exe index 22a0e94..1388984 100755 Binary files a/output/my_basic.exe and b/output/my_basic.exe differ