Main Page   Modules   Data Structures   Globals   Appendix  

シンボル
[コア API]

シンボルオブジェクトとそれに関する API. More...

Typedefs

typedef MSymbolStruct * MSymbol
 シンボルの型宣言.

Functions

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)
 シンボルプロパティの値を得る.

Variables

MSymbol Mnil
 "nil" を名前として持つシンボル.
MSymbol Mt
 "t" を名前として持つシンボル.
MSymbol Mstring
 "string" を名前として持つシンボル.
MSymbol Msymbol
 "symbol" を名前として持つシンボル.

Detailed Description

m17n ライブラリは一意に決まる識別子として シンボル と呼ぶオブジェクトを用いる。シンボルは X ライブラリのアトムと似ているが、 0 個以上の シンボルプロパティ を持つことができる。シンボルプロパティは キー からなる。キーはそれ自体シンボルであり、値は (void *) 型にキャストできるものなら何でもよい。「シンボル S が持つシンボルプロパティのうちキーが K のもの」を簡単に「S の K プロパティ」と呼ぶことがある。

シンボルの用途は主に以下の3通りである。

管理キー と呼ばれる特別なシンボルがあり、管理キーをキーとして持つプロパティの値は 管理下オブジェクト でなくてはならない。詳細は 管理下オブジェクト 参照。

Typedef Documentation

typedef struct MSymbolStruct* MSymbol
 

MSymbolシンボル (symbol) オブジェクトの型である。 内部構造はアプリケーションプログラムからは見えない。


Function Documentation

MSymbol msymbol const char *  name  ) 
 

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

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

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

参照:
msymbol_as_managing_key(), msymbol_name(), msymbol_exist()

MSymbol msymbol_as_managing_key const char *  name  ) 
 

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

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

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

int msymbol_is_managing_key MSymbol  symbol  ) 
 

MSymbol msymbol_exist const char *  name  ) 
 

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

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

char* msymbol_name MSymbol  symbol  ) 
 

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

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

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()

void* msymbol_get MSymbol  symbol,
MSymbol  key
 

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

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


Variable Documentation

MSymbol Mnil
 

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

MSymbol Mt
 

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

MSymbol Mstring
 

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

MSymbol Msymbol
 

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


このページの先頭

Main Page   Modules   Data Structures   Globals   Appendix  

mulemark mule-aist@m17n.org