Python needs better error reporting
Tim Peters
tim.one at comcast.net
Sat Jun 29 07:25:58 EDT 2002
[David LeBlanc]
> Cute anthropomorphism is lots of fun, but doesn't _quite_ obscure the fact
> that computers don't really "tell" anybody anything, programmers do.
When we ship Guido with every compiler, the world will be a better place for
sure.
> IIRC, Python throws this "Syntax Error: invalid syntax" in a number of
> places.
Yes. Study the code a little and you'll soon discover why.
> In the place that I used as an example, looking at the language
> reference, an appropriate error would be more like:
> Syntax Error: expected "and", "or", "xor" or ":"
Well, "xor" isn't legit there, but other tokens that are OK after
if s == ' '
include
'
"
'''
"""
==
!=
<>
<
<=
>
>=
+
-
/
*
**
and
\
Call me prophetic, but you wouldn't be happy with a list of all
possibilities either. Collapse oodles of them into "binary operator" and
you lose half the people you're trying to help. Etc.
> This would at least narrow down what should be looked at to resolve the
> problem.
Not really. Such lists tend to baffle more than clarify. I once used a
Pascal compiler whose favorite trick was to point a caret at a trailing
semicolon, and then complain "semicolon expected"; the message was always
correct when it appeared, while appearing dead wrong, and was useless in
determining the *real* problem regardless. It did appear friendlier than
"syntax error" the first 719 times I saw it, though <wink>.
> Vague error reporting doesn't help new user's self confidance or
> acceptance of the language.
>
> I really DO have a point!
Error-reporting in parsers has been the subject of intense research. Do a
little digging and come back when you can make a case that your point can be
addressed effectively. Keep in mind that most consumer-grade computers
still don't have telepathy chips <wink>.
More information about the Python-list
mailing list