add the framework of CodeGenerator