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 msymbol ( const char *  name)

シンボルを得る.

関数 msymbol()name という名前を持つ正規化されたシンボルを返す。そのようなシンボルが存在しない場合には、生成する。生成されたシンボルは管理キーではない。

空白文字二つで始まるシンボルは m17n ライブラリ用であり、内部的にのみ用いられる。

戻り値:
この関数は見つけたか生成したかしたシンボルを返す。
エラー:
この関数は決して失敗しない。
参照:
msymbol_as_managing_key(), msymbol_name(), msymbol_exist()

◆ msymbol_as_managing_key()

MSymbol msymbol_as_managing_key ( const char *  name)

管理キーを作る.

関数 msymbol_as_managing_key() は名前 name を持つ新しく作られた管理キーを返す。すでに名前 name を持つシンボルがあれば、 Mnil を返す。

空白文字二つで始まるシンボルは m17n ライブラリ用であり、内部的にのみ用いられる。

戻り値:
処理に成功すれば、この関数は生成したシンボルを返す。そうでなければ Mnil を返す。
エラー:
MERROR_SYMBOL
参照:
msymbol(), msymbol_exist()

◆ msymbol_is_managing_key()

int msymbol_is_managing_key ( MSymbol  symbol)

◆ msymbol_exist()

MSymbol msymbol_exist ( const char *  name)

指定された名前を持つシンボルを探す.

関数 msymbol_exist()name という名前を持つシンボルを探す。

戻り値:
もしそのようなシンボルが存在するならばそのシンボルを返す。そうでなければ、定義済みシンボル Mnil を返す。
エラー:
この関数は決して失敗しない。
参照:
msymbol_name(), msymbol()

◆ msymbol_name()

char * msymbol_name ( MSymbol  symbol)

シンボルの名前を得る.

関数 msymbol_name() は指定されたシンボル symbol の名前を含む文字列へのポインタを返す。

エラー:
この関数は決して失敗しない。
参照:
msymbol(), msymbol_exist()

◆ msymbol_put()

int msymbol_put ( MSymbol  symbol,
MSymbol  key,
void *  val 
)

シンボルプロパティに値を設定する.

関数 msymbol_put() は、シンボル symbol 中でキーが key であるシンボルプロパティの値を val に設定する。そのシンボルプロパティにすでに値があれば上書きする。 symbol, key とも Mnil であってはならない。

key が管理キーならば、val は管理下オブジェクトでなくてはならない。この場合、古い値の参照数は NULL でなければ 1 減らされ、val の参照数は 1 増やされる。

戻り値:
処理が成功すれば、msymbol_put() は 0 を返す。そうでなければ -1 を返し、外部変数 merror_code にエラーコードを設定する。
エラー:
MERROR_SYMBOL
参照:
msymbol_get()

◆ msymbol_get()

void * msymbol_get ( MSymbol  symbol,
MSymbol  key 
)

シンボルプロパティの値を得る.

関数 msymbol_get() は、シンボル symbol が持つシンボルプロパティのうち、キーが key であるものを探す。もし該当するシンボルプロパティが存在すれば、それの値を返す。そうでなければ NULL を返す。

戻り値:
エラーが検出された場合、msymbol_get() は NULL を返し、外部変数 merror_code にエラーコードを設定する。
エラー:
MERROR_SYMBOL
参照:
msymbol_put()

◆ msymbol_put_func()

int msymbol_put_func ( MSymbol  symbol,
MSymbol  key,
M17NFunc  func 
)

シンボルプロパティの値(関数ポインタ)を設定する.

関数 msymbol_put_func() は、関数 msymbol_put() と同様に、シンボル symbol のキーが key であるシンボルプロパティの値を設定する。但し その値は関数ポインタ func である。

参照:
msymbol_put(), M17N_FUNC()

◆ msymbol_get_func()

M17NFunc msymbol_get_func ( MSymbol  symbol,
MSymbol  key 
)

シンボルプロパティの値 (関数ポインタ) を得る.

関数 msymbol_get_func() は、関数 msymbol_get() と同様に、シンボル symbol が持つシンボルプロパティのうち、キーが key であるものを得る。但し その値は関数ポインタをである。

参照:
msymbol_get()

変数詳解

◆ Mnil

MSymbol Mnil

"nil" を名前として持つシンボル.

シンボル Mnil"nil" という名前を持ち、一般に「偽」または「否定」を意味する。 "int" に変換された場合、値は 0 である。 Mnil 自身はいかなるシンボルプロパティも持たない。

◆ Mt

MSymbol Mt

"t" を名前として持つシンボル.

シンボル Mt"t" という名前を持ち、一般に「真」または「肯定」を意味する。

◆ Mstring

MSymbol Mstring

"string" を名前として持つシンボル.

シンボル Mstring"string" という名前を持ち、関数 mchar_define_property() などの引数として用いられる。

◆ Msymbol

MSymbol Msymbol

"symbol" を名前として持つシンボル.

定義済みシンボル Msymbol"symbol" という名前を持ち、関数 mchar_define_property() などの引数として使われる。


m17n-lib Home