17db96d56Sopenharmony_ci#ifndef Py_CPYTHON_PYTHONRUN_H
27db96d56Sopenharmony_ci#  error "this header file must not be included directly"
37db96d56Sopenharmony_ci#endif
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_SimpleStringFlags(const char *, PyCompilerFlags *);
67db96d56Sopenharmony_ciPyAPI_FUNC(int) _PyRun_SimpleFileObject(
77db96d56Sopenharmony_ci    FILE *fp,
87db96d56Sopenharmony_ci    PyObject *filename,
97db96d56Sopenharmony_ci    int closeit,
107db96d56Sopenharmony_ci    PyCompilerFlags *flags);
117db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_AnyFileExFlags(
127db96d56Sopenharmony_ci    FILE *fp,
137db96d56Sopenharmony_ci    const char *filename,       /* decoded from the filesystem encoding */
147db96d56Sopenharmony_ci    int closeit,
157db96d56Sopenharmony_ci    PyCompilerFlags *flags);
167db96d56Sopenharmony_ciPyAPI_FUNC(int) _PyRun_AnyFileObject(
177db96d56Sopenharmony_ci    FILE *fp,
187db96d56Sopenharmony_ci    PyObject *filename,
197db96d56Sopenharmony_ci    int closeit,
207db96d56Sopenharmony_ci    PyCompilerFlags *flags);
217db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_SimpleFileExFlags(
227db96d56Sopenharmony_ci    FILE *fp,
237db96d56Sopenharmony_ci    const char *filename,       /* decoded from the filesystem encoding */
247db96d56Sopenharmony_ci    int closeit,
257db96d56Sopenharmony_ci    PyCompilerFlags *flags);
267db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_InteractiveOneFlags(
277db96d56Sopenharmony_ci    FILE *fp,
287db96d56Sopenharmony_ci    const char *filename,       /* decoded from the filesystem encoding */
297db96d56Sopenharmony_ci    PyCompilerFlags *flags);
307db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_InteractiveOneObject(
317db96d56Sopenharmony_ci    FILE *fp,
327db96d56Sopenharmony_ci    PyObject *filename,
337db96d56Sopenharmony_ci    PyCompilerFlags *flags);
347db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_InteractiveLoopFlags(
357db96d56Sopenharmony_ci    FILE *fp,
367db96d56Sopenharmony_ci    const char *filename,       /* decoded from the filesystem encoding */
377db96d56Sopenharmony_ci    PyCompilerFlags *flags);
387db96d56Sopenharmony_ciPyAPI_FUNC(int) _PyRun_InteractiveLoopObject(
397db96d56Sopenharmony_ci    FILE *fp,
407db96d56Sopenharmony_ci    PyObject *filename,
417db96d56Sopenharmony_ci    PyCompilerFlags *flags);
427db96d56Sopenharmony_ci
437db96d56Sopenharmony_ci
447db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyRun_StringFlags(const char *, int, PyObject *,
457db96d56Sopenharmony_ci                                         PyObject *, PyCompilerFlags *);
467db96d56Sopenharmony_ci
477db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyRun_FileExFlags(
487db96d56Sopenharmony_ci    FILE *fp,
497db96d56Sopenharmony_ci    const char *filename,       /* decoded from the filesystem encoding */
507db96d56Sopenharmony_ci    int start,
517db96d56Sopenharmony_ci    PyObject *globals,
527db96d56Sopenharmony_ci    PyObject *locals,
537db96d56Sopenharmony_ci    int closeit,
547db96d56Sopenharmony_ci    PyCompilerFlags *flags);
557db96d56Sopenharmony_ci
567db96d56Sopenharmony_ci
577db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) Py_CompileStringExFlags(
587db96d56Sopenharmony_ci    const char *str,
597db96d56Sopenharmony_ci    const char *filename,       /* decoded from the filesystem encoding */
607db96d56Sopenharmony_ci    int start,
617db96d56Sopenharmony_ci    PyCompilerFlags *flags,
627db96d56Sopenharmony_ci    int optimize);
637db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) Py_CompileStringObject(
647db96d56Sopenharmony_ci    const char *str,
657db96d56Sopenharmony_ci    PyObject *filename, int start,
667db96d56Sopenharmony_ci    PyCompilerFlags *flags,
677db96d56Sopenharmony_ci    int optimize);
687db96d56Sopenharmony_ci
697db96d56Sopenharmony_ci#define Py_CompileString(str, p, s) Py_CompileStringExFlags(str, p, s, NULL, -1)
707db96d56Sopenharmony_ci#define Py_CompileStringFlags(str, p, s, f) Py_CompileStringExFlags(str, p, s, f, -1)
717db96d56Sopenharmony_ci
727db96d56Sopenharmony_ci
737db96d56Sopenharmony_ciPyAPI_FUNC(const char *) _Py_SourceAsString(
747db96d56Sopenharmony_ci    PyObject *cmd,
757db96d56Sopenharmony_ci    const char *funcname,
767db96d56Sopenharmony_ci    const char *what,
777db96d56Sopenharmony_ci    PyCompilerFlags *cf,
787db96d56Sopenharmony_ci    PyObject **cmd_copy);
797db96d56Sopenharmony_ci
807db96d56Sopenharmony_ci
817db96d56Sopenharmony_ci/* A function flavor is also exported by libpython. It is required when
827db96d56Sopenharmony_ci    libpython is accessed directly rather than using header files which defines
837db96d56Sopenharmony_ci    macros below. On Windows, for example, PyAPI_FUNC() uses dllexport to
847db96d56Sopenharmony_ci    export functions in pythonXX.dll. */
857db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyRun_String(const char *str, int s, PyObject *g, PyObject *l);
867db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_AnyFile(FILE *fp, const char *name);
877db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_AnyFileEx(FILE *fp, const char *name, int closeit);
887db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_AnyFileFlags(FILE *, const char *, PyCompilerFlags *);
897db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_SimpleString(const char *s);
907db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_SimpleFile(FILE *f, const char *p);
917db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_SimpleFileEx(FILE *f, const char *p, int c);
927db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_InteractiveOne(FILE *f, const char *p);
937db96d56Sopenharmony_ciPyAPI_FUNC(int) PyRun_InteractiveLoop(FILE *f, const char *p);
947db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyRun_File(FILE *fp, const char *p, int s, PyObject *g, PyObject *l);
957db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyRun_FileEx(FILE *fp, const char *p, int s, PyObject *g, PyObject *l, int c);
967db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyRun_FileFlags(FILE *fp, const char *p, int s, PyObject *g, PyObject *l, PyCompilerFlags *flags);
977db96d56Sopenharmony_ci
987db96d56Sopenharmony_ci/* Use macros for a bunch of old variants */
997db96d56Sopenharmony_ci#define PyRun_String(str, s, g, l) PyRun_StringFlags(str, s, g, l, NULL)
1007db96d56Sopenharmony_ci#define PyRun_AnyFile(fp, name) PyRun_AnyFileExFlags(fp, name, 0, NULL)
1017db96d56Sopenharmony_ci#define PyRun_AnyFileEx(fp, name, closeit) \
1027db96d56Sopenharmony_ci    PyRun_AnyFileExFlags(fp, name, closeit, NULL)
1037db96d56Sopenharmony_ci#define PyRun_AnyFileFlags(fp, name, flags) \
1047db96d56Sopenharmony_ci    PyRun_AnyFileExFlags(fp, name, 0, flags)
1057db96d56Sopenharmony_ci#define PyRun_SimpleString(s) PyRun_SimpleStringFlags(s, NULL)
1067db96d56Sopenharmony_ci#define PyRun_SimpleFile(f, p) PyRun_SimpleFileExFlags(f, p, 0, NULL)
1077db96d56Sopenharmony_ci#define PyRun_SimpleFileEx(f, p, c) PyRun_SimpleFileExFlags(f, p, c, NULL)
1087db96d56Sopenharmony_ci#define PyRun_InteractiveOne(f, p) PyRun_InteractiveOneFlags(f, p, NULL)
1097db96d56Sopenharmony_ci#define PyRun_InteractiveLoop(f, p) PyRun_InteractiveLoopFlags(f, p, NULL)
1107db96d56Sopenharmony_ci#define PyRun_File(fp, p, s, g, l) \
1117db96d56Sopenharmony_ci    PyRun_FileExFlags(fp, p, s, g, l, 0, NULL)
1127db96d56Sopenharmony_ci#define PyRun_FileEx(fp, p, s, g, l, c) \
1137db96d56Sopenharmony_ci    PyRun_FileExFlags(fp, p, s, g, l, c, NULL)
1147db96d56Sopenharmony_ci#define PyRun_FileFlags(fp, p, s, g, l, flags) \
1157db96d56Sopenharmony_ci    PyRun_FileExFlags(fp, p, s, g, l, 0, flags)
1167db96d56Sopenharmony_ci
1177db96d56Sopenharmony_ci
1187db96d56Sopenharmony_ci/* Stuff with no proper home (yet) */
1197db96d56Sopenharmony_ciPyAPI_FUNC(char *) PyOS_Readline(FILE *, FILE *, const char *);
1207db96d56Sopenharmony_ciPyAPI_DATA(PyThreadState*) _PyOS_ReadlineTState;
1217db96d56Sopenharmony_ciPyAPI_DATA(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *, const char *);
122