Return errors from parse functions

I/O errors are bubbled up out of the parser and returned to the caller.
The parse functions will now always return a Table if they return a
value at all.