Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -

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

Справка Scilab >> Функции > macr2lst

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-функции
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Oct 02 14:01:18 CEST 2014