=================================================================== RCS file: /home/cvs/OpenXM/doc/OpenXM-specs/stackmachine.tex,v retrieving revision 1.4 retrieving revision 1.10 diff -u -p -r1.4 -r1.10 --- OpenXM/doc/OpenXM-specs/stackmachine.tex 2000/01/24 02:48:24 1.4 +++ OpenXM/doc/OpenXM-specs/stackmachine.tex 2000/09/11 17:37:28 1.10 @@ -1,3 +1,4 @@ +%% $OpenXM: OpenXM/doc/OpenXM-specs/stackmachine.tex,v 1.9 2000/09/09 21:59:13 takayama Exp $ //&jp \section{ OX ¥¹¥¿¥Ã¥¯¥Þ¥·¥ó } //&eg \section{ OX stack machine } \label{sec:stackmachine} @@ -236,6 +237,11 @@ The server can avoid to send OX messages unknown to it */ @plugin/mathcap.h) +Stack before the request: +\begin{tabular}{|c|} \hline +{\it Mathcap m} \\ +\hline +\end{tabular}\\ Request: \begin{tabular}{|c|c|} \hline {\tt int32 OX\_DATA} & {\sl Mathcap} m \\ \hline @@ -348,7 +354,7 @@ of the local system, and to send the character string 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. {\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. */ @@ -430,10 +436,45 @@ Output: none. \end{tabular} 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} \medbreak \noindent + +//&C \subsubsection{ MathCap } \label{subsubsection:mathcap} + /*&jp {\bf Îã}: \ mathcap ¤ÎÌ䤤¹ç¤ï¤»¤ËÂФ·¤Æ, {\tt ox\_sm1} ¤Ï¼¡¤Î¤è¤¦¤ËÅú¤¨¤ë. @@ -454,6 +495,9 @@ mathcap ¤Ï 3¤Ä¤ÎÍ×ÁǤò¤â¤Ä¥ê¥¹¥È¤Ç¤¢¤ë. ¤Þ¤Å, ºÇ½é¤ÎÍ /*&jp mathcap ¤Ï 3¤Ä¤ÎÍ×ÁǤò¤â¤Ä¥ê¥¹¥È¤Ç¤¢¤ë. ¤Þ¤Å, ºÇ½é¤ÎÍ×ÁǤò¸«¤è¤¦. +ºÇ½é¤Î¿ô»ú¤Ï OpenXM ¥×¥í¥È¥³¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ë. +¸½ºß¤Ç¤Ï 1.1.3 Åù¤Î¥Ð¡¼¥¸¥ç¥ó¤¬ 001001003 ¤È¿ô»ú¤Ë¥¨¥ó¥³¡¼¥É¤µ¤ì¤Æ +¤³¤³¤Ë³ÊǼ¤µ¤ì¤ë. Ox\_system ¤Ï openXM ¥·¥¹¥Æ¥à̾¤Ç¤¢¤ë. ÆÉ¤ß¹þ¤à¥é¥¤¥Ö¥é¥ê¤¬¤Á¤¬¤Ã¤Æ ¤¤¤Æ, ´Ø¿ô̾(¤Þ¤¿¤Ï ¥·¥ó¥Ü¥ë)¤Î°ÕÌ£¤¬¤Á¤¬¤¦¤È¤­¤Ï¤³¤Î̾Á°¤â¤«¤¨¤ë. ¤¿ ¤È¤¨¤Ð, open math ¤Î basic content dictionary Âбþ¤Î´Ø¿ôÄêµÁ¥Þ¥¯¥í¤òÆÉ @@ -466,20 +510,66 @@ A mathcap has three components. The first one contains */ /*&eg 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. {\tt HOSTTYPE} represents the OS type and taken from \verb+$HOSTTYPE+ enviroment variable. The second component consists of avaiable SM commands. 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} and it indicates that the server accepts CMO (without size information) as mathematical data messages. In this case the subsequent 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}: \ @@ -563,7 +653,7 @@ It requests a server to pop {\it n} and to discard ele */ /*&eg 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: \\ @@ -629,7 +719,7 @@ It requests a server to pop {\it name} and to evaluate 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 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: