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.
diff --git a/Python/future.c b/Python/future.c
index 70be26b..f0960ae 100644
--- a/Python/future.c
+++ b/Python/future.c
@@ -32,7 +32,7 @@
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 @@
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);