blob: bb5b6fd1617ab15ffbb521dfccd39533ce2f1ed6 [file] [log] [blame]
Guido van Rossuma3309961993-07-28 09:05:47 +00001#ifndef Py_PYTHONRUN_H
2#define Py_PYTHONRUN_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6
Guido van Rossumf70e43a1991-02-19 12:39:46 +00007/***********************************************************
Guido van Rossumfd71b9e2000-06-30 23:50:40 +00008Copyright (c) 2000, BeOpen.com.
9Copyright (c) 1995-2000, Corporation for National Research Initiatives.
10Copyright (c) 1990-1995, Stichting Mathematisch Centrum.
11All rights reserved.
Guido van Rossumf70e43a1991-02-19 12:39:46 +000012
Guido van Rossumfd71b9e2000-06-30 23:50:40 +000013See the file "Misc/COPYRIGHT" for information on usage and
14redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
Guido van Rossumf70e43a1991-02-19 12:39:46 +000015******************************************************************/
16
Guido van Rossum3f5da241990-12-20 15:06:42 +000017/* Interfaces to parse and execute pieces of python code */
18
Guido van Rossum43466ec1998-12-04 18:48:25 +000019DL_IMPORT(void) Py_SetProgramName Py_PROTO((char *));
20DL_IMPORT(char *) Py_GetProgramName Py_PROTO((void));
Guido van Rossum57d8e3f1997-07-19 19:50:52 +000021
Guido van Rossum43466ec1998-12-04 18:48:25 +000022DL_IMPORT(void) Py_SetPythonHome Py_PROTO((char *));
23DL_IMPORT(char *) Py_GetPythonHome Py_PROTO((void));
Guido van Rossum66d4b901998-02-06 22:28:05 +000024
Guido van Rossum43466ec1998-12-04 18:48:25 +000025DL_IMPORT(void) Py_Initialize Py_PROTO((void));
26DL_IMPORT(void) Py_Finalize Py_PROTO((void));
27DL_IMPORT(int) Py_IsInitialized Py_PROTO((void));
28DL_IMPORT(PyThreadState *) Py_NewInterpreter Py_PROTO((void));
29DL_IMPORT(void) Py_EndInterpreter Py_PROTO((PyThreadState *));
Guido van Rossum3f5da241990-12-20 15:06:42 +000030
Guido van Rossum43466ec1998-12-04 18:48:25 +000031DL_IMPORT(int) PyRun_AnyFile Py_PROTO((FILE *, char *));
Guido van Rossum3f5da241990-12-20 15:06:42 +000032
Guido van Rossum43466ec1998-12-04 18:48:25 +000033DL_IMPORT(int) PyRun_SimpleString Py_PROTO((char *));
34DL_IMPORT(int) PyRun_SimpleFile Py_PROTO((FILE *, char *));
35DL_IMPORT(int) PyRun_InteractiveOne Py_PROTO((FILE *, char *));
36DL_IMPORT(int) PyRun_InteractiveLoop Py_PROTO((FILE *, char *));
Guido van Rossum3f5da241990-12-20 15:06:42 +000037
Guido van Rossum43466ec1998-12-04 18:48:25 +000038DL_IMPORT(struct _node *) PyParser_SimpleParseString Py_PROTO((char *, int));
39DL_IMPORT(struct _node *) PyParser_SimpleParseFile Py_PROTO((FILE *, char *, int));
Guido van Rossum3f5da241990-12-20 15:06:42 +000040
Guido van Rossum43466ec1998-12-04 18:48:25 +000041DL_IMPORT(PyObject *) PyRun_String Py_PROTO((char *, int, PyObject *, PyObject *));
42DL_IMPORT(PyObject *) PyRun_File Py_PROTO((FILE *, char *, int, PyObject *, PyObject *));
Guido van Rossum3f5da241990-12-20 15:06:42 +000043
Guido van Rossum43466ec1998-12-04 18:48:25 +000044DL_IMPORT(PyObject *) Py_CompileString Py_PROTO((char *, char *, int));
Guido van Rossum5b722181993-03-30 17:46:03 +000045
Guido van Rossum43466ec1998-12-04 18:48:25 +000046DL_IMPORT(void) PyErr_Print Py_PROTO((void));
47DL_IMPORT(void) PyErr_PrintEx Py_PROTO((int));
Guido van Rossum3f5da241990-12-20 15:06:42 +000048
Guido van Rossum43466ec1998-12-04 18:48:25 +000049DL_IMPORT(int) Py_AtExit Py_PROTO((void (*func) Py_PROTO((void))));
Guido van Rossumc6cf1dd1994-09-07 14:35:10 +000050
Guido van Rossum43466ec1998-12-04 18:48:25 +000051DL_IMPORT(void) Py_Exit Py_PROTO((int));
Guido van Rossuma3309961993-07-28 09:05:47 +000052
Guido van Rossum43466ec1998-12-04 18:48:25 +000053DL_IMPORT(int) Py_FdIsInteractive Py_PROTO((FILE *, char *));
Guido van Rossum5c4998b1997-02-14 19:51:34 +000054
Guido van Rossum57d8e3f1997-07-19 19:50:52 +000055/* In getpath.c */
Guido van Rossum43466ec1998-12-04 18:48:25 +000056DL_IMPORT(char *) Py_GetProgramFullPath Py_PROTO((void));
57DL_IMPORT(char *) Py_GetPrefix Py_PROTO((void));
58DL_IMPORT(char *) Py_GetExecPrefix Py_PROTO((void));
59DL_IMPORT(char *) Py_GetPath Py_PROTO((void));
Guido van Rossum57d8e3f1997-07-19 19:50:52 +000060
61/* In their own files */
Guido van Rossum43466ec1998-12-04 18:48:25 +000062DL_IMPORT(const char *) Py_GetVersion Py_PROTO((void));
63DL_IMPORT(const char *) Py_GetPlatform Py_PROTO((void));
64DL_IMPORT(const char *) Py_GetCopyright Py_PROTO((void));
65DL_IMPORT(const char *) Py_GetCompiler Py_PROTO((void));
66DL_IMPORT(const char *) Py_GetBuildInfo Py_PROTO((void));
Guido van Rossum57d8e3f1997-07-19 19:50:52 +000067
Guido van Rossum29e46a91997-08-02 02:56:48 +000068/* Internal -- various one-time initializations */
Barry Warsawc094ac82000-05-25 23:05:36 +000069DL_IMPORT(PyObject *) _PyBuiltin_Init Py_PROTO((void));
Guido van Rossum43466ec1998-12-04 18:48:25 +000070DL_IMPORT(PyObject *) _PySys_Init Py_PROTO((void));
71DL_IMPORT(void) _PyImport_Init Py_PROTO((void));
Barry Warsawc094ac82000-05-25 23:05:36 +000072DL_IMPORT(void) init_exceptions Py_PROTO((void));
Guido van Rossum29e46a91997-08-02 02:56:48 +000073
Guido van Rossum8e5e4461997-08-12 14:57:21 +000074/* Various internal finalizers */
Barry Warsawc094ac82000-05-25 23:05:36 +000075DL_IMPORT(void) fini_exceptions Py_PROTO((void));
Guido van Rossum5e3c6322000-06-26 14:37:53 +000076DL_IMPORT(void) _PyImport_Fini Py_PROTO((void));
Guido van Rossum43466ec1998-12-04 18:48:25 +000077DL_IMPORT(void) PyMethod_Fini Py_PROTO((void));
78DL_IMPORT(void) PyFrame_Fini Py_PROTO((void));
79DL_IMPORT(void) PyCFunction_Fini Py_PROTO((void));
80DL_IMPORT(void) PyTuple_Fini Py_PROTO((void));
81DL_IMPORT(void) PyString_Fini Py_PROTO((void));
82DL_IMPORT(void) PyInt_Fini Py_PROTO((void));
83DL_IMPORT(void) PyFloat_Fini Py_PROTO((void));
84DL_IMPORT(void) PyOS_FiniInterrupts Py_PROTO((void));
Guido van Rossum8e5e4461997-08-12 14:57:21 +000085
Guido van Rossum3fb1aea1997-08-12 15:14:22 +000086/* Stuff with no proper home (yet) */
Guido van Rossum43466ec1998-12-04 18:48:25 +000087DL_IMPORT(char *) PyOS_Readline Py_PROTO((char *));
Guido van Rossum3fb1aea1997-08-12 15:14:22 +000088extern DL_IMPORT(int) (*PyOS_InputHook) Py_PROTO((void));
89extern DL_IMPORT(char) *(*PyOS_ReadlineFunctionPointer) Py_PROTO((char *));
90
Guido van Rossuma3309961993-07-28 09:05:47 +000091#ifdef __cplusplus
92}
93#endif
94#endif /* !Py_PYTHONRUN_H */