diff --git a/src/libzxbc/zxbparser.py b/src/libzxbc/zxbparser.py index 1567fc105..740502c2a 100755 --- a/src/libzxbc/zxbparser.py +++ b/src/libzxbc/zxbparser.py @@ -2676,6 +2676,13 @@ def p_idcall_expr(p): p[0].entry.accessed = True +def p_array_eq_error(p): + """ statement : LET ARRAY_ID EQ expr + """ + error(p.lineno(4), f"Invalid assignment. Variable {p[2]}() is an array") + p[0] = None + + def p_arr_access_expr(p): """ func_call : ARRAY_ID arg_list """ # This is an array access diff --git a/src/parsetab/tabs.dbm.bak b/src/parsetab/tabs.dbm.bak index 51ab5ff52..a6d6c432a 100644 --- a/src/parsetab/tabs.dbm.bak +++ b/src/parsetab/tabs.dbm.bak @@ -1,4 +1,3 @@ -'asmparse', (0, 254316) -'zxnext_asmparse', (254464, 285309) -'zxbppparse', (540160, 69623) -'zxbparser', (609792, 710716) +'asmparse', (0, 254311) +'zxnext_asmparse', (254464, 285299) +'zxbparser', (540160, 712099) diff --git a/src/parsetab/tabs.dbm.dat b/src/parsetab/tabs.dbm.dat index c8137df53..529eb4470 100644 Binary files a/src/parsetab/tabs.dbm.dat and b/src/parsetab/tabs.dbm.dat differ diff --git a/src/parsetab/tabs.dbm.dir b/src/parsetab/tabs.dbm.dir index 51ab5ff52..a6d6c432a 100644 --- a/src/parsetab/tabs.dbm.dir +++ b/src/parsetab/tabs.dbm.dir @@ -1,4 +1,3 @@ -'asmparse', (0, 254316) -'zxnext_asmparse', (254464, 285309) -'zxbppparse', (540160, 69623) -'zxbparser', (609792, 710716) +'asmparse', (0, 254311) +'zxnext_asmparse', (254464, 285299) +'zxbparser', (540160, 712099) diff --git a/tests/functional/test_errmsg.txt b/tests/functional/test_errmsg.txt index ce39e0967..0afe4bbcd 100644 --- a/tests/functional/test_errmsg.txt +++ b/tests/functional/test_errmsg.txt @@ -168,3 +168,6 @@ due_par.bas:2: error: Syntax error. Unexpected end of line >>> process_file('due_inc_main.bas') due_par.bas:2: error: Syntax error. Unexpected end of line due_par.bas:5: error: Syntax error. Unexpected end of file +>>> process_file('error_array.bas') +error_array.bas:3: error: Invalid assignment. Variable z$() is an array +