Open
Description
Currently the code generation is part of the intermediate representation classes. In order to open the possibility of rewriting the code generation in Scala and potentially using the IR for integration with 3rd part bindings, transformations and code generation should be implemented in a separate module.
I’ve experimented with writing a protobuf schema for the IR and it looks like a simple way to move towards a cross language serialization format. It has been used by scala meta’s semantic DB. Generating the IR will also help enforcing that no custom logic is added to the IR.