2. 超高水準層

この章の関数はあなたにファイルやバッファで与えられるPythonの ソースコードを実行させてくれるが、 もっと詳細なやり方でインタープリタと対話させてくれないだろう。

これらの関数のいくつかは、パラメータとして文法からスタートシンボルを 受けとる。利用できるスタートシンボルは Py_eval_input, Py_file_inputPy_single_inputである。 これらはそれらをパラメータとして受けとる関数に続いて記述される。

int PyRun_AnyFile (FILE *fp, char *filename)
もしpが対話的なデバイス(コンソール、端末の入力やUnixの仮想 端末)に関係したファイルを指していれば、 PyRun_InteractiveLoop()の値を返す。そうでなければ、 PyRun_SimpleFile()の結果を返す。もしfilenameNULLであれば、この関数はファイル名として"???"を使う。

int PyRun_SimpleString (char *command)

__main__モジュールの中でcommandからPythonのソース コードを実行する。もし__main__がまだ存在しなければ それは作成される。成功のときは0を、もし例外が起こされたら -1を返す。もしエラーがあったなら、例外の情報を取得する 方法はない。

int PyRun_SimpleFile (FILE *fp, char *filename)
PyRun_SimpleString()に似ているが、Pythonのソースコードは メモリ中の文字列の代わりにfpから読まれる。 filenameはファイルの名前でなければならない。

int PyRun_InteractiveOne (FILE *fp, char *filename)

int PyRun_InteractiveLoop (FILE *fp, char *filename)

struct _node* PyParser_SimpleParseString (char *str, int start)
スタートトークンを使ってPythonのソースコードをstrから 解析する。効率よく評価できるコードオブジェクトを作成するために 結果を使うことができる。 もしコードの断片を何度も評価しなければならないのであれば、 これは有用である。

struct _node* PyParser_SimpleParseFile (FILE *fp, char *filename, int start)
PyParser_SimpleParseString()に似ているが、 Pythonのソースコードはメモリ中の文字列の代わりにfpから読まれる。 filenameはファイルの名前でなければならない。

PyObject* PyRun_String (char *str, int start, PyObject *globals, PyObject *locals)
globalslocalsの辞書によって指定される文脈で strからPythonのソースコードを実行する。パラメータstartは ソースコードを解析するために使われるべきスタートトークンを指定する。

コードの実行結果をPythonオブジェクトとして、もしくは 例外が起こされたらNULLを返す。

PyObject* PyRun_File (FILE *fp, char *filename, int start, PyObject *globals, PyObject *locals)
PyRun_String()に似ているが、 Pythonのソースコードはメモリ中の文字列の代わりにfpから読まれる。 filenameはファイルの名前でなければならない。

PyObject* Py_CompileString (char *str, char *filename, int start)
Return value: New reference.
strのPythonのソースコードを解析、コンパイルして、 結果のコードオブジェクトを返す。スタートトークンはstartに よって与えられる。これはコンパイルされ得るコードを制限するために 使うことができて、Py_eval_input, Py_file_inputPy_single_inputであるべきである。 filenameによって指定されるファイル名はコードオブジェクトを 構築するために使われ、トレースバックやSyntaxError例外の メッセージ中に現われるかもしれない。 これは、コードを解析もしくはコンパイルできなければNULLを返す。

int Py_eval_input
孤立した式を表わすPythonの文法からのスタートシンボル。 Py_CompileString()とともに使う。

int Py_file_input
ファイルや他のソースから読まれる一連の文を表わす Pythonの文法からのスタートシンボル。 Py_CompileString()とともに使う。 これは任意に長いPythonのソースコードをコンパイルするときに 使うためのシンボルである。

int Py_single_input
単独の文を表わすPythonの文法からのスタートシンボル。 Py_CompileString()とともに使う。 これは対話的なインタープリタループのために使われるシンボルである。