diff options
Diffstat (limited to 'C-IF')
-rw-r--r-- | C-IF | 204 |
1 files changed, 0 insertions, 204 deletions
@@ -1,204 +0,0 @@ -.\" C-IF - -*- Text -*- created at: Tue Oct 12 14:15:00 JST 1993 - -Ruby-C インターフェース - -型 - - VALUE - - Rubyオブジェクトを表現する型. 必要に応じてキャストして用いる. 組み - 込み型を表現するCの型はruby.hに記述してあるRで始まる構造体である. - VALUE型をこれらにキャストするためにRで始まる構造体名を全て大文字に - した名前のマクロが用意されている. - -変数・定数 - - Qnil - - 定数: nilオブジェクト - - Qself - - 変数: 現在のselfオブジェクトの値. 一般にメソッドにはselfを指す引数 - が与えられるので, この変数にアクセスする必要はない. この変数の値を - 変更する時は以後のselfの値そのものが変わってしまうので, 特別な事情 - がない限り代入してはならない. - - TRUE - - 定数: tオブジェクト(真のデフォルト値) - - FALSE - - 定数: nilオブジェクト - -クラス・モジュール定義 - - VALUE rb_define_class(char *name, VALUE super) - - superのサブクラスとして新しいRubyクラスを定義する. - - VALUE rb_define_module(char *name) - - 新しいRubyモジュールを定義する. - - void rb_include_module(VALUE class, VALUE module) - - モジュールをインクルードする. classがすでにmoduleをインクルードして - いる時には何もしない(多重インクルードの禁止). - -大域変数 - - void rb_define_variable(char *name, VALUE *var, - VALUE (*get_hook), VALUE (*set_hook)(), void *data) - - RubyとCとで共有するグローバル変数を定義する. get_hookがQnilでない時, - 変数参照の際にget_hookにセットされた関数が呼ばれる. set_hookがQnil - でない時には代入の時にset_hookが呼ばれる. hook関数には変数名を示す - ID,(set hookの場合新しい値も)とともにdataで与えたデータが引数とし - て渡される. - - 変数名が`$'で始まらない時には自動的に追加される. 変数名としてrubyの - 識別子として許されない文字(例えば` ')を含む場合にはrubyプログラムか - らアクセスできなくなる. - - void rb_global_variable(VALUE *var) - - GCのため,Rubyプログラムからはアクセスされないが, Rubyオブジェクト - を含む大域変数をマークする. - - void rb_read_only_hook() - - 読み出し専用の変数のためのset_hook関数. 値を設定しようとすると例外 - を発生させる. - -クラス定数 - - void rb_define_const(VALUE class, char *name, VALUE val) - - クラス定数を定義する. - -メソッド定義 - - rb_define_method(VALUE class, char *name, VALUE (*func)(), int argc) - - メソッドを定義する. argcはselfを除く引数の数. argcが-1の時, 関数に - は引数の数(selfを含まない)を第1引数, 引数の配列を第2引数とする形式 - で与えられる(第3引数はself). argcが-2の時, 引数はself, args(argsは - 引数を含むrubyの配列)という形式で与えられる. - - rb_define_single_method(VALUE class, char *name, VALUE (*func)(), int argc) - - 特異メソッドを定義する. 引数はrb_define_method()と同じ. - - rb_scan_args(int atgc, VALUE *argv, char *fmt, ...) - - argc,argv形式で与えられた引数を分解する. fmtは必須引数の数, 付加引 - 数の数, 残りの引数があるかを指定する文字列で, "数字数字*"という形式 - である. 2 番目の数字と"*"はそれぞれ省略可能である. 必須引数が一つ - もない場合は0を指定する.第3引数以降は変数へのポインタで, 該当する - 要素がその変数に格納される. 付加引数に対応する引数が与えられていな - い場合は変数にQnilが代入される. - -Rubyメソッド呼び出し - - VALUE rb_funcall(VALUE recv, ID mid, int narg, ...) - - メソッド呼び出し. 文字列からmidを得るためにはrb_intern()を使う. - - VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv) - - メソッド呼び出し. 引数をargc,argv形式で渡す. - - VALUE rb_eval_string(char *str) - - 文字列をrubyとスクリプトしてコンパイル・実行する. - - ID rb_intern(char *name) - - 文字列に対応するIDを返す. - - char *rb_id2name(ID id) - - IDに対応する文字列を返す(デバッグ用). - - char *rb_class2name(VALUE class) - - classの名前を返す(デバッグ用). classが名前を持たない時には, 一番近 - い名前を持つクラスの名前を返す. - -インスタンス変数 - - VALUE rb_iv_get(VALUE obj, char *name) - - objのインスタンス変数の値を得る. `@'で始まらないインスタンス変数は - Rubyプログラムからアクセスできない. - - VALUE rb_iv_set(VALUE obj, char *name, VALUE val) - - objのインスタンス変数をvalにセットする. - -制御構造 - - VALUE rb_iterate(VALUE (*func1)(), char *arg1, VALUE (*func2)(), char *arg2) - - func2をブロックとして設定し, func1をイテレータとして呼ぶ. func1に - は arg1が引数として渡され, func2には第1引数にイテレータから与えられ - た値, 第2引数にarg2が渡される. - - VALUE rb_yield(VALUE val) - - valを値としてイテレータブロックを呼び出す. - - VALUE rb_resque(VALUE (*func1)(), char *arg1, VALUE (*func2)(), char *arg2) - - 関数func1をarg1を引数に呼び出す. func1の実行中に例外が発生した時に - は func2をarg2を引数として呼ぶ. 戻り値は例外が発生しなかった時は - func1の戻り値, 例外が発生した時にはfunc2の戻り値である. - - VALUE rb_ensure(VALUE (*func1)(), char *arg1, VALUE (*func2)(), char *arg2) - - 関数func1をarg1を引数として実行し, 実行終了後(たとえ例外が発生して - も) func2をarg2を引数として実行する. 戻り値はfunc1の戻り値である(例 - 外が発生した時は戻らない). - -例外・エラー - - void Warning(char *fmt, ...) - - 標準エラー出力に警告情報を表示する. 引数はprintf()と同じ. - - void Fail(char *fmt, ...) - - 例外を発生させる. 引数はprintf()と同じ. - - void Fatal(char *fmt, ...) - - 致命的例外を発生させる. 通常の例外処理は行なわれず, インタープリタ - が終了する(ただしensureで指定されたコードは終了前に実行される). - - void Bug(char *fmt, ...) - - インタープリタなどプログラムのバグでしか発生するはずのない状況の時 - 呼ぶ. インタープリタはコアダンプし直ちに終了する. 例外処理は一切行 - なわれない. - -rubyの初期化・実行 - - void ruby_init(int argc, char **argv, char **envp) - - rubyインタプリタの初期化を行なう. - - void ruby_run() - - rubyインタプリタを実行する. - - void ruby_script(char *name) - - rubyのスクリプト名($0)を設定する. - -/* - * Local variables: - * fill-column: 70 - * end: - */ |