Parser is now reentrant and generates C++ code with more type safety