mirror of
https://github.com/python/cpython.git
synced 2025-11-24 20:30:18 +00:00
Useful future statement support for the interactive interpreter
(Also remove warning about module-level global decl, because we can't
distinguish from code passed to exec.)
Define PyCompilerFlags type contains a single element,
cf_nested_scopes, that is true if a nested scopes future statement has
been entered at the interactive prompt.
New API functions:
PyNode_CompileFlags()
PyRun_InteractiveOneFlags()
-- same as their non Flags counterparts except that the take an
optional PyCompilerFlags pointer
compile.c: In jcompile() use PyCompilerFlags argument. If
cf_nested_scopes is true, compile code with nested scopes. If it
is false, but the code has a valid future nested scopes statement,
set it to true.
pythonrun.c: Create a new PyCompilerFlags object in
PyRun_InteractiveLoop() and thread it through to
PyRun_InteractiveOneFlags().
This commit is contained in:
parent
0f6b3832b9
commit
9f324e964e
4 changed files with 59 additions and 26 deletions
|
|
@ -7,6 +7,10 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
int cf_nested_scopes;
|
||||
} PyCompilerFlags;
|
||||
|
||||
DL_IMPORT(void) Py_SetProgramName(char *);
|
||||
DL_IMPORT(char *) Py_GetProgramName(void);
|
||||
|
||||
|
|
@ -26,6 +30,7 @@ DL_IMPORT(int) PyRun_SimpleString(char *);
|
|||
DL_IMPORT(int) PyRun_SimpleFile(FILE *, char *);
|
||||
DL_IMPORT(int) PyRun_SimpleFileEx(FILE *, char *, int);
|
||||
DL_IMPORT(int) PyRun_InteractiveOne(FILE *, char *);
|
||||
DL_IMPORT(int) PyRun_InteractiveOneFlags(FILE *, char *, PyCompilerFlags *);
|
||||
DL_IMPORT(int) PyRun_InteractiveLoop(FILE *, char *);
|
||||
|
||||
DL_IMPORT(struct _node *) PyParser_SimpleParseString(char *, int);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue