Обеспечивает внутренний код скомпилированного функции Scilab
p = macr2tree(function)
дескриптор сценария Scilab (НЕ его имя в виде строки)
Список типа program с полями
p.name, p.nblines,
p.inputs, p.outputs и
p.statements. Последние три являются вложенными списками,
описывающими внутренний код function.
Этот примитив преобразует компилированную функцию Scilab с именем
function_name в дерево (перекрываемые типизированные
списки), которое кодирует внутреннее представление функции.
Для использования совместно с tree2code().
prog = macr2tree(log2); // Заметьте, что на входе указано log2, а не "log2" typeof(prog) fieldnames(prog)' prog.name deftxt = tree2code(prog, %T); printf("%s\n", deftxt); | ![]() | ![]() |
--> typeof(prog)
ans =
program
--> fieldnames(prog)'
ans =
!name outputs inputs statements nblines !
--> prog.name
ans =
log2
--> deftxt = tree2code(prog, %T);
--> printf("%s\n", deftxt);
function [f,e] = log2(x)
[lhs,rhs] = argn(0)
if rhs<>1 then
msg = gettext("%s: Wrong number of input argument(s): %d expected.\n")
error(msprintf(msg, "log2", 1))
end
if argn(1)==1 then
f = log(x)/log(2)
else
[f,e] = frexp(x)
end
endfunction