diff options
author | Tim Peters <tim.peters@gmail.com> | 2001-07-16 05:37:24 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2001-07-16 05:37:24 (GMT) |
commit | fe2127d3cbf34452a10b88c40e5ab06870936f94 (patch) | |
tree | f8dc5d80679d9003646e666f1f3d9253f7ae13bb /Include | |
parent | e75785a646d2cb4004187772f1df3bc5d474a77f (diff) | |
download | cpython-fe2127d3cbf34452a10b88c40e5ab06870936f94.zip cpython-fe2127d3cbf34452a10b88c40e5ab06870936f94.tar.gz cpython-fe2127d3cbf34452a10b88c40e5ab06870936f94.tar.bz2 |
Ugly. A pile of new xxxFlags() functions, to communicate to the parser
that 'yield' is a keyword. This doesn't help test_generators at all! I
don't know why not. These things do work now (and didn't before this
patch):
1. "from __future__ import generators" now works in a native shell.
2. Similarly "python -i xxx.py" now has generators enabled in the
shell if xxx.py had them enabled.
3. This program (which was my doctest proxy) works fine:
from __future__ import generators
source = """\
def f():
yield 1
"""
exec compile(source, "", "single") in globals()
print type(f())
Diffstat (limited to 'Include')
-rw-r--r-- | Include/parsetok.h | 8 | ||||
-rw-r--r-- | Include/pythonrun.h | 3 |
2 files changed, 11 insertions, 0 deletions
diff --git a/Include/parsetok.h b/Include/parsetok.h index aebc83c..66359d42 100644 --- a/Include/parsetok.h +++ b/Include/parsetok.h @@ -17,11 +17,19 @@ typedef struct { int expected; } perrdetail; +#define PyPARSE_YIELD_IS_KEYWORD 0x0001 + extern DL_IMPORT(node *) PyParser_ParseString(char *, grammar *, int, perrdetail *); extern DL_IMPORT(node *) PyParser_ParseFile (FILE *, char *, grammar *, int, char *, char *, perrdetail *); +extern DL_IMPORT(node *) PyParser_ParseStringFlags(char *, grammar *, int, + perrdetail *, int); +extern DL_IMPORT(node *) PyParser_ParseFileFlags(FILE *, char *, grammar *, + int, char *, char *, + perrdetail *, int); + #ifdef __cplusplus } #endif diff --git a/Include/pythonrun.h b/Include/pythonrun.h index 3877a82..6e9821b 100644 --- a/Include/pythonrun.h +++ b/Include/pythonrun.h @@ -45,6 +45,9 @@ DL_IMPORT(int) PyRun_InteractiveLoopFlags(FILE *, char *, PyCompilerFlags *); DL_IMPORT(struct _node *) PyParser_SimpleParseString(char *, int); DL_IMPORT(struct _node *) PyParser_SimpleParseFile(FILE *, char *, int); +DL_IMPORT(struct _node *) PyParser_SimpleParseStringFlags(char *, int, int); +DL_IMPORT(struct _node *) PyParser_SimpleParseFileFlags(FILE *, char *, + int, int); DL_IMPORT(PyObject *) PyRun_String(char *, int, PyObject *, PyObject *); DL_IMPORT(PyObject *) PyRun_File(FILE *, char *, int, PyObject *, PyObject *); |