m17n ライブラリ 1.8.4
|
シンボルオブジェクトとそれに関する API. [詳解]
関数 | |
MSymbol | msymbol (const char *name) |
シンボルを得る. | |
MSymbol | msymbol_as_managing_key (const char *name) |
管理キーを作る. | |
int | msymbol_is_managing_key (MSymbol symbol) |
MSymbol | msymbol_exist (const char *name) |
指定された名前を持つシンボルを探す. | |
char * | msymbol_name (MSymbol symbol) |
シンボルの名前を得る. | |
int | msymbol_put (MSymbol symbol, MSymbol key, void *val) |
シンボルプロパティに値を設定する. | |
void * | msymbol_get (MSymbol symbol, MSymbol key) |
シンボルプロパティの値を得る. | |
int | msymbol_put_func (MSymbol symbol, MSymbol key, M17NFunc func) |
シンボルプロパティの値(関数ポインタ)を設定する. | |
M17NFunc | msymbol_get_func (MSymbol symbol, MSymbol key) |
シンボルプロパティの値 (関数ポインタ) を得る. | |
変数 | |
MSymbol | Mnil |
"nil" を名前として持つシンボル. | |
MSymbol | Mt |
"t" を名前として持つシンボル. | |
MSymbol | Mstring |
"string" を名前として持つシンボル. | |
MSymbol | Msymbol |
"symbol" を名前として持つシンボル. | |
シンボルオブジェクトとそれに関する API.
m17n ライブラリは一意に決まる識別子として シンボル と呼ぶオブジェクトを用いる。シンボルは X ライブラリのアトムと似ているが、 0 個以上の シンボルプロパティ を持つことができる。シンボルプロパティは キー と 値 からなる。キーはそれ自体シンボルであり、値は (void *)
型にキャストできるものなら何でもよい。「シンボル S が持つシンボルプロパティのうちキーが K のもの」を簡単に「S の K プロパティ」と呼ぶことがある。
シンボルの用途は主に以下の3通りである。
管理キー と呼ばれる特別なシンボルがあり、管理キーをキーとして持つプロパティの値は 管理下オブジェクト でなくてはならない。詳細は 管理下オブジェクト 参照。
MSymbol msymbol | ( | const char * | name | ) |
シンボルを得る.
関数 msymbol() は name という名前を持つ正規化されたシンボルを返す。そのようなシンボルが存在しない場合には、生成する。生成されたシンボルは管理キーではない。
空白文字二つで始まるシンボルは m17n ライブラリ用であり、内部的にのみ用いられる。
MSymbol msymbol_as_managing_key | ( | const char * | name | ) |
管理キーを作る.
関数 msymbol_as_managing_key() は名前 name を持つ新しく作られた管理キーを返す。すでに名前 name を持つシンボルがあれば、 Mnil を返す。
空白文字二つで始まるシンボルは m17n ライブラリ用であり、内部的にのみ用いられる。
int msymbol_is_managing_key | ( | MSymbol | symbol | ) |
MSymbol msymbol_exist | ( | const char * | name | ) |
指定された名前を持つシンボルを探す.
関数 msymbol_exist() は name という名前を持つシンボルを探す。
char * msymbol_name | ( | MSymbol | symbol | ) |
int msymbol_put | ( | MSymbol | symbol, |
MSymbol | key, | ||
void * | val | ||
) |
シンボルプロパティに値を設定する.
関数 msymbol_put() は、シンボル symbol 中でキーが key であるシンボルプロパティの値を val に設定する。そのシンボルプロパティにすでに値があれば上書きする。 symbol, key とも Mnil であってはならない。
key が管理キーならば、val は管理下オブジェクトでなくてはならない。この場合、古い値の参照数は NULL
でなければ 1 減らされ、val の参照数は 1 増やされる。
MERROR_SYMBOL
void * msymbol_get | ( | MSymbol | symbol, |
MSymbol | key | ||
) |
シンボルプロパティの値を得る.
関数 msymbol_get() は、シンボル symbol が持つシンボルプロパティのうち、キーが key であるものを探す。もし該当するシンボルプロパティが存在すれば、それの値を返す。そうでなければ NULL
を返す。
NULL
を返し、外部変数 merror_code にエラーコードを設定する。MERROR_SYMBOL
int msymbol_put_func | ( | MSymbol | symbol, |
MSymbol | key, | ||
M17NFunc | func | ||
) |
シンボルプロパティの値(関数ポインタ)を設定する.
関数 msymbol_put_func() は、関数 msymbol_put() と同様に、シンボル symbol のキーが key であるシンボルプロパティの値を設定する。但し その値は関数ポインタ func である。
M17NFunc msymbol_get_func | ( | MSymbol | symbol, |
MSymbol | key | ||
) |
シンボルプロパティの値 (関数ポインタ) を得る.
関数 msymbol_get_func() は、関数 msymbol_get() と同様に、シンボル symbol が持つシンボルプロパティのうち、キーが key であるものを得る。但し その値は関数ポインタをである。
MSymbol Mnil |
MSymbol Mt |
"t" を名前として持つシンボル.
シンボル Mt は "t"
という名前を持ち、一般に「真」または「肯定」を意味する。
MSymbol Mstring |
"string" を名前として持つシンボル.
シンボル Mstring は "string"
という名前を持ち、関数 mchar_define_property() などの引数として用いられる。
MSymbol Msymbol |
"symbol" を名前として持つシンボル.
定義済みシンボル Msymbol は "symbol"
という名前を持ち、関数 mchar_define_property() などの引数として使われる。