-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Test Environment (required)
-
Eleven Version: 0.5.0
-
MEGA65 Platform: MEGA65
-
ROM Release: 920377
-
Core Commit: 93d55f0
Describe the bug
I'm having trouble with Eleven creating syntax errors in the outputted BASIC.
In Eleven the line looks like this:
'''if (x>w or x<1 or y>h or y<1) then x=w/2'''
However, Eleven is outputting the line with a syntax error that I couldn't figure out. This is the line:
'''if(n>gorn<1oro>horo<1)thenn=g/2
?syntax error in line 3'''
However, if in the outputted BASIC code (not within Eleven) I go in an add spaces between keywords and expressions it runs without any errors:
'''if (n>g or n<1 or o>h or o<1) then n=g/2'''
What I found was that BASIC was tokenizing the "go" in "n>gorn<1" creating the syntax error. To eliminate the error I had to (in Eleven) enclose each comparator (is that the right word?) with a < or > in parentheses so that the "go" would not be tokenized.
To be clear, the fix in Eleven was to change n>gorn<1 to (n>g)or(n<1)
To Reproduce
See above.
Expected behavior
I expected Eleven's output to not create a keyword where none is in the source code. It should not combine a variable (e.g., g) with an "or" statement resulting in a new "go" keyword where it wasn't intended.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
I posted this on Discord on 9-Jan-2023.