better semicolon handling
add let expr
adding case expr and alternatives