add CSourceGenerator