]> SALOME platform Git repositories - modules/yacs.git/blob - src/yacsloader/samples/forwhile1.xml
Salome HOME
a43fb1fece076497d4837f0ca6cb7cd835cc765f
[modules/yacs.git] / src / yacsloader / samples / forwhile1.xml
1 <proc>
2     <!--a Python node in a while loop in a for loop (3 steps) in a bloc 
3         The while ends when p1 < 40
4         condition is not reinitialized so we get 2 steps in the while
5         and 2 more steps in the for loop
6     -->
7     <!--types -->
8     <!--nodes -->
9     <inline name="n" >
10         <script>
11             <code>nstep=3</code>
12         </script>
13         <outport name="nstep" type="int"/>
14     </inline>
15     <bloc name="b">
16       <forloop name="b1" >
17             <while name="l" >
18               <inline name="node2" >
19                 <function name="f">
20                   <code>a=0</code>
21                   <code>def f(p1):</code>
22                   <code>  global a</code>
23                   <code>  p1= p1+10.</code>
24                   <code>  print "a:",a</code>
25                   <code>  a=a+p1</code>
26                   <code>  print "p1:",p1</code>
27                   <code><![CDATA[  condition=(p1 < 40.)]]> </code>
28                   <code>  return p1,condition</code>
29                 </function>
30                 <inport name="p1" type="double"/>
31                 <outport name="p1" type="double"/>
32                 <outport name="condition" type="bool"/>
33               </inline>
34     <datalink> <fromnode>node2</fromnode><fromport>condition</fromport>
35               <tonode>b.b1.l</tonode> <toport>condition</toport> </datalink>
36     <datalink> <fromnode>node2</fromnode><fromport>p1</fromport>
37               <tonode>node2</tonode> <toport>p1</toport> </datalink>
38             </while>
39       </forloop>
40     </bloc>
41     <!--control links -->
42     <!--data links -->
43     <datalink> <fromnode>n</fromnode><fromport>nstep</fromport>
44                <tonode>b.b1</tonode> <toport>nsteps</toport> </datalink>
45     <!--parameters -->
46     <parameter>
47         <tonode>b.b1.l.node2</tonode> <toport>p1</toport>
48         <value><double>23</double> </value>
49     </parameter>
50     <parameter>
51         <tonode>b.b1.l</tonode> <toport>condition</toport>
52         <value><boolean>true</boolean></value>
53     </parameter>
54
55 </proc>