Semantics for review feedback

New to this pull request only:
I did some duplication on Monday, but then on Tuesday I was told this is bad, so I revert all duplications, including the one in method-invoke.k I made in last pull request.
But some little improvements to statements are kept, like removing excessive brackets, and commented old code.
I also performed the changes suggested by Denis, Update Break-like productions and a little change in switch.