Fixes

Control never reaches the end of a non-void function, while loops now
terminate with an EOF, and malformed tokens properly return. Scan
errors to deal with malformed tokens will be address in future fixes.