add visitor to generate C#-like code