fix(parser): changes parser to throw an error when it encounters an unexpected token

Change the handling of unexpected tokens. Make the parser throw the "is an unexpected token" exception, so ExpressionVisitor won't throw confusing "Can not watch expression containing ';'".

Closes #830