Semantic Scaffolds for Pseudocode-to-Code Generation