Fixed bug that prevents compiler from finding user types in scope

This commit is contained in:
n00b
2024-12-13 20:22:10 -05:00
parent d0dc046c6b
commit 447bc241d7
13 changed files with 98 additions and 2183 deletions

View File

@@ -302,16 +302,17 @@ void output_vars()
int getUType(string utype_name)
{
string param = utype_name;
utype_name = StringToLower(utype_name);
for(int i = 0; i < utype.size(); i++)
{
//cout << "TYPE[" << i << "] = " << utype[i].name << endl;
if(utype_name.compare(utype[i].name)==0)
if(utype_name.compare(StringToLower(utype[i].name))==0)
{
return i;
}
}
rc_setError(utype_name + " does not name a type");
rc_setError(param + " does not name a type");
return -1;
}
@@ -339,9 +340,10 @@ bool create_type(string utype_name)
bool memberExists(string member_name)
{
member_name = StringToLower(member_name);
for(int i = 0; i < utype[current_type_index].num_members; i++)
{
if(utype[current_type_index].member_name[i].compare(member_name)==0)
if(StringToLower(utype[current_type_index].member_name[i]).compare(member_name)==0)
return true;
}
return false;
@@ -531,7 +533,8 @@ int getIDInScope_ByIndex_TypeMatch(string id_name, string check_scope="")
for(int i = 0; i < id.size(); i++)
{
if(id[i].scope.compare(check_scope)==0)
string id_cmp_scope = StringToLower(id[i].scope);
if(id_cmp_scope.compare(check_scope)==0)
{
if(id[i].name.substr(id[i].name.length()-1,1).compare("$")==0) //id in type is string
{
@@ -541,7 +544,7 @@ int getIDInScope_ByIndex_TypeMatch(string id_name, string check_scope="")
}
else
{
//cout << id_name << " ~ " << id[i].name << endl;
//cout << id_name << " ~ " << id[i].name << " scope: " << check_scope << endl;
if(id_name.compare(StringToLower(id[i].name))==0)
return i;
}

View File

@@ -920,7 +920,7 @@ int main(int argc, char * argv[])
//DEBUG START
//rc_filename = "/home/n00b/projects/bu/constraint_demo/main.bas";
//rc_filename = "/home/n00b/projects/bu/rcbasic_v400A6_linux/rcbasic_v400_linux/examples/tile_demo/main.bas";
//rc_filename = "/home/n00b/Music/Simple 3D Platformer/main.bas";
//rc_filename = "/home/n00b/projects/rcbasic_alpha3/test_project/main.bas";
//DEBUG END

View File

@@ -1,43 +1 @@
embedded_functions.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/conio.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/arrays.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/math.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/strings.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/stacks.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/files.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/directories.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/datetime.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/window.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/canvas.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/prim2d.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/images.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/keyboard.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/audio.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/joystick.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/gfxconsole.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/text.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/touch.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/network.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/video.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/system.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/matrix.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/process.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/clipboard.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/textedit.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/sprites.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/sprite_animation.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/sprite_physics.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/joint2D.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/tilemaps.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/mesh.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/actor.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/actor_animation.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/actor_physics.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/constraint3D.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/camera.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/scene.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/particles.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/lights.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/terrain.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/water.bas
/home/n00b/Projects/RCBASIC4/rcbasic_build/intern_lib/materials.bas
/home/n00b/Music/Simple 3D Platformer/main.bas

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,5 +1,5 @@
# depslib dependency file v1.0
1733777264 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp
1734137418 source:/home/n00b/Projects/RCBASIC4/rcbasic_build/main.cpp
<iostream>
<stack>
<vector>
@@ -37,14 +37,14 @@
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/constants.h
<vector>
1733776972 /home/n00b/Projects/RCBASIC4/rcbasic_build/parser.h
1733777902 /home/n00b/Projects/RCBASIC4/rcbasic_build/parser.h
"tokenizer.h"
"identifier.h"
"rc_global.h"
"constants.h"
<inttypes.h>
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/identifier.h
1734138795 /home/n00b/Projects/RCBASIC4/rcbasic_build/identifier.h
<inttypes.h>
<stack>
"rc_global.h"
@@ -54,7 +54,7 @@
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_global.h
<inttypes.h>
1733771900 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h
1733959765 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_builtin.h
"identifier.h"
1727545973 /home/n00b/Projects/RCBASIC4/rcbasic_build/rc_vm_asm.h