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