I'm pleased to release the version 0.5. of the EDDI Compiler.
This new version introduced the first version of function calls. The function can take several parameters but cannot return anything at this moment. A version of foreach loop is now available in the language.
You can also declare variables globally in the source code. The global variables are stored in the .data section of the ELF file and the local variables are stored on the stack.
The error reporting of the compiler has been improved. Indeed, now the syntactical errors are reported with the exact location of the source.
There are also a lot of improvements in the source code. The big header files have been splitted into several files. I replaced all the pointers by smart pointers that allowed me to remove all the memory leaks of the applications and to simplify the memory management. Finally, I started using some new features of C++11 to improve the source code of the application.
The next version will certainly see return types for functions and perhaps a first version of switch case. Moreover, I have a lot of improvements to do at the assembly level. Indeed, the generated assembly is not efficient at all. Perhaps, I will consider adding arrays too to this version.
You can find the compiler on the Github repository : https://github.com/wichtounet/eddic. If you watch the repository, you'll see that I followed a new branching model, the one proposed and enforced by the git-flow tool.
The exact version I refer to is the v0.5 available in the github tags.