summaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/Include/internal/pycore_parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/tools/python3/Include/internal/pycore_parser.h')
-rw-r--r--contrib/tools/python3/Include/internal/pycore_parser.h31
1 files changed, 30 insertions, 1 deletions
diff --git a/contrib/tools/python3/Include/internal/pycore_parser.h b/contrib/tools/python3/Include/internal/pycore_parser.h
index dd51b92801a..b16084aaa15 100644
--- a/contrib/tools/python3/Include/internal/pycore_parser.h
+++ b/contrib/tools/python3/Include/internal/pycore_parser.h
@@ -21,6 +21,9 @@ extern "C" {
struct _parser_runtime_state {
#ifdef Py_DEBUG
long memo_statistics[_PYPEGEN_NSTATISTICS];
+#ifdef Py_GIL_DISABLED
+ PyMutex mutex;
+#endif
#else
int _not_used;
#endif
@@ -28,8 +31,10 @@ struct _parser_runtime_state {
};
_Py_DECLARE_STR(empty, "")
+#if defined(Py_DEBUG) && defined(Py_GIL_DISABLED)
#define _parser_runtime_state_INIT \
{ \
+ .mutex = {0}, \
.dummy_name = { \
.kind = Name_kind, \
.v.Name.id = &_Py_STR(empty), \
@@ -40,6 +45,20 @@ _Py_DECLARE_STR(empty, "")
.end_col_offset = 0, \
}, \
}
+#else
+#define _parser_runtime_state_INIT \
+ { \
+ .dummy_name = { \
+ .kind = Name_kind, \
+ .v.Name.id = &_Py_STR(empty), \
+ .v.Name.ctx = Load, \
+ .lineno = 1, \
+ .col_offset = 0, \
+ .end_lineno = 1, \
+ .end_col_offset = 0, \
+ }, \
+ }
+#endif
extern struct _mod* _PyParser_ASTFromString(
const char *str,
@@ -58,7 +77,17 @@ extern struct _mod* _PyParser_ASTFromFile(
PyCompilerFlags *flags,
int *errcode,
PyArena *arena);
-
+extern struct _mod* _PyParser_InteractiveASTFromFile(
+ FILE *fp,
+ PyObject *filename_ob,
+ const char *enc,
+ int mode,
+ const char *ps1,
+ const char *ps2,
+ PyCompilerFlags *flags,
+ int *errcode,
+ PyObject **interactive_src,
+ PyArena *arena);
#ifdef __cplusplus
}