#include "modsupport.h"
#include "compile.h"
#include "pythonrun.h"
+#include "parser_interface.h"
#include "pylifecycle.h"
#include "ceval.h"
#include "sysmodule.h"
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 */
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 *);
PEGEN_HEADERS= \
- $(srcdir)/Include/internal/pegen_interface.h \
+ $(srcdir)/Include/parser_interface.h \
$(srcdir)/Parser/pegen.h \
$(srcdir)/Parser/string_parser.h
--- /dev/null
+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
<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" />
-#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) {
}
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) {
}
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) {
#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()
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);
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);
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);
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;
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;