mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Part way to allowing "from __future__ import generators" to communicate
that info to code dynamically compiled *by* code compiled with generators enabled. Doesn't yet work because there's still no way to tell the parser that "yield" is OK (unlike nested_scopes, the parser has its fingers in this too). Replaced PyEval_GetNestedScopes by a more-general PyEval_MergeCompilerFlags. Perhaps I should not have? I doubted it was *intended* to be part of the public API, so just did.
This commit is contained in:
parent
4dbf87152e
commit
5ba5866281
11 changed files with 77 additions and 33 deletions
|
@ -32,7 +32,7 @@ future_check_features(PyFutureFeatures *ff, node *n, char *filename)
|
|||
if (strcmp(feature, FUTURE_NESTED_SCOPES) == 0) {
|
||||
ff->ff_nested_scopes = 1;
|
||||
} else if (strcmp(feature, FUTURE_GENERATORS) == 0) {
|
||||
/* OK; this is processed by the parser */
|
||||
ff->ff_generators= 1;
|
||||
} else if (strcmp(feature, "braces") == 0) {
|
||||
PyErr_SetString(PyExc_SyntaxError,
|
||||
"not a chance");
|
||||
|
@ -233,6 +233,7 @@ PyNode_Future(node *n, char *filename)
|
|||
ff->ff_found_docstring = 0;
|
||||
ff->ff_last_lineno = -1;
|
||||
ff->ff_nested_scopes = 0;
|
||||
ff->ff_generators = 0;
|
||||
|
||||
if (future_parse(ff, n, filename) < 0) {
|
||||
PyMem_Free((void *)ff);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue