Outline, Then Details: Syntactically Guided Coarse-To-Fine Code Generation