Almost every error message returned by the library is a fixed
string describing some particular syntax problem. Keep this
list of strings in one place, and add a new internal helper
to report one of these errors.
Furthermore, reduce the amount of distinct error codes returned
to the user to (once again) just two, as the current plethora of
codes seems completely pointless.