summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2001-03-01 22:59:14 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2001-03-01 22:59:14 (GMT)
commit9f324e964e06c79f9c47501afa12b1af4cb1a75f (patch)
tree1042e0c0f358ed8130f826fbf28b95e88921df3f /Include
parent0f6b3832b9a0397910308f22f75f8449c4f492d8 (diff)
downloadcpython-9f324e964e06c79f9c47501afa12b1af4cb1a75f.zip
cpython-9f324e964e06c79f9c47501afa12b1af4cb1a75f.tar.gz
cpython-9f324e964e06c79f9c47501afa12b1af4cb1a75f.tar.bz2
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().
Diffstat (limited to 'Include')
-rw-r--r--Include/compile.h2
-rw-r--r--Include/pythonrun.h5
2 files changed, 7 insertions, 0 deletions
diff --git a/Include/compile.h b/Include/compile.h
index 45854e9..deb8ee8 100644
--- a/Include/compile.h
+++ b/Include/compile.h
@@ -57,6 +57,8 @@ typedef struct {
} PyFutureFeatures;
DL_IMPORT(PyFutureFeatures *) PyNode_Future(struct _node *, char *);
+DL_IMPORT(PyCodeObject *) PyNode_CompileFlags(struct _node *, char *,
+ PyCompilerFlags *);
#define NESTED_SCOPES_DEFAULT 0
#define FUTURE_NESTED_SCOPES "nested_scopes"
diff --git a/Include/pythonrun.h b/Include/pythonrun.h
index 13ed471..3f9f70b 100644
--- a/Include/pythonrun.h
+++ b/Include/pythonrun.h
@@ -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);