Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - Русский

Please note that the recommended version of Scilab is 6.0.1. This page might be outdated.
However, this page did not exist in the previous stable version.

Scilab help >> Functions > macr2lst

macr2lst

リスト変換用の関数

呼び出し手順

[txt]=macr2lst(function-name)

説明

このプリミティブは,コンパイル済みのScilab関数 function-name を,関数の内部表現をコード化(逆ポーランド表記)したリストに変換します.

リストの最初のエントリは関数名,2番目および3番目のエントリは それぞれ左辺引数および右辺引数の変数名となります. それ以降のエントリは,基本的な演算子レコードもしくは if, for, ... のような制御構造の階層を含むリストのどちらかです.

基本的な演算子レコードは, 文字列ベクトルにより記述されます. その最初の要素はオペコードを表します.

オペコード 意味 パラメータ
"0" 無視されるオペコード なし
"1" 使用停止
"2" 変数または関数リファレンス 変数名, #rhs, #lhs
"3" スタック内に文字列を配置 文字列
"4" スタック内に空の行列を配置 なし
"5" 処理を適用 処理コード, #rhs,#lhs
"6" 数値をスタックに配置 数値
"12" 停止コマンド なし
"13" ブレークコマンド なし
"14" 中断コマンド なし
"15" 行終端記号 なし
"17" quit コマンド なし
"18" 名前のある変数 変数名
"19" 再帰的な添え字構造を作成 パスの長さ, 最終添え字の番号
"20" 関数コール 関数名, #rhs, #lhs
"23" 名前を指定して変数を作成 変数名
"24" 0型の変数をスタックに代入 なし
"25" プロファイル用レコード コール数, 消費時間
"26" 文字列ベクトルをスタック内に配置 #rows, #columns, 要素のシーケンス
"27" 組み込みリファレンスをスタックに配置 インターフェイス番号, インターフェイス内の位置, 関数名
"28" continue コマンド なし
"29" 代入 #lhs, 表示モード, (変数名, #rhs)*
"30" 論理値式 省略形 型, ジャンプの長さ
"31" コメント コメント
"99" return コマンド なし
> "100" 組み込みコール (古い) 100*fun, #rhs, #lhs, fin

fun2string 関数は, 初期コードを生成する際に使用できます.

//DISPLAY
function y=foo(x, flag)
  if flag then 
    y=sin(x)
  else
    y=cos(x)
  end
endfunction
L=macr2lst(foo)
fun2string(L)

参照

  • macrovar — 関数の変数
  • fun2string — Scilab関数のアスキー定義を生成する
  • macr2tree — ツリー変換用の関数
  • tree2code — Scilab関数のアスキー定義を生成する
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Oct 01 17:40:38 CEST 2012