* Bug 15380 fixed: argn() page was unclear & uncomplete
[scilab.git] / scilab / modules / functions / help / fr_FR / macr2tree.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="macr2tree">
3     <refnamediv>
4         <refname>macr2tree</refname>
5         <refpurpose>fournit le code interne d'une fonction compilée en Scilab</refpurpose>
6     </refnamediv>
7     <refsynopsisdiv>
8         <title>Séquence d'appel</title>
9         <synopsis>p = macr2tree(fonction)</synopsis>
10     </refsynopsisdiv>
11     <refsection>
12         <title>Paramètres</title>
13         <variablelist>
14             <varlistentry>
15                 <term>fonction</term>
16                 <listitem>
17                     <para>identifiant direct d'une fonction compilée écrite en
18                     Scilab (NON son nom sous forme texte)</para>
19                 </listitem>
20             </varlistentry>
21             <varlistentry>
22                 <term>p</term>
23                 <listitem>
24                     <para>Liste de type <literal>program</literal> avec les champs
25                     <literal>p.name</literal>, <literal>p.nblines</literal>,
26                     <literal>p.inputs</literal>, <literal>p.outputs</literal>, et
27                     <literal>p.statements</literal>. Les 3 derniers sont des
28                     listes imbriquées décrivant le code interne de la
29                     <literal>fonction</literal>.
30                     </para>
31                 </listitem>
32             </varlistentry>
33         </variablelist>
34     </refsection>
35     <refsection>
36         <title>Description</title>
37         <para>
38             Cette primitive convertit une <literal>fonction</literal> compilée
39             de Scilab en un arbre (tlists imbriquées)
40             représentant le code interne de la fonction.
41             A utiliser avec <literal>tree2code()</literal>.
42         </para>
43     </refsection>
44     <refsection>
45         <title>Exemples</title>
46         <programlisting role="example"><![CDATA[
47 prog = macr2tree(log2);   // Noter que l'entrée est log2, non "log2"
48 typeof(prog)
49 fieldnames(prog)'
50 prog.name
51 deftxt = tree2code(prog, %T);
52 printf("%s\n", deftxt);
53  ]]></programlisting>
54     <screen><![CDATA[--> typeof(prog)
55  ans  =
56  program
57
58 --> fieldnames(prog)'
59  ans  =
60 !name  outputs  inputs  statements  nblines  !
61
62 --> prog.name
63  ans  =
64  log2
65
66 --> deftxt = tree2code(prog, %T);
67
68 --> printf("%s\n", deftxt);
69 function [f,e] = log2(x)
70   [lhs,rhs] = argn(0)
71   if rhs&lt;>1 then
72     msg = gettext("%s: Wrong number of input argument(s): %d expected.\n")
73     error(msprintf(msg, "log2", 1))
74   end
75   if argn(1)==1 then
76     f = log(x)/log(2)
77   else
78     [f,e] = frexp(x)
79   end
80 endfunction
81 ]]></screen>
82     </refsection>
83     <refsection role="see also">
84         <title>Voir aussi</title>
85         <simplelist type="inline">
86             <member>
87                 <link linkend="tree2code">tree2code</link>
88             </member>
89             <member>
90                 <link linkend="macrovar">macrovar</link>
91             </member>
92             <member>
93                 <link linkend="functions">functions</link>
94             </member>
95         </simplelist>
96     </refsection>
97 </refentry>