3 Code generation
It is done in module Codegen.
Compiler outputs intermediate language, called Ksi, that is later on
compiled by gcc front end. Ksi itself is rather strike through interface
to trees used by gcc internally. It uses lispy syntax.
Ksi output is done through Ksi module. It exports datatype for Ksi
expressions and declaration, and function to convert this data into output
stream (that is indented, to allow easier debugging of compiler output).