[Python-Dev] SyntaxError patches
Peter Funk
pf@artcom-gmbh.de
Wed, 12 Jul 2000 10:27:01 +0200 (MEST)
> On Tue, 11 Jul 2000, Fred L. Drake, Jr. wrote:
> > At one point, we were discussing having specializations of
> > SyntaxError, and I posted a patch that defined IndentationError and
> > TabError.
Ka-Ping Yee:
> I guess the question is, will we ever want to catch or distinguish
> just IndentationError or TabError exceptions in particular from
> within a Python program?
I don't believe this.
> I can't personally think of any situations where i would need more
> detail than SyntaxError (whatever the error is, i'll just want to
> say "syntax error" and show the message)... unless... should the
> expected token type be passed *all* the way back to the user level
> so that e.g. an IDE can provide a UI hint as to how to correct the
> syntax error?
That sounds rather complicated anyway, but it would certainly be nice for
people using (or should I say needing?) an IDE.
BTW: The following mistake has happened to me to in the past (I'm using
the VI improved editor unter X11): If cut'n'pasting methods around
between classes, sometimes I unintentionally copy a space character too
much, so that the 'def' of the copied method is intended one blank to
much to the right. Hmmmm... I should make this clearer using an example:
###
class Foo(Bar):
def pasted_method(self, ....)
#---^ note this additional blank here (resulting in a 5 space indent).
# ...a screenful of indented code snipped here...
def another_method(self, baz, bang):
#--------------------------------------^
# Python 1.5.2 barfs here with "SyntaxError: invalid token"
###
This is not very intuitive and hard to see. The first time I stumbled
about this it has taken me quite some time to discover my mistake.
I wonder, if the error message could be improved. That would be
a very valuable improvement for newbies. However this example might
proove that the idea an IDE would be able to provide UI-hints for
fixing errors is doomed to fail in the general case.
Regards, Peter.