Go to the first, previous, next, last section, table of contents.

## スタックマシンコマンド

スタックマシンコマンドは, スタックマシンである server に何らかの操作を行 わせるために用意されている. いくつかのコマンドは, よく用いられる形で, 他 のコマンド, データとともに, Asir の組み込み関数により送られるが, ユー ザが明示的にあるコマンドを送る必要がしばしば生ずる. スタックマシンコマン ドは 32 bit 以下の整数であり, `ox_push_cmd()` コマンドで送信できる. 以下で, 代表的なスタックマシンコマンドについて解説する. SM_xxx=yyy で, SM_xxx が mnemonic, yyy が値である.

以下で, スタックからデータを取り出すとは, スタックの一番上からデータを 取り除くことを言う.

SM_popSerializedLocalObject=258
  server が ``ox_asir'` の場合に, 必ずしも CMO で定義されていない オブジェクトをスタックから取り出し, 通信路に流す.
SM_popCMO=262
  CMO オブジェクトをスタックから取り出し, 通信路に流す.
SM_popString=263
  スタックからデータを取り出し, 可読形式の文字列に変換して通信路に流す.
SM_mathcap=264
  server の mathcap をスタックに積む.
SM_pops=265
  スタックから取り出したデータを個数として, その個数分スタックから データを取り除く.
SM_setName=266
  スタックからデータを変数名として取り出し, 次に取り出したデータをその 変数に割り当てる. この割り当ては, server 固有の処理として行われる.
SM_evalName=267
  スタックから取り出したデータを変数名として, その値をスタックに載せる.
SM_executeStringByLocalParser=268
  スタックから取り出したデータを, server 固有の parser, evaluator で 処理し, 結果をスタックに載せる.
SM_executeFunction=269
  スタックから, 関数名, 引数の個数, 個数分の引数を取り出し, 関数を呼び出し 結果をスタックに載せる.
SM_beginBlock=270
  データブロックのはじまり.
SM_endBlock=271
  データブロックの終り.
SM_shutdown=272
  server との交信を切断し, server を終了させる.
SM_setMathcap=273
  スタックのデータを client の mathcap として, server に登録を要求する.
SM_getsp=275
  現在スタックに積まれているデータの数をスタックに載せる.
SM_dupErrors=276
  現在スタックに積まれているオブジェクトの内, エラーオブジェクトのみ をリストにして, スタックに載せる.
SM_nop=300
  なにもしない.

Go to the first, previous, next, last section, table of contents.