fournit le code interne d'une fonction compilée en Scilab
p = macr2tree(fonction)
identifiant direct d'une fonction compilée écrite en Scilab (NON son nom sous forme texte)
Liste de type program avec les champs
p.name, p.nblines,
p.inputs, p.outputs, et
p.statements. Les 3 derniers sont des
listes imbriquées décrivant le code interne de la
fonction.
Cette primitive convertit une fonction compilée
de Scilab en un arbre (tlists imbriquées)
représentant le code interne de la fonction.
A utiliser avec tree2code().
prog = macr2tree(log2); // Noter que l'entrée est log2, non "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