C/C++ source generation from an AST