cpython/Include/parsetok.h
Tim Peters fe2127d3cb 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())
2001-07-16 05:37:24 +00:00

37 lines
927 B
C

/* Parser-tokenizer link interface */
#ifndef Py_PARSETOK_H
#define Py_PARSETOK_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
int error;
char *filename;
int lineno;
int offset;
char *text;
int token;
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
#endif /* !Py_PARSETOK_H */