summaryrefslogtreecommitdiff
path: root/C-IF
diff options
context:
space:
mode:
Diffstat (limited to 'C-IF')
-rw-r--r--C-IF204
1 files changed, 0 insertions, 204 deletions
diff --git a/C-IF b/C-IF
deleted file mode 100644
index 5c66a20ddc..0000000000
--- a/C-IF
+++ /dev/null
@@ -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:
- */