<< getd Fonctions avancées macro >>

Scilab Help >> Fonctions avancées > macr2tree

macr2tree

fournit le code interne d'une fonction compilée en Scilab

Séquence d'appel

p = macr2tree(fonction)

Paramètres

fonction

identifiant direct d'une fonction compilée écrite en Scilab (NON son nom sous forme texte)

p

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.

Description

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().

Exemples

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

Voir aussi


Report an issue
<< getd Fonctions avancées macro >>