IndentationError: two many levels of indentation
Alex Martelli
aleax at aleax.it
Fri Mar 7 04:16:18 EST 2003
Erik Max Francis wrote:
...
> It would indeed appear there's some sort of limit. I did the following:
...
> IndentationError: too many levels of indentation
Yes, Parser/tokenizer.h in the Python 2.2.2 sources for example
is quite clear about it (grepping in the file...):
#define MAXINDENT 100 /* Max indentation level */
int indstack[MAXINDENT]; /* Stack of indents */
int altindstack[MAXINDENT]; /* Stack of alternate indents */
and Parser/tokenizer.c checks for over-indentation:
if (tok->indent+1 >= MAXINDENT) {
giving an E_TOODEEP error that gets turned into the above exception.
2.3a2 seems to be identical in this respect.
I suspect that editing tokenizer.h to use a MAXINDENT of 1000, or
whatever, is going to bump up the limit accordingly (at a small
memory cost), though I have not experimented with it. Removing the
limit altogether would seem to require quite a different approach
to tokenization than the one currently used, or else it might be
achieved by turning those arrays into dynamically resized ones,
if somebody's keen enough to support code-generators to offer
patches for the purpose...
Alex
More information about the Python-list
mailing list