Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
5.3.0 - 日本語

Change language to:
English - Français - Português

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

Scilab manual >> Scilab > 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)
<< lasterror Scilab macr2tree >>

Copyright (c) 2022-2023 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Jan 26 16:25:00 CET 2011