improved parsing error recovery for if and do constructs; moved sema for exec stmts to separate file