summaryrefslogtreecommitdiff
path: root/C-IF
diff options
context:
space:
mode:
Diffstat (limited to 'C-IF')
-rw-r--r--C-IF63
1 files changed, 49 insertions, 14 deletions
diff --git a/C-IF b/C-IF
index de50de0..98d4592 100644
--- a/C-IF
+++ b/C-IF
@@ -21,8 +21,19 @@ Ruby-C インターフェース
変数: 現在のselfオブジェクトの値. 一般にメソッドにはselfを指す引数
が与えられるので, この変数にアクセスする必要はない. この変数の値を
- 変更する時は以後のselfの値そのものが変わってしまうので, 慎重に行な
- うこと.
+ 変更する時は以後のselfの値そのものが変わってしまうので, 特別な事情
+ がない限り代入してはならない.
+
+ 注意: ヘッダファイル"env.h"をインクルードしていないファイルでは,
+ Qselfは定数であり, 代入は文法エラーとなる.
+
+ TRUE
+
+ 定数: tオブジェクト(真のデフォルト値)
+
+ FALSE
+
+ 定数: nilオブジェクト
クラス・モジュール定義
@@ -54,8 +65,8 @@ Ruby-C インターフェース
void rb_global_variable(VALUE *var)
- GCにRubyからはアクセスされないが, Rubyオブジェクトを含む大域変数を
- マークする.
+ GCのためRubyからはアクセスされないが, Rubyオブジェクトを含む大域変
+ 数をマークする.
void rb_read_only_hook()
@@ -72,9 +83,10 @@ Ruby-C インターフェース
rb_define_method(VALUE class, char *name, VALUE (*func)(), int argc)
- メソッドを定義する. argcはselfを除く引数の数. argcが-1の時, 引数は
- argc, argv形式で与えられる. argcが-2の時, 引数はself, args(argsは
- 引数を含むrubyの配列)という形式で与えられる.
+ メソッドを定義する. argcはselfを除く引数の数. argcが-1の時, 関数に
+ は引数の数(selfを含まない)を第1引数, 引数の配列を第2引数とする形式
+ で与えられる. argcが-2の時, 引数はself, args(argsは引数を含むrubyの
+ 配列)という形式で与えられる.
rb_define_single_method(VALUE class, char *name, VALUE (*func)(), int argc)
@@ -83,10 +95,10 @@ Ruby-C インターフェース
rb_scan_args(VALUE args, char *fmt, ...)
args形式で与えられた引数を分解する. fmtは必須引数の数, 付加引数の数,
- 残りの引数があるかを指定する文字列で, "数字数字*"という形式である.
- 2 番目の数字と"*"は省略可能である. 第3引数以降は変数へのポインタで,
- 該当する要素がその変数に格納される. 付加引数が与えられない場合は変
- 数に Qnilが代入される.
+ 残りの引数があるかを指定する文字列で, "数字数字*"という形式である.
+ 2 番目の数字と"*"はそれぞれ省略可能である. 第3引数以降は変数へのポ
+ インタで, 該当する要素がその変数に格納される. 付加引数に対応する引
+ 数が与えられていない場合は変数にQnilが代入される.
Rubyメソッド呼び出し
@@ -109,6 +121,11 @@ Rubyメソッド呼び出し
IDに対応する文字列を返す(デバッグ用).
+ char *rb_class2name(VALUE class)
+
+ classの名前を返す(デバッグ用). classが名前を持たない時には, 一番近
+ い名前を持つクラスの名前を返す.
+
インスタンス変数
VALUE rb_iv_get(VALUE obj, char *name)
@@ -125,8 +142,8 @@ Rubyメソッド呼び出し
VALUE rb_iterate(VALUE (*func1)(), char *arg1, VALUE (*func2)(), char *arg2)
func2をブロックとして設定し, func1をイテレータとして呼ぶ. func1に
- は arg1が引数として渡され, func2には第1引数にイテレータとして与えら
- れた値, 第2引数にarg2が渡される.
+ は arg1が引数として渡され, func2には第1引数にイテレータから与えられ
+ た値, 第2引数にarg2が渡される.
VALUE rb_yield(VALUE val)
@@ -142,10 +159,14 @@ Rubyメソッド呼び出し
関数func1をarg1を引数として実行し, 実行終了後(たとえ例外が発生して
も) func2をarg2を引数として実行する. 戻り値はfunc1の戻り値である(例
- 外が発生した時はnil).
+ 外が発生した時は戻らない).
例外・エラー
+ void Warning(char *fmt, ...)
+
+ 標準エラー出力に警告情報を表示する. 引数はprintf()と同じ.
+
void Fail(char *fmt, ...)
例外を発生させる. 引数はprintf()と同じ.
@@ -161,6 +182,20 @@ Rubyメソッド呼び出し
呼ぶ. インタープリタはコアダンプし直ちに終了する. 例外処理は一切行
なわれない.
+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