キーワード
- ALLOC (1)
-
ALLOCA
_ N (1) -
ALLOC
_ N (1) -
BUILTIN
_ TYPE (1) - CHR2FIX (1)
-
CLASS
_ OF (1) - CLONESETUP (1)
-
DATA
_ PTR (1) - DUPSETUP (1)
-
Data
_ Get _ Struct (1) -
Data
_ Make _ Struct (1) -
Data
_ Wrap _ Struct (1) - FIX2INT (1)
- FIX2LONG (1)
- FIX2UINT (1)
- FIX2ULONG (1)
- FIXABLE (1)
-
FIXNUM
_ MAX (1) -
FIXNUM
_ MIN (1) -
FIXNUM
_ P (1) -
FL
_ ABLE (1) -
FL
_ REVERSE (1) -
FL
_ SET (1) -
FL
_ TEST (1) -
FL
_ UNSET (1) - ID2SYM (1)
-
IMMEDIATE
_ P (1) - INT2FIX (1)
- INT2NUM (1)
- ISALNUM (1)
- ISALPHA (1)
- ISASCII (1)
- ISDIGIT (1)
- ISLOWER (1)
- ISPRINT (1)
- ISSPACE (1)
- ISUPPER (1)
- ISXDIGIT (1)
- LL2NUM (1)
- LONG2FIX (1)
- LONG2NUM (1)
- MEMCMP (1)
- MEMCPY (1)
- MEMMOVE (1)
- MEMZERO (1)
- NEGFIXABLE (1)
- NEWOBJ (1)
-
NIL
_ P (1) - NUM2CHR (1)
- NUM2DBL (1)
- NUM2INT (1)
- NUM2LONG (1)
- NUM2SHORT (1)
- NUM2UINT (1)
- NUM2ULONG (1)
- NUM2USHORT (1)
- OBJSETUP (1)
-
OBJ
_ FREEZE (1) -
OBJ
_ FROZEN (1) -
OBJ
_ INFECT (1) -
OBJ
_ TAINT (1) -
OBJ
_ TAINTED (1) - POSFIXABLE (1)
- RARRAY (1)
- RBASIC (1)
- RBIGNUM (1)
- RCLASS (1)
- RDATA (1)
-
REALLOC
_ N (1) - RFILE (1)
- RFLOAT (1)
- RHASH (1)
- RMODULE (1)
- ROBJECT (1)
- RREGEXP (1)
- RSTRING (1)
-
RSTRING
_ END (1) -
RSTRING
_ LEN (1) -
RSTRING
_ LENINT (1) -
RSTRING
_ PTR (1) - RSTRUCT (1)
- RTEST (1)
-
SPECIAL
_ CONST _ P (1) - STR2CSTR (1)
- SYM2ID (1)
-
SYMBOL
_ P (1) - StringValue (1)
- StringValuePtr (1)
- TYPE (1)
- UINT2NUM (1)
- ULL2NUM (1)
- ULONG2NUM (1)
- peek (1)
- tok (1)
- tokfix (1)
- toklast (1)
- toklen (1)
検索結果
先頭5件
-
VALUE CHR2FIX(char x) (4.0)
-
char 型の整数 x を Ruby の Fixnum に変換します。
char 型の整数 x を Ruby の Fixnum に変換します。 -
VALUE CLASS
_ OF(VALUE obj) (4.0) -
obj のクラスを返します。 この場合の「クラス」とは C レベルのクラス、 つまり RBasic 構造体の klass メンバの値です。 また、構造体を持たない Fixnum などに対しても正常に働きます。
obj のクラスを返します。
この場合の「クラス」とは C レベルのクラス、
つまり RBasic 構造体の klass メンバの値です。
また、構造体を持たない Fixnum などに対しても正常に働きます。 -
VALUE Data
_ Make _ Struct(VALUE klass , type , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , type *svar) (4.0) -
type 型の構造体をヒープに割り当ててそれへのポインタを svar に代入し、クラス klass のインスタンスである Ruby のオブジェクトを生成し、それを返します。mark free はそれぞれマーク用・解放用の関数へのポインタです。 どちらも、必要ないときはかわりに 0 を渡します。
type 型の構造体をヒープに割り当ててそれへのポインタを
svar に代入し、クラス klass のインスタンスである
Ruby のオブジェクトを生成し、それを返します。mark
free はそれぞれマーク用・解放用の関数へのポインタです。
どちらも、必要ないときはかわりに 0 を渡します。
また RUBY_DATA_FUNC の定義は以下のようです。
typedef void (*RUBY_DATA_FUNC)(void *st)
第一引数 st には svar の値が渡されます。
使用例
struct mytype {
int i;
... -
VALUE Data
_ Wrap _ Struct(VALUE klass , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , void *sval) (4.0) -
C の構造体 sval をラップして klass クラスの インスタンスである Ruby オブジェクトを生成し、それを返します。 mark、free はそれぞれ sval のマーク用・解放用の 関数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
C の構造体 sval をラップして klass クラスの
インスタンスである Ruby オブジェクトを生成し、それを返します。
mark、free はそれぞれ sval のマーク用・解放用の
関数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
また RUBY_DATA_FUNC の定義は以下のようです。
typedef void (*RUBY_DATA_FUNC)(void *st)
第一引数 st には sval が渡されます。
使用例
struct mytype {
int i;
char *s;
... -
VALUE ID2SYM(ID id) (4.0)
-
id を Symbol に変換します。
id を Symbol に変換します。 -
VALUE INT2FIX(int i) (4.0)
-
Fixnum におさまることが自明な整数を Fixnum に変換します。 なお、Fixnum の幅は long の幅 - 1 です。
Fixnum におさまることが自明な整数を Fixnum に変換します。
なお、Fixnum の幅は long の幅 - 1 です。 -
VALUE INT2NUM(int i) (4.0)
-
任意の整数を Fixnum か Bignum に変換します。
任意の整数を Fixnum か Bignum に変換します。
例:
VALUE num = INT2NUM(42); //(Cの整数値42をRubyのオブジェクトに変換) -
VALUE LL2NUM(long long v) (4.0)
-
例: long long n = 42; VALUE num = LL2NUM(n); // (long longの整数42をRubyのオブジェクトに変換)
例:
long long n = 42;
VALUE num = LL2NUM(n); // (long longの整数42をRubyのオブジェクトに変換) -
VALUE LONG2FIX(long i) (4.0)
-
INT2FIX と同じです。
INT2FIX と同じです。 -
VALUE LONG2NUM(long v) (4.0)
-
-
VALUE UINT2NUM(unsigned int i) (4.0)
-
任意の整数を Fixnum か Bignum に変換します。
任意の整数を Fixnum か Bignum に変換します。 -
VALUE ULL2NUM(unsigned long long n) (4.0)
-
-
VALUE ULONG2NUM(unsigned long n) (4.0)
-
-
char * STR2CSTR(VALUE str) (4.0)
-
Ruby のオブジェクト str から C の文字列を取り出します。 str が String でない場合は to_str によって変換を試みます。
Ruby のオブジェクト str から C の文字列を取り出します。
str が String でない場合は to_str によって変換を試みます。
返り値を free したり直接書き換えたりしてはいけません。
STR2CSTR は、与えられたオブジェクトが文字列でなく to_str メソッ
ドを持つ場合、内部で to_str を呼び出して暗黙の型変換を行い、
それが保持する文字列ポインタを返します。
しかし、このAPIでは暗黙の型変換結果となるオブジェクトがどこからも
保持されないため、注意して使用しないと結果が GC される可能性があります。
Ruby 1.7 以降では代わりに S... -
char * StringValuePtr(VALUE val) (4.0)
-
val が String でなければ to_str メソッドを使って String に変換し、 その実体のポインタを返します。
val が String でなければ to_str メソッドを使って String に変換し、
その実体のポインタを返します。
このマクロに渡した VALUE は ruby の GC から確実に保護されます。 -
char NUM2CHR(VALUE x) (4.0)
-
-
char* RSTRING
_ END(RString str) (4.0) -
引数 str の表す文字列のポインタの末尾を返します。
引数 str の表す文字列のポインタの末尾を返します。
@param str RString 構造体を指定します。
@see RSTRING_PTR -
char* RSTRING
_ PTR(RString str) (4.0) -
引数 str の表す文字列のポインタの先頭を返します。
引数 str の表す文字列のポインタの先頭を返します。
@param str RString 構造体を指定します。
@see RSTRING_END -
double NUM2DBL(VALUE x) (4.0)
-
-
int BUILTIN
_ TYPE(VALUE obj) (4.0) -
obj の構造体型 ID を返します。 SPECIAL_CONST_P(obj) が真のオブジェクトに対して使うと落ちます。
obj の構造体型 ID を返します。
SPECIAL_CONST_P(obj) が真のオブジェクトに対して使うと落ちます。 -
int FIX2INT(VALUE x) (4.0)
-
Fixnum を int に変換します。 返り値が int の範囲から外れる場合は RangeError が発生します。
Fixnum を int に変換します。
返り値が int の範囲から外れる場合は RangeError が発生します。 -
int FIXABLE(long f) (4.0)
-
f が Fixnum の範囲に収まっているなら真。
f が Fixnum の範囲に収まっているなら真。
@see FIXNUM_MIN, FIXNUM_MAX, FIXNUM_P,
POSFIXABLE, NEGFIXABLE -
int FIXNUM
_ P(VALUE obj) (4.0) -
obj が Fixnum のインスタンスのとき真。
obj が Fixnum のインスタンスのとき真。
@see FIXNUM_MIN, FIXNUM_MAX, FIXABLE,
POSFIXABLE, NEGFIXABLE -
int FL
_ ABLE(VALUE x) (4.0) -
x が即値の VALUE でなければ真。
x が即値の VALUE でなければ真。 -
int FL
_ TEST(VALUE x , int f) (4.0) -
x のフラグ f が立っていたら真。
x のフラグ f が立っていたら真。 -
int IMMEDIATE
_ P(VALUE obj) (4.0) -
obj が即値でかつ真な値であるとき真。 すなわち現在の実装では obj が Symbol か Fixnum のインスタンスであるか、 Qtrue のとき真。
obj が即値でかつ真な値であるとき真。
すなわち現在の実装では
obj が Symbol か Fixnum のインスタンスであるか、 Qtrue のとき真。 -
int ISALNUM(char c) (4.0)
-
-
int ISALPHA(char c) (4.0)
-
-
int ISASCII(char c) (4.0)
-
-
int ISDIGIT(char c) (4.0)
-
cが'0'から'9'のとき真。それ以外は偽。
cが'0'から'9'のとき真。それ以外は偽。 -
int ISLOWER(char c) (4.0)
-
-
int ISPRINT(char c) (4.0)
-
-
int ISSPACE(char c) (4.0)
-
-
int ISUPPER(char c) (4.0)
-
-
int ISXDIGIT(char c) (4.0)
-
cが’0’から’9’、’a’から’f’、’A’から’F’のとき真。それ以外は偽。
cが’0’から’9’、’a’から’f’、’A’から’F’のとき真。それ以外は偽。 -
int MEMCMP(p1
, p2 , type , n) (4.0) -
type 型のメモリ領域 p1 と p2 の先頭 n 個を比較する。 p1 が p2 の最初の n 個より小さい、等しい、大きいとき、そ れぞれ正、0、負の値を返す。
type 型のメモリ領域 p1 と p2 の先頭 n 個を比較する。
p1 が p2 の最初の n 個より小さい、等しい、大きいとき、そ
れぞれ正、0、負の値を返す。 -
int NEGFIXABLE(long f) (4.0)
-
f が Fixnum の下限値以上ならば真。
f が Fixnum の下限値以上ならば真。
@see FIXNUM_MIN, FIXNUM_MAX, FIXNUM_P,
FIXABLE, POSFIXABLE -
int NIL
_ P(VALUE obj) (4.0) -
obj が Qnil のとき真。
obj が Qnil のとき真。 -
int NUM2INT(VALUE x) (4.0)
-
x を int 型の整数に変換します。
x を int 型の整数に変換します。
x が Fixnum、Float、Bignum オブジェクトのいずれでもな
い場合は x.to_int による暗黙の型変換を試みます。
@raise TypeError x が nil の場合か、暗黙の型変換が成功しなかった場合に
発生します。
@raise RangeError x が int 型で表現できる値の範囲外であった場合に発生し
ます。 -
int OBJ
_ FROZEN(VALUE x) (4.0) -
-
int OBJ
_ TAINTED(VALUE x) (4.0) -
x に汚染マークが付いていたら真。
x に汚染マークが付いていたら真。 -
int POSFIXABLE(long f) (4.0)
-
f が Fixnum の上限値以下ならば真。
f が Fixnum の上限値以下ならば真。
@see FIXNUM_MIN, FIXNUM_MAX, FIXNUM_P,
FIXABLE, NEGFIXABLE -
int RSTRING
_ LENINT(RString str) (4.0) -
引数 str の表す文字列のバイト数をint型にキャストして返します。
引数 str の表す文字列のバイト数をint型にキャストして返します。
@param str RString 構造体を指定します。
@see RSTRING_LEN -
int RTEST(VALUE obj) (4.0)
-
obj が Qfalse でも Qnil でもないとき真。
obj が Qfalse でも Qnil でもないとき真。 -
int SPECIAL
_ CONST _ P(VALUE obj) (4.0) -
obj が実体の構造体を持たないとき真。 現時点で真になるのは Qnil, Qtrue, Qfalse と、 Fixnum, Symbol のインスタンス。
obj が実体の構造体を持たないとき真。
現時点で真になるのは Qnil, Qtrue, Qfalse と、
Fixnum, Symbol のインスタンス。 -
int SYM2ID(VALUE symbol) (4.0)
-
Symbol symbol を数値に変換します。 1.4では、FIX2INT(symbol)と同じです。
Symbol symbol を数値に変換します。
1.4では、FIX2INT(symbol)と同じです。 -
int SYMBOL
_ P(VALUE obj) (4.0) -
obj が Symbol のインスタンスのとき真。
obj が Symbol のインスタンスのとき真。 -
int TYPE(VALUE obj) (4.0)
-
obj の構造体型 ID を返します。
obj の構造体型 ID を返します。 -
long FIX2LONG(VALUE x) (4.0)
-
Fixnum を long に変換します。 Fixnum は常に long に収まります。
Fixnum を long に変換します。
Fixnum は常に long に収まります。 -
long FIXNUM
_ MAX (4.0) -
Fixnum にできる整数の上限値。
Fixnum にできる整数の上限値。
@see FIXNUM_MIN, FIXNUM_P, FIXABLE,
POSFIXABLE, NEGFIXABLE -
long FIXNUM
_ MIN (4.0) -
Fixnum にできる整数の下限値。
Fixnum にできる整数の下限値。
@see FIXNUM_MAX, FIXNUM_P, FIXABLE,
POSFIXABLE, NEGFIXABLE -
long NUM2LONG(VALUE x) (4.0)
-
x を long 型の整数に変換します。
x を long 型の整数に変換します。
x が Fixnum、Float、Bignum オブジェクトのいずれでもな
い場合は x.to_int による暗黙の型変換を試みます。
@raise TypeError x が nil の場合か、暗黙の型変換が成功しなかった場合に
発生します。
@raise RangeError x が long 型で表現できる値の範囲外であった場合に発生
します。 -
long RSTRING
_ LEN(RString str) (4.0) -
引数 str の表す文字列のバイト数を返します。
引数 str の表す文字列のバイト数を返します。
@param str RString 構造体を指定します。
@see RSTRING_LENINT -
short NUM2SHORT(VALUE x) (4.0)
-
x を short 型の整数に変換します。
x を short 型の整数に変換します。
x が Fixnum、Float、Bignum オブジェクトのいずれでもな
い場合は x.to_int による暗黙の型変換を試みます。
@raise TypeError x が nil の場合か、暗黙の型変換が成功しなかった場合に
発生します。
@raise RangeError x が short 型で表現できる値の範囲外であった場合に発生
します。 -
static char * tok(void) (4.0)
-
現在のトークンの先頭へのポインタ。 free してはならない。
現在のトークンの先頭へのポインタ。
free してはならない。 -
static char* toklast(void) (4.0)
-
現在のトークンの末尾へのポインタ。
現在のトークンの末尾へのポインタ。 -
static int peek(int c) (4.0)
-
現在読み込み中のプログラムの次の文字が c ならば真。
現在読み込み中のプログラムの次の文字が c ならば真。 -
static int toklen(void) (4.0)
-
現在のトークンの長さ。
現在のトークンの長さ。 -
static void tokfix(void) (4.0)
-
トークンバッファを NUL で終端します。
トークンバッファを NUL で終端します。 -
struct RArray * RARRAY(VALUE obj) (4.0)
-
obj を struct RArray* にキャストする。 本当は obj が struct RArray* でないとしてもキャストしてしまう。
obj を struct RArray* にキャストする。
本当は obj が struct RArray* でないとしてもキャストしてしまう。 -
struct RBasic * RBASIC(VALUE obj) (4.0)
-
-
struct RBignum * RBIGNUM(VALUE obj) (4.0)
-
-
struct RClass * RCLASS(VALUE obj) (4.0)
-
-
struct RClass * RMODULE(VALUE obj) (4.0)
-
-
struct RData * RDATA(VALUE obj) (4.0)
-
-
struct RFile * RFILE(VALUE obj) (4.0)
-
-
struct RFloat * RFLOAT(VALUE obj) (4.0)
-
-
struct RHash * RHASH(VALUE obj) (4.0)
-
-
struct RObject * ROBJECT(VALUE obj) (4.0)
-
-
struct RRegexp * RREGEXP(VALUE obj) (4.0)
-
-
struct RString * RSTRING(VALUE obj) (4.0)
-
引数 obj を RString 構造体にキャストして返します。
引数 obj を RString 構造体にキャストして返します。
@param obj Rubyの文字列オブジェクトを指定します。 -
struct RStruct * RSTRUCT(VALUE obj) (4.0)
-
-
type* ALLOC(type) (4.0)
-
type 型のメモリを割り当てる。
type 型のメモリを割り当てる。 -
type* ALLOCA
_ N(type , n) (4.0) -
type 型のメモリを n 個スタックフレームに割り当てる。 このメモリは関数が終わると自動的に解放される。
type 型のメモリを n 個スタックフレームに割り当てる。
このメモリは関数が終わると自動的に解放される。 -
type* ALLOC
_ N(type , n) (4.0) -
type 型のメモリを n 個割り当てる。
type 型のメモリを n 個割り当てる。 -
type* REALLOC
_ N(var , type , n) (4.0) -
type 型のメモリ領域 var のサイズを n 個に変更する。
type 型のメモリ領域 var のサイズを n 個に変更する。 -
unsigned int FIX2UINT(VALUE x) (4.0)
-
Fixnum を unsigned int に変換します。 返り値が unsigned int の範囲から外れる場合は RangeError が発生します。
Fixnum を unsigned int に変換します。
返り値が unsigned int の範囲から外れる場合は RangeError が発生します。 -
unsigned int NUM2UINT(VALUE x) (4.0)
-
x を unsigned int 型の整数に変換します。
x を unsigned int 型の整数に変換します。
x が Fixnum、Float、Bignum オブジェクトのいずれでもな
い場合は x.to_int による暗黙の型変換を試みます。
@raise TypeError x が nil の場合か、暗黙の型変換が成功しなかった場合に
発生します。
@raise RangeError x が unsigned int 型で表現できる値の範囲外であった場
合に発生します。 -
unsigned long FIX2ULONG(VALUE x) (4.0)
-
Fixnum を unsigned long に変換します。 Fixnum は常に unsigned long に収まります。
Fixnum を unsigned long に変換します。
Fixnum は常に unsigned long に収まります。 -
unsigned long NUM2ULONG(VALUE x) (4.0)
-
x を unsigned long 型の整数に変換します。
x を unsigned long 型の整数に変換します。
x が Fixnum、Float、Bignum オブジェクトのいずれでもな
い場合は x.to_int による暗黙の型変換を試みます。
@raise TypeError x が nil の場合か、暗黙の型変換が成功しなかった場合に
発生します。
@raise RangeError x が unsigned long 型で表現できる値の範囲外であった場
合に発生します。 -
unsigned short NUM2USHORT(VALUE x) (4.0)
-
x を unsigned short 型の整数に変換します。
x を unsigned short 型の整数に変換します。
x が Fixnum、Float、Bignum オブジェクトのいずれでもな
い場合は x.to_int による暗黙の型変換を試みます。
@raise TypeError x が nil の場合か、暗黙の型変換が成功しなかった場合に
発生します。
@raise RangeError x が unsigned short 型で表現できる値の範囲外であった
場合に発生します。 -
void * DATA
_ PTR(VALUE dta) (4.0) -
実際は struct RData* 型である dta から、 それがラップしているポインタを取り出します。
実際は struct RData* 型である dta から、
それがラップしているポインタを取り出します。 -
void CLONESETUP(VALUE clone
, VALUE obj) (4.0) -
OBJSETUP() の変種。 clone を、obj から clone で作った オブジェクトとして初期化します。
OBJSETUP() の変種。
clone を、obj から clone で作った
オブジェクトとして初期化します。 -
void DUPSETUP(dup
, obj) (4.0) -
OBJSETUP() の変種。 dup を、obj から dup で作った オブジェクトとして初期化します。
OBJSETUP() の変種。
dup を、obj から dup で作った
オブジェクトとして初期化します。 -
void Data
_ Get _ Struct(VALUE obj , type , type *svar) (4.0) -
Ruby のオブジェクト obj から type 型へのポインタを とりだし svar に代入します。
Ruby のオブジェクト obj から type 型へのポインタを
とりだし svar に代入します。
使用例
struct mytype {
int i;
char *s;
};
VALUE
my_i(VALUE self)
{
struct mytype *m;
Data_Get_Struct(self, struct mytype, m);
return INT2NUM(m->i);
} -
void FL
_ REVERSE(VALUE x , int f) (4.0) -
x のフラグ f を反転する。
x のフラグ f を反転する。 -
void FL
_ SET(VALUE x , int f) (4.0) -
x に対してフラグ f をセットする。
x に対してフラグ f をセットする。 -
void FL
_ UNSET(VALUE x , int f) (4.0) -
x のフラグ f をクリアする。
x のフラグ f をクリアする。 -
void MEMCPY(p1
, p2 , type , n) (4.0) -
type 型のメモリ領域 p2 のうち先頭の n 個を p1 にコピーする。
type 型のメモリ領域 p2 のうち先頭の n 個を p1 にコピーする。 -
void MEMMOVE(p1
, p2 , type , n) (4.0) -
type 型のメモリ領域 p2 のうち先頭の n 個を p1 に移動する。
type 型のメモリ領域 p2 のうち先頭の n 個を p1 に移動する。 -
void MEMZERO(p
, type , n) (4.0) -
type 型のメモリ領域 p をゼロクリアする。 n は要素数。
type 型のメモリ領域 p をゼロクリアする。 n は要素数。 -
void NEWOBJ(obj
, int typeflag) (4.0) -
-
void OBJSETUP(obj
, VALUE klass , int typeflag) (4.0) -
obj をクラス klass とフラグ typeflag で初期化する。
obj をクラス klass とフラグ typeflag で初期化する。 -
void OBJ
_ FREEZE(VALUE x) (4.0) -
-
void OBJ
_ INFECT(VALUE dest , VALUE src) (4.0) -
src に汚染マークが付いていたら dest も汚染する。
src に汚染マークが付いていたら dest も汚染する。 -
void OBJ
_ TAINT(VALUE x) (4.0) -
x に汚染マークを付ける。
x に汚染マークを付ける。 -
void StringValue(VALUE val) (4.0)
-
val が String でなければ to_str メソッドを使って String に変換します。
val が String でなければ to_str メソッドを使って String に変換します。
このマクロに渡した VALUE は ruby の GC から確実に保護されます。