I just released the 0.4.1 version of the EDDI compiler.
This version introduce two kind of loops :
- the while loop
- the for loop, in its general form with three expressions
Moreover, you can now use parenth in mathematical expressions.
That's it for the new features, but the compiler has been greatly improved. Now the scope of variables is managed, so you can have twice the same variables as long as they are not visible at the same time.
For the assembly, there have been many improvements. The variables are not stored in a more efficient way, the concatenation of strings has been improved to take less space and other little changes have been made. The Lexer has been rewritten using a Scanner to manage the source file directly so that the error do now give the line and the column of the error source. The Parser and the Compiler itself have had some refactorings, but nothing really big.
You can find the compiler on the Github repository : https://github.com/wichtounet/eddic
The exact version I refer to is the v0.4.1 available in the github tags.
The next version will certainly see more loops versions, some assembly refinements and perhaps first kind of function calls. I will also try to escalate the Token information in order to have better reporting when there are semantic errors. I will also some refactorings in the parse node to have a better integration of the Condition and the StringPool.