- Scilab help
 - Functions
 - Built-in & external
 - Libraries
 - profiling
 - argn
 - comp
 - edit
 - funcprot
 - macr2lst
 - macr2tree
 - mode
 - sciargs
 - bytecode
 - bytecodewalk
 - code2str
 - deff
 - exec
 - execstr
 - fun2string
 - function
 - functions
 - getd
 - head_comments
 - listfunctions
 - macro
 - macrovar
 - overloading
 - recompilefunction
 - str2code
 - tree2code
 - varargin
 - varargout
 
Please note that the recommended version of Scilab is 2026.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 в список, который кодирует внутреннее
            представление функции (обратная бесскобочная запись).
Первый элемент списка является именем функции, второй и третий являются, соответственно, именами выходных переменных и входных переменных. Следующие элементы являются или записями основных операций или списками, содержащими иерархическими управляющими структурами, такими, как 
            if , for, ...
Записи основных операций описываются вектором символьных строк, чей первый элемент представляет собой код операции.
| коды операций | значение | параметры | 
| "0" | игнорируемый код операции | ничего | 
| "1" | более не используется | |
| "2" | ссылка на переменную или функцию | имя переменной, #rhs, #lhs | 
| "3" | положить строку в стек | строка | 
| "4" | положить пустую матрицу в стек | ничего | 
| "5" | применить операцию | код операции, #rhs,#lhs | 
| "6" | положить число в стек | число | 
| "12" | команда pause | ничего | 
| "13" | команда break | ничего | 
| "14" | команда abort | ничего | 
| "15" | конец метки строки | ничего | 
| "17" | команда quit | ничего | 
| "18" | поименованная переменная | имя переменной | 
| "19" | создать рекурсивную структуру индексов create recursive index structure | длина пути, количество конечных индексов path length, number of final indices | 
| "20" | вызов функции | имя функции, #rhs, #lhs | 
| "23" | создать переменную из имени | имя переменной | 
| "24" | положить переменную с типом 0 в стек | ничего | 
| "25" | запись профиля | количество вызовов, затраченное время | 
| "26" | положить вектор строк в стек | кол-во строк, кол-во столбцов, последовательность элементов | 
| "27" | положить встроенную ссылку в стек | номер интерфейса, положение в интерфейсе, имя функции | 
| "28" | команда continue | ничего | 
| "29" | присвоение | #lhs, режим отображения, (имя переменной, #rhs)* | 
| "30" | логическое выражение logical expression short circuit | type, jump size | 
| "31" | комментарий | комментарий | 
| "99" | команда return | ничего | 
| > "100" | встроенный вызов builtin call (устарело) | 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 — variables of function
 - fun2string — generates ascii definition of a scilab function
 - macr2tree — преобразование функции в дерево
 - tree2code — generates ascii definition of a Scilab function
 
| Report an issue | ||
| << funcprot | Functions | macr2tree >> |