Fixed DIM not reporting false inside a TYPE block for invalid user type

This commit is contained in:
n00b
2025-01-26 09:17:55 -05:00
parent 979c946429
commit a3b99950db
4 changed files with 18 additions and 8 deletions

View File

@@ -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;

View File

@@ -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";

View File

@@ -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;
}

View File

@@ -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
<iostream>
<stack>
<vector>
@@ -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
<iostream>
<string>
<cctype>
@@ -37,14 +37,14 @@
1734372057 /home/n00b/Projects/RCBASIC4/rcbasic_build/constants.h
<vector>
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"
<inttypes.h>
1734372966 /home/n00b/Projects/RCBASIC4/rcbasic_build/identifier.h
1737900569 /home/n00b/Projects/RCBASIC4/rcbasic_build/identifier.h
<inttypes.h>
<stack>
"rc_global.h"
@@ -54,7 +54,7 @@
1734372057 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_global.h
<inttypes.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