Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Português - 日本語 - Русский
Aide de Scilab >> 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

  • tree2code — generates the text definition of a Scilab function from its internal code
  • macrovar — variables d'une fonction
  • functions — procédures Scilab et objets Scilab
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Feb 12 19:15:45 CET 2018