Less direct calls to error.

We want to get to the point where there are only three places where errors are reported in the parser:
1) Errors caused by the scanner.
2) Errors caused by not having an expected token.
3) Errors caused by having a token we don't know what to do with.