mirror of
https://github.com/python/cpython.git
synced 2025-12-23 09:19:18 +00:00
This affects the parser, various object implementations, and all places that put identifiers into C string literals. In testing, a number of crashes occurred as code would fail when the recursion limit was reached (such as the Unicode interning dictionary having key/value pairs where key is not value). To solve these, I added an overflowed flag, which allows for 50 more recursions after the limit was reached and the exception was raised, and a recursion_critical flag, which indicates that recursion absolutely must be allowed, i.e. that a certain call must not cause a stack overflow exception. There are still some places where both str and str8 are accepted as identifiers; these should eventually be removed. |
||
|---|---|---|
| .. | ||
| acceler.c | ||
| asdl.py | ||
| asdl_c.py | ||
| bitset.c | ||
| firstsets.c | ||
| grammar.c | ||
| grammar.mak | ||
| grammar1.c | ||
| intrcheck.c | ||
| listnode.c | ||
| metagrammar.c | ||
| myreadline.c | ||
| node.c | ||
| parser.c | ||
| parser.h | ||
| parsetok.c | ||
| pgen.c | ||
| pgenmain.c | ||
| printgrammar.c | ||
| Python.asdl | ||
| spark.py | ||
| tokenizer.c | ||
| tokenizer.h | ||
| tokenizer_pgen.c | ||