Refactored some things in the parser so while and if statements are proper assignable expressions.  Also changed unary minus method name from _unm to ~
Wrote more unit tests to cover assign result of while and ternary if.