Instead of calling the `error` function, throw an appropriate `Exception` when a parse error occurs. Show unexpected token(s) instead of a generic error message.