Fixed, with indenting... I think. :P
Also expanded the precompiler so that it now knows how to check to see if a PC-variable has been defined or not, which allows for the such as:
I think the above illustrates our fixes fairly well.
When undefined at start, we go inside the first block and print "Hello", then we define X = 1.
Since it's defined, we skip the second block.
And, since it's defined, we execute the third block of code, printing "Steve" and reassigning X = 2.
Since X is 2, we skip the next block completely. That $LET there does nothing now.
Which means the next block is valid, but -- as you can see -- we no longer bleed over that $LET X = 1 back to the translation stage and ruin the print statements and such above us.
It's prettified. It seems to fix all the issues without making new ones. I adds new capabilities for us...
I don't know what more a person could want. :P
*************************
*************************
Grab it. Try it. Test it.
Unless somebody finds a glitch with the process somewhere that I'm currently overlooking, I'll push the changes into the repo in the next couple of days, after some testing has been done.