parseProgram