If this statement has code that needs to run in a finally clause at the end of the current scope, return that code in the form of a Statement. Output: *sentry code executed upon entry to the scope *sexception code executed upon exit from the scope via exception *sfinally code executed in finally block
Flatten out the scope by presenting the statement as an array of statements. Returns NULL if no flattening necessary.
Any Statement that fails semantic() or has a component that is an ErrorExp or a TypeError should return an ErrorStatement from semantic().