Fix bug with exception handling.
Ensure empty blocks have a return value.
Make do keyword consistent.
Remove repeated code in semant.