=================================================================== RCS file: /home/cvs/OpenXM/doc/OpenXM-specs/stackmachine.tex,v retrieving revision 1.10 retrieving revision 1.12 diff -u -p -r1.10 -r1.12 --- OpenXM/doc/OpenXM-specs/stackmachine.tex 2000/09/11 17:37:28 1.10 +++ OpenXM/doc/OpenXM-specs/stackmachine.tex 2004/03/08 03:08:12 1.12 @@ -1,4 +1,4 @@ -%% $OpenXM: OpenXM/doc/OpenXM-specs/stackmachine.tex,v 1.9 2000/09/09 21:59:13 takayama Exp $ +%% $OpenXM: OpenXM/doc/OpenXM-specs/stackmachine.tex,v 1.11 2003/08/23 08:42:35 takayama Exp $ //&jp \section{ OX スタックマシン } //&eg \section{ OX stack machine } \label{sec:stackmachine} @@ -494,10 +494,8 @@ Class.mathcap \end{verbatim} /*&jp -mathcap は 3つの要素をもつリストである. まづ, 最初の要素を見よう. -最初の数字は OpenXM プロトコルのバージョンである. -現在では 1.1.3 等のバージョンが 001001003 と数字にエンコードされて -ここに格納される. +mathcap は 3つの要素をもつリストである. まづ, 最初の要素(これもリスト)を見よう. +リストの先頭の数字は OpenXM プロトコルのバージョンである. Ox\_system は openXM システム名である. 読み込むライブラリがちがって いて, 関数名(または シンボル)の意味がちがうときはこの名前もかえる. た とえば, open math の basic content dictionary 対応の関数定義マクロを読 @@ -509,7 +507,8 @@ Ox\_system は openXM システム名である. 読み込むライブ タのフォマットは(サイズ情報なしの) CMO であることを示す. */ /*&eg -A mathcap has three components. The first one contains informations +A mathcap has three components. The first one, which is also a list, +contains informations to identify the version number of the OpenXM protocol, the system and hosts on which the application runs. In the above example, {\tt Ox\_system} denotes the system name. @@ -826,6 +825,52 @@ Output: {\tt int32 OX\_DATA} & {\it Serialized CMO} \\ \hline \end{tabular} + + +\item +\begin{verbatim} +SM_executeFunctionWithOptionalArgument +\end{verbatim} +/*&jp +スタックより {\it n} 個のデータおよび一つの optional 引数 {\it opt} を pop して, +サーバのローカル関数{\it s} を実行する. エラーのときのみ {\tt CMO\_ERROR2} を stack へ push す +る. +{\it opt} はキーワードと値のリストのリストである. キーワードは文字列型である. +*/ +/*&eg +It requests a server to pop {\it s} as a function name, +to pop an optional argument {\it opt}, +to pop {\it n} as the number of arguments and to execute +a local function {\it s} with {\it n} arguments popped from +the stack. +If an error has occurred {\tt CMO\_ERROR2} is pushed to the stack. +{\it opt} is a list of lists of a keyword and a value. +Keywords are strings. +*/ + +//&jp Stack before the request: \\ +//&eg Stack before the request: \\ +\begin{tabular}{|c|c|c|c|c|c|} \hline +{\it objn} & $\cdots$ & {\it obj1} & {\it INT32 n} & {\it Obj opt} & {\it String s} \\ +\hline +\end{tabular} + +Request: +\begin{tabular}{|c|c|} \hline +{\tt int32 OX\_COMMAND} & {\tt int32 SM\_executeFunctionWithOptionalArgument} \\ +\hline +\end{tabular} + +//&jp Stack after the request: 関数実行の結果. +//&eg Stack after the request: The Output of the execution. + +Output: none. + +\noindent +Example of {\it opt} : \verb@ (("p", 13),("vars",("x","y")))@ + +\noindent +[Added in 2004-3-8] \end{enumerate}