diff --git a/rcbasic_build/identifier.h b/rcbasic_build/identifier.h index c23c0df..cf3c18a 100755 --- a/rcbasic_build/identifier.h +++ b/rcbasic_build/identifier.h @@ -352,6 +352,15 @@ bool memberExists(string member_name) bool add_type_member(string member_name, int member_type, string member_utype_name, int member_dim_count, string dim1 = "n0", string dim2 = "n0", string dim3 = "n0") { int m_utype_index = member_utype_name.compare("")!=0 ? getUType(member_utype_name) : -1; + + //cout << "m_utype_index = " << m_utype_index << " : " << member_utype_name << endl; + + if((member_utype_name.compare("")!=0) && m_utype_index < 0) + { + rc_setError(member_utype_name + " does not name a valid type"); + return false; + } + if(m_utype_index == current_type_index) { //cout << "you canno do is" << endl; diff --git a/rcbasic_build/main.cpp b/rcbasic_build/main.cpp index f9708b6..ca44fd2 100755 --- a/rcbasic_build/main.cpp +++ b/rcbasic_build/main.cpp @@ -920,7 +920,7 @@ int main(int argc, char * argv[]) //DEBUG START //chdir("/home/n00b/Programs/RCBasic_v400_Linux64/examples/Spinning Axis"); - //rc_filename = "/home/n00b/Programs/RCBasic_v400_Linux64/examples/Spinning Axis/main.bas"; + rc_filename = "/home/n00b/test/stp/serenity_main.bas"; //rc_filename = "/home/n00b/Downloads/Tile Scrolling/main.bas"; //rc_filename = "/home/n00b/Programs/RCBasic_v400_Linux64/examples/Constraint/main.bas"; //rc_filename = "/home/n00b/Programs/RCBasic_v400_Linux64/examples/Simple 3D Platformer/main.bas"; diff --git a/rcbasic_build/parser.h b/rcbasic_build/parser.h index eadb9d7..b981fbb 100755 --- a/rcbasic_build/parser.h +++ b/rcbasic_build/parser.h @@ -3404,9 +3404,10 @@ bool check_rule() { if(current_block_state == BLOCK_STATE_TYPE) { - //cout << "adding type member" << endl; + //cout << "adding type member: " << id_name << ", " << id_type << endl; if(!add_type_member(id_name, id_type, "", 0)) - { + { + //std::cout << "error" << std::endl; //cout << rc_getError() << endl; return false; } diff --git a/rcbasic_build/rcbasic_build.depend b/rcbasic_build/rcbasic_build.depend index ede4ae7..20b6890 100755 --- a/rcbasic_build/rcbasic_build.depend +++ b/rcbasic_build/rcbasic_build.depend @@ -1,5 +1,5 @@ # depslib dependency file v1.0 -1735455479 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp +1737898951 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp @@ -14,7 +14,7 @@ "env_resolve.h" "identifier.h" -1735169600 /home/n00b/Projects/RCBASIC4/rcbasic_build/tokenizer.h +1737864366 /home/n00b/Projects/RCBASIC4/rcbasic_build/tokenizer.h @@ -37,14 +37,14 @@ 1734372057 /home/n00b/Projects/RCBASIC4/rcbasic_build/constants.h -1734900354 /home/n00b/Projects/RCBASIC4/rcbasic_build/parser.h +1737900196 /home/n00b/Projects/RCBASIC4/rcbasic_build/parser.h "tokenizer.h" "identifier.h" "rc_global.h" "constants.h" -1734372966 /home/n00b/Projects/RCBASIC4/rcbasic_build/identifier.h +1737900569 /home/n00b/Projects/RCBASIC4/rcbasic_build/identifier.h "rc_global.h" @@ -54,7 +54,7 @@ 1734372057 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_global.h -1734919451 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h +1737863743 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h "identifier.h" 1734372057 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_vm_asm.h