=================================================================== RCS file: /home/cvs/OpenXM/doc/OpenXM-specs/stackmachine.tex,v retrieving revision 1.7 retrieving revision 1.12 diff -u -p -r1.7 -r1.12 --- OpenXM/doc/OpenXM-specs/stackmachine.tex 2000/09/08 20:00:46 1.7 +++ OpenXM/doc/OpenXM-specs/stackmachine.tex 2004/03/08 03:08:12 1.12 @@ -1,3 +1,4 @@ +%% $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} @@ -471,6 +472,9 @@ Output: none. \medbreak \noindent + +//&C \subsubsection{ MathCap } \label{subsubsection:mathcap} + /*&jp {\bf 例}: \ mathcap の問い合わせに対して, {\tt ox\_sm1} は次のように答える. @@ -490,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 対応の関数定義マクロを読 @@ -505,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. @@ -520,7 +523,52 @@ as mathematical data messages. In this case the subseq list represents available CMO tags. */ +/*&C +\noindent +OpenXM/XML expression of the example above: +\begin{verbatim} + + + + + 4 + 001001003 + Ox_system=ox_sm1.plain + Version=2.990911 + HOSTTYPE=i386 + + + + 11 + 262 + 263 + ... + + + + 2 + + 1 + 514 + + + 21 + 2130706434 + 1 + .... + + + + + +\end{verbatim} +*/ + \medbreak + +//&jp \subsubsection{ 例 } +//&eg \subsubsection{ Examples } + \noindent //&jp {\bf 例}: \ //&eg {\bf Example}: \ @@ -777,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}