Fixed ByRef UDT arrays

This commit is contained in:
n00b
2024-12-21 02:28:44 -05:00
parent 33919725bf
commit 9c5aaa8db6
2 changed files with 5 additions and 3 deletions

View File

@@ -921,7 +921,7 @@ int main(int argc, char * argv[])
//DEBUG START //DEBUG START
//rc_filename = "/home/n00b/projects/bu/constraint_demo/main.bas"; //rc_filename = "/home/n00b/projects/bu/constraint_demo/main.bas";
//rc_filename = "/home/n00b/Music/Simple 3D Platformer/main.bas"; //rc_filename = "/home/n00b/Music/Simple 3D Platformer/main.bas";
rc_filename = "/home/n00b/Programs/RCBasic_v400_Linux64/examples/Constraint/main.bas"; //rc_filename = "/home/n00b/Programs/RCBasic_v400_Linux64/examples/Constraint/main.bas";
//DEBUG END //DEBUG END
//enable_presets = true; //enable_presets = true;

View File

@@ -1415,8 +1415,10 @@ bool pre_parse(int start_token = 0, int end_token = -1, int pp_flags, bool eval_
return false; return false;
} }
bool byref_isArray = (id[tmp_id].type == ID_TYPE_BYREF_USER && arg_count == 1);
if(arg_count != id[tmp_id].num_args)
if(arg_count != id[tmp_id].num_args && (!byref_isArray))
{ {
if(type_redim_flag) if(type_redim_flag)
{ {
@@ -1680,7 +1682,7 @@ bool pre_parse(int start_token = 0, int end_token = -1, int pp_flags, bool eval_
if(byref_type_flag) if(byref_type_flag)
{ {
type_error_exception tx; type_error_exception tx;
tx.error_log = "[0]Expected " + rc_intToString(id[tmp_id].num_args) + " dimension in " + id[tmp_id].name; tx.error_log = "[0.1]Expected " + rc_intToString(id[tmp_id].num_args) + " dimension in " + id[tmp_id].name;
tx.tk_reg = token[i]; tx.tk_reg = token[i];
tx.num_args = id[tmp_id].num_args; tx.num_args = id[tmp_id].num_args;
tx.exception_used = false; tx.exception_used = false;