リスト変換用の関数
lst = 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 関数は, 初期コードを生成する際に使用できます.