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.1. This page might be outdated.
However, this page did not exist in the previous stable version.

Scilab help >> Functions > macr2lst

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
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Oct 01 17:41:11 CEST 2012