Scilab 5.4.0
- Scilab help
- Functions
- Built-in & external
- Libraries
- profiling
- argn
- bytecode
- bytecodewalk
- comp
- deff
- edit
- exec
- execstr
- fun2string
- funcprot
- function
- functions
- getd
- head_comments
- listfunctions
- macr2lst
- macr2tree
- macro
- macrovar
- mode
- overloading
- recompilefunction
- sciargs
- tree2code
- varargin
- varargout
- code2str
- str2code
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
However, this page did not exist in the previous stable version.
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関数のアスキー定義を生成する
Report an issue | ||
<< listfunctions | Functions | macr2tree >> |