Wraps an expression in a switch statement and generates case clauses when possible.