Salome HOME
aa8019f40e87e3ba2058e241d8bc9fcbd8a7f7a0
[samples/datafiles.git] / Yacs / Schemas / forwhile1.xml
1 <!--
2   Copyright (C) 2006-2015  CEA/DEN, EDF R&D
3
4   This library is free software; you can redistribute it and/or
5   modify it under the terms of the GNU Lesser General Public
6   License as published by the Free Software Foundation; either
7   version 2.1 of the License, or (at your option) any later version.
8
9   This library is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12   Lesser General Public License for more details.
13
14   You should have received a copy of the GNU Lesser General Public
15   License along with this library; if not, write to the Free Software
16   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17
18   See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19
20 -->
21 <proc>
22     <!--a Python node in a while loop in a for loop (3 steps) in a bloc 
23         The while ends when p1 < 40
24         condition is not reinitialized so we get 2 steps in the while
25         and 2 more steps in the for loop
26     -->
27     <!--types -->
28     <!--nodes -->
29     <inline name="n" >
30         <script>
31             <code>nstep=3</code>
32         </script>
33         <outport name="nstep" type="int"/>
34     </inline>
35     <bloc name="b">
36       <forloop name="b1" >
37             <while name="l" >
38               <inline name="node2" >
39                 <function name="f">
40                   <code>a=0</code>
41                   <code>def f(p1):</code>
42                   <code>  global a</code>
43                   <code>  p1= p1+10.</code>
44                   <code>  print("a:",a)</code>
45                   <code>  a=a+p1</code>
46                   <code>  print("p1:",p1)</code>
47                   <code><![CDATA[  condition=(p1 < 40.)]]> </code>
48                   <code>  return p1,condition</code>
49                 </function>
50                 <inport name="p1" type="double"/>
51                 <outport name="p1" type="double"/>
52                 <outport name="condition" type="bool"/>
53               </inline>
54     <datalink> <fromnode>node2</fromnode><fromport>condition</fromport>
55               <tonode>b.b1.l</tonode> <toport>condition</toport> </datalink>
56     <datalink> <fromnode>node2</fromnode><fromport>p1</fromport>
57               <tonode>node2</tonode> <toport>p1</toport> </datalink>
58             </while>
59       </forloop>
60     </bloc>
61     <!--control links -->
62     <!--data links -->
63     <datalink> <fromnode>n</fromnode><fromport>nstep</fromport>
64                <tonode>b.b1</tonode> <toport>nsteps</toport> </datalink>
65     <!--parameters -->
66     <parameter>
67         <tonode>b.b1.l.node2</tonode> <toport>p1</toport>
68         <value><double>23</double> </value>
69     </parameter>
70     <parameter>
71         <tonode>b.b1.l</tonode> <toport>condition</toport>
72         <value><boolean>true</boolean></value>
73     </parameter>
74
75 </proc>