2. 超高水準層
この章の関数はあなたにファイルやバッファで与えられるPythonの
ソースコードを実行させてくれるが、
もっと詳細なやり方でインタープリタと対話させてくれないだろう。
これらの関数のいくつかは、パラメータとして文法からスタートシンボルを
受けとる。利用できるスタートシンボルは Py_eval_input,
Py_file_inputとPy_single_inputである。
これらはそれらをパラメータとして受けとる関数に続いて記述される。
- int PyRun_AnyFile (FILE *fp, char *filename)
-
もしpが対話的なデバイス(コンソール、端末の入力やUnixの仮想
端末)に関係したファイルを指していれば、
PyRun_InteractiveLoop()の値を返す。そうでなければ、
PyRun_SimpleFile()の結果を返す。もしfilenameが
NULLであれば、この関数はファイル名として
"???"を使う。
- 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)
-
globalsとlocalsの辞書によって指定される文脈で
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_inputと
Py_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()とともに使う。
これは対話的なインタープリタループのために使われるシンボルである。