=================================================================== RCS file: /home/cvs/OpenXM/src/ox_toolkit/README,v retrieving revision 1.7 retrieving revision 1.9 diff -u -p -r1.7 -r1.9 --- OpenXM/src/ox_toolkit/README 2000/01/14 10:23:34 1.7 +++ OpenXM/src/ox_toolkit/README 2000/01/20 17:18:55 1.9 @@ -1,6 +1,6 @@ # Author: 小原功任 @ 金沢大学理学部計算科学教室 # URI: http://omega.s.kanazawa-u.ac.jp/ohara/ -# $OpenXM: OpenXM/src/ox_toolkit/README,v 1.6 1999/12/22 11:29:15 ohara Exp $ +# $OpenXM: OpenXM/src/ox_toolkit/README,v 1.8 2000/01/19 18:31:33 ohara Exp $ /*&ja ox_toolkit ユーザガイド @@ -424,7 +424,7 @@ receive_ox_tag() reads a tag and a serial number of an */ /*&common -4.6 +4.6 Sending OX messages. */ /*&common @@ -434,7 +434,7 @@ void send_ox_command(int fd, int sm_command); */ /*&ja -ox メッセージを送信する。 +OX メッセージを送信する。 */ /*&ja @@ -442,31 +442,70 @@ ox メッセージを送信する。 5. OX expression パーサ */ +/*&en + +5. Parser for OX expressions + +*/ /*&ja -OpenXM C library には 文字列表現された -OX expression および CMO expression から、 -ox 構造体または cmo 構造体を生成するためのパーサが付属している。 +OpenXM C library には 文字列表現された OX expression および CMO +expression から、ox 構造体または cmo 構造体を生成するためのパーサが付 +属している。ここではこのパーサについて説明する。 +*/ +/*&en +We have a parser which generate an OX object or a CMO from a string +encoded OX/CMO expression. In this section, we explain the parser. +*/ +/*&en -ここではこのパーサについて説明する。 +5.1 Setting an option +*/ +/*&ja +5.1 オプション */ /*&common + int setflag_parse(int flag); */ /*&ja setflag_parse(PFLAG_ADDREV) によって、CMO の短縮表現を許す。 +*/ +/*&en +We set an option for the parser. If we call +setflag_parse(PFLAG_ADDREV), then the parser admits external +expressios. +*/ +/*&en +5.2 Initializing */ +/*&ja + +5.2 初期化 +*/ /*&common + int init_parser(char *str); */ /*&ja パーサが処理すべき文字列をセットする。 +*/ +/*&en +We give the parser an OX/CMO expression, that is, a Lisp style string. +*/ +/*&en +5.3 Getting an object */ +/*&ja + +5.3 結果を得る +*/ /*&common + cmo *parse(); */ @@ -474,6 +513,10 @@ cmo *parse(); Lisp 表現による OX expression, CMO expression の構文解析器。あらかじめ 設定された文字列を解析して ox 構造体、あるいは cmo 構造体を生成する。 */ +/*&en +The parser returns an OX/CMO object. If the given string is illegal, +then the parser returns NULL. +*/ /*&ja 7. 付属プログラムについて @@ -512,6 +555,7 @@ bconv A byte code encoder. It shows a byte stream which corresponds to an OX expression. +*/ /*&common ox_Xsample @@ -520,3 +564,29 @@ ox_Xsample GUI 表示する OpenXM サーバのサンプル。 */ +/*&ja +8. 付録 + +8.1 ox.c における関数の命名規則 + +(1) receive_cmo 関数はCMOタグとデータ本体を受信する. この関数は CMOタ +グの値が事前に分からないときに使用する. 返り値として、cmo へのポインタ +を返す. +(2) receive_cmo_X 関数は, CMOタグを親の関数で受信してから呼び出される +関数で、データ本体のみを受信し、cmo_X へのポインタを返す. しかも、関 +数内部で new_cmo_X 関数を呼び出す. +(3) send_cmo 関数はCMOタグとデータ本体を送信する. +(4) send_cmo_X 関数はCMOタグを親の関数で送信してから呼び出される関数で、 +データ本体のみを送信する. +(5) ただし receive_ox_tag を除いて, receive_ox_X 関数は作らない. +receive_cmo を利用する. +(6) send_ox_X 関数は OX タグを含めて送信する. +(7) ox_X 関数は一連の送受信を含むより抽象的な操作を表現する. ox_X 関 +数は、第一引数として、ox_file_t型の変数 sv をとる. +(8) Y_cmo 関数と Y_cmo_X 関数の関係は次の通り: +まず Y_cmo 関数で cmo のタグを処理し、タグを除いた残りの部分をY_cmo_X +関数が処理する. cmo の内部に cmo_Z へのポインタがあるときには、その種 +類によらずに Y_cmo 関数を呼び出す. + +*/ +