Fixed ByRef UDT arrays
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user