- Справка Scilab
- Функции
- Встроенные и внешние
- Libraries
- profiling
- argn
- bytecode
- code2str
- comp
- deff
- edit
- exec
- execstr
- fun2string
- funcprot
- function
- функции
- getd
- head_comments
- listfunctions
- macr2lst
- macr2tree
- макрос
- macrovar
- mode
- перегрузка
- sciargs
- str2code
- tree2code
- varargin
- varargout
- bytecodewalk
- recompilefunction
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
преобразование функции в список
Последовательность вызова
lst = macr2lst(function_name)
Аргументы
- function_name
функция, которую требуется преобразовать.
- lst
список.
Описание
Этот примитив преобразует компилированную функцию Scilab
function_name
в список, который кодирует внутреннее
представление функции (обратная бесскобочная запись).
Первый элемент списка является именем функции, второй и третий являются, соответственно, именами выходных переменных и входных переменных. Следующие элементы являются или записями основных операций или списками, содержащими иерархические управляющие структуры, такие, как
if
, for
, ...
Записи основных операций описываются вектором символьных строк, чей первый элемент представляет собой код операции.
коды операций | значение | параметры |
"0" | игнорируемый код операции | ничего |
"1" | более не используется | |
"2" | ссылка на переменную или функцию | имя переменной, #rhs, #lhs |
"3" | положить строку в стек | строка |
"4" | положить пустую матрицу в стек | ничего |
"5" | применить операцию | код операции, #rhs,#lhs |
"6" | положить число в стек | число |
"12" | команда pause | ничего |
"13" | команда break | ничего |
"14" | команда abort | ничего |
"15" | конец метки строки | ничего |
"17" | команда quit | ничего |
"18" | именованная переменная | имя переменной |
"19" | создать рекурсивную структуру индексов | длина пути, количество конечных индексов |
"20" | вызов функции | имя функции, #rhs, #lhs |
"23" | создать переменную из имени | имя переменной |
"24" | положить переменную с типом 0 в стек | ничего |
"25" | запись профиля | количество вызовов, затраченное время |
"26" | положить вектор строк в стек | кол-во строк, кол-во столбцов, последовательность элементов |
"27" | положить встроенную ссылку в стек | номер интерфейса, положение в интерфейсе, имя функции |
"28" | команда continue | ничего |
"29" | присвоение | #lhs, режим отображения, (имя переменной, #rhs)* |
"30" | сокращённое вычисление логического выражения | тип, размер скачка |
"31" | комментарий | комментарий |
"99" | команда return | ничего |
> "100" | встроенный вызов (устарело) | 100*fun, #rhs, #lhs, fin |
Функция fun2string может быть использована для генерации исходного кода.
Примеры
// ОТОБРАЖЕНИЕ function y=foo(x, flag) if flag then y=sin(x) else y=cos(x) end endfunction L=macr2lst(foo) fun2string(L)
Смотрите также
- macrovar — переменные в функции
- fun2string — формирует ASCII-определение Scilab-функции
- macr2tree — преобразование функции в дерево
- tree2code — формирует ASCII-определение Scilab-функции
Report an issue | ||
<< listfunctions | Функции | macr2tree >> |