version 1.4, 2000/01/24 02:48:24 |
version 1.8, 2000/09/08 20:01:38 |
|
|
|
%% $OpenXM$ |
//&jp \section{ OX スタックマシン } |
//&jp \section{ OX スタックマシン } |
//&eg \section{ OX stack machine } |
//&eg \section{ OX stack machine } |
\label{sec:stackmachine} |
\label{sec:stackmachine} |
Line 236 The server can avoid to send OX messages unknown to it |
|
Line 237 The server can avoid to send OX messages unknown to it |
|
*/ |
*/ |
@plugin/mathcap.h) |
@plugin/mathcap.h) |
|
|
|
Stack before the request: |
|
\begin{tabular}{|c|} \hline |
|
{\it Mathcap m} \\ |
|
\hline |
|
\end{tabular}\\ |
Request: |
Request: |
\begin{tabular}{|c|c|} \hline |
\begin{tabular}{|c|c|} \hline |
{\tt int32 OX\_DATA} & {\sl Mathcap} m \\ \hline |
{\tt int32 OX\_DATA} & {\sl Mathcap} m \\ \hline |
Line 348 It requests a server to pop an object from {\tt Operan |
|
Line 354 It requests a server to pop an object from {\tt Operan |
|
to convert it into a character string according to the output format |
to convert it into a character string according to the output format |
of the local system, and to send the character string via TCP/IP stream. |
of the local system, and to send the character string via TCP/IP stream. |
{\tt (char *)NULL} is returned when the stack is empty. |
{\tt (char *)NULL} is returned when the stack is empty. |
The returned strings is sent as a CMO string data. |
The returned string is sent as a CMO string data. |
{\tt CMO\_ERROR2} should be returned if an error has occurred. |
{\tt CMO\_ERROR2} should be returned if an error has occurred. |
*/ |
*/ |
|
|
Line 430 Stack after the request: |
|
Line 436 Stack after the request: |
|
\end{tabular} |
\end{tabular} |
|
|
Output: none. |
Output: none. |
|
|
|
\item |
|
\begin{verbatim} |
|
SM_pushCMOtag |
|
\end{verbatim} |
|
/*&jp |
|
スタックの先頭オブジェクトが CMO に変換された場合の CMO tag を |
|
{\tt CMO\_INT32} としてスタックへ push する. |
|
先頭オブジェクトはスタックに留まる. |
|
先頭オブジェクトをCMO へ変換する方法が無い場合は, エラー object を積む. |
|
*/ |
|
/*&eg |
|
It requests a server to push the CMO tag of the top object on the server |
|
stack. The tag is pushed as {\tt CMO\_INT32}. |
|
The top object remains on the stack. |
|
If there is no way to translate the object into CMO, |
|
push an error object. |
|
*/ |
|
|
|
Request: |
|
\begin{tabular}{|c|c|} \hline |
|
{\tt int32 OX\_COMMAND} & {\tt int32 SM\_pushCMOtag} \\ |
|
\hline |
|
\end{tabular} |
|
|
|
Stack after the request: |
|
\begin{tabular}{|c|c|c|} \hline |
|
{\tt int32 OX\_DATA} & {\sl CMO\_INT32} \ tag\\ |
|
\hline |
|
\end{tabular} |
|
|
|
Output: none. |
\end{enumerate} |
\end{enumerate} |
|
|
\medbreak |
\medbreak |
|
|
|
|
/*&jp |
/*&jp |
mathcap は 3つの要素をもつリストである. まづ, 最初の要素を見よう. |
mathcap は 3つの要素をもつリストである. まづ, 最初の要素を見よう. |
|
最初の数字は OpenXM プロトコルのバージョンである. |
|
現在では 1.1.3 等のバージョンが 001001003 と数字にエンコードされて |
|
ここに格納される. |
Ox\_system は openXM システム名である. 読み込むライブラリがちがって |
Ox\_system は openXM システム名である. 読み込むライブラリがちがって |
いて, 関数名(または シンボル)の意味がちがうときはこの名前もかえる. た |
いて, 関数名(または シンボル)の意味がちがうときはこの名前もかえる. た |
とえば, open math の basic content dictionary 対応の関数定義マクロを読 |
とえば, open math の basic content dictionary 対応の関数定義マクロを読 |
Line 466 Ox\_system は openXM システム名である. 読み込むライブ |
|
Line 507 Ox\_system は openXM システム名である. 読み込むライブ |
|
*/ |
*/ |
/*&eg |
/*&eg |
A mathcap has three components. The first one contains informations |
A mathcap has three components. The first one contains informations |
to identify the system and hosts on which the application runs. |
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. |
In the above example, {\tt Ox\_system} denotes the system name. |
{\tt HOSTTYPE} represents the OS type and taken from \verb+$HOSTTYPE+ |
{\tt HOSTTYPE} represents the OS type and taken from \verb+$HOSTTYPE+ |
enviroment variable. |
enviroment variable. |
The second component consists of avaiable SM commands. |
The second component consists of avaiable SM commands. |
The third component is a list of pairs. Each pair consists |
The third component is a list of pairs. Each pair consists |
of an OX message tag and the available message tags. |
of an OX message tag and the list of available message tags. |
Again in the above example, 514 is the value of {\tt OX\_DATA} |
Again in the above example, 514 is the value of {\tt OX\_DATA} |
and it indicates that the server accepts CMO (without size information) |
and it indicates that the server accepts CMO (without size information) |
as mathematical data messages. In this case the subsequent |
as mathematical data messages. In this case the subsequent |
Line 563 operand stack より, {\it n} 個の元 ({\it obj1, obj2, $ |
|
Line 605 operand stack より, {\it n} 個の元 ({\it obj1, obj2, $ |
|
*/ |
*/ |
/*&eg |
/*&eg |
It requests a server to pop {\it n} and to discard elements {\it obj1, obj2, |
It requests a server to pop {\it n} and to discard elements {\it obj1, obj2, |
$\ldots$, objn}) from the stack. |
$\ldots$, objn} from the stack. |
*/ |
*/ |
|
|
//&jp Stack before the request: \\ |
//&jp Stack before the request: \\ |
Line 629 OutputObj} をスタックへ戻す. 関数自体は正常終了なら 0 |
|
Line 671 OutputObj} をスタックへ戻す. 関数自体は正常終了なら 0 |
|
It requests a server to pop {\it name} and to evaluate a variable |
It requests a server to pop {\it name} and to evaluate a variable |
{\it name} in the current name space. The Output of the evaluation |
{\it name} in the current name space. The Output of the evaluation |
{\it OutputObj} is pushed to the stack. |
{\it OutputObj} is pushed to the stack. |
If an error has occurred {\tt CMO\_ERROR2} is pushed to the stack. |
If an error has occurred {\tt CMO\_ERROR2} is pushed onto the stack. |
*/ |
*/ |
|
|
//&jp Stack before the request: |
//&jp Stack before the request: |