]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-40939: Rename PyPegen* functions to PyParser* (GH-21016)
authorLysandros Nikolaou <lisandrosnik@gmail.com>
Sun, 21 Jun 2020 23:47:46 +0000 (02:47 +0300)
committerGitHub <noreply@github.com>
Sun, 21 Jun 2020 23:47:46 +0000 (00:47 +0100)
Rename PyPegen* functions to PyParser*, so that we can remove the
old set of PyParser* functions that were using the old parser.

Include/Python.h
Include/parser_interface.h [moved from Include/internal/pegen_interface.h with 54% similarity]
Include/pythonrun.h
Makefile.pre.in
Misc/NEWS.d/next/Core and Builtins/2020-06-20-19-27-47.bpo-40939.jxJ4yn.rst [new file with mode: 0644]
PCbuild/pythoncore.vcxproj
Parser/peg_api.c
Python/pythonrun.c

index dcd0a57ac1f03f939365ef7c0e4c45105c085f9f..57f71d41d8d47768003d66025032b031c442c94e 100644 (file)
 #include "modsupport.h"
 #include "compile.h"
 #include "pythonrun.h"
+#include "parser_interface.h"
 #include "pylifecycle.h"
 #include "ceval.h"
 #include "sysmodule.h"
similarity index 54%
rename from Include/internal/pegen_interface.h
rename to Include/parser_interface.h
index ee4c77ec006760cb14c34340fc3a5a5248d51735..1c6576d926d8d35cfab6405205fd92ab3ad28c0c 100644 (file)
@@ -4,43 +4,49 @@
 extern "C" {
 #endif
 
-#ifndef Py_BUILD_CORE
-#  error "this header requires Py_BUILD_CORE define"
-#endif
-
 #include "Python.h"
-#include "Python-ast.h"
 
-PyAPI_FUNC(mod_ty) PyPegen_ASTFromString(
+#ifndef Py_LIMITED_API
+PyAPI_FUNC(struct _mod *) PyParser_ASTFromString(
     const char *str,
     const char *filename,
     int mode,
     PyCompilerFlags *flags,
     PyArena *arena);
-PyAPI_FUNC(mod_ty) PyPegen_ASTFromStringObject(
+PyAPI_FUNC(struct _mod *) PyParser_ASTFromStringObject(
     const char *str,
     PyObject* filename,
     int mode,
     PyCompilerFlags *flags,
     PyArena *arena);
-PyAPI_FUNC(mod_ty) PyPegen_ASTFromFileObject(
+PyAPI_FUNC(struct _mod *) PyParser_ASTFromFile(
     FILE *fp,
-    PyObject *filename_ob,
+    const char *filename,
+    const char* enc,
     int mode,
+    const char *ps1,
+    const char *ps2,
+    PyCompilerFlags *flags,
+    int *errcode,
+    PyArena *arena);
+PyAPI_FUNC(struct _mod *) PyParser_ASTFromFileObject(
+    FILE *fp,
+    PyObject *filename_ob,
     const char *enc,
+    int mode,
     const char *ps1,
     const char *ps2,
     PyCompilerFlags *flags,
     int *errcode,
     PyArena *arena);
-PyAPI_FUNC(mod_ty) PyPegen_ASTFromFilename(
+PyAPI_FUNC(struct _mod *) PyParser_ASTFromFilename(
     const char *filename,
     int mode,
     PyCompilerFlags *flags,
     PyArena *arena);
-
+#endif /* !Py_LIMITED_API */
 
 #ifdef __cplusplus
 }
 #endif
-#endif /* !Py_PEGENINTERFACE*/
+#endif /* !Py_PEGENINTERFACE */
index 46091e09216330bb39b8bb68a8d718dea40cd33f..d43734b5a12ff0ee7c2dea26bc4c0b3f845ebb7f 100644 (file)
@@ -32,57 +32,7 @@ PyAPI_FUNC(int) PyRun_InteractiveLoopFlags(
     const char *filename,       /* decoded from the filesystem encoding */
     PyCompilerFlags *flags);
 
-PyAPI_FUNC(struct _mod *) PyParser_ASTFromString(
-    const char *s,
-    const char *filename,       /* decoded from the filesystem encoding */
-    int start,
-    PyCompilerFlags *flags,
-    PyArena *arena);
-PyAPI_FUNC(struct _mod *) PyParser_ASTFromStringObject(
-    const char *s,
-    PyObject *filename,
-    int start,
-    PyCompilerFlags *flags,
-    PyArena *arena);
-PyAPI_FUNC(struct _mod *) PyParser_ASTFromFile(
-    FILE *fp,
-    const char *filename,       /* decoded from the filesystem encoding */
-    const char* enc,
-    int start,
-    const char *ps1,
-    const char *ps2,
-    PyCompilerFlags *flags,
-    int *errcode,
-    PyArena *arena);
-PyAPI_FUNC(struct _mod *) PyParser_ASTFromFileObject(
-    FILE *fp,
-    PyObject *filename,
-    const char* enc,
-    int start,
-    const char *ps1,
-    const char *ps2,
-    PyCompilerFlags *flags,
-    int *errcode,
-    PyArena *arena);
-#endif
 
-#ifndef PyParser_SimpleParseString
-#define PyParser_SimpleParseString(S, B) \
-    PyParser_SimpleParseStringFlags(S, B, 0)
-#define PyParser_SimpleParseFile(FP, S, B) \
-    PyParser_SimpleParseFileFlags(FP, S, B, 0)
-#endif
-PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlags(const char *, int,
-                                                           int);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlagsFilename(const char *,
-                                                                   const char *,
-                                                                   int, int);
-#endif
-PyAPI_FUNC(struct _node *) PyParser_SimpleParseFileFlags(FILE *, const char *,
-                                                         int, int);
-
-#ifndef Py_LIMITED_API
 PyAPI_FUNC(PyObject *) PyRun_StringFlags(const char *, int, PyObject *,
                                          PyObject *, PyCompilerFlags *);
 
index fc6dc434e0a18e0ea67f2935e37ab097ede2748c..24dddcf56f8fa356891f3df2b71d0a622233143c 100644 (file)
@@ -307,7 +307,7 @@ PEGEN_OBJS=         \
 
 
 PEGEN_HEADERS= \
-               $(srcdir)/Include/internal/pegen_interface.h \
+               $(srcdir)/Include/parser_interface.h \
                $(srcdir)/Parser/pegen.h \
                $(srcdir)/Parser/string_parser.h
 
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-20-19-27-47.bpo-40939.jxJ4yn.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-20-19-27-47.bpo-40939.jxJ4yn.rst
new file mode 100644 (file)
index 0000000..7024dfe
--- /dev/null
@@ -0,0 +1 @@
+Rename `PyPegen*` functions to `PyParser*`, so that we can remove the old set of `PyParser*` functions that were using the old parser, but keep everything backwards-compatible.
\ No newline at end of file
index 0f9110e08d65b22017997859e571e8e3c299d087..fc99d7748a01fc0c9d9701db7ca2a77ea303cc15 100644 (file)
     <ClInclude Include="..\Include\funcobject.h" />
     <ClInclude Include="..\Include\genobject.h" />
     <ClInclude Include="..\Include\import.h" />
-    <ClInclude Include="..\Include\internal\pegen_interface.h" />
     <ClInclude Include="..\Include\internal\pycore_abstract.h" />
     <ClInclude Include="..\Include\internal\pycore_accu.h" />
     <ClInclude Include="..\Include\internal\pycore_atomic.h" />
     <ClInclude Include="..\Include\osdefs.h" />
     <ClInclude Include="..\Include\osmodule.h" />
     <ClInclude Include="..\Include\patchlevel.h" />
+    <ClInclude Include="..\Include\parser_interface.h" />
     <ClInclude Include="..\Include\picklebufobject.h" />
     <ClInclude Include="..\Include\py_curses.h" />
     <ClInclude Include="..\Include\pyarena.h" />
index b947c780765459c916bc44b61fc6b7f8398f8fd2..8381d5e86b0db5eaba0493ae156c528b95ea7316 100644 (file)
@@ -1,23 +1,23 @@
-#include "pegen_interface.h"
+#include "parser_interface.h"
 
 #include "tokenizer.h"
 #include "pegen.h"
 
 mod_ty
-PyPegen_ASTFromString(const char *str, const char *filename, int mode,
+PyParser_ASTFromString(const char *str, const char *filename, int mode,
                       PyCompilerFlags *flags, PyArena *arena)
 {
     PyObject *filename_ob = PyUnicode_FromString(filename);
     if (filename_ob == NULL) {
         return NULL;
     }
-    mod_ty result = PyPegen_ASTFromStringObject(str, filename_ob, mode, flags, arena);
+    mod_ty result = PyParser_ASTFromStringObject(str, filename_ob, mode, flags, arena);
     Py_XDECREF(filename_ob);
     return result;
 }
 
 mod_ty
-PyPegen_ASTFromStringObject(const char *str, PyObject* filename, int mode,
+PyParser_ASTFromStringObject(const char *str, PyObject* filename, int mode,
                             PyCompilerFlags *flags, PyArena *arena)
 {
     if (PySys_Audit("compile", "yO", str, filename) < 0) {
@@ -29,7 +29,7 @@ PyPegen_ASTFromStringObject(const char *str, PyObject* filename, int mode,
 }
 
 mod_ty
-PyPegen_ASTFromFilename(const char *filename, int mode, PyCompilerFlags *flags, PyArena *arena)
+PyParser_ASTFromFilename(const char *filename, int mode, PyCompilerFlags *flags, PyArena *arena)
 {
     PyObject *filename_ob = PyUnicode_FromString(filename);
     if (filename_ob == NULL) {
@@ -42,8 +42,23 @@ PyPegen_ASTFromFilename(const char *filename, int mode, PyCompilerFlags *flags,
 }
 
 mod_ty
-PyPegen_ASTFromFileObject(FILE *fp, PyObject *filename_ob, int mode,
-                          const char *enc, const char *ps1, const char* ps2,
+PyParser_ASTFromFile(FILE *fp, const char *filename, const char *enc,
+                    int mode, const char *ps1, const char* ps2,
+                    PyCompilerFlags *flags, int *errcode, PyArena *arena)
+{
+    PyObject *filename_ob = PyUnicode_FromString(filename);
+    if (filename_ob == NULL) {
+        return NULL;
+    }
+    mod_ty result = PyParser_ASTFromFileObject(fp, filename_ob, enc, mode,
+                                              ps1, ps2, flags, errcode, arena);
+    Py_XDECREF(filename_ob);
+    return result;
+}
+
+mod_ty
+PyParser_ASTFromFileObject(FILE *fp, PyObject *filename_ob, const char *enc,
+                          int mode, const char *ps1, const char* ps2,
                           PyCompilerFlags *flags, int *errcode, PyArena *arena)
 {
     if (PySys_Audit("compile", "OO", Py_None, filename_ob) < 0) {
index 04fad04227df9d39cb6be878adec7bb23ed4fc45..ff80103050e4e2cff35daaa7738c5ec3c9ca73b9 100644 (file)
@@ -26,7 +26,7 @@
 #include "symtable.h"             // PySymtable_BuildObject()
 #include "marshal.h"              // PyMarshal_ReadLongFromFile()
 
-#include "pegen_interface.h"      // PyPegen_ASTFrom*
+#include "parser_interface.h"      // PyParser_ASTFrom*
 
 #ifdef MS_WINDOWS
 #  include "malloc.h"             // alloca()
@@ -205,8 +205,8 @@ PyRun_InteractiveOneObjectEx(FILE *fp, PyObject *filename,
         return -1;
     }
 
-    mod = PyPegen_ASTFromFileObject(fp, filename, Py_single_input,
-                                    enc, ps1, ps2, flags, &errcode, arena);
+    mod = PyParser_ASTFromFileObject(fp, filename, enc, Py_single_input,
+                                     ps1, ps2, flags, &errcode, arena);
 
     Py_XDECREF(v);
     Py_XDECREF(w);
@@ -1026,7 +1026,7 @@ PyRun_StringFlags(const char *str, int start, PyObject *globals,
     if (arena == NULL)
         return NULL;
 
-    mod = PyPegen_ASTFromStringObject(str, filename, start, flags, arena);
+    mod = PyParser_ASTFromStringObject(str, filename, start, flags, arena);
 
     if (mod != NULL)
         ret = run_mod(mod, filename, globals, locals, flags, arena);
@@ -1051,8 +1051,8 @@ PyRun_FileExFlags(FILE *fp, const char *filename_str, int start, PyObject *globa
     if (arena == NULL)
         goto exit;
 
-    mod = PyPegen_ASTFromFileObject(fp, filename, start, NULL, NULL, NULL,
-                                        flags, NULL, arena);
+    mod = PyParser_ASTFromFileObject(fp, filename, NULL, start, NULL, NULL,
+                                     flags, NULL, arena);
 
     if (closeit)
         fclose(fp);
@@ -1200,7 +1200,7 @@ Py_CompileStringObject(const char *str, PyObject *filename, int start,
     if (arena == NULL)
         return NULL;
 
-    mod = PyPegen_ASTFromStringObject(str, filename, start, flags, arena);
+    mod = PyParser_ASTFromStringObject(str, filename, start, flags, arena);
     if (mod == NULL) {
         PyArena_Free(arena);
         return NULL;
@@ -1303,7 +1303,7 @@ _Py_SymtableStringObjectFlags(const char *str, PyObject *filename, int start, Py
     if (arena == NULL)
         return NULL;
 
-    mod = PyPegen_ASTFromStringObject(str, filename, start, flags, arena);
+    mod = PyParser_ASTFromStringObject(str, filename, start, flags, arena);
     if (mod == NULL) {
         PyArena_Free(arena);
         return NULL;