This is a curious thing that you call an interpreter.
From your link, I found this example for function:
clear()
input("Enter a", a)
input("Enter b", b)
sum = add(a,b)
println "The Sum of those number = "; sum
funct add(num1,num2) {
add = num1 + num2
}
What language is this? Your PL?
It would be nice in your menu to be able to start a new file in Notepad eg prompt for a name and start Notepad with it.
Anyway to get the test1.txt file to load in Notepad, I had to figure to type "/edit " then the filename, not just the filename.
I suggest choose a menu number THEN prompt for the file name when that menu # is chosen.
Then to get the filename to Open I had to fix this line:
OPEN RIGHT$(file$, LEN(file$) - 6) FOR INPUT AS #1 '<<<<<<<<<<<<<<<<<<<<<<< to edit out "/edit"
again easier to just prompt for filename after edit menu # chosen
Then to get QB64 to compile the p1.bas translation, I had to fully path my QB64.exe file
Woops! Nope! It's still not compiling. I must of compiled it when looking at p1.bas through QB64 IDE.
ONE PROBLEM!
I can't seem to use nested loops in this. I am guessing because I am not using an array in "e$".
As is, your translator can go only one } deep with this code:
You will need to count brackets deep { and find next equivalent } count for match up to same level of embedded code block for ENDing it.