Propagating errors back to callers is annoying in recursive descendent
parser because they are naturally constructed as mutually recursive
functions. In this patch, I took a simple approach. The accessors of
the token stream behaves as if they are at EOF once we saw any errors.
It naturally makes all functions to return.
This is the final change to not use fatal in the linker.