Previously, unrecoverable errors were passed back to the debug line parse() caller, who would then pass the error to a callback. This meant that such errors were inconsistently printed in the output between verbose and non-verbose output: for verbose output, they'd be printed after the output (which is printed at the end of the parse() function) whilst non-verbose output was printed later on, after the error callback was run. This patch moves the error callback usage to inside the parse() function.
Depends on D81102.