diff --git a/rcbasic_build/parser.h b/rcbasic_build/parser.h index 58d1b03..5747682 100755 --- a/rcbasic_build/parser.h +++ b/rcbasic_build/parser.h @@ -6195,15 +6195,23 @@ bool check_rule() } } else - { - switch(var_type) - { - case ID_TYPE_NUM: - vm_asm.push_back("mov !" + rc_intToString(id[var_id_index].vec_pos) + " " + expr_result); - break; - case ID_TYPE_STR: - vm_asm.push_back("mov$ !" + rc_intToString(id[var_id_index].vec_pos) + " " + expr_result); - break; + { + if(var_id_index >= 0 && var_id_index < id.size()) + { + switch(var_type) + { + case ID_TYPE_NUM: + vm_asm.push_back("mov !" + rc_intToString(id[var_id_index].vec_pos) + " " + expr_result); + break; + case ID_TYPE_STR: + vm_asm.push_back("mov$ !" + rc_intToString(id[var_id_index].vec_pos) + " " + expr_result); + break; + } + } + else + { + rc_setError("Identifier \"" + var_id + "\" could not be resolved"); + return false; } } diff --git a/rcbasic_build/rcbasic_build.depend b/rcbasic_build/rcbasic_build.depend index 08c9060..2637b70 100755 --- a/rcbasic_build/rcbasic_build.depend +++ b/rcbasic_build/rcbasic_build.depend @@ -1,5 +1,5 @@ # depslib dependency file v1.0 -1769580634 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp +1770701118 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp @@ -37,7 +37,7 @@ 1752004854 /home/n00b/Projects/RCBASIC4/rcbasic_build/constants.h -1758412944 /home/n00b/Projects/RCBASIC4/rcbasic_build/parser.h +1770926352 /home/n00b/Projects/RCBASIC4/rcbasic_build/parser.h "tokenizer.h" "identifier.h" "rc_global.h"