QB64’s IDE error order isn’t logical, nor does it follow any ruleset. Basically the way it works is like this:
Galleon has an idea for a modern QBASIC. He writes a translator...
V0.1 basically does:
IF usertext$ = “SCREEN” then
set screen... if error, toss error.
ELSEIF usertext$ = “PRINT” then
print stuff or toss an error.
....
Then v0.2 came out. A few new functions went between those two.
Then v0.3 came out. Some new stuff was added after all that.
V04 added stuff at the very beginning...
Vp.5 added stuff in various points....
Other people joined in... They added code to random laces which seemed to work...
Sometimes things didn’t work... ESPECIALLY after we started adding precompiler commands. Order of precedence became quite important. Stuff got moved and reordered... then reordered again...
Now it’s basically a jumbled up mess of:
IF a THEN....
ELSEIF x THEN...
ELSEIF b THEN....
ELSEIF m THEN....
Each keyword is processed seperately, andthey can more or less appear in any unstructured order —- when added, when altered, when moved, at the point where they used to make sense, but now seem out of place...
You won’t always see errors left to right, or right to left, or by alphabetical order of precedence.... they just pop up in the order they appear in the jumbled up mess that is the spagetti code when makes QB64.