I am very pleased with the progress I have made on my BASIC to C++ compiler. It is roughly complete, minus a few useless commands and a few things that were left out of the Tiny BASIC grammar I was basing this on, even though they are in the implementations.
I plan on turning this BASIC compiler into 3 separate projects, what I have so far being the first phase, which is complete. The second phase I plan to revamp a lot of my existing code, add more features, and implement a small amount of error checking/reporting and optimizations. Many of the things going into this phase will be added as I go.
The third phase on the other hand I have planned out in detail. It will be much closer to a modern dialect of BASIC. LET will not be required to modify variables, a symbol table will be needed, variables will have to be declared first, variables will have a type, variables will have a scope, some major changes to the grammar, and a lot more features added.
Hopefully breaking it up into three phases will keep me working since it appears there is less stuff on the todo list. Phases II and III may fade together but thats fine. After im done with this BASIC compiler I should have a understanding of all of the basic concepts of compilers. This way I will be ready for the language I really want to create a compiler for, but at this point it is too far over my head.
Phase II's Deadline: Friday the 20th