Salome HOME
Execution Control and Loops
authorrahuel <rahuel@opencascade.com>
Fri, 17 Dec 2004 15:34:44 +0000 (15:34 +0000)
committerrahuel <rahuel@opencascade.com>
Fri, 17 Dec 2004 15:34:44 +0000 (15:34 +0000)
33 files changed:
examples/GraphBadInputInLoop.py [new file with mode: 0755]
examples/GraphBadInputInLoop.xml [new file with mode: 0755]
examples/GraphBadInputInLoop1.py [new file with mode: 0755]
examples/GraphBadInputInLoop1.xml [new file with mode: 0755]
examples/GraphBadInputInLoop2.py [new file with mode: 0755]
examples/GraphBadInputInLoop2.xml [new file with mode: 0755]
examples/GraphBadInputInLoop3.py [new file with mode: 0755]
examples/GraphBadInputInLoop3.xml [new file with mode: 0755]
examples/GraphBadOutputOfLoop.py [new file with mode: 0755]
examples/GraphBadOutputOfLoop.xml [new file with mode: 0755]
examples/GraphBadOutputOfLoop1.py [new file with mode: 0755]
examples/GraphBadOutputOfLoop1.xml [new file with mode: 0755]
examples/GraphBadOutputOfLoop2.py [new file with mode: 0755]
examples/GraphBadOutputOfLoop2.xml [new file with mode: 0755]
examples/GraphGOTO.py
examples/GraphGOTO.xml
examples/GraphLoop.py
examples/GraphLoop.xml
examples/GraphLoopDoWhile.py [new file with mode: 0644]
examples/GraphLoopDoWhile.xml [new file with mode: 0644]
examples/GraphLoopSwitch.py
examples/GraphLoopSwitch.xml
examples/GraphLoopWhile.py [new file with mode: 0644]
examples/GraphLoopWhile.xml [new file with mode: 0644]
examples/GraphLoopsCoupled.py [new file with mode: 0644]
examples/GraphLoopsCoupled.xml [new file with mode: 0644]
examples/GraphNonVoidEndLoop.py [new file with mode: 0644]
examples/GraphNonVoidEndLoop.xml [new file with mode: 0644]
examples/GraphTwoLoops.py [new file with mode: 0644]
examples/GraphTwoLoops.xml [new file with mode: 0644]
examples/GraphVoidMoreLoop.py [new file with mode: 0644]
examples/GraphVoidMoreLoop.xml [new file with mode: 0644]
src/Supervision/Graph_Impl.cxx

diff --git a/examples/GraphBadInputInLoop.py b/examples/GraphBadInputInLoop.py
new file mode 100755 (executable)
index 0000000..f8c17e3
--- /dev/null
@@ -0,0 +1,162 @@
+
+# Generated python file of Graph GraphBadInputInLoop
+
+from SuperV import *
+
+# Graph creation of GraphBadInputInLoop
+def DefGraphBadInputInLoop() :
+    GraphBadInputInLoop = Graph( 'GraphBadInputInLoop' )
+    GraphBadInputInLoop.SetName( 'GraphBadInputInLoop' )
+    GraphBadInputInLoop.SetAuthor( '' )
+    GraphBadInputInLoop.SetComment( '' )
+    GraphBadInputInLoop.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    PyIsOdd = []
+    PyIsOdd.append( 'from time import *    ' )
+    PyIsOdd.append( 'def IsOdd(a,Even) :        ' )
+    PyIsOdd.append( '    print a,"IsOdd (GraphLoopSwitch1)"       ' )
+    PyIsOdd.append( '    sleep( 1 )    ' )
+    PyIsOdd.append( '    return a      ' )
+    IsOdd = GraphBadInputInLoop.INode( 'IsOdd' , PyIsOdd )
+    IsOdd.SetName( 'IsOdd' )
+    IsOdd.SetAuthor( '' )
+    IsOdd.SetComment( 'Python function' )
+    IsOdd.Coords( 397 , 1 )
+    IIsOdda = IsOdd.InPort( 'a' , 'long' )
+    IIsOddEven = IsOdd.InPort( 'Even' , 'boolean' )
+    IIsOddGate = IsOdd.GetInPort( 'Gate' )
+    OIsOdda = IsOdd.OutPort( 'a' , 'long' )
+    OIsOddGate = IsOdd.GetOutPort( 'Gate' )
+    
+    PyBadInputOfLoop = []
+    PyBadInputOfLoop.append( 'def BadInputOfLoop() : ' )
+    PyBadInputOfLoop.append( ' return 1 ' )
+    PyBadInputOfLoop.append( '' )
+    BadInputOfLoop = GraphBadInputInLoop.INode( 'BadInputOfLoop' , PyBadInputOfLoop )
+    BadInputOfLoop.SetName( 'BadInputOfLoop' )
+    BadInputOfLoop.SetAuthor( '' )
+    BadInputOfLoop.SetComment( 'Compute Node' )
+    BadInputOfLoop.Coords( 15 , 307 )
+    IBadInputOfLoopGate = BadInputOfLoop.GetInPort( 'Gate' )
+    OBadInputOfLoopInputInLoop = BadInputOfLoop.OutPort( 'InputInLoop' , 'boolean' )
+    OBadInputOfLoopGate = BadInputOfLoop.GetOutPort( 'Gate' )
+    
+    # Creation of Loop Nodes
+    PyInitLoop = []
+    PyMoreInitLoop = []
+    PyMoreInitLoop.append( '' )
+    PyNextInitLoop = []
+    PyNextInitLoop.append( '' )
+    InitLoop,EndOfInitLoop = GraphBadInputInLoop.LNode( '' , PyInitLoop , '' , PyMoreInitLoop , '' , PyNextInitLoop )
+    EndOfInitLoop.SetName( 'EndOfInitLoop' )
+    EndOfInitLoop.SetAuthor( '' )
+    EndOfInitLoop.SetComment( 'Compute Node' )
+    EndOfInitLoop.Coords( 767 , 102 )
+    PyEndOfInitLoop = []
+    PyEndOfInitLoop.append( 'def EndOfInitLoop( DoLoop , Index , Min , Max ) :' )
+    PyEndOfInitLoop.append( '  Index = Index + 1     ' )
+    PyEndOfInitLoop.append( '  if Index <= Max :   ' )
+    PyEndOfInitLoop.append( '          DoLoop = 1     ' )
+    PyEndOfInitLoop.append( '  else :     ' )
+    PyEndOfInitLoop.append( '          DoLoop = 0     ' )
+    PyEndOfInitLoop.append( '  return DoLoop,Index,Min,Max     ' )
+    EndOfInitLoop.SetPyFunction( 'EndOfInitLoop' , PyEndOfInitLoop )
+    IInitLoopInitLoop = InitLoop.GetInPort( 'InitLoop' )
+    IInitLoopIndex = InitLoop.InPort( 'Index' , 'long' )
+    IInitLoopMin = InitLoop.InPort( 'Min' , 'long' )
+    IInitLoopMax = InitLoop.InPort( 'Max' , 'long' )
+    IInitLoopGate = InitLoop.GetInPort( 'Gate' )
+    OInitLoopDoLoop = InitLoop.GetOutPort( 'DoLoop' )
+    OInitLoopIndex = InitLoop.GetOutPort( 'Index' )
+    OInitLoopMin = InitLoop.GetOutPort( 'Min' )
+    OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    IEndOfInitLoopDoLoop = EndOfInitLoop.GetInPort( 'DoLoop' )
+    IEndOfInitLoopIndex = EndOfInitLoop.GetInPort( 'Index' )
+    IEndOfInitLoopMin = EndOfInitLoop.GetInPort( 'Min' )
+    IEndOfInitLoopMax = EndOfInitLoop.GetInPort( 'Max' )
+    IEndOfInitLoopGate = EndOfInitLoop.GetInPort( 'Gate' )
+    OEndOfInitLoopDoLoop = EndOfInitLoop.GetOutPort( 'DoLoop' )
+    OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    InitLoop.SetName( 'InitLoop' )
+    InitLoop.SetAuthor( '' )
+    InitLoop.SetComment( 'Compute Node' )
+    InitLoop.Coords( 10 , 108 )
+    
+    # Creation of Switch Nodes
+    PySwitch = []
+    PySwitch.append( 'from time import *  ' )
+    PySwitch.append( 'def Switch(a) :    ' )
+    PySwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PySwitch.append( '        sleep(1)  ' )
+    PySwitch.append( '    return a & 1,1-(a&1),a    ' )
+    Switch,EndSwitch = GraphBadInputInLoop.SNode( 'Switch' , PySwitch )
+    EndSwitch.SetName( 'EndSwitch' )
+    EndSwitch.SetAuthor( '' )
+    EndSwitch.SetComment( 'Compute Node' )
+    EndSwitch.Coords( 587 , 103 )
+    PyEndSwitch = []
+    PyEndSwitch.append( 'def EndSwitch(a) :    ' )
+    PyEndSwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PyEndSwitch.append( '        sleep(1)  ' )
+    PyEndSwitch.append( '    return a    ' )
+    EndSwitch.SetPyFunction( 'EndSwitch' , PyEndSwitch )
+    IEndSwitcha = EndSwitch.InPort( 'a' , 'long' )
+    IEndSwitchDefault = EndSwitch.GetInPort( 'Default' )
+    OEndSwitcha = EndSwitch.OutPort( 'a' , 'long' )
+    OEndSwitchGate = EndSwitch.GetOutPort( 'Gate' )
+    Switch.SetName( 'Switch' )
+    Switch.SetAuthor( '' )
+    Switch.SetComment( 'Compute Node' )
+    Switch.Coords( 194 , 109 )
+    ISwitcha = Switch.InPort( 'a' , 'long' )
+    ISwitchGate = Switch.GetInPort( 'Gate' )
+    OSwitchOdd = Switch.OutPort( 'Odd' , 'long' )
+    OSwitchEven = Switch.OutPort( 'Even' , 'int' )
+    OSwitcha = Switch.OutPort( 'a' , 'int' )
+    OSwitchDefault = Switch.GetOutPort( 'Default' )
+    
+    # Creation of Links
+    LIsOddaEndSwitcha = GraphBadInputInLoop.Link( OIsOdda , IEndSwitcha )
+    LIsOddaEndSwitcha.AddCoord( 1 , 576 , 136 )
+    LIsOddaEndSwitcha.AddCoord( 2 , 575 , 81 )
+    
+    LInitLoopIndexSwitcha = GraphBadInputInLoop.Link( OInitLoopIndex , ISwitcha )
+    
+    LInitLoopMinEndOfInitLoopMin = GraphBadInputInLoop.Link( OInitLoopMin , IEndOfInitLoopMin )
+    
+    LSwitchOddIsOddGate = GraphBadInputInLoop.Link( OSwitchOdd , IIsOddGate )
+    
+    LSwitchEvenEndSwitchDefault = GraphBadInputInLoop.Link( OSwitchEven , IEndSwitchDefault )
+    
+    LSwitchEvenIsOddEven = GraphBadInputInLoop.Link( OSwitchEven , IIsOddEven )
+    LSwitchEvenIsOddEven.AddCoord( 1 , 375 , 111 )
+    LSwitchEvenIsOddEven.AddCoord( 2 , 375 , 172 )
+    
+    LSwitchaIsOdda = GraphBadInputInLoop.Link( OSwitcha , IIsOdda )
+    LSwitchaIsOdda.AddCoord( 1 , 362 , 82 )
+    LSwitchaIsOdda.AddCoord( 2 , 360 , 201 )
+    
+    LEndSwitchaEndOfInitLoopIndex = GraphBadInputInLoop.Link( OEndSwitcha , IEndOfInitLoopIndex )
+    
+    LBadInputOfLoopInputInLoopSwitchGate = GraphBadInputInLoop.Link( OBadInputOfLoopInputInLoop , ISwitchGate )
+    
+    # Input datas
+    IInitLoopIndex.Input( 0 )
+    IInitLoopMin.Input( 0 )
+    IInitLoopMax.Input( 100 )
+    IEndOfInitLoopMax.Input( 136221856 )
+    
+    # Output Ports of the graph
+    #OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    #OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    #OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    #OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    return GraphBadInputInLoop
+
+
+GraphBadInputInLoop = DefGraphBadInputInLoop()
diff --git a/examples/GraphBadInputInLoop.xml b/examples/GraphBadInputInLoop.xml
new file mode 100755 (executable)
index 0000000..ccec624
--- /dev/null
@@ -0,0 +1,400 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphBadInputInLoop</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphBadInputInLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>EndOfInitLoop__Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>InitLoop__Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>22/10/2003 - 10:36:39</creation-date>
+    <lastmodification-date>14/12/2004 - 15:56:35</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>IsOdd</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>IsOdd</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>Even</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>IsOdd</FuncName>
+      <PyFunc><![CDATA[from time import *    ]]></PyFunc>
+      <PyFunc><![CDATA[def IsOdd(a,Even) :        ]]></PyFunc>
+      <PyFunc><![CDATA[    print a,"IsOdd (GraphLoopSwitch1)"       ]]></PyFunc>
+      <PyFunc><![CDATA[    sleep( 1 )    ]]></PyFunc>
+      <PyFunc><![CDATA[    return a      ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:56:35</creation-date>
+    <lastmodification-date>14/12/2004 - 15:56:35</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Python function</comment>
+    <x-position>397</x-position>
+    <y-position>1</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>InitLoop</node-name>
+    <kind>4</kind>
+    <coupled-node>EndOfInitLoop</coupled-node>
+    <service>
+<service-name>InitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:56:35</creation-date>
+    <lastmodification-date>14/12/2004 - 15:56:35</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>10</x-position>
+    <y-position>108</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndOfInitLoop</node-name>
+    <kind>5</kind>
+    <coupled-node>InitLoop</coupled-node>
+    <service>
+<service-name>EndOfInitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndOfInitLoop</FuncName>
+      <PyFunc><![CDATA[def EndOfInitLoop( DoLoop , Index , Min , Max ) :]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index <= Max :   ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        else :     ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 0     ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Min,Max     ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:56:35</creation-date>
+    <lastmodification-date>14/12/2004 - 15:56:35</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>767</x-position>
+    <y-position>102</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Switch</node-name>
+    <kind>6</kind>
+    <coupled-node>EndSwitch</coupled-node>
+    <service>
+<service-name>Switch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Odd</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>Even</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Switch</FuncName>
+      <PyFunc><![CDATA[from time import *  ]]></PyFunc>
+      <PyFunc><![CDATA[def Switch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a & 1,1-(a&1),a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:56:35</creation-date>
+    <lastmodification-date>14/12/2004 - 15:56:35</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>194</x-position>
+    <y-position>109</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndSwitch</node-name>
+    <kind>7</kind>
+    <coupled-node>Switch</coupled-node>
+    <service>
+<service-name>EndSwitch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndSwitch</FuncName>
+      <PyFunc><![CDATA[def EndSwitch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:56:35</creation-date>
+    <lastmodification-date>14/12/2004 - 15:56:35</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>587</x-position>
+    <y-position>103</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>BadInputOfLoop</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>BadInputOfLoop</service-name>
+     <inParameter-list/>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>boolean</outParameter-type>
+       <outParameter-name>InputInLoop</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>BadInputOfLoop</FuncName>
+      <PyFunc><![CDATA[def BadInputOfLoop() : ]]></PyFunc>
+      <PyFunc><![CDATA[        return 1 ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:56:35</creation-date>
+    <lastmodification-date>14/12/2004 - 15:56:35</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>15</x-position>
+    <y-position>307</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>IsOdd</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>576</x>
+      <y>136</y>     </coord>
+     <coord>
+<x>575</x>
+      <y>81</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>Switch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Min</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndOfInitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>InitLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Odd</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>Default</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Even</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>375</x>
+      <y>111</y>     </coord>
+     <coord>
+<x>375</x>
+      <y>172</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>362</x>
+      <y>82</y>     </coord>
+     <coord>
+<x>360</x>
+      <y>201</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>EndSwitch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>BadInputOfLoop</fromnode-name>
+    <fromserviceparameter-name>InputInLoop</fromserviceparameter-name>
+    <tonode-name>Switch</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphBadInputInLoop</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Index</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadInputInLoop</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Min</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadInputInLoop</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Max</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>100</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadInputInLoop</fromnode-name>
+    <fromserviceparameter-name>EndOfInitLoop__Max</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>136221856</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/GraphBadInputInLoop1.py b/examples/GraphBadInputInLoop1.py
new file mode 100755 (executable)
index 0000000..d5d1da8
--- /dev/null
@@ -0,0 +1,162 @@
+
+# Generated python file of Graph GraphBadInputInLoop1
+
+from SuperV import *
+
+# Graph creation of GraphBadInputInLoop1
+def DefGraphBadInputInLoop1() :
+    GraphBadInputInLoop1 = Graph( 'GraphBadInputInLoop1' )
+    GraphBadInputInLoop1.SetName( 'GraphBadInputInLoop1' )
+    GraphBadInputInLoop1.SetAuthor( '' )
+    GraphBadInputInLoop1.SetComment( '' )
+    GraphBadInputInLoop1.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    PyIsOdd = []
+    PyIsOdd.append( 'from time import *    ' )
+    PyIsOdd.append( 'def IsOdd(a,Even) :        ' )
+    PyIsOdd.append( '    print a,"IsOdd (GraphLoopSwitch1)"       ' )
+    PyIsOdd.append( '    sleep( 1 )    ' )
+    PyIsOdd.append( '    return a      ' )
+    IsOdd = GraphBadInputInLoop1.INode( 'IsOdd' , PyIsOdd )
+    IsOdd.SetName( 'IsOdd' )
+    IsOdd.SetAuthor( '' )
+    IsOdd.SetComment( 'Python function' )
+    IsOdd.Coords( 397 , 1 )
+    IIsOdda = IsOdd.InPort( 'a' , 'long' )
+    IIsOddEven = IsOdd.InPort( 'Even' , 'boolean' )
+    IIsOddGate = IsOdd.GetInPort( 'Gate' )
+    OIsOdda = IsOdd.OutPort( 'a' , 'long' )
+    OIsOddGate = IsOdd.GetOutPort( 'Gate' )
+    
+    PyBadInputOfLoop = []
+    PyBadInputOfLoop.append( 'def BadInputOfLoop() : ' )
+    PyBadInputOfLoop.append( ' return 1 ' )
+    PyBadInputOfLoop.append( '' )
+    BadInputOfLoop = GraphBadInputInLoop1.INode( 'BadInputOfLoop' , PyBadInputOfLoop )
+    BadInputOfLoop.SetName( 'BadInputOfLoop' )
+    BadInputOfLoop.SetAuthor( '' )
+    BadInputOfLoop.SetComment( 'Compute Node' )
+    BadInputOfLoop.Coords( 15 , 307 )
+    IBadInputOfLoopGate = BadInputOfLoop.GetInPort( 'Gate' )
+    OBadInputOfLoopInputInLoop = BadInputOfLoop.OutPort( 'InputInLoop' , 'boolean' )
+    OBadInputOfLoopGate = BadInputOfLoop.GetOutPort( 'Gate' )
+    
+    # Creation of Loop Nodes
+    PyInitLoop = []
+    PyMoreInitLoop = []
+    PyMoreInitLoop.append( '' )
+    PyNextInitLoop = []
+    PyNextInitLoop.append( '' )
+    InitLoop,EndOfInitLoop = GraphBadInputInLoop1.LNode( '' , PyInitLoop , '' , PyMoreInitLoop , '' , PyNextInitLoop )
+    EndOfInitLoop.SetName( 'EndOfInitLoop' )
+    EndOfInitLoop.SetAuthor( '' )
+    EndOfInitLoop.SetComment( 'Compute Node' )
+    EndOfInitLoop.Coords( 767 , 102 )
+    PyEndOfInitLoop = []
+    PyEndOfInitLoop.append( 'def EndOfInitLoop( DoLoop , Index , Min , Max ) :' )
+    PyEndOfInitLoop.append( '  Index = Index + 1     ' )
+    PyEndOfInitLoop.append( '  if Index <= Max :   ' )
+    PyEndOfInitLoop.append( '          DoLoop = 1     ' )
+    PyEndOfInitLoop.append( '  else :     ' )
+    PyEndOfInitLoop.append( '          DoLoop = 0     ' )
+    PyEndOfInitLoop.append( '  return DoLoop,Index,Min,Max     ' )
+    EndOfInitLoop.SetPyFunction( 'EndOfInitLoop' , PyEndOfInitLoop )
+    IInitLoopInitLoop = InitLoop.GetInPort( 'InitLoop' )
+    IInitLoopIndex = InitLoop.InPort( 'Index' , 'long' )
+    IInitLoopMin = InitLoop.InPort( 'Min' , 'long' )
+    IInitLoopMax = InitLoop.InPort( 'Max' , 'long' )
+    IInitLoopGate = InitLoop.GetInPort( 'Gate' )
+    OInitLoopDoLoop = InitLoop.GetOutPort( 'DoLoop' )
+    OInitLoopIndex = InitLoop.GetOutPort( 'Index' )
+    OInitLoopMin = InitLoop.GetOutPort( 'Min' )
+    OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    IEndOfInitLoopDoLoop = EndOfInitLoop.GetInPort( 'DoLoop' )
+    IEndOfInitLoopIndex = EndOfInitLoop.GetInPort( 'Index' )
+    IEndOfInitLoopMin = EndOfInitLoop.GetInPort( 'Min' )
+    IEndOfInitLoopMax = EndOfInitLoop.GetInPort( 'Max' )
+    IEndOfInitLoopGate = EndOfInitLoop.GetInPort( 'Gate' )
+    OEndOfInitLoopDoLoop = EndOfInitLoop.GetOutPort( 'DoLoop' )
+    OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    InitLoop.SetName( 'InitLoop' )
+    InitLoop.SetAuthor( '' )
+    InitLoop.SetComment( 'Compute Node' )
+    InitLoop.Coords( 10 , 108 )
+    
+    # Creation of Switch Nodes
+    PySwitch = []
+    PySwitch.append( 'from time import *  ' )
+    PySwitch.append( 'def Switch(a) :    ' )
+    PySwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PySwitch.append( '        sleep(1)  ' )
+    PySwitch.append( '    return a & 1,1-(a&1),a    ' )
+    Switch,EndSwitch = GraphBadInputInLoop1.SNode( 'Switch' , PySwitch )
+    EndSwitch.SetName( 'EndSwitch' )
+    EndSwitch.SetAuthor( '' )
+    EndSwitch.SetComment( 'Compute Node' )
+    EndSwitch.Coords( 587 , 103 )
+    PyEndSwitch = []
+    PyEndSwitch.append( 'def EndSwitch(a) :    ' )
+    PyEndSwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PyEndSwitch.append( '        sleep(1)  ' )
+    PyEndSwitch.append( '    return a    ' )
+    EndSwitch.SetPyFunction( 'EndSwitch' , PyEndSwitch )
+    IEndSwitcha = EndSwitch.InPort( 'a' , 'long' )
+    IEndSwitchDefault = EndSwitch.GetInPort( 'Default' )
+    OEndSwitcha = EndSwitch.OutPort( 'a' , 'long' )
+    OEndSwitchGate = EndSwitch.GetOutPort( 'Gate' )
+    Switch.SetName( 'Switch' )
+    Switch.SetAuthor( '' )
+    Switch.SetComment( 'Compute Node' )
+    Switch.Coords( 194 , 109 )
+    ISwitcha = Switch.InPort( 'a' , 'long' )
+    ISwitchGate = Switch.GetInPort( 'Gate' )
+    OSwitchOdd = Switch.OutPort( 'Odd' , 'long' )
+    OSwitchEven = Switch.OutPort( 'Even' , 'int' )
+    OSwitcha = Switch.OutPort( 'a' , 'int' )
+    OSwitchDefault = Switch.GetOutPort( 'Default' )
+    
+    # Creation of Links
+    LIsOddaEndSwitcha = GraphBadInputInLoop1.Link( OIsOdda , IEndSwitcha )
+    LIsOddaEndSwitcha.AddCoord( 1 , 576 , 136 )
+    LIsOddaEndSwitcha.AddCoord( 2 , 575 , 81 )
+    
+    LInitLoopIndexSwitcha = GraphBadInputInLoop1.Link( OInitLoopIndex , ISwitcha )
+    
+    LInitLoopMinEndOfInitLoopMin = GraphBadInputInLoop1.Link( OInitLoopMin , IEndOfInitLoopMin )
+    
+    LSwitchOddIsOddGate = GraphBadInputInLoop1.Link( OSwitchOdd , IIsOddGate )
+    
+    LSwitchEvenEndSwitchDefault = GraphBadInputInLoop1.Link( OSwitchEven , IEndSwitchDefault )
+    
+    LSwitchEvenIsOddEven = GraphBadInputInLoop1.Link( OSwitchEven , IIsOddEven )
+    LSwitchEvenIsOddEven.AddCoord( 1 , 375 , 111 )
+    LSwitchEvenIsOddEven.AddCoord( 2 , 375 , 172 )
+    
+    LSwitchaIsOdda = GraphBadInputInLoop1.Link( OSwitcha , IIsOdda )
+    LSwitchaIsOdda.AddCoord( 1 , 362 , 82 )
+    LSwitchaIsOdda.AddCoord( 2 , 360 , 201 )
+    
+    LEndSwitchaEndOfInitLoopIndex = GraphBadInputInLoop1.Link( OEndSwitcha , IEndOfInitLoopIndex )
+    
+    LBadInputOfLoopInputInLoopEndOfInitLoopGate = GraphBadInputInLoop1.Link( OBadInputOfLoopInputInLoop , IEndOfInitLoopGate )
+    
+    # Input datas
+    IInitLoopIndex.Input( 0 )
+    IInitLoopMin.Input( 0 )
+    IInitLoopMax.Input( 100 )
+    IEndOfInitLoopMax.Input( 136221856 )
+    
+    # Output Ports of the graph
+    #OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    #OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    #OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    #OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    return GraphBadInputInLoop1
+
+
+GraphBadInputInLoop1 = DefGraphBadInputInLoop1()
diff --git a/examples/GraphBadInputInLoop1.xml b/examples/GraphBadInputInLoop1.xml
new file mode 100755 (executable)
index 0000000..5efd5ef
--- /dev/null
@@ -0,0 +1,400 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphBadInputInLoop1</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphBadInputInLoop1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>EndOfInitLoop__Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>InitLoop__Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>22/10/2003 - 10:36:39</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:27</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>IsOdd</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>IsOdd</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>Even</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>IsOdd</FuncName>
+      <PyFunc><![CDATA[from time import *    ]]></PyFunc>
+      <PyFunc><![CDATA[def IsOdd(a,Even) :        ]]></PyFunc>
+      <PyFunc><![CDATA[    print a,"IsOdd (GraphLoopSwitch1)"       ]]></PyFunc>
+      <PyFunc><![CDATA[    sleep( 1 )    ]]></PyFunc>
+      <PyFunc><![CDATA[    return a      ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:57:27</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:27</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Python function</comment>
+    <x-position>397</x-position>
+    <y-position>1</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>InitLoop</node-name>
+    <kind>4</kind>
+    <coupled-node>EndOfInitLoop</coupled-node>
+    <service>
+<service-name>InitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:57:27</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:27</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>10</x-position>
+    <y-position>108</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndOfInitLoop</node-name>
+    <kind>5</kind>
+    <coupled-node>InitLoop</coupled-node>
+    <service>
+<service-name>EndOfInitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndOfInitLoop</FuncName>
+      <PyFunc><![CDATA[def EndOfInitLoop( DoLoop , Index , Min , Max ) :]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index <= Max :   ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        else :     ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 0     ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Min,Max     ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:57:27</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:27</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>767</x-position>
+    <y-position>102</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Switch</node-name>
+    <kind>6</kind>
+    <coupled-node>EndSwitch</coupled-node>
+    <service>
+<service-name>Switch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Odd</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>Even</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Switch</FuncName>
+      <PyFunc><![CDATA[from time import *  ]]></PyFunc>
+      <PyFunc><![CDATA[def Switch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a & 1,1-(a&1),a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:57:27</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:27</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>194</x-position>
+    <y-position>109</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndSwitch</node-name>
+    <kind>7</kind>
+    <coupled-node>Switch</coupled-node>
+    <service>
+<service-name>EndSwitch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndSwitch</FuncName>
+      <PyFunc><![CDATA[def EndSwitch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:57:27</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:27</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>587</x-position>
+    <y-position>103</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>BadInputOfLoop</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>BadInputOfLoop</service-name>
+     <inParameter-list/>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>boolean</outParameter-type>
+       <outParameter-name>InputInLoop</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>BadInputOfLoop</FuncName>
+      <PyFunc><![CDATA[def BadInputOfLoop() : ]]></PyFunc>
+      <PyFunc><![CDATA[        return 1 ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:57:27</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:27</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>15</x-position>
+    <y-position>307</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>IsOdd</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>576</x>
+      <y>136</y>     </coord>
+     <coord>
+<x>575</x>
+      <y>81</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>Switch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Min</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndOfInitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>InitLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Odd</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>Default</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Even</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>375</x>
+      <y>111</y>     </coord>
+     <coord>
+<x>375</x>
+      <y>172</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>362</x>
+      <y>82</y>     </coord>
+     <coord>
+<x>360</x>
+      <y>201</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>EndSwitch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>BadInputOfLoop</fromnode-name>
+    <fromserviceparameter-name>InputInLoop</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphBadInputInLoop1</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Index</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadInputInLoop1</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Min</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadInputInLoop1</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Max</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>100</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadInputInLoop1</fromnode-name>
+    <fromserviceparameter-name>EndOfInitLoop__Max</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>136221856</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/GraphBadInputInLoop2.py b/examples/GraphBadInputInLoop2.py
new file mode 100755 (executable)
index 0000000..eea51de
--- /dev/null
@@ -0,0 +1,163 @@
+
+# Generated python file of Graph GraphBadInputInLoop2
+
+from SuperV import *
+
+# Graph creation of GraphBadInputInLoop2
+def DefGraphBadInputInLoop2() :
+    GraphBadInputInLoop2 = Graph( 'GraphBadInputInLoop2' )
+    GraphBadInputInLoop2.SetName( 'GraphBadInputInLoop2' )
+    GraphBadInputInLoop2.SetAuthor( '' )
+    GraphBadInputInLoop2.SetComment( '' )
+    GraphBadInputInLoop2.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    PyIsOdd = []
+    PyIsOdd.append( 'from time import *     ' )
+    PyIsOdd.append( 'def IsOdd(a,Even,InputInLoop) :         ' )
+    PyIsOdd.append( '    print a,"IsOdd (GraphLoopSwitch1)"        ' )
+    PyIsOdd.append( '    sleep( 1 )     ' )
+    PyIsOdd.append( '    return a       ' )
+    IsOdd = GraphBadInputInLoop2.INode( 'IsOdd' , PyIsOdd )
+    IsOdd.SetName( 'IsOdd' )
+    IsOdd.SetAuthor( '' )
+    IsOdd.SetComment( 'Python function' )
+    IsOdd.Coords( 397 , 1 )
+    IIsOdda = IsOdd.InPort( 'a' , 'long' )
+    IIsOddEven = IsOdd.InPort( 'Even' , 'boolean' )
+    IIsOddInputInLoop = IsOdd.InPort( 'InputInLoop' , 'boolean' )
+    IIsOddGate = IsOdd.GetInPort( 'Gate' )
+    OIsOdda = IsOdd.OutPort( 'a' , 'long' )
+    OIsOddGate = IsOdd.GetOutPort( 'Gate' )
+    
+    PyBadInputOfLoop = []
+    PyBadInputOfLoop.append( 'def BadInputOfLoop() : ' )
+    PyBadInputOfLoop.append( ' return 1 ' )
+    PyBadInputOfLoop.append( '' )
+    BadInputOfLoop = GraphBadInputInLoop2.INode( 'BadInputOfLoop' , PyBadInputOfLoop )
+    BadInputOfLoop.SetName( 'BadInputOfLoop' )
+    BadInputOfLoop.SetAuthor( '' )
+    BadInputOfLoop.SetComment( 'Compute Node' )
+    BadInputOfLoop.Coords( 15 , 307 )
+    IBadInputOfLoopGate = BadInputOfLoop.GetInPort( 'Gate' )
+    OBadInputOfLoopInputInLoop = BadInputOfLoop.OutPort( 'InputInLoop' , 'boolean' )
+    OBadInputOfLoopGate = BadInputOfLoop.GetOutPort( 'Gate' )
+    
+    # Creation of Loop Nodes
+    PyInitLoop = []
+    PyMoreInitLoop = []
+    PyMoreInitLoop.append( '' )
+    PyNextInitLoop = []
+    PyNextInitLoop.append( '' )
+    InitLoop,EndOfInitLoop = GraphBadInputInLoop2.LNode( '' , PyInitLoop , '' , PyMoreInitLoop , '' , PyNextInitLoop )
+    EndOfInitLoop.SetName( 'EndOfInitLoop' )
+    EndOfInitLoop.SetAuthor( '' )
+    EndOfInitLoop.SetComment( 'Compute Node' )
+    EndOfInitLoop.Coords( 767 , 102 )
+    PyEndOfInitLoop = []
+    PyEndOfInitLoop.append( 'def EndOfInitLoop( DoLoop , Index , Min , Max ) :' )
+    PyEndOfInitLoop.append( '  Index = Index + 1     ' )
+    PyEndOfInitLoop.append( '  if Index <= Max :   ' )
+    PyEndOfInitLoop.append( '          DoLoop = 1     ' )
+    PyEndOfInitLoop.append( '  else :     ' )
+    PyEndOfInitLoop.append( '          DoLoop = 0     ' )
+    PyEndOfInitLoop.append( '  return DoLoop,Index,Min,Max     ' )
+    EndOfInitLoop.SetPyFunction( 'EndOfInitLoop' , PyEndOfInitLoop )
+    IInitLoopInitLoop = InitLoop.GetInPort( 'InitLoop' )
+    IInitLoopIndex = InitLoop.InPort( 'Index' , 'long' )
+    IInitLoopMin = InitLoop.InPort( 'Min' , 'long' )
+    IInitLoopMax = InitLoop.InPort( 'Max' , 'long' )
+    IInitLoopGate = InitLoop.GetInPort( 'Gate' )
+    OInitLoopDoLoop = InitLoop.GetOutPort( 'DoLoop' )
+    OInitLoopIndex = InitLoop.GetOutPort( 'Index' )
+    OInitLoopMin = InitLoop.GetOutPort( 'Min' )
+    OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    IEndOfInitLoopDoLoop = EndOfInitLoop.GetInPort( 'DoLoop' )
+    IEndOfInitLoopIndex = EndOfInitLoop.GetInPort( 'Index' )
+    IEndOfInitLoopMin = EndOfInitLoop.GetInPort( 'Min' )
+    IEndOfInitLoopMax = EndOfInitLoop.GetInPort( 'Max' )
+    IEndOfInitLoopGate = EndOfInitLoop.GetInPort( 'Gate' )
+    OEndOfInitLoopDoLoop = EndOfInitLoop.GetOutPort( 'DoLoop' )
+    OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    InitLoop.SetName( 'InitLoop' )
+    InitLoop.SetAuthor( '' )
+    InitLoop.SetComment( 'Compute Node' )
+    InitLoop.Coords( 10 , 108 )
+    
+    # Creation of Switch Nodes
+    PySwitch = []
+    PySwitch.append( 'from time import *  ' )
+    PySwitch.append( 'def Switch(a) :    ' )
+    PySwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PySwitch.append( '        sleep(1)  ' )
+    PySwitch.append( '    return a & 1,1-(a&1),a    ' )
+    Switch,EndSwitch = GraphBadInputInLoop2.SNode( 'Switch' , PySwitch )
+    EndSwitch.SetName( 'EndSwitch' )
+    EndSwitch.SetAuthor( '' )
+    EndSwitch.SetComment( 'Compute Node' )
+    EndSwitch.Coords( 587 , 103 )
+    PyEndSwitch = []
+    PyEndSwitch.append( 'def EndSwitch(a) :    ' )
+    PyEndSwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PyEndSwitch.append( '        sleep(1)  ' )
+    PyEndSwitch.append( '    return a    ' )
+    EndSwitch.SetPyFunction( 'EndSwitch' , PyEndSwitch )
+    IEndSwitcha = EndSwitch.InPort( 'a' , 'long' )
+    IEndSwitchDefault = EndSwitch.GetInPort( 'Default' )
+    OEndSwitcha = EndSwitch.OutPort( 'a' , 'long' )
+    OEndSwitchGate = EndSwitch.GetOutPort( 'Gate' )
+    Switch.SetName( 'Switch' )
+    Switch.SetAuthor( '' )
+    Switch.SetComment( 'Compute Node' )
+    Switch.Coords( 194 , 109 )
+    ISwitcha = Switch.InPort( 'a' , 'long' )
+    ISwitchGate = Switch.GetInPort( 'Gate' )
+    OSwitchOdd = Switch.OutPort( 'Odd' , 'long' )
+    OSwitchEven = Switch.OutPort( 'Even' , 'int' )
+    OSwitcha = Switch.OutPort( 'a' , 'int' )
+    OSwitchDefault = Switch.GetOutPort( 'Default' )
+    
+    # Creation of Links
+    LIsOddaEndSwitcha = GraphBadInputInLoop2.Link( OIsOdda , IEndSwitcha )
+    LIsOddaEndSwitcha.AddCoord( 1 , 576 , 136 )
+    LIsOddaEndSwitcha.AddCoord( 2 , 575 , 81 )
+    
+    LInitLoopIndexSwitcha = GraphBadInputInLoop2.Link( OInitLoopIndex , ISwitcha )
+    
+    LInitLoopMinEndOfInitLoopMin = GraphBadInputInLoop2.Link( OInitLoopMin , IEndOfInitLoopMin )
+    
+    LSwitchOddIsOddGate = GraphBadInputInLoop2.Link( OSwitchOdd , IIsOddGate )
+    
+    LSwitchEvenEndSwitchDefault = GraphBadInputInLoop2.Link( OSwitchEven , IEndSwitchDefault )
+    
+    LSwitchEvenIsOddEven = GraphBadInputInLoop2.Link( OSwitchEven , IIsOddEven )
+    LSwitchEvenIsOddEven.AddCoord( 1 , 375 , 111 )
+    LSwitchEvenIsOddEven.AddCoord( 2 , 375 , 172 )
+    
+    LSwitchaIsOdda = GraphBadInputInLoop2.Link( OSwitcha , IIsOdda )
+    LSwitchaIsOdda.AddCoord( 1 , 362 , 82 )
+    LSwitchaIsOdda.AddCoord( 2 , 360 , 201 )
+    
+    LEndSwitchaEndOfInitLoopIndex = GraphBadInputInLoop2.Link( OEndSwitcha , IEndOfInitLoopIndex )
+    
+    LBadInputOfLoopInputInLoopIsOddInputInLoop = GraphBadInputInLoop2.Link( OBadInputOfLoopInputInLoop , IIsOddInputInLoop )
+    
+    # Input datas
+    IInitLoopIndex.Input( 0 )
+    IInitLoopMin.Input( 0 )
+    IInitLoopMax.Input( 100 )
+    IEndOfInitLoopMax.Input( 136221856 )
+    
+    # Output Ports of the graph
+    #OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    #OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    #OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    #OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    return GraphBadInputInLoop2
+
+
+GraphBadInputInLoop2 = DefGraphBadInputInLoop2()
diff --git a/examples/GraphBadInputInLoop2.xml b/examples/GraphBadInputInLoop2.xml
new file mode 100755 (executable)
index 0000000..3e5ec3c
--- /dev/null
@@ -0,0 +1,403 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphBadInputInLoop2</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphBadInputInLoop2</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>EndOfInitLoop__Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>InitLoop__Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>22/10/2003 - 10:36:39</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:56</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>IsOdd</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>IsOdd</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>Even</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>InputInLoop</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>IsOdd</FuncName>
+      <PyFunc><![CDATA[from time import *     ]]></PyFunc>
+      <PyFunc><![CDATA[def IsOdd(a,Even,InputInLoop) :         ]]></PyFunc>
+      <PyFunc><![CDATA[    print a,"IsOdd (GraphLoopSwitch1)"        ]]></PyFunc>
+      <PyFunc><![CDATA[    sleep( 1 )     ]]></PyFunc>
+      <PyFunc><![CDATA[    return a       ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:57:56</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:56</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Python function</comment>
+    <x-position>397</x-position>
+    <y-position>1</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>InitLoop</node-name>
+    <kind>4</kind>
+    <coupled-node>EndOfInitLoop</coupled-node>
+    <service>
+<service-name>InitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:57:56</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:56</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>10</x-position>
+    <y-position>108</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndOfInitLoop</node-name>
+    <kind>5</kind>
+    <coupled-node>InitLoop</coupled-node>
+    <service>
+<service-name>EndOfInitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndOfInitLoop</FuncName>
+      <PyFunc><![CDATA[def EndOfInitLoop( DoLoop , Index , Min , Max ) :]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index <= Max :   ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        else :     ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 0     ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Min,Max     ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:57:56</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:56</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>767</x-position>
+    <y-position>102</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Switch</node-name>
+    <kind>6</kind>
+    <coupled-node>EndSwitch</coupled-node>
+    <service>
+<service-name>Switch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Odd</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>Even</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Switch</FuncName>
+      <PyFunc><![CDATA[from time import *  ]]></PyFunc>
+      <PyFunc><![CDATA[def Switch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a & 1,1-(a&1),a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:57:56</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:56</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>194</x-position>
+    <y-position>109</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndSwitch</node-name>
+    <kind>7</kind>
+    <coupled-node>Switch</coupled-node>
+    <service>
+<service-name>EndSwitch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndSwitch</FuncName>
+      <PyFunc><![CDATA[def EndSwitch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:57:56</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:56</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>587</x-position>
+    <y-position>103</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>BadInputOfLoop</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>BadInputOfLoop</service-name>
+     <inParameter-list/>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>boolean</outParameter-type>
+       <outParameter-name>InputInLoop</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>BadInputOfLoop</FuncName>
+      <PyFunc><![CDATA[def BadInputOfLoop() : ]]></PyFunc>
+      <PyFunc><![CDATA[        return 1 ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:57:56</creation-date>
+    <lastmodification-date>14/12/2004 - 15:57:56</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>15</x-position>
+    <y-position>307</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>IsOdd</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>576</x>
+      <y>136</y>     </coord>
+     <coord>
+<x>575</x>
+      <y>81</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>Switch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Min</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndOfInitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>InitLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Odd</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>Default</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Even</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>375</x>
+      <y>111</y>     </coord>
+     <coord>
+<x>375</x>
+      <y>172</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>362</x>
+      <y>82</y>     </coord>
+     <coord>
+<x>360</x>
+      <y>201</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>EndSwitch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>BadInputOfLoop</fromnode-name>
+    <fromserviceparameter-name>InputInLoop</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>InputInLoop</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphBadInputInLoop2</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Index</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadInputInLoop2</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Min</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadInputInLoop2</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Max</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>100</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadInputInLoop2</fromnode-name>
+    <fromserviceparameter-name>EndOfInitLoop__Max</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>136221856</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/GraphBadInputInLoop3.py b/examples/GraphBadInputInLoop3.py
new file mode 100755 (executable)
index 0000000..71c7c77
--- /dev/null
@@ -0,0 +1,167 @@
+
+# Generated python file of Graph GraphBadInputInLoop3
+
+from SuperV import *
+
+# Graph creation of GraphBadInputInLoop3
+def DefGraphBadInputInLoop3() :
+    GraphBadInputInLoop3 = Graph( 'GraphBadInputInLoop3' )
+    GraphBadInputInLoop3.SetName( 'GraphBadInputInLoop3' )
+    GraphBadInputInLoop3.SetAuthor( '' )
+    GraphBadInputInLoop3.SetComment( '' )
+    GraphBadInputInLoop3.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    PyIsOdd = []
+    PyIsOdd.append( 'from time import *     ' )
+    PyIsOdd.append( 'def IsOdd(a,Even,InputInLoop) :         ' )
+    PyIsOdd.append( '    print a,"IsOdd (GraphLoopSwitch1)"        ' )
+    PyIsOdd.append( '    sleep( 1 )     ' )
+    PyIsOdd.append( '    return a       ' )
+    IsOdd = GraphBadInputInLoop3.INode( 'IsOdd' , PyIsOdd )
+    IsOdd.SetName( 'IsOdd' )
+    IsOdd.SetAuthor( '' )
+    IsOdd.SetComment( 'Python function' )
+    IsOdd.Coords( 397 , 1 )
+    IIsOdda = IsOdd.InPort( 'a' , 'long' )
+    IIsOddEven = IsOdd.InPort( 'Even' , 'boolean' )
+    IIsOddInputInLoop = IsOdd.InPort( 'InputInLoop' , 'boolean' )
+    IIsOddGate = IsOdd.GetInPort( 'Gate' )
+    OIsOdda = IsOdd.OutPort( 'a' , 'long' )
+    OIsOddGate = IsOdd.GetOutPort( 'Gate' )
+    
+    PyBadInputOfLoop = []
+    PyBadInputOfLoop.append( 'def BadInputOfLoop() : ' )
+    PyBadInputOfLoop.append( ' return 1 ' )
+    PyBadInputOfLoop.append( '' )
+    BadInputOfLoop = GraphBadInputInLoop3.INode( 'BadInputOfLoop' , PyBadInputOfLoop )
+    BadInputOfLoop.SetName( 'BadInputOfLoop' )
+    BadInputOfLoop.SetAuthor( '' )
+    BadInputOfLoop.SetComment( 'Compute Node' )
+    BadInputOfLoop.Coords( 359 , 318 )
+    IBadInputOfLoopGate = BadInputOfLoop.GetInPort( 'Gate' )
+    OBadInputOfLoopInputInLoop = BadInputOfLoop.OutPort( 'InputInLoop' , 'boolean' )
+    OBadInputOfLoopGate = BadInputOfLoop.GetOutPort( 'Gate' )
+    
+    # Creation of Loop Nodes
+    PyInitLoop = []
+    PyMoreInitLoop = []
+    PyMoreInitLoop.append( '' )
+    PyNextInitLoop = []
+    PyNextInitLoop.append( '' )
+    InitLoop,EndOfInitLoop = GraphBadInputInLoop3.LNode( '' , PyInitLoop , '' , PyMoreInitLoop , '' , PyNextInitLoop )
+    EndOfInitLoop.SetName( 'EndOfInitLoop' )
+    EndOfInitLoop.SetAuthor( '' )
+    EndOfInitLoop.SetComment( 'Compute Node' )
+    EndOfInitLoop.Coords( 767 , 102 )
+    PyEndOfInitLoop = []
+    PyEndOfInitLoop.append( 'def EndOfInitLoop( DoLoop , Index , Min , Max ) :' )
+    PyEndOfInitLoop.append( '  Index = Index + 1     ' )
+    PyEndOfInitLoop.append( '  if Index <= Max :   ' )
+    PyEndOfInitLoop.append( '          DoLoop = 1     ' )
+    PyEndOfInitLoop.append( '  else :     ' )
+    PyEndOfInitLoop.append( '          DoLoop = 0     ' )
+    PyEndOfInitLoop.append( '  return DoLoop,Index,Min,Max     ' )
+    EndOfInitLoop.SetPyFunction( 'EndOfInitLoop' , PyEndOfInitLoop )
+    IInitLoopInitLoop = InitLoop.GetInPort( 'InitLoop' )
+    IInitLoopIndex = InitLoop.InPort( 'Index' , 'long' )
+    IInitLoopMin = InitLoop.InPort( 'Min' , 'long' )
+    IInitLoopMax = InitLoop.InPort( 'Max' , 'long' )
+    IInitLoopGate = InitLoop.GetInPort( 'Gate' )
+    OInitLoopDoLoop = InitLoop.GetOutPort( 'DoLoop' )
+    OInitLoopIndex = InitLoop.GetOutPort( 'Index' )
+    OInitLoopMin = InitLoop.GetOutPort( 'Min' )
+    OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    IEndOfInitLoopDoLoop = EndOfInitLoop.GetInPort( 'DoLoop' )
+    IEndOfInitLoopIndex = EndOfInitLoop.GetInPort( 'Index' )
+    IEndOfInitLoopMin = EndOfInitLoop.GetInPort( 'Min' )
+    IEndOfInitLoopMax = EndOfInitLoop.GetInPort( 'Max' )
+    IEndOfInitLoopGate = EndOfInitLoop.GetInPort( 'Gate' )
+    OEndOfInitLoopDoLoop = EndOfInitLoop.GetOutPort( 'DoLoop' )
+    OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    InitLoop.SetName( 'InitLoop' )
+    InitLoop.SetAuthor( '' )
+    InitLoop.SetComment( 'Compute Node' )
+    InitLoop.Coords( 10 , 108 )
+    
+    # Creation of Switch Nodes
+    PySwitch = []
+    PySwitch.append( 'from time import *  ' )
+    PySwitch.append( 'def Switch(a) :    ' )
+    PySwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PySwitch.append( '        sleep(1)  ' )
+    PySwitch.append( '    return a & 1,1-(a&1),a    ' )
+    Switch,EndSwitch = GraphBadInputInLoop3.SNode( 'Switch' , PySwitch )
+    EndSwitch.SetName( 'EndSwitch' )
+    EndSwitch.SetAuthor( '' )
+    EndSwitch.SetComment( 'Compute Node' )
+    EndSwitch.Coords( 587 , 103 )
+    PyEndSwitch = []
+    PyEndSwitch.append( 'def EndSwitch(a) :    ' )
+    PyEndSwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PyEndSwitch.append( '        sleep(1)  ' )
+    PyEndSwitch.append( '    return a    ' )
+    EndSwitch.SetPyFunction( 'EndSwitch' , PyEndSwitch )
+    IEndSwitcha = EndSwitch.InPort( 'a' , 'long' )
+    IEndSwitchDefault = EndSwitch.GetInPort( 'Default' )
+    OEndSwitcha = EndSwitch.OutPort( 'a' , 'long' )
+    OEndSwitchGate = EndSwitch.GetOutPort( 'Gate' )
+    Switch.SetName( 'Switch' )
+    Switch.SetAuthor( '' )
+    Switch.SetComment( 'Compute Node' )
+    Switch.Coords( 194 , 109 )
+    ISwitcha = Switch.InPort( 'a' , 'long' )
+    ISwitchGate = Switch.GetInPort( 'Gate' )
+    OSwitchOdd = Switch.OutPort( 'Odd' , 'long' )
+    OSwitchEven = Switch.OutPort( 'Even' , 'int' )
+    OSwitcha = Switch.OutPort( 'a' , 'int' )
+    OSwitchDefault = Switch.GetOutPort( 'Default' )
+    
+    # Creation of Links
+    LIsOddaEndSwitcha = GraphBadInputInLoop3.Link( OIsOdda , IEndSwitcha )
+    LIsOddaEndSwitcha.AddCoord( 1 , 576 , 136 )
+    LIsOddaEndSwitcha.AddCoord( 2 , 575 , 81 )
+    
+    LInitLoopIndexSwitcha = GraphBadInputInLoop3.Link( OInitLoopIndex , ISwitcha )
+    
+    LInitLoopMinEndOfInitLoopMin = GraphBadInputInLoop3.Link( OInitLoopMin , IEndOfInitLoopMin )
+    
+    LSwitchOddIsOddGate = GraphBadInputInLoop3.Link( OSwitchOdd , IIsOddGate )
+    
+    LSwitchEvenEndSwitchDefault = GraphBadInputInLoop3.Link( OSwitchEven , IEndSwitchDefault )
+    
+    LSwitchEvenIsOddEven = GraphBadInputInLoop3.Link( OSwitchEven , IIsOddEven )
+    LSwitchEvenIsOddEven.AddCoord( 1 , 375 , 111 )
+    LSwitchEvenIsOddEven.AddCoord( 2 , 375 , 172 )
+    
+    LSwitchaIsOdda = GraphBadInputInLoop3.Link( OSwitcha , IIsOdda )
+    LSwitchaIsOdda.AddCoord( 1 , 362 , 82 )
+    LSwitchaIsOdda.AddCoord( 2 , 360 , 201 )
+    
+    LEndSwitchaEndOfInitLoopIndex = GraphBadInputInLoop3.Link( OEndSwitcha , IEndOfInitLoopIndex )
+    
+    LBadInputOfLoopGateEndOfInitLoopGate = GraphBadInputInLoop3.Link( OBadInputOfLoopGate , IEndOfInitLoopGate )
+    
+    # Input datas
+    IInitLoopIndex.Input( 0 )
+    IInitLoopMin.Input( 0 )
+    IInitLoopMax.Input( 100 )
+    IEndOfInitLoopMax.Input( 136221856 )
+    
+    # Input Ports of the graph
+    #IIsOddInputInLoop = IsOdd.GetInPort( 'InputInLoop' )
+    
+    # Output Ports of the graph
+    #OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    #OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    #OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    #OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    #OBadInputOfLoopInputInLoop = BadInputOfLoop.GetOutPort( 'InputInLoop' )
+    return GraphBadInputInLoop3
+
+
+GraphBadInputInLoop3 = DefGraphBadInputInLoop3()
diff --git a/examples/GraphBadInputInLoop3.xml b/examples/GraphBadInputInLoop3.xml
new file mode 100755 (executable)
index 0000000..46199ef
--- /dev/null
@@ -0,0 +1,409 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphBadInputInLoop3</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphBadInputInLoop3</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>IsOdd__InputInLoop</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>EndOfInitLoop__Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>InitLoop__Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>boolean</outParameter-type>
+       <outParameter-name>BadInputOfLoop__InputInLoop</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>22/10/2003 - 10:36:39</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:23</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>IsOdd</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>IsOdd</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>Even</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>InputInLoop</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>IsOdd</FuncName>
+      <PyFunc><![CDATA[from time import *     ]]></PyFunc>
+      <PyFunc><![CDATA[def IsOdd(a,Even,InputInLoop) :         ]]></PyFunc>
+      <PyFunc><![CDATA[    print a,"IsOdd (GraphLoopSwitch1)"        ]]></PyFunc>
+      <PyFunc><![CDATA[    sleep( 1 )     ]]></PyFunc>
+      <PyFunc><![CDATA[    return a       ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:58:23</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:23</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Python function</comment>
+    <x-position>397</x-position>
+    <y-position>1</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>InitLoop</node-name>
+    <kind>4</kind>
+    <coupled-node>EndOfInitLoop</coupled-node>
+    <service>
+<service-name>InitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:58:23</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:23</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>10</x-position>
+    <y-position>108</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndOfInitLoop</node-name>
+    <kind>5</kind>
+    <coupled-node>InitLoop</coupled-node>
+    <service>
+<service-name>EndOfInitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndOfInitLoop</FuncName>
+      <PyFunc><![CDATA[def EndOfInitLoop( DoLoop , Index , Min , Max ) :]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index <= Max :   ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        else :     ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 0     ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Min,Max     ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:58:23</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:23</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>767</x-position>
+    <y-position>102</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Switch</node-name>
+    <kind>6</kind>
+    <coupled-node>EndSwitch</coupled-node>
+    <service>
+<service-name>Switch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Odd</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>Even</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Switch</FuncName>
+      <PyFunc><![CDATA[from time import *  ]]></PyFunc>
+      <PyFunc><![CDATA[def Switch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a & 1,1-(a&1),a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:58:23</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:23</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>194</x-position>
+    <y-position>109</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndSwitch</node-name>
+    <kind>7</kind>
+    <coupled-node>Switch</coupled-node>
+    <service>
+<service-name>EndSwitch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndSwitch</FuncName>
+      <PyFunc><![CDATA[def EndSwitch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:58:23</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:23</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>587</x-position>
+    <y-position>103</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>BadInputOfLoop</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>BadInputOfLoop</service-name>
+     <inParameter-list/>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>boolean</outParameter-type>
+       <outParameter-name>InputInLoop</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>BadInputOfLoop</FuncName>
+      <PyFunc><![CDATA[def BadInputOfLoop() : ]]></PyFunc>
+      <PyFunc><![CDATA[        return 1 ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:58:23</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:23</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>359</x-position>
+    <y-position>318</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>IsOdd</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>576</x>
+      <y>136</y>     </coord>
+     <coord>
+<x>575</x>
+      <y>81</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>Switch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Min</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndOfInitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>InitLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Odd</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>Default</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Even</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>375</x>
+      <y>111</y>     </coord>
+     <coord>
+<x>375</x>
+      <y>172</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>362</x>
+      <y>82</y>     </coord>
+     <coord>
+<x>360</x>
+      <y>201</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>EndSwitch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>BadInputOfLoop</fromnode-name>
+    <fromserviceparameter-name>Gate</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphBadInputInLoop3</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Index</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadInputInLoop3</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Min</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadInputInLoop3</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Max</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>100</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadInputInLoop3</fromnode-name>
+    <fromserviceparameter-name>EndOfInitLoop__Max</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>136221856</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/GraphBadOutputOfLoop.py b/examples/GraphBadOutputOfLoop.py
new file mode 100755 (executable)
index 0000000..28c91d9
--- /dev/null
@@ -0,0 +1,164 @@
+
+# Generated python file of Graph GraphBadOutputOfLoop
+
+from SuperV import *
+
+# Graph creation of GraphBadOutputOfLoop
+def DefGraphBadOutputOfLoop() :
+    GraphBadOutputOfLoop = Graph( 'GraphBadOutputOfLoop' )
+    GraphBadOutputOfLoop.SetName( 'GraphBadOutputOfLoop' )
+    GraphBadOutputOfLoop.SetAuthor( '' )
+    GraphBadOutputOfLoop.SetComment( '' )
+    GraphBadOutputOfLoop.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    PyIsOdd = []
+    PyIsOdd.append( 'from time import *     ' )
+    PyIsOdd.append( 'def IsOdd(a,Even,InputInLoop) :         ' )
+    PyIsOdd.append( '    print a,"IsOdd (GraphLoopSwitch1)"        ' )
+    PyIsOdd.append( '    sleep( 1 )     ' )
+    PyIsOdd.append( '    return a       ' )
+    IsOdd = GraphBadOutputOfLoop.INode( 'IsOdd' , PyIsOdd )
+    IsOdd.SetName( 'IsOdd' )
+    IsOdd.SetAuthor( '' )
+    IsOdd.SetComment( 'Python function' )
+    IsOdd.Coords( 397 , 1 )
+    IIsOdda = IsOdd.InPort( 'a' , 'long' )
+    IIsOddEven = IsOdd.InPort( 'Even' , 'boolean' )
+    IIsOddInputInLoop = IsOdd.InPort( 'InputInLoop' , 'boolean' )
+    IIsOddGate = IsOdd.GetInPort( 'Gate' )
+    OIsOdda = IsOdd.OutPort( 'a' , 'long' )
+    OIsOddGate = IsOdd.GetOutPort( 'Gate' )
+    
+    PyBadOutputOfLoop = []
+    PyBadOutputOfLoop.append( 'def BadOutputOfLoop() : ' )
+    PyBadOutputOfLoop.append( '        return 1 ' )
+    PyBadOutputOfLoop.append( '' )
+    BadOutputOfLoop = GraphBadOutputOfLoop.INode( 'BadOutputOfLoop' , PyBadOutputOfLoop )
+    BadOutputOfLoop.SetName( 'BadOutputOfLoop' )
+    BadOutputOfLoop.SetAuthor( '' )
+    BadOutputOfLoop.SetComment( 'Compute Node' )
+    BadOutputOfLoop.Coords( 768 , 323 )
+    IBadOutputOfLoopOutputOfLoop = BadOutputOfLoop.InPort( 'OutputOfLoop' , 'long' )
+    IBadOutputOfLoopGate = BadOutputOfLoop.GetInPort( 'Gate' )
+    OBadOutputOfLoopGate = BadOutputOfLoop.GetOutPort( 'Gate' )
+    
+    # Creation of Loop Nodes
+    PyInitLoop = []
+    PyMoreInitLoop = []
+    PyMoreInitLoop.append( '' )
+    PyNextInitLoop = []
+    PyNextInitLoop.append( '' )
+    InitLoop,EndOfInitLoop = GraphBadOutputOfLoop.LNode( '' , PyInitLoop , '' , PyMoreInitLoop , '' , PyNextInitLoop )
+    EndOfInitLoop.SetName( 'EndOfInitLoop' )
+    EndOfInitLoop.SetAuthor( '' )
+    EndOfInitLoop.SetComment( 'Compute Node' )
+    EndOfInitLoop.Coords( 767 , 102 )
+    PyEndOfInitLoop = []
+    PyEndOfInitLoop.append( 'def EndOfInitLoop( DoLoop , Index , Min , Max ) :' )
+    PyEndOfInitLoop.append( '  Index = Index + 1     ' )
+    PyEndOfInitLoop.append( '  if Index <= Max :   ' )
+    PyEndOfInitLoop.append( '          DoLoop = 1     ' )
+    PyEndOfInitLoop.append( '  else :     ' )
+    PyEndOfInitLoop.append( '          DoLoop = 0     ' )
+    PyEndOfInitLoop.append( '  return DoLoop,Index,Min,Max     ' )
+    EndOfInitLoop.SetPyFunction( 'EndOfInitLoop' , PyEndOfInitLoop )
+    IInitLoopInitLoop = InitLoop.GetInPort( 'InitLoop' )
+    IInitLoopIndex = InitLoop.InPort( 'Index' , 'long' )
+    IInitLoopMin = InitLoop.InPort( 'Min' , 'long' )
+    IInitLoopMax = InitLoop.InPort( 'Max' , 'long' )
+    IInitLoopGate = InitLoop.GetInPort( 'Gate' )
+    OInitLoopDoLoop = InitLoop.GetOutPort( 'DoLoop' )
+    OInitLoopIndex = InitLoop.GetOutPort( 'Index' )
+    OInitLoopMin = InitLoop.GetOutPort( 'Min' )
+    OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    IEndOfInitLoopDoLoop = EndOfInitLoop.GetInPort( 'DoLoop' )
+    IEndOfInitLoopIndex = EndOfInitLoop.GetInPort( 'Index' )
+    IEndOfInitLoopMin = EndOfInitLoop.GetInPort( 'Min' )
+    IEndOfInitLoopMax = EndOfInitLoop.GetInPort( 'Max' )
+    IEndOfInitLoopGate = EndOfInitLoop.GetInPort( 'Gate' )
+    OEndOfInitLoopDoLoop = EndOfInitLoop.GetOutPort( 'DoLoop' )
+    OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    InitLoop.SetName( 'InitLoop' )
+    InitLoop.SetAuthor( '' )
+    InitLoop.SetComment( 'Compute Node' )
+    InitLoop.Coords( 10 , 108 )
+    
+    # Creation of Switch Nodes
+    PySwitch = []
+    PySwitch.append( 'from time import *  ' )
+    PySwitch.append( 'def Switch(a) :    ' )
+    PySwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PySwitch.append( '        sleep(1)  ' )
+    PySwitch.append( '    return a & 1,1-(a&1),a    ' )
+    Switch,EndSwitch = GraphBadOutputOfLoop.SNode( 'Switch' , PySwitch )
+    EndSwitch.SetName( 'EndSwitch' )
+    EndSwitch.SetAuthor( '' )
+    EndSwitch.SetComment( 'Compute Node' )
+    EndSwitch.Coords( 587 , 103 )
+    PyEndSwitch = []
+    PyEndSwitch.append( 'def EndSwitch(a) :    ' )
+    PyEndSwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PyEndSwitch.append( '        sleep(1)  ' )
+    PyEndSwitch.append( '    return a    ' )
+    EndSwitch.SetPyFunction( 'EndSwitch' , PyEndSwitch )
+    IEndSwitcha = EndSwitch.InPort( 'a' , 'long' )
+    IEndSwitchDefault = EndSwitch.GetInPort( 'Default' )
+    OEndSwitcha = EndSwitch.OutPort( 'a' , 'long' )
+    OEndSwitchGate = EndSwitch.GetOutPort( 'Gate' )
+    Switch.SetName( 'Switch' )
+    Switch.SetAuthor( '' )
+    Switch.SetComment( 'Compute Node' )
+    Switch.Coords( 194 , 109 )
+    ISwitcha = Switch.InPort( 'a' , 'long' )
+    ISwitchGate = Switch.GetInPort( 'Gate' )
+    OSwitchOdd = Switch.OutPort( 'Odd' , 'long' )
+    OSwitchEven = Switch.OutPort( 'Even' , 'int' )
+    OSwitcha = Switch.OutPort( 'a' , 'int' )
+    OSwitchDefault = Switch.GetOutPort( 'Default' )
+    
+    # Creation of Links
+    LIsOddaEndSwitcha = GraphBadOutputOfLoop.Link( OIsOdda , IEndSwitcha )
+    LIsOddaEndSwitcha.AddCoord( 1 , 576 , 136 )
+    LIsOddaEndSwitcha.AddCoord( 2 , 575 , 81 )
+    
+    LInitLoopIndexSwitcha = GraphBadOutputOfLoop.Link( OInitLoopIndex , ISwitcha )
+    
+    LInitLoopMinEndOfInitLoopMin = GraphBadOutputOfLoop.Link( OInitLoopMin , IEndOfInitLoopMin )
+    
+    LSwitchOddIsOddGate = GraphBadOutputOfLoop.Link( OSwitchOdd , IIsOddGate )
+    
+    LSwitchEvenEndSwitchDefault = GraphBadOutputOfLoop.Link( OSwitchEven , IEndSwitchDefault )
+    
+    LSwitchEvenIsOddEven = GraphBadOutputOfLoop.Link( OSwitchEven , IIsOddEven )
+    LSwitchEvenIsOddEven.AddCoord( 1 , 375 , 111 )
+    LSwitchEvenIsOddEven.AddCoord( 2 , 375 , 172 )
+    
+    LSwitchaIsOdda = GraphBadOutputOfLoop.Link( OSwitcha , IIsOdda )
+    LSwitchaIsOdda.AddCoord( 1 , 362 , 82 )
+    LSwitchaIsOdda.AddCoord( 2 , 360 , 201 )
+    
+    LEndSwitchaEndOfInitLoopIndex = GraphBadOutputOfLoop.Link( OEndSwitcha , IEndOfInitLoopIndex )
+    
+    LEndSwitchaBadOutputOfLoopOutputOfLoop = GraphBadOutputOfLoop.Link( OEndSwitcha , IBadOutputOfLoopOutputOfLoop )
+    
+    # Input datas
+    IIsOddInputInLoop.Input( 136306160 )
+    IInitLoopIndex.Input( 0 )
+    IInitLoopMin.Input( 0 )
+    IInitLoopMax.Input( 100 )
+    IEndOfInitLoopMax.Input( 136221856 )
+    
+    # Output Ports of the graph
+    #OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    #OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    #OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    #OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    return GraphBadOutputOfLoop
+
+
+GraphBadOutputOfLoop = DefGraphBadOutputOfLoop()
diff --git a/examples/GraphBadOutputOfLoop.xml b/examples/GraphBadOutputOfLoop.xml
new file mode 100755 (executable)
index 0000000..1965e84
--- /dev/null
@@ -0,0 +1,415 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphBadOutputOfLoop</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphBadOutputOfLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>IsOdd__InputInLoop</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>EndOfInitLoop__Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>InitLoop__Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>22/10/2003 - 10:36:39</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:56</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>IsOdd</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>IsOdd</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>Even</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>InputInLoop</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>IsOdd</FuncName>
+      <PyFunc><![CDATA[from time import *     ]]></PyFunc>
+      <PyFunc><![CDATA[def IsOdd(a,Even,InputInLoop) :         ]]></PyFunc>
+      <PyFunc><![CDATA[    print a,"IsOdd (GraphLoopSwitch1)"        ]]></PyFunc>
+      <PyFunc><![CDATA[    sleep( 1 )     ]]></PyFunc>
+      <PyFunc><![CDATA[    return a       ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:58:56</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:56</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Python function</comment>
+    <x-position>397</x-position>
+    <y-position>1</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>InitLoop</node-name>
+    <kind>4</kind>
+    <coupled-node>EndOfInitLoop</coupled-node>
+    <service>
+<service-name>InitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:58:56</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:56</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>10</x-position>
+    <y-position>108</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndOfInitLoop</node-name>
+    <kind>5</kind>
+    <coupled-node>InitLoop</coupled-node>
+    <service>
+<service-name>EndOfInitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndOfInitLoop</FuncName>
+      <PyFunc><![CDATA[def EndOfInitLoop( DoLoop , Index , Min , Max ) :]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index <= Max :   ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        else :     ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 0     ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Min,Max     ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:58:56</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:56</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>767</x-position>
+    <y-position>102</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Switch</node-name>
+    <kind>6</kind>
+    <coupled-node>EndSwitch</coupled-node>
+    <service>
+<service-name>Switch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Odd</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>Even</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Switch</FuncName>
+      <PyFunc><![CDATA[from time import *  ]]></PyFunc>
+      <PyFunc><![CDATA[def Switch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a & 1,1-(a&1),a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:58:56</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:56</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>194</x-position>
+    <y-position>109</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndSwitch</node-name>
+    <kind>7</kind>
+    <coupled-node>Switch</coupled-node>
+    <service>
+<service-name>EndSwitch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndSwitch</FuncName>
+      <PyFunc><![CDATA[def EndSwitch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:58:56</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:56</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>587</x-position>
+    <y-position>103</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>BadOutputOfLoop</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>BadOutputOfLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>OutputOfLoop</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list/>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>BadOutputOfLoop</FuncName>
+      <PyFunc><![CDATA[def BadOutputOfLoop() : ]]></PyFunc>
+      <PyFunc><![CDATA[        return 1 ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:58:56</creation-date>
+    <lastmodification-date>14/12/2004 - 15:58:56</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>768</x-position>
+    <y-position>323</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>IsOdd</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>576</x>
+      <y>136</y>     </coord>
+     <coord>
+<x>575</x>
+      <y>81</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>Switch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Min</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndOfInitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>InitLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Odd</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>Default</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Even</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>375</x>
+      <y>111</y>     </coord>
+     <coord>
+<x>375</x>
+      <y>172</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>362</x>
+      <y>82</y>     </coord>
+     <coord>
+<x>360</x>
+      <y>201</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>EndSwitch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndSwitch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>BadOutputOfLoop</tonode-name>
+    <toserviceparameter-name>OutputOfLoop</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphBadOutputOfLoop</fromnode-name>
+    <fromserviceparameter-name>IsOdd__InputInLoop</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>InputInLoop</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>136306160</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadOutputOfLoop</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Index</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadOutputOfLoop</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Min</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadOutputOfLoop</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Max</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>100</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadOutputOfLoop</fromnode-name>
+    <fromserviceparameter-name>EndOfInitLoop__Max</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>136221856</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/GraphBadOutputOfLoop1.py b/examples/GraphBadOutputOfLoop1.py
new file mode 100755 (executable)
index 0000000..3405c93
--- /dev/null
@@ -0,0 +1,163 @@
+
+# Generated python file of Graph GraphBadOutputOfLoop1
+
+from SuperV import *
+
+# Graph creation of GraphBadOutputOfLoop1
+def DefGraphBadOutputOfLoop1() :
+    GraphBadOutputOfLoop1 = Graph( 'GraphBadOutputOfLoop1' )
+    GraphBadOutputOfLoop1.SetName( 'GraphBadOutputOfLoop1' )
+    GraphBadOutputOfLoop1.SetAuthor( '' )
+    GraphBadOutputOfLoop1.SetComment( '' )
+    GraphBadOutputOfLoop1.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    PyIsOdd = []
+    PyIsOdd.append( 'from time import *     ' )
+    PyIsOdd.append( 'def IsOdd(a,Even,InputInLoop) :         ' )
+    PyIsOdd.append( '    print a,"IsOdd (GraphLoopSwitch1)"        ' )
+    PyIsOdd.append( '    sleep( 1 )     ' )
+    PyIsOdd.append( '    return a       ' )
+    IsOdd = GraphBadOutputOfLoop1.INode( 'IsOdd' , PyIsOdd )
+    IsOdd.SetName( 'IsOdd' )
+    IsOdd.SetAuthor( '' )
+    IsOdd.SetComment( 'Python function' )
+    IsOdd.Coords( 397 , 1 )
+    IIsOdda = IsOdd.InPort( 'a' , 'long' )
+    IIsOddEven = IsOdd.InPort( 'Even' , 'boolean' )
+    IIsOddInputInLoop = IsOdd.InPort( 'InputInLoop' , 'boolean' )
+    IIsOddGate = IsOdd.GetInPort( 'Gate' )
+    OIsOdda = IsOdd.OutPort( 'a' , 'long' )
+    OIsOddGate = IsOdd.GetOutPort( 'Gate' )
+    
+    PyBadOutputOfLoop = []
+    PyBadOutputOfLoop.append( 'def BadOutputOfLoop() : ' )
+    PyBadOutputOfLoop.append( '        return 1 ' )
+    PyBadOutputOfLoop.append( '' )
+    BadOutputOfLoop = GraphBadOutputOfLoop1.INode( 'BadOutputOfLoop' , PyBadOutputOfLoop )
+    BadOutputOfLoop.SetName( 'BadOutputOfLoop' )
+    BadOutputOfLoop.SetAuthor( '' )
+    BadOutputOfLoop.SetComment( 'Compute Node' )
+    BadOutputOfLoop.Coords( 287 , 349 )
+    IBadOutputOfLoopOutputOfLoop = BadOutputOfLoop.InPort( 'OutputOfLoop' , 'long' )
+    IBadOutputOfLoopGate = BadOutputOfLoop.GetInPort( 'Gate' )
+    OBadOutputOfLoopGate = BadOutputOfLoop.GetOutPort( 'Gate' )
+    
+    # Creation of Loop Nodes
+    PyInitLoop = []
+    PyMoreInitLoop = []
+    PyMoreInitLoop.append( '' )
+    PyNextInitLoop = []
+    PyNextInitLoop.append( '' )
+    InitLoop,EndOfInitLoop = GraphBadOutputOfLoop1.LNode( '' , PyInitLoop , '' , PyMoreInitLoop , '' , PyNextInitLoop )
+    EndOfInitLoop.SetName( 'EndOfInitLoop' )
+    EndOfInitLoop.SetAuthor( '' )
+    EndOfInitLoop.SetComment( 'Compute Node' )
+    EndOfInitLoop.Coords( 767 , 102 )
+    PyEndOfInitLoop = []
+    PyEndOfInitLoop.append( 'def EndOfInitLoop( DoLoop , Index , Min , Max ) :' )
+    PyEndOfInitLoop.append( '  Index = Index + 1     ' )
+    PyEndOfInitLoop.append( '  if Index <= Max :   ' )
+    PyEndOfInitLoop.append( '          DoLoop = 1     ' )
+    PyEndOfInitLoop.append( '  else :     ' )
+    PyEndOfInitLoop.append( '          DoLoop = 0     ' )
+    PyEndOfInitLoop.append( '  return DoLoop,Index,Min,Max     ' )
+    EndOfInitLoop.SetPyFunction( 'EndOfInitLoop' , PyEndOfInitLoop )
+    IInitLoopInitLoop = InitLoop.GetInPort( 'InitLoop' )
+    IInitLoopIndex = InitLoop.InPort( 'Index' , 'long' )
+    IInitLoopMin = InitLoop.InPort( 'Min' , 'long' )
+    IInitLoopMax = InitLoop.InPort( 'Max' , 'long' )
+    IInitLoopGate = InitLoop.GetInPort( 'Gate' )
+    OInitLoopDoLoop = InitLoop.GetOutPort( 'DoLoop' )
+    OInitLoopIndex = InitLoop.GetOutPort( 'Index' )
+    OInitLoopMin = InitLoop.GetOutPort( 'Min' )
+    OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    IEndOfInitLoopDoLoop = EndOfInitLoop.GetInPort( 'DoLoop' )
+    IEndOfInitLoopIndex = EndOfInitLoop.GetInPort( 'Index' )
+    IEndOfInitLoopMin = EndOfInitLoop.GetInPort( 'Min' )
+    IEndOfInitLoopMax = EndOfInitLoop.GetInPort( 'Max' )
+    IEndOfInitLoopGate = EndOfInitLoop.GetInPort( 'Gate' )
+    OEndOfInitLoopDoLoop = EndOfInitLoop.GetOutPort( 'DoLoop' )
+    OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    InitLoop.SetName( 'InitLoop' )
+    InitLoop.SetAuthor( '' )
+    InitLoop.SetComment( 'Compute Node' )
+    InitLoop.Coords( 10 , 108 )
+    
+    # Creation of Switch Nodes
+    PySwitch = []
+    PySwitch.append( 'from time import *  ' )
+    PySwitch.append( 'def Switch(a) :    ' )
+    PySwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PySwitch.append( '        sleep(1)  ' )
+    PySwitch.append( '    return a & 1,1-(a&1),a    ' )
+    Switch,EndSwitch = GraphBadOutputOfLoop1.SNode( 'Switch' , PySwitch )
+    EndSwitch.SetName( 'EndSwitch' )
+    EndSwitch.SetAuthor( '' )
+    EndSwitch.SetComment( 'Compute Node' )
+    EndSwitch.Coords( 587 , 103 )
+    PyEndSwitch = []
+    PyEndSwitch.append( 'def EndSwitch(a) :    ' )
+    PyEndSwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PyEndSwitch.append( '        sleep(1)  ' )
+    PyEndSwitch.append( '    return a    ' )
+    EndSwitch.SetPyFunction( 'EndSwitch' , PyEndSwitch )
+    IEndSwitcha = EndSwitch.InPort( 'a' , 'long' )
+    IEndSwitchDefault = EndSwitch.GetInPort( 'Default' )
+    OEndSwitcha = EndSwitch.OutPort( 'a' , 'long' )
+    OEndSwitchGate = EndSwitch.GetOutPort( 'Gate' )
+    Switch.SetName( 'Switch' )
+    Switch.SetAuthor( '' )
+    Switch.SetComment( 'Compute Node' )
+    Switch.Coords( 194 , 109 )
+    ISwitcha = Switch.InPort( 'a' , 'long' )
+    ISwitchGate = Switch.GetInPort( 'Gate' )
+    OSwitchOdd = Switch.OutPort( 'Odd' , 'long' )
+    OSwitchEven = Switch.OutPort( 'Even' , 'int' )
+    OSwitcha = Switch.OutPort( 'a' , 'int' )
+    OSwitchDefault = Switch.GetOutPort( 'Default' )
+    
+    # Creation of Links
+    LIsOddaEndSwitcha = GraphBadOutputOfLoop1.Link( OIsOdda , IEndSwitcha )
+    LIsOddaEndSwitcha.AddCoord( 1 , 576 , 136 )
+    LIsOddaEndSwitcha.AddCoord( 2 , 575 , 81 )
+    
+    LInitLoopIndexSwitcha = GraphBadOutputOfLoop1.Link( OInitLoopIndex , ISwitcha )
+    
+    LInitLoopMinEndOfInitLoopMin = GraphBadOutputOfLoop1.Link( OInitLoopMin , IEndOfInitLoopMin )
+    
+    LInitLoopMaxBadOutputOfLoopOutputOfLoop = GraphBadOutputOfLoop1.Link( OInitLoopMax , IBadOutputOfLoopOutputOfLoop )
+    
+    LSwitchOddIsOddGate = GraphBadOutputOfLoop1.Link( OSwitchOdd , IIsOddGate )
+    
+    LSwitchEvenEndSwitchDefault = GraphBadOutputOfLoop1.Link( OSwitchEven , IEndSwitchDefault )
+    
+    LSwitchEvenIsOddEven = GraphBadOutputOfLoop1.Link( OSwitchEven , IIsOddEven )
+    LSwitchEvenIsOddEven.AddCoord( 1 , 375 , 111 )
+    LSwitchEvenIsOddEven.AddCoord( 2 , 375 , 172 )
+    
+    LSwitchaIsOdda = GraphBadOutputOfLoop1.Link( OSwitcha , IIsOdda )
+    LSwitchaIsOdda.AddCoord( 1 , 362 , 82 )
+    LSwitchaIsOdda.AddCoord( 2 , 360 , 201 )
+    
+    LEndSwitchaEndOfInitLoopIndex = GraphBadOutputOfLoop1.Link( OEndSwitcha , IEndOfInitLoopIndex )
+    
+    # Input datas
+    IIsOddInputInLoop.Input( 136306160 )
+    IInitLoopIndex.Input( 0 )
+    IInitLoopMin.Input( 0 )
+    IInitLoopMax.Input( 100 )
+    IEndOfInitLoopMax.Input( 136221856 )
+    
+    # Output Ports of the graph
+    #OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    #OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    #OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    return GraphBadOutputOfLoop1
+
+
+GraphBadOutputOfLoop1 = DefGraphBadOutputOfLoop1()
diff --git a/examples/GraphBadOutputOfLoop1.xml b/examples/GraphBadOutputOfLoop1.xml
new file mode 100755 (executable)
index 0000000..6f0ed94
--- /dev/null
@@ -0,0 +1,412 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphBadOutputOfLoop1</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphBadOutputOfLoop1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>IsOdd__InputInLoop</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>EndOfInitLoop__Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>22/10/2003 - 10:36:39</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:22</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>IsOdd</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>IsOdd</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>Even</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>InputInLoop</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>IsOdd</FuncName>
+      <PyFunc><![CDATA[from time import *     ]]></PyFunc>
+      <PyFunc><![CDATA[def IsOdd(a,Even,InputInLoop) :         ]]></PyFunc>
+      <PyFunc><![CDATA[    print a,"IsOdd (GraphLoopSwitch1)"        ]]></PyFunc>
+      <PyFunc><![CDATA[    sleep( 1 )     ]]></PyFunc>
+      <PyFunc><![CDATA[    return a       ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:59:22</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:22</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Python function</comment>
+    <x-position>397</x-position>
+    <y-position>1</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>InitLoop</node-name>
+    <kind>4</kind>
+    <coupled-node>EndOfInitLoop</coupled-node>
+    <service>
+<service-name>InitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:59:22</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:22</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>10</x-position>
+    <y-position>108</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndOfInitLoop</node-name>
+    <kind>5</kind>
+    <coupled-node>InitLoop</coupled-node>
+    <service>
+<service-name>EndOfInitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndOfInitLoop</FuncName>
+      <PyFunc><![CDATA[def EndOfInitLoop( DoLoop , Index , Min , Max ) :]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index <= Max :   ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        else :     ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 0     ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Min,Max     ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:59:22</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:22</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>767</x-position>
+    <y-position>102</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Switch</node-name>
+    <kind>6</kind>
+    <coupled-node>EndSwitch</coupled-node>
+    <service>
+<service-name>Switch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Odd</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>Even</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Switch</FuncName>
+      <PyFunc><![CDATA[from time import *  ]]></PyFunc>
+      <PyFunc><![CDATA[def Switch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a & 1,1-(a&1),a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:59:22</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:22</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>194</x-position>
+    <y-position>109</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndSwitch</node-name>
+    <kind>7</kind>
+    <coupled-node>Switch</coupled-node>
+    <service>
+<service-name>EndSwitch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndSwitch</FuncName>
+      <PyFunc><![CDATA[def EndSwitch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:59:22</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:22</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>587</x-position>
+    <y-position>103</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>BadOutputOfLoop</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>BadOutputOfLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>OutputOfLoop</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list/>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>BadOutputOfLoop</FuncName>
+      <PyFunc><![CDATA[def BadOutputOfLoop() : ]]></PyFunc>
+      <PyFunc><![CDATA[        return 1 ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:59:22</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:22</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>287</x-position>
+    <y-position>349</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>IsOdd</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>576</x>
+      <y>136</y>     </coord>
+     <coord>
+<x>575</x>
+      <y>81</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>Switch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Min</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Max</fromserviceparameter-name>
+    <tonode-name>BadOutputOfLoop</tonode-name>
+    <toserviceparameter-name>OutputOfLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndOfInitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>InitLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Odd</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>Default</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Even</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>375</x>
+      <y>111</y>     </coord>
+     <coord>
+<x>375</x>
+      <y>172</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>362</x>
+      <y>82</y>     </coord>
+     <coord>
+<x>360</x>
+      <y>201</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>EndSwitch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphBadOutputOfLoop1</fromnode-name>
+    <fromserviceparameter-name>IsOdd__InputInLoop</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>InputInLoop</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>136306160</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadOutputOfLoop1</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Index</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadOutputOfLoop1</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Min</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadOutputOfLoop1</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Max</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>100</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadOutputOfLoop1</fromnode-name>
+    <fromserviceparameter-name>EndOfInitLoop__Max</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>136221856</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/GraphBadOutputOfLoop2.py b/examples/GraphBadOutputOfLoop2.py
new file mode 100755 (executable)
index 0000000..a0a71f1
--- /dev/null
@@ -0,0 +1,164 @@
+
+# Generated python file of Graph GraphBadOutputOfLoop2
+
+from SuperV import *
+
+# Graph creation of GraphBadOutputOfLoop2
+def DefGraphBadOutputOfLoop2() :
+    GraphBadOutputOfLoop2 = Graph( 'GraphBadOutputOfLoop2' )
+    GraphBadOutputOfLoop2.SetName( 'GraphBadOutputOfLoop2' )
+    GraphBadOutputOfLoop2.SetAuthor( '' )
+    GraphBadOutputOfLoop2.SetComment( '' )
+    GraphBadOutputOfLoop2.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    PyIsOdd = []
+    PyIsOdd.append( 'from time import *     ' )
+    PyIsOdd.append( 'def IsOdd(a,Even,InputInLoop) :         ' )
+    PyIsOdd.append( '    print a,"IsOdd (GraphLoopSwitch1)"        ' )
+    PyIsOdd.append( '    sleep( 1 )     ' )
+    PyIsOdd.append( '    return a       ' )
+    IsOdd = GraphBadOutputOfLoop2.INode( 'IsOdd' , PyIsOdd )
+    IsOdd.SetName( 'IsOdd' )
+    IsOdd.SetAuthor( '' )
+    IsOdd.SetComment( 'Python function' )
+    IsOdd.Coords( 397 , 1 )
+    IIsOdda = IsOdd.InPort( 'a' , 'long' )
+    IIsOddEven = IsOdd.InPort( 'Even' , 'boolean' )
+    IIsOddInputInLoop = IsOdd.InPort( 'InputInLoop' , 'boolean' )
+    IIsOddGate = IsOdd.GetInPort( 'Gate' )
+    OIsOdda = IsOdd.OutPort( 'a' , 'long' )
+    OIsOddGate = IsOdd.GetOutPort( 'Gate' )
+    
+    PyBadOutputOfLoop = []
+    PyBadOutputOfLoop.append( 'def BadOutputOfLoop() : ' )
+    PyBadOutputOfLoop.append( '        return 1 ' )
+    PyBadOutputOfLoop.append( '' )
+    BadOutputOfLoop = GraphBadOutputOfLoop2.INode( 'BadOutputOfLoop' , PyBadOutputOfLoop )
+    BadOutputOfLoop.SetName( 'BadOutputOfLoop' )
+    BadOutputOfLoop.SetAuthor( '' )
+    BadOutputOfLoop.SetComment( 'Compute Node' )
+    BadOutputOfLoop.Coords( 503 , 338 )
+    IBadOutputOfLoopOutputOfLoop = BadOutputOfLoop.InPort( 'OutputOfLoop' , 'long' )
+    IBadOutputOfLoopGate = BadOutputOfLoop.GetInPort( 'Gate' )
+    OBadOutputOfLoopGate = BadOutputOfLoop.GetOutPort( 'Gate' )
+    
+    # Creation of Loop Nodes
+    PyInitLoop = []
+    PyMoreInitLoop = []
+    PyMoreInitLoop.append( '' )
+    PyNextInitLoop = []
+    PyNextInitLoop.append( '' )
+    InitLoop,EndOfInitLoop = GraphBadOutputOfLoop2.LNode( '' , PyInitLoop , '' , PyMoreInitLoop , '' , PyNextInitLoop )
+    EndOfInitLoop.SetName( 'EndOfInitLoop' )
+    EndOfInitLoop.SetAuthor( '' )
+    EndOfInitLoop.SetComment( 'Compute Node' )
+    EndOfInitLoop.Coords( 767 , 102 )
+    PyEndOfInitLoop = []
+    PyEndOfInitLoop.append( 'def EndOfInitLoop( DoLoop , Index , Min , Max ) :' )
+    PyEndOfInitLoop.append( '  Index = Index + 1     ' )
+    PyEndOfInitLoop.append( '  if Index <= Max :   ' )
+    PyEndOfInitLoop.append( '          DoLoop = 1     ' )
+    PyEndOfInitLoop.append( '  else :     ' )
+    PyEndOfInitLoop.append( '          DoLoop = 0     ' )
+    PyEndOfInitLoop.append( '  return DoLoop,Index,Min,Max     ' )
+    EndOfInitLoop.SetPyFunction( 'EndOfInitLoop' , PyEndOfInitLoop )
+    IInitLoopInitLoop = InitLoop.GetInPort( 'InitLoop' )
+    IInitLoopIndex = InitLoop.InPort( 'Index' , 'long' )
+    IInitLoopMin = InitLoop.InPort( 'Min' , 'long' )
+    IInitLoopMax = InitLoop.InPort( 'Max' , 'long' )
+    IInitLoopGate = InitLoop.GetInPort( 'Gate' )
+    OInitLoopDoLoop = InitLoop.GetOutPort( 'DoLoop' )
+    OInitLoopIndex = InitLoop.GetOutPort( 'Index' )
+    OInitLoopMin = InitLoop.GetOutPort( 'Min' )
+    OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    IEndOfInitLoopDoLoop = EndOfInitLoop.GetInPort( 'DoLoop' )
+    IEndOfInitLoopIndex = EndOfInitLoop.GetInPort( 'Index' )
+    IEndOfInitLoopMin = EndOfInitLoop.GetInPort( 'Min' )
+    IEndOfInitLoopMax = EndOfInitLoop.GetInPort( 'Max' )
+    IEndOfInitLoopGate = EndOfInitLoop.GetInPort( 'Gate' )
+    OEndOfInitLoopDoLoop = EndOfInitLoop.GetOutPort( 'DoLoop' )
+    OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    InitLoop.SetName( 'InitLoop' )
+    InitLoop.SetAuthor( '' )
+    InitLoop.SetComment( 'Compute Node' )
+    InitLoop.Coords( 10 , 108 )
+    
+    # Creation of Switch Nodes
+    PySwitch = []
+    PySwitch.append( 'from time import *  ' )
+    PySwitch.append( 'def Switch(a) :    ' )
+    PySwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PySwitch.append( '        sleep(1)  ' )
+    PySwitch.append( '    return a & 1,1-(a&1),a    ' )
+    Switch,EndSwitch = GraphBadOutputOfLoop2.SNode( 'Switch' , PySwitch )
+    EndSwitch.SetName( 'EndSwitch' )
+    EndSwitch.SetAuthor( '' )
+    EndSwitch.SetComment( 'Compute Node' )
+    EndSwitch.Coords( 587 , 103 )
+    PyEndSwitch = []
+    PyEndSwitch.append( 'def EndSwitch(a) :    ' )
+    PyEndSwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PyEndSwitch.append( '        sleep(1)  ' )
+    PyEndSwitch.append( '    return a    ' )
+    EndSwitch.SetPyFunction( 'EndSwitch' , PyEndSwitch )
+    IEndSwitcha = EndSwitch.InPort( 'a' , 'long' )
+    IEndSwitchDefault = EndSwitch.GetInPort( 'Default' )
+    OEndSwitcha = EndSwitch.OutPort( 'a' , 'long' )
+    OEndSwitchGate = EndSwitch.GetOutPort( 'Gate' )
+    Switch.SetName( 'Switch' )
+    Switch.SetAuthor( '' )
+    Switch.SetComment( 'Compute Node' )
+    Switch.Coords( 194 , 109 )
+    ISwitcha = Switch.InPort( 'a' , 'long' )
+    ISwitchGate = Switch.GetInPort( 'Gate' )
+    OSwitchOdd = Switch.OutPort( 'Odd' , 'long' )
+    OSwitchEven = Switch.OutPort( 'Even' , 'int' )
+    OSwitcha = Switch.OutPort( 'a' , 'int' )
+    OSwitchDefault = Switch.GetOutPort( 'Default' )
+    
+    # Creation of Links
+    LIsOddaEndSwitcha = GraphBadOutputOfLoop2.Link( OIsOdda , IEndSwitcha )
+    LIsOddaEndSwitcha.AddCoord( 1 , 576 , 136 )
+    LIsOddaEndSwitcha.AddCoord( 2 , 575 , 81 )
+    
+    LInitLoopIndexSwitcha = GraphBadOutputOfLoop2.Link( OInitLoopIndex , ISwitcha )
+    
+    LInitLoopMinEndOfInitLoopMin = GraphBadOutputOfLoop2.Link( OInitLoopMin , IEndOfInitLoopMin )
+    
+    LSwitchOddIsOddGate = GraphBadOutputOfLoop2.Link( OSwitchOdd , IIsOddGate )
+    
+    LSwitchEvenEndSwitchDefault = GraphBadOutputOfLoop2.Link( OSwitchEven , IEndSwitchDefault )
+    
+    LSwitchEvenIsOddEven = GraphBadOutputOfLoop2.Link( OSwitchEven , IIsOddEven )
+    LSwitchEvenIsOddEven.AddCoord( 1 , 375 , 111 )
+    LSwitchEvenIsOddEven.AddCoord( 2 , 375 , 172 )
+    
+    LSwitchaIsOdda = GraphBadOutputOfLoop2.Link( OSwitcha , IIsOdda )
+    LSwitchaIsOdda.AddCoord( 1 , 362 , 82 )
+    LSwitchaIsOdda.AddCoord( 2 , 360 , 201 )
+    
+    LSwitchaBadOutputOfLoopOutputOfLoop = GraphBadOutputOfLoop2.Link( OSwitcha , IBadOutputOfLoopOutputOfLoop )
+    
+    LEndSwitchaEndOfInitLoopIndex = GraphBadOutputOfLoop2.Link( OEndSwitcha , IEndOfInitLoopIndex )
+    
+    # Input datas
+    IIsOddInputInLoop.Input( 136306160 )
+    IInitLoopIndex.Input( 0 )
+    IInitLoopMin.Input( 0 )
+    IInitLoopMax.Input( 100 )
+    IEndOfInitLoopMax.Input( 136221856 )
+    
+    # Output Ports of the graph
+    #OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    #OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    #OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    #OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    return GraphBadOutputOfLoop2
+
+
+GraphBadOutputOfLoop2 = DefGraphBadOutputOfLoop2()
diff --git a/examples/GraphBadOutputOfLoop2.xml b/examples/GraphBadOutputOfLoop2.xml
new file mode 100755 (executable)
index 0000000..83617b0
--- /dev/null
@@ -0,0 +1,415 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphBadOutputOfLoop2</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphBadOutputOfLoop2</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>IsOdd__InputInLoop</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>InitLoop__Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>EndOfInitLoop__Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>InitLoop__Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndOfInitLoop__Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>22/10/2003 - 10:36:39</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:49</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>IsOdd</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>IsOdd</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>Even</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>boolean</inParameter-type>
+       <inParameter-name>InputInLoop</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>IsOdd</FuncName>
+      <PyFunc><![CDATA[from time import *     ]]></PyFunc>
+      <PyFunc><![CDATA[def IsOdd(a,Even,InputInLoop) :         ]]></PyFunc>
+      <PyFunc><![CDATA[    print a,"IsOdd (GraphLoopSwitch1)"        ]]></PyFunc>
+      <PyFunc><![CDATA[    sleep( 1 )     ]]></PyFunc>
+      <PyFunc><![CDATA[    return a       ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:59:49</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:49</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Python function</comment>
+    <x-position>397</x-position>
+    <y-position>1</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>InitLoop</node-name>
+    <kind>4</kind>
+    <coupled-node>EndOfInitLoop</coupled-node>
+    <service>
+<service-name>InitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:59:49</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:49</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>10</x-position>
+    <y-position>108</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndOfInitLoop</node-name>
+    <kind>5</kind>
+    <coupled-node>InitLoop</coupled-node>
+    <service>
+<service-name>EndOfInitLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndOfInitLoop</FuncName>
+      <PyFunc><![CDATA[def EndOfInitLoop( DoLoop , Index , Min , Max ) :]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index <= Max :   ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        else :     ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 0     ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Min,Max     ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:59:49</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:49</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>767</x-position>
+    <y-position>102</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Switch</node-name>
+    <kind>6</kind>
+    <coupled-node>EndSwitch</coupled-node>
+    <service>
+<service-name>Switch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Odd</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>Even</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>int</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Switch</FuncName>
+      <PyFunc><![CDATA[from time import *  ]]></PyFunc>
+      <PyFunc><![CDATA[def Switch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a & 1,1-(a&1),a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:59:49</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:49</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>194</x-position>
+    <y-position>109</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndSwitch</node-name>
+    <kind>7</kind>
+    <coupled-node>Switch</coupled-node>
+    <service>
+<service-name>EndSwitch</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndSwitch</FuncName>
+      <PyFunc><![CDATA[def EndSwitch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:59:49</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:49</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>587</x-position>
+    <y-position>103</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>BadOutputOfLoop</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>BadOutputOfLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>OutputOfLoop</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list/>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>BadOutputOfLoop</FuncName>
+      <PyFunc><![CDATA[def BadOutputOfLoop() : ]]></PyFunc>
+      <PyFunc><![CDATA[        return 1 ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:59:49</creation-date>
+    <lastmodification-date>14/12/2004 - 15:59:49</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>503</x-position>
+    <y-position>338</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>IsOdd</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>576</x>
+      <y>136</y>     </coord>
+     <coord>
+<x>575</x>
+      <y>81</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>Switch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>InitLoop</fromnode-name>
+    <fromserviceparameter-name>Min</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndOfInitLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>InitLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Odd</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>Default</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Even</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>375</x>
+      <y>111</y>     </coord>
+     <coord>
+<x>375</x>
+      <y>172</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
+<coord>
+<x>362</x>
+      <y>82</y>     </coord>
+     <coord>
+<x>360</x>
+      <y>201</y>     </coord>    </coord-list>   </link>
+   <link>
+<fromnode-name>Switch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>BadOutputOfLoop</tonode-name>
+    <toserviceparameter-name>OutputOfLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndSwitch</fromnode-name>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphBadOutputOfLoop2</fromnode-name>
+    <fromserviceparameter-name>IsOdd__InputInLoop</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>InputInLoop</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>136306160</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadOutputOfLoop2</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Index</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadOutputOfLoop2</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Min</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadOutputOfLoop2</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Max</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>100</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphBadOutputOfLoop2</fromnode-name>
+    <fromserviceparameter-name>EndOfInitLoop__Max</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>136221856</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
index 00b741454fd40d147f9c97d9570a2464946d533e..d6af11f934aaa33295f5420214b8057b0c176b7a 100644 (file)
 # Generated python file of Graph GraphGOTO
 
 from SuperV import *
-# Graph creation 
-GraphGOTO = Graph( 'GraphGOTO' )
-GraphGOTO.SetName( 'GraphGOTO' )
-GraphGOTO.SetAuthor( 'JR' )
-GraphGOTO.SetComment( 'Syracuse algorithm' )
-GraphGOTO.Coords( 0 , 0 )
 
-# Creation of Factory Nodes
-
-test_ISEVEN = GraphGOTO.FNode( 'SyrComponent' , 'SyrComponent' , 'C_ISEVEN' )
-test_ISEVEN.SetName( 'test_ISEVEN' )
-test_ISEVEN.SetAuthor( '' )
-test_ISEVEN.SetContainer( 'localhost/FactoryServer' )
-test_ISEVEN.SetComment( 'C_ISEVEN from SyrComponent' )
-test_ISEVEN.Coords( 195 , 417 )
-
-test_ISONE = GraphGOTO.FNode( 'SyrComponent' , 'SyrComponent' , 'C_ISONE' )
-test_ISONE.SetName( 'test_ISONE' )
-test_ISONE.SetAuthor( '' )
-test_ISONE.SetContainer( 'localhost/FactoryServer' )
-test_ISONE.SetComment( 'C_ISONE from SyrComponent' )
-test_ISONE.Coords( 201 , 145 )
-
-m3p1 = GraphGOTO.FNode( 'SyrComponent' , 'SyrComponent' , 'C_M3P1' )
-m3p1.SetName( 'm3p1' )
-m3p1.SetAuthor( '' )
-m3p1.SetContainer( 'localhost/FactoryServer' )
-m3p1.SetComment( 'C_M3P1 from SyrComponent' )
-m3p1.Coords( 784 , 36 )
-
-div2 = GraphGOTO.FNode( 'SyrComponent' , 'SyrComponent' , 'C_DIV2' )
-div2.SetName( 'div2' )
-div2.SetAuthor( '' )
-div2.SetContainer( 'localhost/FactoryServer' )
-div2.SetComment( 'C_DIV2 from SyrComponent' )
-div2.Coords( 788 , 409 )
-
-incr = GraphGOTO.FNode( 'SyrComponent' , 'SyrComponent' , 'C_INCR' )
-incr.SetName( 'incr' )
-incr.SetAuthor( '' )
-incr.SetContainer( 'localhost/FactoryServer' )
-incr.SetComment( 'C_INCR from SyrComponent' )
-incr.Coords( 788 , 230 )
-
-# Creation of InLine Nodes
-Pylabel_begin = []
-Pylabel_begin.append( 'def label_begin( NB , KB ):' )
-Pylabel_begin.append( '    print "label_begin",NB,KB' )
-Pylabel_begin.append( '    return NB,KB' )
-label_begin = GraphGOTO.INode( 'label_begin' , Pylabel_begin )
-label_begin.InPort( 'NB' , 'long' )
-label_begin.InPort( 'KB' , 'long' )
-label_begin.OutPort( 'NT' , 'long' )
-label_begin.OutPort( 'KT' , 'long' )
-label_begin.SetName( 'label_begin' )
-label_begin.SetAuthor( '' )
-label_begin.SetComment( 'Python function' )
-label_begin.Coords( 9 , 250 )
-
-Pylabel_test = []
-Pylabel_test.append( 'def label_test( ValEven , ValOne , NB , KB ):' )
-Pylabel_test.append( '    print "label_begin",ValEven,ValOne,NB,KB' )
-Pylabel_test.append( '    return ValEven,ValOne,NB,KB' )
-label_test = GraphGOTO.INode( 'label_test' , Pylabel_test )
-label_test.InPort( 'ValEven' , 'long' )
-label_test.InPort( 'ValOne' , 'long' )
-label_test.InPort( 'NT' , 'long' )
-label_test.InPort( 'KT' , 'long' )
-label_test.OutPort( 'ValEven' , 'long' )
-label_test.OutPort( 'ValOne' , 'long' )
-label_test.OutPort( 'NT' , 'long' )
-label_test.OutPort( 'KT' , 'long' )
-label_test.SetName( 'label_test' )
-label_test.SetAuthor( '' )
-label_test.SetComment( 'Python function' )
-label_test.Coords( 396 , 193 )
-
-# Creation of Switch Nodes
-Pytest = []
-Pytest.append( 'def Switch_OneEven( ValOne , ValEven , NT , KT ) :' )
-Pytest.append( '    Finished = ValOne' )
-Pytest.append( '    if Finished == 0 :' )
-Pytest.append( '        Incr = 1' )
-Pytest.append( '        Even = ValEven' )
-Pytest.append( '        if Even == 0 :' )
-Pytest.append( '            Odd = 1' )
-Pytest.append( '        else :' )
-Pytest.append( '            Odd = 0' )
-Pytest.append( '    else :' )
-Pytest.append( '        Incr = 0' )
-Pytest.append( '        Even = 0' )
-Pytest.append( '        Odd = 0' )
-Pytest.append( '    Even = ValEven' )
-Pytest.append( '    return Finished,Incr,Even,Odd,NT,KT' )
-test,EndSwitch_OneEven = GraphGOTO.SNode( 'Switch_OneEven' , Pytest )
-EndSwitch_OneEven.SetName( 'EndSwitch_OneEven' )
-EndSwitch_OneEven.SetAuthor( '' )
-EndSwitch_OneEven.SetComment( '' )
-EndSwitch_OneEven.Coords( 1152 , 292 )
-PyEndSwitch_OneEven = []
-PyEndSwitch_OneEven.append( 'def EndSwitch_OneEven( Finished , K ):' )
-PyEndSwitch_OneEven.append( '    print "label_begin",Finished,K' )
-PyEndSwitch_OneEven.append( '    return Finished,K' )
-EndSwitch_OneEven.SetPyFunction( 'EndSwitch_OneEven' , PyEndSwitch_OneEven )
-EndSwitch_OneEven.InPort( 'Finished' , 'long' )
-EndSwitch_OneEven.InPort( 'K' , 'long' )
-EndSwitch_OneEven.OutPort( 'Finished' , 'long' )
-EndSwitch_OneEven.OutPort( 'K' , 'long' )
-test.InPort( 'ValOne' , 'long' )
-test.InPort( 'ValEven' , 'long' )
-test.InPort( 'NT' , 'long' )
-test.InPort( 'KT' , 'long' )
-test.OutPort( 'Finished' , 'long' )
-test.OutPort( 'Incr' , 'long' )
-test.OutPort( 'Even' , 'long' )
-test.OutPort( 'Odd' , 'long' )
-test.OutPort( 'N' , 'long' )
-test.OutPort( 'K' , 'long' )
-test.SetName( 'test' )
-test.SetAuthor( '' )
-test.SetComment( '' )
-test.Coords( 595 , 239 )
-
-# Creation of GOTO Nodes
-Pycontrol_m3p1 = []
-Pycontrol_m3p1.append( 'def control_m3p1( N , K ):' )
-Pycontrol_m3p1.append( '    return 0,1,N,K' )
-control_m3p1 = GraphGOTO.GNode( 'control_m3p1' , Pycontrol_m3p1 , 'label_test' )
-control_m3p1.InPort( 'N' , 'long' )
-control_m3p1.InPort( 'K' , 'long' )
-control_m3p1.OutPort( 'ValOne' , 'long' )
-control_m3p1.OutPort( 'ValEven' , 'long' )
-control_m3p1.OutPort( 'NT' , 'long' )
-control_m3p1.OutPort( 'KT' , 'long' )
-control_m3p1.SetName( 'control_m3p1' )
-control_m3p1.SetAuthor( '' )
-control_m3p1.SetComment( '' )
-control_m3p1.Coords( 980 , 81 )
-
-Pycontrol_div2 = []
-Pycontrol_div2.append( 'def control_div2( N , NB ) :' )
-Pycontrol_div2.append( '    return N,NB' )
-control_div2 = GraphGOTO.GNode( 'control_div2' , Pycontrol_div2 , 'label_begin' )
-control_div2.InPort( 'N' , 'long' )
-control_div2.InPort( 'K' , 'long' )
-control_div2.OutPort( 'NB' , 'long' )
-control_div2.OutPort( 'KB' , 'long' )
-control_div2.SetName( 'control_div2' )
-control_div2.SetAuthor( '' )
-control_div2.SetComment( '' )
-control_div2.Coords( 1039 , 454 )
-
-# Creation of Links
-test_ISEVENBoolEven = test_ISEVEN.Port( 'BoolEven' )
-label_testValEven = GraphGOTO.Link( test_ISEVENBoolEven , label_test.Port( 'ValEven' ) )
-label_testValEven.AddCoord( 1 , 369 , 273 )
-label_testValEven.AddCoord( 2 , 370 , 498 )
-
-test_ISONEBoolOne = test_ISONE.Port( 'BoolOne' )
-label_testValOne = GraphGOTO.Link( test_ISONEBoolOne , label_test.Port( 'ValOne' ) )
-label_testValOne.AddCoord( 1 , 385 , 303 )
-label_testValOne.AddCoord( 2 , 384 , 225 )
-
-m3p1anEvenInteger = m3p1.Port( 'anEvenInteger' )
-control_m3p1N = GraphGOTO.Link( m3p1anEvenInteger , control_m3p1.Port( 'N' ) )
-
-div2anInteger = div2.Port( 'anInteger' )
-control_div2N = GraphGOTO.Link( div2anInteger , control_div2.Port( 'N' ) )
-
-incraNewCount = incr.Port( 'aNewCount' )
-control_m3p1K = GraphGOTO.Link( incraNewCount , control_m3p1.Port( 'K' ) )
-control_m3p1K.AddCoord( 1 , 964 , 145 )
-control_m3p1K.AddCoord( 2 , 964 , 309 )
-
-control_div2K = GraphGOTO.Link( incraNewCount , control_div2.Port( 'K' ) )
-control_div2K.AddCoord( 1 , 963 , 518 )
-control_div2K.AddCoord( 2 , 964 , 312 )
-
-label_beginNT = label_begin.Port( 'NT' )
-label_testNT = GraphGOTO.Link( label_beginNT , label_test.Port( 'NT' ) )
-
-test_ISONEanInteger = GraphGOTO.Link( label_beginNT , test_ISONE.Port( 'anInteger' ) )
-test_ISONEanInteger.AddCoord( 1 , 192 , 226 )
-test_ISONEanInteger.AddCoord( 2 , 191 , 331 )
-
-test_ISEVENanInteger = GraphGOTO.Link( label_beginNT , test_ISEVEN.Port( 'anInteger' ) )
-test_ISEVENanInteger.AddCoord( 1 , 191 , 494 )
-test_ISEVENanInteger.AddCoord( 2 , 192 , 331 )
-
-label_beginKT = label_begin.Port( 'KT' )
-label_testKT = GraphGOTO.Link( label_beginKT , label_test.Port( 'KT' ) )
-
-label_testValEven = label_test.Port( 'ValEven' )
-testValEven = GraphGOTO.Link( label_testValEven , test.Port( 'ValEven' ) )
-testValEven.AddCoord( 1 , 587 , 318 )
-testValEven.AddCoord( 2 , 570 , 318 )
-testValEven.AddCoord( 3 , 569 , 272 )
-
-label_testValOne = label_test.Port( 'ValOne' )
-testValOne = GraphGOTO.Link( label_testValOne , test.Port( 'ValOne' ) )
-testValOne.AddCoord( 1 , 585 , 273 )
-testValOne.AddCoord( 2 , 586 , 303 )
-
-label_testNT = label_test.Port( 'NT' )
-testNT = GraphGOTO.Link( label_testNT , test.Port( 'NT' ) )
-
-label_testKT = label_test.Port( 'KT' )
-testKT = GraphGOTO.Link( label_testKT , test.Port( 'KT' ) )
-
-testFinished = test.Port( 'Finished' )
-EndSwitch_OneEvenFinished = GraphGOTO.Link( testFinished , EndSwitch_OneEven.Port( 'Finished' ) )
-
-testIncr = test.Port( 'Incr' )
-incrInGate = GraphGOTO.Link( testIncr , incr.Port( 'InGate' ) )
-incrInGate.AddCoord( 1 , 783 , 341 )
-incrInGate.AddCoord( 2 , 782 , 302 )
-
-testEven = test.Port( 'Even' )
-div2InGate = GraphGOTO.Link( testEven , div2.Port( 'InGate' ) )
-div2InGate.AddCoord( 1 , 754 , 518 )
-div2InGate.AddCoord( 2 , 753 , 330 )
-
-testOdd = test.Port( 'Odd' )
-m3p1InGate = GraphGOTO.Link( testOdd , m3p1.Port( 'InGate' ) )
-m3p1InGate.AddCoord( 1 , 758 , 145 )
-m3p1InGate.AddCoord( 2 , 760 , 359 )
-
-testN = test.Port( 'N' )
-m3p1anOddInteger = GraphGOTO.Link( testN , m3p1.Port( 'anOddInteger' ) )
-m3p1anOddInteger.AddCoord( 1 , 767 , 116 )
-m3p1anOddInteger.AddCoord( 2 , 767 , 116 )
-m3p1anOddInteger.AddCoord( 3 , 767 , 390 )
-
-div2anEvenInteger = GraphGOTO.Link( testN , div2.Port( 'anEvenInteger' ) )
-div2anEvenInteger.AddCoord( 1 , 767 , 489 )
-div2anEvenInteger.AddCoord( 2 , 766 , 389 )
-
-testK = test.Port( 'K' )
-EndSwitch_OneEvenK = GraphGOTO.Link( testK , EndSwitch_OneEven.Port( 'K' ) )
-
-incraCount = GraphGOTO.Link( testK , incr.Port( 'aCount' ) )
-incraCount.AddCoord( 1 , 772 , 311 )
-incraCount.AddCoord( 2 , 772 , 417 )
-incraCount.AddCoord( 3 , 772 , 417 )
-
-testDefault = test.Port( 'Default' )
-EndSwitch_OneEvenDefault = GraphGOTO.Link( testDefault , EndSwitch_OneEven.Port( 'Default' ) )
-EndSwitch_OneEvenDefault.AddCoord( 1 , 778 , 384 )
-EndSwitch_OneEvenDefault.AddCoord( 2 , 778 , 448 )
-
-control_m3p1OutGate = control_m3p1.Port( 'OutGate' )
-label_testInGate = GraphGOTO.Link( control_m3p1OutGate , label_test.Port( 'InGate' ) )
-label_testInGate.AddCoord( 1 , 388 , 388 )
-label_testInGate.AddCoord( 2 , 389 , 597 )
-label_testInGate.AddCoord( 3 , 1319 , 597 )
-label_testInGate.AddCoord( 4 , 1318 , 231 )
-
-control_div2OutGate = control_div2.Port( 'OutGate' )
-label_beginInGate = GraphGOTO.Link( control_div2OutGate , label_begin.Port( 'InGate' ) )
-label_beginInGate.AddCoord( 1 , 4 , 388 )
-label_beginInGate.AddCoord( 2 , 3 , 587 )
-label_beginInGate.AddCoord( 3 , 1214 , 588 )
-label_beginInGate.AddCoord( 4 , 1213 , 546 )
-
-# Creation of Input datas
-label_beginNB = label_begin.Input( 'NB' , 7)
-label_beginKB = label_begin.Input( 'KB' , 0)
-
-# Creation of Output variables
-EndSwitch_OneEvenFinished = EndSwitch_OneEven.Port( 'Finished' )
-EndSwitch_OneEvenK = EndSwitch_OneEven.Port( 'K' )
+# Graph creation of GraphGOTO
+def DefGraphGOTO() :
+    GraphGOTO = Graph( 'GraphGOTO' )
+    GraphGOTO.SetName( 'GraphGOTO' )
+    GraphGOTO.SetAuthor( 'JR' )
+    GraphGOTO.SetComment( 'Syracuse algorithm' )
+    GraphGOTO.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    test_ISEVEN = GraphGOTO.FNode( 'SyrComponent' , 'SyrComponent' , 'C_ISEVEN' )
+    test_ISEVEN.SetName( 'test_ISEVEN' )
+    test_ISEVEN.SetAuthor( '' )
+    test_ISEVEN.SetContainer( 'localhost/FactoryServer' )
+    test_ISEVEN.SetComment( 'C_ISEVEN from SyrComponent' )
+    test_ISEVEN.Coords( 195 , 417 )
+    Itest_ISEVENanInteger = test_ISEVEN.GetInPort( 'anInteger' )
+    Itest_ISEVENGate = test_ISEVEN.GetInPort( 'Gate' )
+    Otest_ISEVENBoolEven = test_ISEVEN.GetOutPort( 'BoolEven' )
+    Otest_ISEVENGate = test_ISEVEN.GetOutPort( 'Gate' )
+    
+    test_ISONE = GraphGOTO.FNode( 'SyrComponent' , 'SyrComponent' , 'C_ISONE' )
+    test_ISONE.SetName( 'test_ISONE' )
+    test_ISONE.SetAuthor( '' )
+    test_ISONE.SetContainer( 'localhost/FactoryServer' )
+    test_ISONE.SetComment( 'C_ISONE from SyrComponent' )
+    test_ISONE.Coords( 201 , 145 )
+    Itest_ISONEanInteger = test_ISONE.GetInPort( 'anInteger' )
+    Itest_ISONEGate = test_ISONE.GetInPort( 'Gate' )
+    Otest_ISONEBoolOne = test_ISONE.GetOutPort( 'BoolOne' )
+    Otest_ISONEGate = test_ISONE.GetOutPort( 'Gate' )
+    
+    m3p1 = GraphGOTO.FNode( 'SyrComponent' , 'SyrComponent' , 'C_M3P1' )
+    m3p1.SetName( 'm3p1' )
+    m3p1.SetAuthor( '' )
+    m3p1.SetContainer( 'localhost/FactoryServer' )
+    m3p1.SetComment( 'C_M3P1 from SyrComponent' )
+    m3p1.Coords( 784 , 36 )
+    Im3p1anOddInteger = m3p1.GetInPort( 'anOddInteger' )
+    Im3p1Gate = m3p1.GetInPort( 'Gate' )
+    Om3p1anEvenInteger = m3p1.GetOutPort( 'anEvenInteger' )
+    Om3p1Gate = m3p1.GetOutPort( 'Gate' )
+    
+    div2 = GraphGOTO.FNode( 'SyrComponent' , 'SyrComponent' , 'C_DIV2' )
+    div2.SetName( 'div2' )
+    div2.SetAuthor( '' )
+    div2.SetContainer( 'localhost/FactoryServer' )
+    div2.SetComment( 'C_DIV2 from SyrComponent' )
+    div2.Coords( 788 , 409 )
+    Idiv2anEvenInteger = div2.GetInPort( 'anEvenInteger' )
+    Idiv2Gate = div2.GetInPort( 'Gate' )
+    Odiv2anInteger = div2.GetOutPort( 'anInteger' )
+    Odiv2Gate = div2.GetOutPort( 'Gate' )
+    
+    incr = GraphGOTO.FNode( 'SyrComponent' , 'SyrComponent' , 'C_INCR' )
+    incr.SetName( 'incr' )
+    incr.SetAuthor( '' )
+    incr.SetContainer( 'localhost/FactoryServer' )
+    incr.SetComment( 'C_INCR from SyrComponent' )
+    incr.Coords( 788 , 230 )
+    IincraCount = incr.GetInPort( 'aCount' )
+    IincrGate = incr.GetInPort( 'Gate' )
+    OincraNewCount = incr.GetOutPort( 'aNewCount' )
+    OincrGate = incr.GetOutPort( 'Gate' )
+    
+    # Creation of InLine Nodes
+    Pylabel_begin = []
+    Pylabel_begin.append( 'def label_begin( NB , KB ):' )
+    Pylabel_begin.append( '    print "label_begin",NB,KB' )
+    Pylabel_begin.append( '    return NB,KB' )
+    label_begin = GraphGOTO.INode( 'label_begin' , Pylabel_begin )
+    label_begin.SetName( 'label_begin' )
+    label_begin.SetAuthor( '' )
+    label_begin.SetComment( 'Python function' )
+    label_begin.Coords( 9 , 250 )
+    Ilabel_beginNB = label_begin.InPort( 'NB' , 'long' )
+    Ilabel_beginKB = label_begin.InPort( 'KB' , 'long' )
+    Ilabel_beginGate = label_begin.GetInPort( 'Gate' )
+    Olabel_beginNT = label_begin.OutPort( 'NT' , 'long' )
+    Olabel_beginKT = label_begin.OutPort( 'KT' , 'long' )
+    Olabel_beginGate = label_begin.GetOutPort( 'Gate' )
+    
+    Pylabel_test = []
+    Pylabel_test.append( 'def label_test( ValEven , ValOne , NB , KB ):' )
+    Pylabel_test.append( '    print "label_begin",ValEven,ValOne,NB,KB' )
+    Pylabel_test.append( '    return ValEven,ValOne,NB,KB' )
+    label_test = GraphGOTO.INode( 'label_test' , Pylabel_test )
+    label_test.SetName( 'label_test' )
+    label_test.SetAuthor( '' )
+    label_test.SetComment( 'Python function' )
+    label_test.Coords( 396 , 193 )
+    Ilabel_testValEven = label_test.InPort( 'ValEven' , 'long' )
+    Ilabel_testValOne = label_test.InPort( 'ValOne' , 'long' )
+    Ilabel_testNT = label_test.InPort( 'NT' , 'long' )
+    Ilabel_testKT = label_test.InPort( 'KT' , 'long' )
+    Ilabel_testGate = label_test.GetInPort( 'Gate' )
+    Olabel_testValEven = label_test.OutPort( 'ValEven' , 'long' )
+    Olabel_testValOne = label_test.OutPort( 'ValOne' , 'long' )
+    Olabel_testNT = label_test.OutPort( 'NT' , 'long' )
+    Olabel_testKT = label_test.OutPort( 'KT' , 'long' )
+    Olabel_testGate = label_test.GetOutPort( 'Gate' )
+    
+    # Creation of Switch Nodes
+    Pytest = []
+    Pytest.append( 'def Switch_OneEven( ValOne , ValEven , NT , KT ) :' )
+    Pytest.append( '    Finished = ValOne' )
+    Pytest.append( '    if Finished == 0 :' )
+    Pytest.append( '        Incr = 1' )
+    Pytest.append( '        Even = ValEven' )
+    Pytest.append( '        if Even == 0 :' )
+    Pytest.append( '            Odd = 1' )
+    Pytest.append( '        else :' )
+    Pytest.append( '            Odd = 0' )
+    Pytest.append( '    else :' )
+    Pytest.append( '        Incr = 0' )
+    Pytest.append( '        Even = 0' )
+    Pytest.append( '        Odd = 0' )
+    Pytest.append( '    Even = ValEven' )
+    Pytest.append( '    return Finished,Incr,Even,Odd,NT,KT' )
+    test,EndSwitch_OneEven = GraphGOTO.SNode( 'Switch_OneEven' , Pytest )
+    EndSwitch_OneEven.SetName( 'EndSwitch_OneEven' )
+    EndSwitch_OneEven.SetAuthor( '' )
+    EndSwitch_OneEven.SetComment( 'Compute Node' )
+    EndSwitch_OneEven.Coords( 1152 , 292 )
+    PyEndSwitch_OneEven = []
+    PyEndSwitch_OneEven.append( 'def EndSwitch_OneEven( Finished , K ):' )
+    PyEndSwitch_OneEven.append( '    print "label_begin",Finished,K' )
+    PyEndSwitch_OneEven.append( '    return Finished,K' )
+    EndSwitch_OneEven.SetPyFunction( 'EndSwitch_OneEven' , PyEndSwitch_OneEven )
+    IEndSwitch_OneEvenFinished = EndSwitch_OneEven.InPort( 'Finished' , 'long' )
+    IEndSwitch_OneEvenK = EndSwitch_OneEven.InPort( 'K' , 'long' )
+    IEndSwitch_OneEvenDefault = EndSwitch_OneEven.GetInPort( 'Default' )
+    OEndSwitch_OneEvenFinished = EndSwitch_OneEven.OutPort( 'Finished' , 'long' )
+    OEndSwitch_OneEvenK = EndSwitch_OneEven.OutPort( 'K' , 'long' )
+    OEndSwitch_OneEvenGate = EndSwitch_OneEven.GetOutPort( 'Gate' )
+    test.SetName( 'test' )
+    test.SetAuthor( '' )
+    test.SetComment( 'Compute Node' )
+    test.Coords( 595 , 239 )
+    ItestValOne = test.InPort( 'ValOne' , 'long' )
+    ItestValEven = test.InPort( 'ValEven' , 'long' )
+    ItestNT = test.InPort( 'NT' , 'long' )
+    ItestKT = test.InPort( 'KT' , 'long' )
+    ItestGate = test.GetInPort( 'Gate' )
+    OtestFinished = test.OutPort( 'Finished' , 'long' )
+    OtestIncr = test.OutPort( 'Incr' , 'long' )
+    OtestEven = test.OutPort( 'Even' , 'long' )
+    OtestOdd = test.OutPort( 'Odd' , 'long' )
+    OtestN = test.OutPort( 'N' , 'long' )
+    OtestK = test.OutPort( 'K' , 'long' )
+    OtestDefault = test.GetOutPort( 'Default' )
+    
+    # Creation of GOTO Nodes
+    Pycontrol_m3p1 = []
+    Pycontrol_m3p1.append( 'def control_m3p1( N , K ):' )
+    Pycontrol_m3p1.append( '    return 0,1,N,K' )
+    control_m3p1 = GraphGOTO.GNode( 'control_m3p1' , Pycontrol_m3p1 , 'label_test' )
+    control_m3p1.SetName( 'control_m3p1' )
+    control_m3p1.SetAuthor( '' )
+    control_m3p1.SetComment( 'Compute Node' )
+    control_m3p1.Coords( 980 , 81 )
+    Icontrol_m3p1N = control_m3p1.InPort( 'N' , 'long' )
+    Icontrol_m3p1K = control_m3p1.InPort( 'K' , 'long' )
+    Icontrol_m3p1Gate = control_m3p1.GetInPort( 'Gate' )
+    Ocontrol_m3p1ValOne = control_m3p1.OutPort( 'ValOne' , 'long' )
+    Ocontrol_m3p1ValEven = control_m3p1.OutPort( 'ValEven' , 'long' )
+    Ocontrol_m3p1NT = control_m3p1.OutPort( 'NT' , 'long' )
+    Ocontrol_m3p1KT = control_m3p1.OutPort( 'KT' , 'long' )
+    Ocontrol_m3p1Gate = control_m3p1.GetOutPort( 'Gate' )
+    
+    Pycontrol_div2 = []
+    Pycontrol_div2.append( 'def control_div2( N , NB ) :' )
+    Pycontrol_div2.append( '    return N,NB' )
+    control_div2 = GraphGOTO.GNode( 'control_div2' , Pycontrol_div2 , 'label_begin' )
+    control_div2.SetName( 'control_div2' )
+    control_div2.SetAuthor( '' )
+    control_div2.SetComment( 'Compute Node' )
+    control_div2.Coords( 1039 , 454 )
+    Icontrol_div2N = control_div2.InPort( 'N' , 'long' )
+    Icontrol_div2K = control_div2.InPort( 'K' , 'long' )
+    Icontrol_div2Gate = control_div2.GetInPort( 'Gate' )
+    Ocontrol_div2NB = control_div2.OutPort( 'NB' , 'long' )
+    Ocontrol_div2KB = control_div2.OutPort( 'KB' , 'long' )
+    Ocontrol_div2Gate = control_div2.GetOutPort( 'Gate' )
+    
+    # Creation of Links
+    Ltest_ISEVENBoolEvenlabel_testValEven = GraphGOTO.Link( Otest_ISEVENBoolEven , Ilabel_testValEven )
+    Ltest_ISEVENBoolEvenlabel_testValEven.AddCoord( 1 , 369 , 273 )
+    Ltest_ISEVENBoolEvenlabel_testValEven.AddCoord( 2 , 370 , 498 )
+    
+    Ltest_ISONEBoolOnelabel_testValOne = GraphGOTO.Link( Otest_ISONEBoolOne , Ilabel_testValOne )
+    Ltest_ISONEBoolOnelabel_testValOne.AddCoord( 1 , 385 , 303 )
+    Ltest_ISONEBoolOnelabel_testValOne.AddCoord( 2 , 384 , 225 )
+    
+    Lm3p1anEvenIntegercontrol_m3p1N = GraphGOTO.Link( Om3p1anEvenInteger , Icontrol_m3p1N )
+    
+    Ldiv2anIntegercontrol_div2N = GraphGOTO.Link( Odiv2anInteger , Icontrol_div2N )
+    
+    LincraNewCountcontrol_m3p1K = GraphGOTO.Link( OincraNewCount , Icontrol_m3p1K )
+    LincraNewCountcontrol_m3p1K.AddCoord( 1 , 964 , 145 )
+    LincraNewCountcontrol_m3p1K.AddCoord( 2 , 964 , 309 )
+    
+    LincraNewCountcontrol_div2K = GraphGOTO.Link( OincraNewCount , Icontrol_div2K )
+    LincraNewCountcontrol_div2K.AddCoord( 1 , 963 , 518 )
+    LincraNewCountcontrol_div2K.AddCoord( 2 , 964 , 312 )
+    
+    Llabel_beginNTlabel_testNT = GraphGOTO.Link( Olabel_beginNT , Ilabel_testNT )
+    
+    Llabel_beginNTtest_ISONEanInteger = GraphGOTO.Link( Olabel_beginNT , Itest_ISONEanInteger )
+    Llabel_beginNTtest_ISONEanInteger.AddCoord( 1 , 192 , 226 )
+    Llabel_beginNTtest_ISONEanInteger.AddCoord( 2 , 191 , 331 )
+    
+    Llabel_beginNTtest_ISEVENanInteger = GraphGOTO.Link( Olabel_beginNT , Itest_ISEVENanInteger )
+    Llabel_beginNTtest_ISEVENanInteger.AddCoord( 1 , 191 , 494 )
+    Llabel_beginNTtest_ISEVENanInteger.AddCoord( 2 , 192 , 331 )
+    
+    Llabel_beginKTlabel_testKT = GraphGOTO.Link( Olabel_beginKT , Ilabel_testKT )
+    
+    Llabel_testValEventestValEven = GraphGOTO.Link( Olabel_testValEven , ItestValEven )
+    Llabel_testValEventestValEven.AddCoord( 1 , 587 , 318 )
+    Llabel_testValEventestValEven.AddCoord( 2 , 570 , 318 )
+    Llabel_testValEventestValEven.AddCoord( 3 , 569 , 272 )
+    
+    Llabel_testValOnetestValOne = GraphGOTO.Link( Olabel_testValOne , ItestValOne )
+    Llabel_testValOnetestValOne.AddCoord( 1 , 585 , 273 )
+    Llabel_testValOnetestValOne.AddCoord( 2 , 586 , 303 )
+    
+    Llabel_testNTtestNT = GraphGOTO.Link( Olabel_testNT , ItestNT )
+    
+    Llabel_testKTtestKT = GraphGOTO.Link( Olabel_testKT , ItestKT )
+    
+    LtestFinishedEndSwitch_OneEvenFinished = GraphGOTO.Link( OtestFinished , IEndSwitch_OneEvenFinished )
+    
+    LtestIncrincrGate = GraphGOTO.Link( OtestIncr , IincrGate )
+    LtestIncrincrGate.AddCoord( 1 , 783 , 341 )
+    LtestIncrincrGate.AddCoord( 2 , 782 , 302 )
+    
+    LtestEvendiv2Gate = GraphGOTO.Link( OtestEven , Idiv2Gate )
+    LtestEvendiv2Gate.AddCoord( 1 , 754 , 518 )
+    LtestEvendiv2Gate.AddCoord( 2 , 753 , 330 )
+    
+    LtestOddm3p1Gate = GraphGOTO.Link( OtestOdd , Im3p1Gate )
+    LtestOddm3p1Gate.AddCoord( 1 , 758 , 145 )
+    LtestOddm3p1Gate.AddCoord( 2 , 760 , 359 )
+    
+    LtestNm3p1anOddInteger = GraphGOTO.Link( OtestN , Im3p1anOddInteger )
+    LtestNm3p1anOddInteger.AddCoord( 1 , 767 , 116 )
+    LtestNm3p1anOddInteger.AddCoord( 2 , 767 , 116 )
+    LtestNm3p1anOddInteger.AddCoord( 3 , 767 , 390 )
+    
+    LtestNdiv2anEvenInteger = GraphGOTO.Link( OtestN , Idiv2anEvenInteger )
+    LtestNdiv2anEvenInteger.AddCoord( 1 , 767 , 489 )
+    LtestNdiv2anEvenInteger.AddCoord( 2 , 766 , 389 )
+    
+    LtestKEndSwitch_OneEvenK = GraphGOTO.Link( OtestK , IEndSwitch_OneEvenK )
+    
+    LtestKincraCount = GraphGOTO.Link( OtestK , IincraCount )
+    LtestKincraCount.AddCoord( 1 , 772 , 311 )
+    LtestKincraCount.AddCoord( 2 , 772 , 417 )
+    LtestKincraCount.AddCoord( 3 , 772 , 417 )
+    
+    LtestDefaultEndSwitch_OneEvenDefault = GraphGOTO.Link( OtestDefault , IEndSwitch_OneEvenDefault )
+    LtestDefaultEndSwitch_OneEvenDefault.AddCoord( 1 , 778 , 384 )
+    LtestDefaultEndSwitch_OneEvenDefault.AddCoord( 2 , 778 , 448 )
+    
+    Lcontrol_m3p1Gatelabel_testGate = GraphGOTO.Link( Ocontrol_m3p1Gate , Ilabel_testGate )
+    Lcontrol_m3p1Gatelabel_testGate.AddCoord( 1 , 388 , 388 )
+    Lcontrol_m3p1Gatelabel_testGate.AddCoord( 2 , 389 , 597 )
+    Lcontrol_m3p1Gatelabel_testGate.AddCoord( 3 , 1319 , 597 )
+    Lcontrol_m3p1Gatelabel_testGate.AddCoord( 4 , 1318 , 231 )
+    
+    Lcontrol_div2Gatelabel_beginGate = GraphGOTO.Link( Ocontrol_div2Gate , Ilabel_beginGate )
+    Lcontrol_div2Gatelabel_beginGate.AddCoord( 1 , 4 , 388 )
+    Lcontrol_div2Gatelabel_beginGate.AddCoord( 2 , 3 , 587 )
+    Lcontrol_div2Gatelabel_beginGate.AddCoord( 3 , 1214 , 588 )
+    Lcontrol_div2Gatelabel_beginGate.AddCoord( 4 , 1213 , 546 )
+    
+    # Input datas
+    Ilabel_beginNB.Input( 7 )
+    Ilabel_beginKB.Input( 0 )
+    
+    # Output Ports of the graph
+    #OEndSwitch_OneEvenFinished = EndSwitch_OneEven.GetOutPort( 'Finished' )
+    #OEndSwitch_OneEvenK = EndSwitch_OneEven.GetOutPort( 'K' )
+    return GraphGOTO
+
+
+GraphGOTO = DefGraphGOTO()
 
 GraphGOTO.Run()
 
index 27ba57df97dcfeee4f2a63c907034831dc341ebe..967674f27769ea52ba0cbc61454b65b2e237e9fa 100644 (file)
-<!DOCTYPE Dataflow>
+<!DOCTYPE SuperGraph>
+<supergraph>
 <dataflow>
 <info-list>
 <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>GraphSyrControl</node-name>
-   <kind>1</kind>
-   <coupled-node>?</coupled-node>
-   <service>
+    <interface-name>?</interface-name>
+    <node-name>GraphGOTO</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
 <service-name>GraphSyrControl</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>label_begin\NB</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>label_begin__NB</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>label_begin\KB</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>label_begin__KB</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>EndSwitch_OneEven\Finished</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>EndSwitch_OneEven__Finished</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>EndSwitch_OneEven\K</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>11/3/2003 - 18:34:21</creation-date>
-   <lastmodification-date>18/9/2003 - 17:27:23</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>JR</author>
-   <container>?</container>
-   <comment>Syracuse algorithm</comment>
-   <x-position>0</x-position>
-   <y-position>0</y-position>  </node> </info-list>
- <node-list>
+       <outParameter-name>EndSwitch_OneEven__K</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>11/3/2003 - 18:34:21</creation-date>
+    <lastmodification-date>14/12/2004 - 15:48:37</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>JR</author>
+    <container>?</container>
+    <comment>Syracuse algorithm</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
 <node-list>
 <node>
 <component-name>SyrComponent</component-name>
-   <interface-name>SyrComponent</interface-name>
-   <node-name>test_ISEVEN</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
+    <interface-name>SyrComponent</interface-name>
+    <node-name>test_ISEVEN</node-name>
+    <kind>0</kind>
+    <coupled-node>?</coupled-node>
+    <service>
 <service-name>C_ISEVEN</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>anInteger</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>anInteger</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>BoolEven</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>18/9/2003 - 17:27:22</creation-date>
-   <lastmodification-date>18/9/2003 - 17:27:22</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>C_ISEVEN from SyrComponent</comment>
-   <x-position>195</x-position>
-   <y-position>417</y-position>  </node>
-  <node>
+       <outParameter-name>BoolEven</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>14/12/2004 - 15:48:37</creation-date>
+    <lastmodification-date>14/12/2004 - 15:48:37</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>localhost/FactoryServer</container>
+    <comment>C_ISEVEN from SyrComponent</comment>
+    <x-position>195</x-position>
+    <y-position>417</y-position>   </node>
+   <node>
 <component-name>SyrComponent</component-name>
-   <interface-name>SyrComponent</interface-name>
-   <node-name>test_ISONE</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
+    <interface-name>SyrComponent</interface-name>
+    <node-name>test_ISONE</node-name>
+    <kind>0</kind>
+    <coupled-node>?</coupled-node>
+    <service>
 <service-name>C_ISONE</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>anInteger</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>anInteger</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>BoolOne</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>18/9/2003 - 17:27:22</creation-date>
-   <lastmodification-date>18/9/2003 - 17:27:22</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>C_ISONE from SyrComponent</comment>
-   <x-position>201</x-position>
-   <y-position>145</y-position>  </node>
-  <node>
+       <outParameter-name>BoolOne</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>14/12/2004 - 15:48:37</creation-date>
+    <lastmodification-date>14/12/2004 - 15:48:37</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>localhost/FactoryServer</container>
+    <comment>C_ISONE from SyrComponent</comment>
+    <x-position>201</x-position>
+    <y-position>145</y-position>   </node>
+   <node>
 <component-name>SyrComponent</component-name>
-   <interface-name>SyrComponent</interface-name>
-   <node-name>m3p1</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
+    <interface-name>SyrComponent</interface-name>
+    <node-name>m3p1</node-name>
+    <kind>0</kind>
+    <coupled-node>?</coupled-node>
+    <service>
 <service-name>C_M3P1</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>anOddInteger</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>anOddInteger</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>anEvenInteger</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>18/9/2003 - 17:27:22</creation-date>
-   <lastmodification-date>18/9/2003 - 17:27:22</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>C_M3P1 from SyrComponent</comment>
-   <x-position>784</x-position>
-   <y-position>36</y-position>  </node>
-  <node>
+       <outParameter-name>anEvenInteger</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>14/12/2004 - 15:48:37</creation-date>
+    <lastmodification-date>14/12/2004 - 15:48:37</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>localhost/FactoryServer</container>
+    <comment>C_M3P1 from SyrComponent</comment>
+    <x-position>784</x-position>
+    <y-position>36</y-position>   </node>
+   <node>
 <component-name>SyrComponent</component-name>
-   <interface-name>SyrComponent</interface-name>
-   <node-name>div2</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
+    <interface-name>SyrComponent</interface-name>
+    <node-name>div2</node-name>
+    <kind>0</kind>
+    <coupled-node>?</coupled-node>
+    <service>
 <service-name>C_DIV2</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>anEvenInteger</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>anEvenInteger</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>anInteger</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>18/9/2003 - 17:27:22</creation-date>
-   <lastmodification-date>18/9/2003 - 17:27:22</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>C_DIV2 from SyrComponent</comment>
-   <x-position>788</x-position>
-   <y-position>409</y-position>  </node>
-  <node>
+       <outParameter-name>anInteger</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>14/12/2004 - 15:48:37</creation-date>
+    <lastmodification-date>14/12/2004 - 15:48:37</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>localhost/FactoryServer</container>
+    <comment>C_DIV2 from SyrComponent</comment>
+    <x-position>788</x-position>
+    <y-position>409</y-position>   </node>
+   <node>
 <component-name>SyrComponent</component-name>
-   <interface-name>SyrComponent</interface-name>
-   <node-name>incr</node-name>
-   <kind>0</kind>
-   <coupled-node>?</coupled-node>
-   <service>
+    <interface-name>SyrComponent</interface-name>
+    <node-name>incr</node-name>
+    <kind>0</kind>
+    <coupled-node>?</coupled-node>
+    <service>
 <service-name>C_INCR</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>aCount</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>aCount</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>aNewCount</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>18/9/2003 - 17:27:23</creation-date>
-   <lastmodification-date>18/9/2003 - 17:27:23</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>localhost/FactoryServer</container>
-   <comment>C_INCR from SyrComponent</comment>
-   <x-position>788</x-position>
-   <y-position>230</y-position>  </node>
-  <node>
+       <outParameter-name>aNewCount</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>14/12/2004 - 15:48:37</creation-date>
+    <lastmodification-date>14/12/2004 - 15:48:37</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>localhost/FactoryServer</container>
+    <comment>C_INCR from SyrComponent</comment>
+    <x-position>788</x-position>
+    <y-position>230</y-position>   </node>
+   <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>label_begin</node-name>
-   <kind>3</kind>
-   <coupled-node>?</coupled-node>
-   <service>
+    <interface-name>?</interface-name>
+    <node-name>label_begin</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
 <service-name>label_begin</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>NB</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>NB</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>KB</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>KB</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>NT</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>NT</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>KT</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list>
+       <outParameter-name>KT</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
 <PyFunction>
 <FuncName>label_begin</FuncName>
-     <PyFunc><![CDATA[def label_begin( NB , KB ):]]></PyFunc>
-     <PyFunc><![CDATA[    print "label_begin",NB,KB]]></PyFunc>
-     <PyFunc><![CDATA[    return NB,KB]]></PyFunc>    </PyFunction>   </PyFunction-list>
-   <creation-date>18/9/2003 - 17:27:23</creation-date>
-   <lastmodification-date>18/9/2003 - 17:27:23</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>Python function</comment>
-   <x-position>9</x-position>
-   <y-position>250</y-position>  </node>
-  <node>
+      <PyFunc><![CDATA[def label_begin( NB , KB ):]]></PyFunc>
+      <PyFunc><![CDATA[    print "label_begin",NB,KB]]></PyFunc>
+      <PyFunc><![CDATA[    return NB,KB]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:48:37</creation-date>
+    <lastmodification-date>14/12/2004 - 15:48:37</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Python function</comment>
+    <x-position>9</x-position>
+    <y-position>250</y-position>   </node>
+   <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>label_test</node-name>
-   <kind>3</kind>
-   <coupled-node>?</coupled-node>
-   <service>
+    <interface-name>?</interface-name>
+    <node-name>label_test</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
 <service-name>label_test</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>ValEven</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>ValEven</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>ValOne</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>ValOne</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>NT</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>NT</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>KT</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>KT</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>ValEven</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>ValEven</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>ValOne</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>ValOne</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>NT</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>NT</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>KT</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list>
+       <outParameter-name>KT</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
 <PyFunction>
 <FuncName>label_test</FuncName>
-     <PyFunc><![CDATA[def label_test( ValEven , ValOne , NB , KB ):]]></PyFunc>
-     <PyFunc><![CDATA[    print "label_begin",ValEven,ValOne,NB,KB]]></PyFunc>
-     <PyFunc><![CDATA[    return ValEven,ValOne,NB,KB]]></PyFunc>    </PyFunction>   </PyFunction-list>
-   <creation-date>18/9/2003 - 17:27:23</creation-date>
-   <lastmodification-date>18/9/2003 - 17:27:23</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>Python function</comment>
-   <x-position>396</x-position>
-   <y-position>193</y-position>  </node>
-  <node>
+      <PyFunc><![CDATA[def label_test( ValEven , ValOne , NB , KB ):]]></PyFunc>
+      <PyFunc><![CDATA[    print "label_begin",ValEven,ValOne,NB,KB]]></PyFunc>
+      <PyFunc><![CDATA[    return ValEven,ValOne,NB,KB]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:48:37</creation-date>
+    <lastmodification-date>14/12/2004 - 15:48:37</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Python function</comment>
+    <x-position>396</x-position>
+    <y-position>193</y-position>   </node>
+   <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>test</node-name>
-   <kind>6</kind>
-   <coupled-node>EndSwitch_OneEven</coupled-node>
-   <service>
+    <interface-name>?</interface-name>
+    <node-name>test</node-name>
+    <kind>6</kind>
+    <coupled-node>EndSwitch_OneEven</coupled-node>
+    <service>
 <service-name>test</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>ValOne</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>ValOne</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>ValEven</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>ValEven</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>NT</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>NT</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>KT</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>KT</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Finished</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Finished</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Incr</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Incr</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Even</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Even</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Odd</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Odd</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>N</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>N</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>K</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list>
+       <outParameter-name>K</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
 <PyFunction>
 <FuncName>Switch_OneEven</FuncName>
-     <PyFunc><![CDATA[def Switch_OneEven( ValOne , ValEven , NT , KT ) :]]></PyFunc>
-     <PyFunc><![CDATA[    Finished = ValOne]]></PyFunc>
-     <PyFunc><![CDATA[    if Finished == 0 :]]></PyFunc>
-     <PyFunc><![CDATA[        Incr = 1]]></PyFunc>
-     <PyFunc><![CDATA[        Even = ValEven]]></PyFunc>
-     <PyFunc><![CDATA[        if Even == 0 :]]></PyFunc>
-     <PyFunc><![CDATA[            Odd = 1]]></PyFunc>
-     <PyFunc><![CDATA[        else :]]></PyFunc>
-     <PyFunc><![CDATA[            Odd = 0]]></PyFunc>
-     <PyFunc><![CDATA[    else :]]></PyFunc>
-     <PyFunc><![CDATA[        Incr = 0]]></PyFunc>
-     <PyFunc><![CDATA[        Even = 0]]></PyFunc>
-     <PyFunc><![CDATA[        Odd = 0]]></PyFunc>
-     <PyFunc><![CDATA[    Even = ValEven]]></PyFunc>
-     <PyFunc><![CDATA[    return Finished,Incr,Even,Odd,NT,KT]]></PyFunc>    </PyFunction>   </PyFunction-list>
-   <creation-date>18/9/2003 - 17:27:23</creation-date>
-   <lastmodification-date>18/9/2003 - 17:27:23</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>?</comment>
-   <x-position>595</x-position>
-   <y-position>239</y-position>  </node>
-  <node>
+      <PyFunc><![CDATA[def Switch_OneEven( ValOne , ValEven , NT , KT ) :]]></PyFunc>
+      <PyFunc><![CDATA[    Finished = ValOne]]></PyFunc>
+      <PyFunc><![CDATA[    if Finished == 0 :]]></PyFunc>
+      <PyFunc><![CDATA[        Incr = 1]]></PyFunc>
+      <PyFunc><![CDATA[        Even = ValEven]]></PyFunc>
+      <PyFunc><![CDATA[        if Even == 0 :]]></PyFunc>
+      <PyFunc><![CDATA[            Odd = 1]]></PyFunc>
+      <PyFunc><![CDATA[        else :]]></PyFunc>
+      <PyFunc><![CDATA[            Odd = 0]]></PyFunc>
+      <PyFunc><![CDATA[    else :]]></PyFunc>
+      <PyFunc><![CDATA[        Incr = 0]]></PyFunc>
+      <PyFunc><![CDATA[        Even = 0]]></PyFunc>
+      <PyFunc><![CDATA[        Odd = 0]]></PyFunc>
+      <PyFunc><![CDATA[    Even = ValEven]]></PyFunc>
+      <PyFunc><![CDATA[    return Finished,Incr,Even,Odd,NT,KT]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:48:37</creation-date>
+    <lastmodification-date>14/12/2004 - 15:48:37</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>595</x-position>
+    <y-position>239</y-position>   </node>
+   <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>EndSwitch_OneEven</node-name>
-   <kind>7</kind>
-   <coupled-node>test</coupled-node>
-   <service>
+    <interface-name>?</interface-name>
+    <node-name>EndSwitch_OneEven</node-name>
+    <kind>7</kind>
+    <coupled-node>test</coupled-node>
+    <service>
 <service-name>EndSwitch_OneEven</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Finished</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Finished</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>K</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>K</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Finished</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Finished</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>K</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list>
+       <outParameter-name>K</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
 <PyFunction>
 <FuncName>EndSwitch_OneEven</FuncName>
-     <PyFunc><![CDATA[def EndSwitch_OneEven( Finished , K ):]]></PyFunc>
-     <PyFunc><![CDATA[    print "label_begin",Finished,K]]></PyFunc>
-     <PyFunc><![CDATA[    return Finished,K]]></PyFunc>    </PyFunction>   </PyFunction-list>
-   <creation-date>18/9/2003 - 17:27:23</creation-date>
-   <lastmodification-date>18/9/2003 - 17:27:23</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>?</comment>
-   <x-position>1152</x-position>
-   <y-position>292</y-position>  </node>
-  <node>
+      <PyFunc><![CDATA[def EndSwitch_OneEven( Finished , K ):]]></PyFunc>
+      <PyFunc><![CDATA[    print "label_begin",Finished,K]]></PyFunc>
+      <PyFunc><![CDATA[    return Finished,K]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:48:37</creation-date>
+    <lastmodification-date>14/12/2004 - 15:48:37</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>1152</x-position>
+    <y-position>292</y-position>   </node>
+   <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>control_m3p1</node-name>
-   <kind>8</kind>
-   <coupled-node>label_test</coupled-node>
-   <service>
+    <interface-name>?</interface-name>
+    <node-name>control_m3p1</node-name>
+    <kind>8</kind>
+    <coupled-node>label_test</coupled-node>
+    <service>
 <service-name>control_m3p1</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>N</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>N</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>K</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>K</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>ValOne</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>ValOne</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>ValEven</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>ValEven</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>NT</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>NT</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>KT</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list>
+       <outParameter-name>KT</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
 <PyFunction>
 <FuncName>control_m3p1</FuncName>
-     <PyFunc><![CDATA[def control_m3p1( N , K ):]]></PyFunc>
-     <PyFunc><![CDATA[    return 0,1,N,K]]></PyFunc>    </PyFunction>   </PyFunction-list>
-   <creation-date>18/9/2003 - 17:27:23</creation-date>
-   <lastmodification-date>18/9/2003 - 17:27:23</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>?</comment>
-   <x-position>980</x-position>
-   <y-position>81</y-position>  </node>
-  <node>
+      <PyFunc><![CDATA[def control_m3p1( N , K ):]]></PyFunc>
+      <PyFunc><![CDATA[    return 0,1,N,K]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:48:37</creation-date>
+    <lastmodification-date>14/12/2004 - 15:48:37</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>980</x-position>
+    <y-position>81</y-position>   </node>
+   <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>control_div2</node-name>
-   <kind>8</kind>
-   <coupled-node>label_begin</coupled-node>
-   <service>
+    <interface-name>?</interface-name>
+    <node-name>control_div2</node-name>
+    <kind>8</kind>
+    <coupled-node>label_begin</coupled-node>
+    <service>
 <service-name>control_div2</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>N</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>N</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>K</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>K</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>NB</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>NB</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>KB</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list>
+       <outParameter-name>KB</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
 <PyFunction>
 <FuncName>control_div2</FuncName>
-     <PyFunc><![CDATA[def control_div2( N , NB ) :]]></PyFunc>
-     <PyFunc><![CDATA[    return N,NB]]></PyFunc>    </PyFunction>   </PyFunction-list>
-   <creation-date>18/9/2003 - 17:27:23</creation-date>
-   <lastmodification-date>18/9/2003 - 17:27:23</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>?</comment>
-   <x-position>1039</x-position>
-   <y-position>454</y-position>  </node> </node-list>
- <link-list>
+      <PyFunc><![CDATA[def control_div2( N , NB ) :]]></PyFunc>
+      <PyFunc><![CDATA[    return N,NB]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>14/12/2004 - 15:48:37</creation-date>
+    <lastmodification-date>14/12/2004 - 15:48:37</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>1039</x-position>
+    <y-position>454</y-position>   </node>  </node-list>
 <link-list>
 <link>
 <fromnode-name>test_ISEVEN</fromnode-name>
-   <fromserviceparameter-name>BoolEven</fromserviceparameter-name>
-   <tonode-name>label_test</tonode-name>
-   <toserviceparameter-name>ValEven</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>BoolEven</fromserviceparameter-name>
+    <tonode-name>label_test</tonode-name>
+    <toserviceparameter-name>ValEven</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>369</x>
-     <y>273</y>    </coord>
-    <coord>
+      <y>273</y>     </coord>
+     <coord>
 <x>370</x>
-     <y>498</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>498</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>test_ISONE</fromnode-name>
-   <fromserviceparameter-name>BoolOne</fromserviceparameter-name>
-   <tonode-name>label_test</tonode-name>
-   <toserviceparameter-name>ValOne</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>BoolOne</fromserviceparameter-name>
+    <tonode-name>label_test</tonode-name>
+    <toserviceparameter-name>ValOne</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>385</x>
-     <y>303</y>    </coord>
-    <coord>
+      <y>303</y>     </coord>
+     <coord>
 <x>384</x>
-     <y>225</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>225</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>m3p1</fromnode-name>
-   <fromserviceparameter-name>anEvenInteger</fromserviceparameter-name>
-   <tonode-name>control_m3p1</tonode-name>
-   <toserviceparameter-name>N</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>anEvenInteger</fromserviceparameter-name>
+    <tonode-name>control_m3p1</tonode-name>
+    <toserviceparameter-name>N</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>div2</fromnode-name>
-   <fromserviceparameter-name>anInteger</fromserviceparameter-name>
-   <tonode-name>control_div2</tonode-name>
-   <toserviceparameter-name>N</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>anInteger</fromserviceparameter-name>
+    <tonode-name>control_div2</tonode-name>
+    <toserviceparameter-name>N</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>incr</fromnode-name>
-   <fromserviceparameter-name>aNewCount</fromserviceparameter-name>
-   <tonode-name>control_m3p1</tonode-name>
-   <toserviceparameter-name>K</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>aNewCount</fromserviceparameter-name>
+    <tonode-name>control_m3p1</tonode-name>
+    <toserviceparameter-name>K</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>964</x>
-     <y>145</y>    </coord>
-    <coord>
+      <y>145</y>     </coord>
+     <coord>
 <x>964</x>
-     <y>309</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>309</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>incr</fromnode-name>
-   <fromserviceparameter-name>aNewCount</fromserviceparameter-name>
-   <tonode-name>control_div2</tonode-name>
-   <toserviceparameter-name>K</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>aNewCount</fromserviceparameter-name>
+    <tonode-name>control_div2</tonode-name>
+    <toserviceparameter-name>K</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>963</x>
-     <y>518</y>    </coord>
-    <coord>
+      <y>518</y>     </coord>
+     <coord>
 <x>964</x>
-     <y>312</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>312</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>label_begin</fromnode-name>
-   <fromserviceparameter-name>NT</fromserviceparameter-name>
-   <tonode-name>label_test</tonode-name>
-   <toserviceparameter-name>NT</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>NT</fromserviceparameter-name>
+    <tonode-name>label_test</tonode-name>
+    <toserviceparameter-name>NT</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>label_begin</fromnode-name>
-   <fromserviceparameter-name>NT</fromserviceparameter-name>
-   <tonode-name>test_ISONE</tonode-name>
-   <toserviceparameter-name>anInteger</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>NT</fromserviceparameter-name>
+    <tonode-name>test_ISONE</tonode-name>
+    <toserviceparameter-name>anInteger</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>192</x>
-     <y>226</y>    </coord>
-    <coord>
+      <y>226</y>     </coord>
+     <coord>
 <x>191</x>
-     <y>331</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>331</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>label_begin</fromnode-name>
-   <fromserviceparameter-name>NT</fromserviceparameter-name>
-   <tonode-name>test_ISEVEN</tonode-name>
-   <toserviceparameter-name>anInteger</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>NT</fromserviceparameter-name>
+    <tonode-name>test_ISEVEN</tonode-name>
+    <toserviceparameter-name>anInteger</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>191</x>
-     <y>494</y>    </coord>
-    <coord>
+      <y>494</y>     </coord>
+     <coord>
 <x>192</x>
-     <y>331</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>331</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>label_begin</fromnode-name>
-   <fromserviceparameter-name>KT</fromserviceparameter-name>
-   <tonode-name>label_test</tonode-name>
-   <toserviceparameter-name>KT</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>KT</fromserviceparameter-name>
+    <tonode-name>label_test</tonode-name>
+    <toserviceparameter-name>KT</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>label_test</fromnode-name>
-   <fromserviceparameter-name>ValEven</fromserviceparameter-name>
-   <tonode-name>test</tonode-name>
-   <toserviceparameter-name>ValEven</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>ValEven</fromserviceparameter-name>
+    <tonode-name>test</tonode-name>
+    <toserviceparameter-name>ValEven</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>587</x>
-     <y>318</y>    </coord>
-    <coord>
+      <y>318</y>     </coord>
+     <coord>
 <x>570</x>
-     <y>318</y>    </coord>
-    <coord>
+      <y>318</y>     </coord>
+     <coord>
 <x>569</x>
-     <y>272</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>272</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>label_test</fromnode-name>
-   <fromserviceparameter-name>ValOne</fromserviceparameter-name>
-   <tonode-name>test</tonode-name>
-   <toserviceparameter-name>ValOne</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>ValOne</fromserviceparameter-name>
+    <tonode-name>test</tonode-name>
+    <toserviceparameter-name>ValOne</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>585</x>
-     <y>273</y>    </coord>
-    <coord>
+      <y>273</y>     </coord>
+     <coord>
 <x>586</x>
-     <y>303</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>303</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>label_test</fromnode-name>
-   <fromserviceparameter-name>NT</fromserviceparameter-name>
-   <tonode-name>test</tonode-name>
-   <toserviceparameter-name>NT</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>NT</fromserviceparameter-name>
+    <tonode-name>test</tonode-name>
+    <toserviceparameter-name>NT</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>label_test</fromnode-name>
-   <fromserviceparameter-name>KT</fromserviceparameter-name>
-   <tonode-name>test</tonode-name>
-   <toserviceparameter-name>KT</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>KT</fromserviceparameter-name>
+    <tonode-name>test</tonode-name>
+    <toserviceparameter-name>KT</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>test</fromnode-name>
-   <fromserviceparameter-name>Finished</fromserviceparameter-name>
-   <tonode-name>EndSwitch_OneEven</tonode-name>
-   <toserviceparameter-name>Finished</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>Finished</fromserviceparameter-name>
+    <tonode-name>EndSwitch_OneEven</tonode-name>
+    <toserviceparameter-name>Finished</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>test</fromnode-name>
-   <fromserviceparameter-name>Incr</fromserviceparameter-name>
-   <tonode-name>incr</tonode-name>
-   <toserviceparameter-name>InGate</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>Incr</fromserviceparameter-name>
+    <tonode-name>incr</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>783</x>
-     <y>341</y>    </coord>
-    <coord>
+      <y>341</y>     </coord>
+     <coord>
 <x>782</x>
-     <y>302</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>302</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>test</fromnode-name>
-   <fromserviceparameter-name>Even</fromserviceparameter-name>
-   <tonode-name>div2</tonode-name>
-   <toserviceparameter-name>InGate</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>div2</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>754</x>
-     <y>518</y>    </coord>
-    <coord>
+      <y>518</y>     </coord>
+     <coord>
 <x>753</x>
-     <y>330</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>330</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>test</fromnode-name>
-   <fromserviceparameter-name>Odd</fromserviceparameter-name>
-   <tonode-name>m3p1</tonode-name>
-   <toserviceparameter-name>InGate</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>Odd</fromserviceparameter-name>
+    <tonode-name>m3p1</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>758</x>
-     <y>145</y>    </coord>
-    <coord>
+      <y>145</y>     </coord>
+     <coord>
 <x>760</x>
-     <y>359</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>359</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>test</fromnode-name>
-   <fromserviceparameter-name>N</fromserviceparameter-name>
-   <tonode-name>m3p1</tonode-name>
-   <toserviceparameter-name>anOddInteger</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>N</fromserviceparameter-name>
+    <tonode-name>m3p1</tonode-name>
+    <toserviceparameter-name>anOddInteger</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>767</x>
-     <y>116</y>    </coord>
-    <coord>
+      <y>116</y>     </coord>
+     <coord>
 <x>767</x>
-     <y>116</y>    </coord>
-    <coord>
+      <y>116</y>     </coord>
+     <coord>
 <x>767</x>
-     <y>390</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>390</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>test</fromnode-name>
-   <fromserviceparameter-name>N</fromserviceparameter-name>
-   <tonode-name>div2</tonode-name>
-   <toserviceparameter-name>anEvenInteger</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>N</fromserviceparameter-name>
+    <tonode-name>div2</tonode-name>
+    <toserviceparameter-name>anEvenInteger</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>767</x>
-     <y>489</y>    </coord>
-    <coord>
+      <y>489</y>     </coord>
+     <coord>
 <x>766</x>
-     <y>389</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>389</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>test</fromnode-name>
-   <fromserviceparameter-name>K</fromserviceparameter-name>
-   <tonode-name>EndSwitch_OneEven</tonode-name>
-   <toserviceparameter-name>K</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>K</fromserviceparameter-name>
+    <tonode-name>EndSwitch_OneEven</tonode-name>
+    <toserviceparameter-name>K</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>test</fromnode-name>
-   <fromserviceparameter-name>K</fromserviceparameter-name>
-   <tonode-name>incr</tonode-name>
-   <toserviceparameter-name>aCount</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>K</fromserviceparameter-name>
+    <tonode-name>incr</tonode-name>
+    <toserviceparameter-name>aCount</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>772</x>
-     <y>311</y>    </coord>
-    <coord>
+      <y>311</y>     </coord>
+     <coord>
 <x>772</x>
-     <y>417</y>    </coord>
-    <coord>
+      <y>417</y>     </coord>
+     <coord>
 <x>772</x>
-     <y>417</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>417</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>test</fromnode-name>
-   <fromserviceparameter-name>Default</fromserviceparameter-name>
-   <tonode-name>EndSwitch_OneEven</tonode-name>
-   <toserviceparameter-name>Default</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>Default</fromserviceparameter-name>
+    <tonode-name>EndSwitch_OneEven</tonode-name>
+    <toserviceparameter-name>Default</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>778</x>
-     <y>384</y>    </coord>
-    <coord>
+      <y>384</y>     </coord>
+     <coord>
 <x>778</x>
-     <y>448</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>448</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>control_m3p1</fromnode-name>
-   <fromserviceparameter-name>OutGate</fromserviceparameter-name>
-   <tonode-name>label_test</tonode-name>
-   <toserviceparameter-name>InGate</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>Gate</fromserviceparameter-name>
+    <tonode-name>label_test</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>388</x>
-     <y>388</y>    </coord>
-    <coord>
+      <y>388</y>     </coord>
+     <coord>
 <x>389</x>
-     <y>597</y>    </coord>
-    <coord>
+      <y>597</y>     </coord>
+     <coord>
 <x>1319</x>
-     <y>597</y>    </coord>
-    <coord>
+      <y>597</y>     </coord>
+     <coord>
 <x>1318</x>
-     <y>231</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>231</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>control_div2</fromnode-name>
-   <fromserviceparameter-name>OutGate</fromserviceparameter-name>
-   <tonode-name>label_begin</tonode-name>
-   <toserviceparameter-name>InGate</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>Gate</fromserviceparameter-name>
+    <tonode-name>label_begin</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>4</x>
-     <y>388</y>    </coord>
-    <coord>
+      <y>388</y>     </coord>
+     <coord>
 <x>3</x>
-     <y>587</y>    </coord>
-    <coord>
+      <y>587</y>     </coord>
+     <coord>
 <x>1214</x>
-     <y>588</y>    </coord>
-    <coord>
+      <y>588</y>     </coord>
+     <coord>
 <x>1213</x>
-     <y>546</y>    </coord>   </coord-list>  </link> </link-list>
- <data-list>
+      <y>546</y>     </coord>    </coord-list>   </link>  </link-list>
 <data-list>
 <data>
-<fromnode-name>GraphSyrControl</fromnode-name>
-   <fromserviceparameter-name>label_begin\NB</fromserviceparameter-name>
-   <tonode-name>label_begin</tonode-name>
-   <toserviceparameter-name>NB</toserviceparameter-name>
-   <data-value>
+<fromnode-name>GraphGOTO</fromnode-name>
+    <fromserviceparameter-name>label_begin__NB</fromserviceparameter-name>
+    <tonode-name>label_begin</tonode-name>
+    <toserviceparameter-name>NB</toserviceparameter-name>
+    <data-value>
 <value-type>3</value-type>
-    <value>7</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>GraphSyrControl</fromnode-name>
-   <fromserviceparameter-name>label_begin\KB</fromserviceparameter-name>
-   <tonode-name>label_begin</tonode-name>
-   <toserviceparameter-name>KB</toserviceparameter-name>
-   <data-value>
+     <value>7</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphGOTO</fromnode-name>
+    <fromserviceparameter-name>label_begin__KB</fromserviceparameter-name>
+    <tonode-name>label_begin</tonode-name>
+    <toserviceparameter-name>KB</toserviceparameter-name>
+    <data-value>
 <value-type>3</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data> </data-list></dataflow>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
index 8488517c458d0553f6ee099933bec000f4cb16a6..288913f0c5cb207304542d2618ac6f9a7d57930b 100644 (file)
@@ -2,80 +2,93 @@
 # Generated python file of Graph GraphLoop
 
 from SuperV import *
-# Graph creation 
-GraphLoop = Graph( 'GraphLoop' )
-GraphLoop.SetName( 'GraphLoop' )
-GraphLoop.SetAuthor( '' )
-GraphLoop.SetComment( '' )
-GraphLoop.Coords( 0 , 0 )
 
-# Creation of Factory Nodes
+# Graph creation of GraphLoop
+def DefGraphLoop() :
+    GraphLoop = Graph( 'GraphLoop' )
+    GraphLoop.SetName( 'GraphLoop' )
+    GraphLoop.SetAuthor( '' )
+    GraphLoop.SetComment( '' )
+    GraphLoop.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of Loop Nodes
+    PyInit = []
+    PyInit.append( 'def Init(Index,Min,Max,Incr) :   ' )
+    PyInit.append( '    if Min <= Max :   ' )
+    PyInit.append( '        Index = Min   ' )
+    PyInit.append( '    else :   ' )
+    PyInit.append( '        Index = Max   ' )
+    PyInit.append( '    return Index,Min,Max,Incr   ' )
+    PyMoreInit = []
+    PyMoreInit.append( 'import time ' )
+    PyMoreInit.append( 'def More(Index,Min,Max,Incr) :   ' )
+    PyMoreInit.append( '    time.sleep(2) ' )
+    PyMoreInit.append( '    if Index < Max :   ' )
+    PyMoreInit.append( '        DoLoop = 1   ' )
+    PyMoreInit.append( '    else :   ' )
+    PyMoreInit.append( '        DoLoop = 0   ' )
+    PyMoreInit.append( '    return DoLoop,Index,Min,Max,Incr   ' )
+    PyNextInit = []
+    PyNextInit.append( 'def Next(Index,Min,Max,Incr) :   ' )
+    PyNextInit.append( '    Index = Index + Incr   ' )
+    PyNextInit.append( '    return Index,Min,Max,Incr  ' )
+    Init,EndInit = GraphLoop.LNode( 'Init' , PyInit , 'More' , PyMoreInit , 'Next' , PyNextInit )
+    EndInit.SetName( 'EndInit' )
+    EndInit.SetAuthor( '' )
+    EndInit.SetComment( 'Compute Node' )
+    EndInit.Coords( 366 , 262 )
+    PyEndInit = []
+    EndInit.SetPyFunction( '' , PyEndInit )
+    IInitInitLoop = Init.GetInPort( 'InitLoop' )
+    IInitIndex = Init.InPort( 'Index' , 'long' )
+    IInitMin = Init.InPort( 'Min' , 'long' )
+    IInitMax = Init.InPort( 'Max' , 'long' )
+    IInitIncr = Init.InPort( 'Incr' , 'long' )
+    IInitGate = Init.GetInPort( 'Gate' )
+    OInitDoLoop = Init.GetOutPort( 'DoLoop' )
+    OInitIndex = Init.GetOutPort( 'Index' )
+    OInitMin = Init.GetOutPort( 'Min' )
+    OInitMax = Init.GetOutPort( 'Max' )
+    OInitIncr = Init.GetOutPort( 'Incr' )
+    IEndInitDoLoop = EndInit.GetInPort( 'DoLoop' )
+    IEndInitIndex = EndInit.GetInPort( 'Index' )
+    IEndInitMin = EndInit.GetInPort( 'Min' )
+    IEndInitMax = EndInit.GetInPort( 'Max' )
+    IEndInitIncr = EndInit.GetInPort( 'Incr' )
+    IEndInitGate = EndInit.GetInPort( 'Gate' )
+    OEndInitDoLoop = EndInit.GetOutPort( 'DoLoop' )
+    OEndInitIndex = EndInit.GetOutPort( 'Index' )
+    OEndInitMin = EndInit.GetOutPort( 'Min' )
+    OEndInitMax = EndInit.GetOutPort( 'Max' )
+    OEndInitIncr = EndInit.GetOutPort( 'Incr' )
+    Init.SetName( 'Init' )
+    Init.SetAuthor( '' )
+    Init.SetComment( 'Compute Node' )
+    Init.Coords( 17 , 257 )
+    
+    # Creation of Links
+    LInitIndexEndInitIndex = GraphLoop.Link( OInitIndex , IEndInitIndex )
+    
+    LInitMinEndInitMin = GraphLoop.Link( OInitMin , IEndInitMin )
+    
+    LInitMaxEndInitMax = GraphLoop.Link( OInitMax , IEndInitMax )
+    
+    LInitIncrEndInitIncr = GraphLoop.Link( OInitIncr , IEndInitIncr )
+    
+    # Input datas
+    IInitIndex.Input( 0 )
+    IInitMin.Input( 5 )
+    IInitMax.Input( 10 )
+    IInitIncr.Input( 1 )
+    
+    # Output Ports of the graph
+    #OEndInitIndex = EndInit.GetOutPort( 'Index' )
+    #OEndInitMin = EndInit.GetOutPort( 'Min' )
+    #OEndInitMax = EndInit.GetOutPort( 'Max' )
+    #OEndInitIncr = EndInit.GetOutPort( 'Incr' )
+    return GraphLoop
 
-# Creation of Loop Nodes
-PyInit = []
-PyInit.append( 'def Init(Index,Min,Max,Incr) :  ' )
-PyInit.append( '    if Min <= Max :  ' )
-PyInit.append( '        Index = Min  ' )
-PyInit.append( '    else :  ' )
-PyInit.append( '        Index = Max  ' )
-PyInit.append( '    return Index,Min,Max,Incr  ' )
-PyMoreInit = []
-PyMoreInit.append( 'def More(Index,Min,Max,Incr) :  ' )
-PyMoreInit.append( '    if Index < Max :  ' )
-PyMoreInit.append( '        DoLoop = 1  ' )
-PyMoreInit.append( '    else :  ' )
-PyMoreInit.append( '        DoLoop = 0  ' )
-PyMoreInit.append( '    return DoLoop,Index,Min,Max,Incr  ' )
-PyNextInit = []
-PyNextInit.append( 'def Next(Index,Min,Max,Incr) :  ' )
-PyNextInit.append( '    Index = Index + Incr  ' )
-PyNextInit.append( '    return Index,Min,Max,Incr ' )
-Init,EndInit = GraphLoop.LNode( 'Init' , PyInit , 'More' , PyMoreInit , 'Next' , PyNextInit )
-EndInit.SetName( 'EndInit' )
-EndInit.SetAuthor( '' )
-EndInit.SetComment( '' )
-EndInit.Coords( 314 , 91 )
-Init.InPort( 'Index' , 'long' )
-Init.InPort( 'Min' , 'long' )
-Init.InPort( 'Max' , 'long' )
-Init.InPort( 'Incr' , 'long' )
-Init.OutPort( 'Index' , 'long' )
-Init.OutPort( 'Min' , 'long' )
-Init.OutPort( 'Max' , 'long' )
-Init.OutPort( 'Incr' , 'long' )
-Init.SetName( 'Init' )
-Init.SetAuthor( '' )
-Init.SetComment( '' )
-Init.Coords( 31 , 74 )
-
-# Creation of Links
-InitIndex = Init.Port( 'Index' )
-EndInitIndex = GraphLoop.Link( InitIndex , EndInit.Port( 'Index' ) )
-
-InitMin = Init.Port( 'Min' )
-EndInitMin = GraphLoop.Link( InitMin , EndInit.Port( 'Min' ) )
-
-InitMax = Init.Port( 'Max' )
-EndInitMax = GraphLoop.Link( InitMax , EndInit.Port( 'Max' ) )
-
-InitIncr = Init.Port( 'Incr' )
-EndInitIncr = GraphLoop.Link( InitIncr , EndInit.Port( 'Incr' ) )
-
-# Creation of Input datas
-InitIndex = Init.Input( 'Index' , 0)
-InitMin = Init.Input( 'Min' , 0)
-InitMax = Init.Input( 'Max' , 1000)
-InitIncr = Init.Input( 'Incr' , 1)
-
-# Creation of Output variables
-EndInitIndex = EndInit.Port( 'Index' )
-EndInitMin = EndInit.Port( 'Min' )
-EndInitMax = EndInit.Port( 'Max' )
-EndInitIncr = EndInit.Port( 'Incr' )
-
-GraphLoop.Run()
-
-GraphLoop.DoneW()
-
-GraphLoop.PrintPorts()
 
+GraphLoop = DefGraphLoop()
index 57ef977d3dcb426711106edc47920303f46a6e0d..ec9e895e23d816741ccfebdbb38c916074c63ff5 100644 (file)
-<!DOCTYPE Dataflow>
+<!DOCTYPE SuperGraph>
+<supergraph>
 <dataflow>
 <info-list>
 <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>GraphLoop</node-name>
-   <kind>1</kind>
-   <coupled-node>?</coupled-node>
-   <service>
+    <interface-name>?</interface-name>
+    <node-name>GraphLoop</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
 <service-name>GraphLoop</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Init\Index</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Init__Index</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Init\Min</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Init__Min</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Init\Max</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Init__Max</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Init\Incr</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>Init__Incr</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>EndInit\Index</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>EndInit__Index</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>EndInit\Min</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>EndInit__Min</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>EndInit\Max</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>EndInit__Max</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>EndInit\Incr</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>24/3/2003 - 14:44:35</creation-date>
-   <lastmodification-date>25/3/2003 - 9:50:2</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>?</comment>
-   <x-position>0</x-position>
-   <y-position>0</y-position>  </node> </info-list>
- <node-list>
+       <outParameter-name>EndInit__Incr</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>24/3/2003 - 14:44:35</creation-date>
+    <lastmodification-date>16/12/2004 - 11:8:15</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
 <node-list>
 <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>Init</node-name>
-   <kind>4</kind>
-   <coupled-node>EndInit</coupled-node>
-   <service>
+    <interface-name>?</interface-name>
+    <node-name>Init</node-name>
+    <kind>4</kind>
+    <coupled-node>EndInit</coupled-node>
+    <service>
 <service-name>Init</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Index</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Min</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Max</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Max</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Incr</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>Incr</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Index</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Min</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Max</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Max</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Incr</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list>
+       <outParameter-name>Incr</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
 <PyFunction>
 <FuncName>Init</FuncName>
-     <PyFunc><![CDATA[def Init(Index,Min,Max,Incr) :  ]]></PyFunc>
-     <PyFunc><![CDATA[    if Min <= Max :  ]]></PyFunc>
-     <PyFunc><![CDATA[        Index = Min  ]]></PyFunc>
-     <PyFunc><![CDATA[    else :  ]]></PyFunc>
-     <PyFunc><![CDATA[        Index = Max  ]]></PyFunc>
-     <PyFunc><![CDATA[    return Index,Min,Max,Incr  ]]></PyFunc>    </PyFunction>
-    <PyFunction>
+      <PyFunc><![CDATA[def Init(Index,Min,Max,Incr) :   ]]></PyFunc>
+      <PyFunc><![CDATA[    if Min <= Max :   ]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Min   ]]></PyFunc>
+      <PyFunc><![CDATA[    else :   ]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Max   ]]></PyFunc>
+      <PyFunc><![CDATA[    return Index,Min,Max,Incr   ]]></PyFunc>     </PyFunction>
+     <PyFunction>
 <FuncName>More</FuncName>
-     <PyFunc><![CDATA[def More(Index,Min,Max,Incr) :  ]]></PyFunc>
-     <PyFunc><![CDATA[    if Index < Max :  ]]></PyFunc>
-     <PyFunc><![CDATA[        DoLoop = 1  ]]></PyFunc>
-     <PyFunc><![CDATA[    else :  ]]></PyFunc>
-     <PyFunc><![CDATA[        DoLoop = 0  ]]></PyFunc>
-     <PyFunc><![CDATA[    return DoLoop,Index,Min,Max,Incr  ]]></PyFunc>    </PyFunction>
-    <PyFunction>
+      <PyFunc><![CDATA[import time ]]></PyFunc>
+      <PyFunc><![CDATA[def More(Index,Min,Max,Incr) :   ]]></PyFunc>
+      <PyFunc><![CDATA[    time.sleep(2) ]]></PyFunc>
+      <PyFunc><![CDATA[    if Index < Max :   ]]></PyFunc>
+      <PyFunc><![CDATA[        DoLoop = 1   ]]></PyFunc>
+      <PyFunc><![CDATA[    else :   ]]></PyFunc>
+      <PyFunc><![CDATA[        DoLoop = 0   ]]></PyFunc>
+      <PyFunc><![CDATA[    return DoLoop,Index,Min,Max,Incr   ]]></PyFunc>     </PyFunction>
+     <PyFunction>
 <FuncName>Next</FuncName>
-     <PyFunc><![CDATA[def Next(Index,Min,Max,Incr) :  ]]></PyFunc>
-     <PyFunc><![CDATA[    Index = Index + Incr  ]]></PyFunc>
-     <PyFunc><![CDATA[    return Index,Min,Max,Incr ]]></PyFunc>    </PyFunction>   </PyFunction-list>
-   <creation-date>25/3/2003 - 9:50:2</creation-date>
-   <lastmodification-date>25/3/2003 - 9:50:2</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>?</comment>
-   <x-position>17</x-position>
-   <y-position>257</y-position>  </node>
-  <node>
+      <PyFunc><![CDATA[def Next(Index,Min,Max,Incr) :   ]]></PyFunc>
+      <PyFunc><![CDATA[    Index = Index + Incr   ]]></PyFunc>
+      <PyFunc><![CDATA[    return Index,Min,Max,Incr  ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 11:8:15</creation-date>
+    <lastmodification-date>16/12/2004 - 11:8:15</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>17</x-position>
+    <y-position>257</y-position>   </node>
+   <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>EndInit</node-name>
-   <kind>5</kind>
-   <coupled-node>Init</coupled-node>
-   <service>
+    <interface-name>?</interface-name>
+    <node-name>EndInit</node-name>
+    <kind>5</kind>
+    <coupled-node>Init</coupled-node>
+    <service>
 <service-name>EndInit</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Index</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Min</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Max</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Max</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Incr</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>Incr</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Index</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Min</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Max</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Max</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Incr</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list>
-<PyFunction/>   </PyFunction-list>
-   <creation-date>25/3/2003 - 9:50:2</creation-date>
-   <lastmodification-date>25/3/2003 - 9:50:2</lastmodification-date>
-   <editor-release>1.04</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>?</comment>
-   <x-position>626</x-position>
-   <y-position>259</y-position>  </node> </node-list>
- <link-list>
+       <outParameter-name>Incr</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 11:8:15</creation-date>
+    <lastmodification-date>16/12/2004 - 11:8:15</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>366</x-position>
+    <y-position>262</y-position>   </node>  </node-list>
+  <link-list>
 <link>
 <fromnode-name>Init</fromnode-name>
-   <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
-   <tonode-name>EndInit</tonode-name>
-   <toserviceparameter-name>DoLoop</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>Init</fromnode-name>
-   <fromserviceparameter-name>Index</fromserviceparameter-name>
-   <tonode-name>EndInit</tonode-name>
-   <toserviceparameter-name>Index</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>Init</fromnode-name>
-   <fromserviceparameter-name>Min</fromserviceparameter-name>
-   <tonode-name>EndInit</tonode-name>
-   <toserviceparameter-name>Min</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>Min</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>Init</fromnode-name>
-   <fromserviceparameter-name>Max</fromserviceparameter-name>
-   <tonode-name>EndInit</tonode-name>
-   <toserviceparameter-name>Max</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>Max</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>Init</fromnode-name>
-   <fromserviceparameter-name>Incr</fromserviceparameter-name>
-   <tonode-name>EndInit</tonode-name>
-   <toserviceparameter-name>Incr</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>Incr</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Incr</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>EndInit</fromnode-name>
-   <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
-   <tonode-name>Init</tonode-name>
-   <toserviceparameter-name>InitLoop</toserviceparameter-name>
-   <coord-list/>  </link> </link-list>
- <data-list>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>InitLoop</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
 <data-list>
 <data>
 <fromnode-name>GraphLoop</fromnode-name>
-   <fromserviceparameter-name>Init\Index</fromserviceparameter-name>
-   <tonode-name>Init</tonode-name>
-   <toserviceparameter-name>Index</toserviceparameter-name>
-   <data-value>
+    <fromserviceparameter-name>Init__Index</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
 <value-type>3</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
 <fromnode-name>GraphLoop</fromnode-name>
-   <fromserviceparameter-name>Init\Min</fromserviceparameter-name>
-   <tonode-name>Init</tonode-name>
-   <toserviceparameter-name>Min</toserviceparameter-name>
-   <data-value>
+    <fromserviceparameter-name>Init__Min</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <data-value>
 <value-type>3</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
+     <value>5</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
 <fromnode-name>GraphLoop</fromnode-name>
-   <fromserviceparameter-name>Init\Max</fromserviceparameter-name>
-   <tonode-name>Init</tonode-name>
-   <toserviceparameter-name>Max</toserviceparameter-name>
-   <data-value>
+    <fromserviceparameter-name>Init__Max</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
 <value-type>3</value-type>
-    <value>10</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
+     <value>10</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
 <fromnode-name>GraphLoop</fromnode-name>
-   <fromserviceparameter-name>Init\Incr</fromserviceparameter-name>
-   <tonode-name>Init</tonode-name>
-   <toserviceparameter-name>Incr</toserviceparameter-name>
-   <data-value>
+    <fromserviceparameter-name>Init__Incr</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Incr</toserviceparameter-name>
+    <data-value>
 <value-type>3</value-type>
-    <value>1</value>   </data-value>
-   <coord-list/>  </data> </data-list></dataflow>
+     <value>1</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/GraphLoopDoWhile.py b/examples/GraphLoopDoWhile.py
new file mode 100644 (file)
index 0000000..130a495
--- /dev/null
@@ -0,0 +1,76 @@
+
+# Generated python file of Graph GraphLoopDoWhile
+
+from SuperV import *
+
+# Graph creation of GraphLoopDoWhile
+def DefGraphLoopDoWhile() :
+    GraphLoopDoWhile = Graph( 'GraphLoopDoWhile' )
+    GraphLoopDoWhile.SetName( 'GraphLoopDoWhile' )
+    GraphLoopDoWhile.SetAuthor( 'JR' )
+    GraphLoopDoWhile.SetComment( '' )
+    GraphLoopDoWhile.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of Loop Nodes
+    PyLoop = []
+    PyMoreLoop = []
+    PyMoreLoop.append( '' )
+    PyNextLoop = []
+    PyNextLoop.append( 'def LoopWhileNext(Index,Max) :   ' )
+    PyNextLoop.append( '       Index = Index + 1   ' )
+    PyNextLoop.append( '       return Index,Max   ' )
+    PyNextLoop.append( '' )
+    Loop,EndLoop = GraphLoopDoWhile.LNode( '' , PyLoop , '' , PyMoreLoop , 'LoopWhileNext' , PyNextLoop )
+    EndLoop.SetName( 'EndLoop' )
+    EndLoop.SetAuthor( '' )
+    EndLoop.SetComment( 'Compute Node' )
+    EndLoop.Coords( 414 , 232 )
+    PyEndLoop = []
+    PyEndLoop.append( 'import time    ' )
+    PyEndLoop.append( 'def DoWhile(DoLoop,Index,Max) :   ' )
+    PyEndLoop.append( '        print 'DoWhile',DoLoop,Index,Max ' )
+    PyEndLoop.append( '        time.sleep(2)     ' )
+    PyEndLoop.append( '        if Index == Max :     ' )
+    PyEndLoop.append( '                DoLoop = 0     ' )
+    PyEndLoop.append( '        else :     ' )
+    PyEndLoop.append( '                DoLoop = 1     ' )
+    PyEndLoop.append( '        print 'DoWhile',DoLoop,Index,Max ' )
+    PyEndLoop.append( '        return DoLoop,Index,Max     ' )
+    EndLoop.SetPyFunction( 'DoWhile' , PyEndLoop )
+    ILoopDoLoop = Loop.GetInPort( 'DoLoop' )
+    ILoopIndex = Loop.InPort( 'Index' , 'long' )
+    ILoopMax = Loop.InPort( 'Max' , 'long' )
+    ILoopGate = Loop.GetInPort( 'Gate' )
+    OLoopDoLoop = Loop.GetOutPort( 'DoLoop' )
+    OLoopIndex = Loop.GetOutPort( 'Index' )
+    OLoopMax = Loop.GetOutPort( 'Max' )
+    IEndLoopDoLoop = EndLoop.GetInPort( 'DoLoop' )
+    IEndLoopIndex = EndLoop.GetInPort( 'Index' )
+    IEndLoopMax = EndLoop.GetInPort( 'Max' )
+    IEndLoopGate = EndLoop.GetInPort( 'Gate' )
+    OEndLoopDoLoop = EndLoop.GetOutPort( 'DoLoop' )
+    OEndLoopIndex = EndLoop.GetOutPort( 'Index' )
+    OEndLoopMax = EndLoop.GetOutPort( 'Max' )
+    Loop.SetName( 'Loop' )
+    Loop.SetAuthor( '' )
+    Loop.SetComment( 'Compute Node' )
+    Loop.Coords( 105 , 226 )
+    
+    # Creation of Links
+    LLoopIndexEndLoopIndex = GraphLoopDoWhile.Link( OLoopIndex , IEndLoopIndex )
+    
+    LLoopMaxEndLoopMax = GraphLoopDoWhile.Link( OLoopMax , IEndLoopMax )
+    
+    # Input datas
+    ILoopIndex.Input( 5 )
+    ILoopMax.Input( 10 )
+    
+    # Output Ports of the graph
+    #OEndLoopIndex = EndLoop.GetOutPort( 'Index' )
+    #OEndLoopMax = EndLoop.GetOutPort( 'Max' )
+    return GraphLoopDoWhile
+
+
+GraphLoopDoWhile = DefGraphLoopDoWhile()
diff --git a/examples/GraphLoopDoWhile.xml b/examples/GraphLoopDoWhile.xml
new file mode 100644 (file)
index 0000000..e57d955
--- /dev/null
@@ -0,0 +1,169 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphLoopDoWhile</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphLoopDoWhile</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Loop__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Loop__Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndLoop__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndLoop__Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>16/12/2004 - 15:39:50</creation-date>
+    <lastmodification-date>16/12/2004 - 18:44:10</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>JR</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Loop</node-name>
+    <kind>4</kind>
+    <coupled-node>EndLoop</coupled-node>
+    <service>
+<service-name>Loop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>LoopWhileNext</FuncName>
+      <PyFunc><![CDATA[def LoopWhileNext(Index,Max) :   ]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1   ]]></PyFunc>
+      <PyFunc><![CDATA[        return Index,Max   ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 18:44:10</creation-date>
+    <lastmodification-date>16/12/2004 - 18:44:10</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>105</x-position>
+    <y-position>226</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndLoop</node-name>
+    <kind>5</kind>
+    <coupled-node>Loop</coupled-node>
+    <service>
+<service-name>EndLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>DoWhile</FuncName>
+      <PyFunc><![CDATA[import time    ]]></PyFunc>
+      <PyFunc><![CDATA[def DoWhile(DoLoop,Index,Max) :   ]]></PyFunc>
+      <PyFunc><![CDATA[        print 'DoWhile',DoLoop,Index,Max ]]></PyFunc>
+      <PyFunc><![CDATA[        time.sleep(2)     ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index == Max :     ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 0     ]]></PyFunc>
+      <PyFunc><![CDATA[        else :     ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        print 'DoWhile',DoLoop,Index,Max ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Max     ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 18:44:10</creation-date>
+    <lastmodification-date>16/12/2004 - 18:44:10</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>414</x-position>
+    <y-position>232</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndLoop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>EndLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>Max</fromserviceparameter-name>
+    <tonode-name>EndLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphLoopDoWhile</fromnode-name>
+    <fromserviceparameter-name>Loop__Index</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>5</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphLoopDoWhile</fromnode-name>
+    <fromserviceparameter-name>Loop__Max</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>10</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
index c14aad196004137cca25666b8e4e4a005de94a75..f9998e60673b722f1c0072d9c693544a7ee5c85d 100755 (executable)
 
-# Generated python file of Graph GraphLoopSwitch
+# Generated python file of Graph GraphLoopSwitch_1
 
 from SuperV import *
-# Graph creation 
-GraphLoopSwitch = Graph( 'GraphLoopSwitch' )
-GraphLoopSwitch.SetName( 'GraphLoopSwitch' )
-GraphLoopSwitch.SetAuthor( '' )
-GraphLoopSwitch.SetComment( '' )
-GraphLoopSwitch.Coords( 0 , 0 )
 
-# Creation of Factory Nodes
-
-# Creation of InLine Nodes
-PyIsOdd = []
-PyIsOdd.append( 'from time import *    ' )
-PyIsOdd.append( 'def IsOdd(a,Even) :        ' )
-PyIsOdd.append( '    print a,"IsOdd (GraphLoopSwitch1)"       ' )
-PyIsOdd.append( '    sleep( 1 )    ' )
-PyIsOdd.append( '    return a      ' )
-IsOdd = GraphLoopSwitch.INode( 'IsOdd' , PyIsOdd )
-IsOdd.SetName( 'IsOdd' )
-IsOdd.SetAuthor( '' )
-IsOdd.SetComment( 'Python function' )
-IsOdd.Coords( 397 , 1 )
-IsOdd.InPort( 'a' , 'long' )
-IsOdd.InPort( 'Even' , 'boolean' )
-IsOdd.OutPort( 'a' , 'long' )
-
-# Creation of Loop Nodes
-PyInitLoop = []
-PyInitLoop.append( ' ' )
-PyMoreInitLoop = []
-PyMoreInitLoop.append( ' ' )
-PyNextInitLoop = []
-PyNextInitLoop.append( ' ' )
-InitLoop,EndOfInitLoop = GraphLoopSwitch.LNode( '' , PyInitLoop , '' , PyMoreInitLoop , '' , PyNextInitLoop )
-EndOfInitLoop.SetName( 'EndOfInitLoop' )
-EndOfInitLoop.SetAuthor( '' )
-EndOfInitLoop.SetComment( '' )
-EndOfInitLoop.Coords( 767 , 102 )
-PyEndOfInitLoop = []
-PyEndOfInitLoop.append( 'def EndOfInitLoop( DoLoop , Index , Min , Max ) :' )
-PyEndOfInitLoop.append( '      Index = Index + 1     ' )
-PyEndOfInitLoop.append( '      if Index <= Max :   ' )
-PyEndOfInitLoop.append( '              DoLoop = 1     ' )
-PyEndOfInitLoop.append( '      else :     ' )
-PyEndOfInitLoop.append( '              DoLoop = 0     ' )
-PyEndOfInitLoop.append( '      return DoLoop,Index,Min,Max     ' )
-EndOfInitLoop.SetPyFunction( 'EndOfInitLoop' , PyEndOfInitLoop )
-InitLoop.SetName( 'InitLoop' )
-InitLoop.SetAuthor( '' )
-InitLoop.SetComment( '' )
-InitLoop.Coords( 10 , 108 )
-InitLoop.InPort( 'Index' , 'long' )
-InitLoop.InPort( 'Min' , 'long' )
-InitLoop.InPort( 'Max' , 'long' )
-InitLoop.OutPort( 'Index' , 'long' )
-InitLoop.OutPort( 'Min' , 'long' )
-InitLoop.OutPort( 'Max' , 'long' )
-
-# Creation of Switch Nodes
-PySwitch = []
-PySwitch.append( 'from time import *  ' )
-PySwitch.append( 'def Switch(a) :    ' )
-PySwitch.append( '    if ( a & 1 ) == 0 :  ' )
-PySwitch.append( '        sleep(1)  ' )
-PySwitch.append( '    return a & 1,1-(a&1),a    ' )
-Switch,EndSwitch = GraphLoopSwitch.SNode( 'Switch' , PySwitch )
-EndSwitch.SetName( 'EndSwitch' )
-EndSwitch.SetAuthor( '' )
-EndSwitch.SetComment( '' )
-EndSwitch.Coords( 587 , 103 )
-PyEndSwitch = []
-PyEndSwitch.append( 'def EndSwitch(a) :    ' )
-PyEndSwitch.append( '    if ( a & 1 ) == 0 :  ' )
-PyEndSwitch.append( '        sleep(1)  ' )
-PyEndSwitch.append( '    return a    ' )
-EndSwitch.SetPyFunction( 'EndSwitch' , PyEndSwitch )
-EndSwitch.InPort( 'a' , 'long' )
-EndSwitch.OutPort( 'a' , 'long' )
-Switch.SetName( 'Switch' )
-Switch.SetAuthor( '' )
-Switch.SetComment( '' )
-Switch.Coords( 194 , 109 )
-Switch.InPort( 'a' , 'long' )
-Switch.OutPort( 'Odd' , 'long' )
-Switch.OutPort( 'Even' , 'int' )
-Switch.OutPort( 'a' , 'int' )
-
-# Creation of Links
-IsOdda = IsOdd.Port( 'a' )
-EndSwitcha = GraphLoopSwitch.Link( IsOdda , EndSwitch.Port( 'a' ) )
-EndSwitcha.AddCoord( 1 , 576 , 136 )
-EndSwitcha.AddCoord( 2 , 575 , 81 )
-
-InitLoopIndex = InitLoop.Port( 'Index' )
-Switcha = GraphLoopSwitch.Link( InitLoopIndex , Switch.Port( 'a' ) )
-
-InitLoopMin = InitLoop.Port( 'Min' )
-EndOfInitLoopMin = GraphLoopSwitch.Link( InitLoopMin , EndOfInitLoop.Port( 'Min' ) )
-
-InitLoopMax = InitLoop.Port( 'Max' )
-EndOfInitLoopMax = GraphLoopSwitch.Link( InitLoopMax , EndOfInitLoop.Port( 'Max' ) )
-
-SwitchOdd = Switch.Port( 'Odd' )
-IsOddInGate = GraphLoopSwitch.Link( SwitchOdd , IsOdd.Port( 'InGate' ) )
-
-SwitchEven = Switch.Port( 'Even' )
-EndSwitchDefault = GraphLoopSwitch.Link( SwitchEven , EndSwitch.Port( 'Default' ) )
-
-IsOddEven = GraphLoopSwitch.Link( SwitchEven , IsOdd.Port( 'Even' ) )
-IsOddEven.AddCoord( 1 , 375 , 111 )
-IsOddEven.AddCoord( 2 , 375 , 172 )
-
-Switcha = Switch.Port( 'a' )
-IsOdda = GraphLoopSwitch.Link( Switcha , IsOdd.Port( 'a' ) )
-IsOdda.AddCoord( 1 , 362 , 82 )
-IsOdda.AddCoord( 2 , 360 , 201 )
-
-EndSwitcha = EndSwitch.Port( 'a' )
-EndOfInitLoopIndex = GraphLoopSwitch.Link( EndSwitcha , EndOfInitLoop.Port( 'Index' ) )
-
-# Creation of Input datas
-InitLoopIndex = InitLoop.Input( 'Index' , 0)
-InitLoopMin = InitLoop.Input( 'Min' , 0)
-InitLoopMax = InitLoop.Input( 'Max' , 100)
-
-# Creation of Output variables
-EndOfInitLoopIndex = EndOfInitLoop.Port( 'Index' )
-EndOfInitLoopMin = EndOfInitLoop.Port( 'Min' )
-EndOfInitLoopMax = EndOfInitLoop.Port( 'Max' )
-
-GraphLoopSwitch.Run()
-GraphLoopSwitch.DoneW()
-GraphLoopSwitch.State()
-GraphLoopSwitch.PrintPorts()
+# Graph creation of GraphLoopSwitch_1
+def DefGraphLoopSwitch_1() :
+    GraphLoopSwitch_1 = Graph( 'GraphLoopSwitch_1' )
+    GraphLoopSwitch_1.SetName( 'GraphLoopSwitch_1' )
+    GraphLoopSwitch_1.SetAuthor( '' )
+    GraphLoopSwitch_1.SetComment( '' )
+    GraphLoopSwitch_1.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    PyIsOdd = []
+    PyIsOdd.append( 'from time import *    ' )
+    PyIsOdd.append( 'def IsOdd(a,Even) :        ' )
+    PyIsOdd.append( '    print a,"IsOdd (GraphLoopSwitch1)"       ' )
+    PyIsOdd.append( '    sleep( 1 )    ' )
+    PyIsOdd.append( '    return a      ' )
+    IsOdd = GraphLoopSwitch_1.INode( 'IsOdd' , PyIsOdd )
+    IsOdd.SetName( 'IsOdd' )
+    IsOdd.SetAuthor( '' )
+    IsOdd.SetComment( 'Python function' )
+    IsOdd.Coords( 397 , 1 )
+    IIsOdda = IsOdd.InPort( 'a' , 'long' )
+    IIsOddEven = IsOdd.InPort( 'Even' , 'boolean' )
+    IIsOddGate = IsOdd.GetInPort( 'Gate' )
+    OIsOdda = IsOdd.OutPort( 'a' , 'long' )
+    OIsOddGate = IsOdd.GetOutPort( 'Gate' )
+    
+    # Creation of Loop Nodes
+    PyInitLoop = []
+    PyInitLoop.append( 'def InitLoop(Index,Min,Max) : ' )
+    PyInitLoop.append( '       Index = Min ' )
+    PyInitLoop.append( '       return Index,Min,Max ' )
+    PyInitLoop.append( ' ' )
+    PyMoreInitLoop = []
+    PyMoreInitLoop.append( ' ' )
+    PyNextInitLoop = []
+    PyNextInitLoop.append( ' ' )
+    InitLoop,EndOfInitLoop = GraphLoopSwitch_1.LNode( 'InitLoop' , PyInitLoop , '' , PyMoreInitLoop , '' , PyNextInitLoop )
+    EndOfInitLoop.SetName( 'EndOfInitLoop' )
+    EndOfInitLoop.SetAuthor( '' )
+    EndOfInitLoop.SetComment( 'Compute Node' )
+    EndOfInitLoop.Coords( 767 , 102 )
+    PyEndOfInitLoop = []
+    PyEndOfInitLoop.append( 'def EndOfInitLoop( DoLoop , Index , Min , Max ) :' )
+    PyEndOfInitLoop.append( '  Index = Index + 1     ' )
+    PyEndOfInitLoop.append( '  if Index <= Max :   ' )
+    PyEndOfInitLoop.append( '          DoLoop = 1     ' )
+    PyEndOfInitLoop.append( '  else :     ' )
+    PyEndOfInitLoop.append( '          DoLoop = 0     ' )
+    PyEndOfInitLoop.append( '  return DoLoop,Index,Min,Max     ' )
+    EndOfInitLoop.SetPyFunction( 'EndOfInitLoop' , PyEndOfInitLoop )
+    IInitLoopDoLoop = InitLoop.GetInPort( 'DoLoop' )
+    IInitLoopIndex = InitLoop.InPort( 'Index' , 'long' )
+    IInitLoopMin = InitLoop.InPort( 'Min' , 'long' )
+    IInitLoopMax = InitLoop.InPort( 'Max' , 'long' )
+    IInitLoopGate = InitLoop.GetInPort( 'Gate' )
+    OInitLoopDoLoop = InitLoop.GetOutPort( 'DoLoop' )
+    OInitLoopIndex = InitLoop.GetOutPort( 'Index' )
+    OInitLoopMin = InitLoop.GetOutPort( 'Min' )
+    OInitLoopMax = InitLoop.GetOutPort( 'Max' )
+    IEndOfInitLoopDoLoop = EndOfInitLoop.GetInPort( 'DoLoop' )
+    IEndOfInitLoopIndex = EndOfInitLoop.GetInPort( 'Index' )
+    IEndOfInitLoopMin = EndOfInitLoop.GetInPort( 'Min' )
+    IEndOfInitLoopMax = EndOfInitLoop.GetInPort( 'Max' )
+    IEndOfInitLoopGate = EndOfInitLoop.GetInPort( 'Gate' )
+    OEndOfInitLoopDoLoop = EndOfInitLoop.GetOutPort( 'DoLoop' )
+    OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    InitLoop.SetName( 'InitLoop' )
+    InitLoop.SetAuthor( '' )
+    InitLoop.SetComment( 'Compute Node' )
+    InitLoop.Coords( 10 , 108 )
+    
+    # Creation of Switch Nodes
+    PySwitch = []
+    PySwitch.append( 'from time import *  ' )
+    PySwitch.append( 'def Switch(a) :    ' )
+    PySwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PySwitch.append( '        sleep(1)  ' )
+    PySwitch.append( '    return a & 1,1-(a&1),a    ' )
+    Switch,EndSwitch = GraphLoopSwitch_1.SNode( 'Switch' , PySwitch )
+    EndSwitch.SetName( 'EndSwitch' )
+    EndSwitch.SetAuthor( '' )
+    EndSwitch.SetComment( 'Compute Node' )
+    EndSwitch.Coords( 587 , 103 )
+    PyEndSwitch = []
+    PyEndSwitch.append( 'def EndSwitch(a) :    ' )
+    PyEndSwitch.append( '    if ( a & 1 ) == 0 :  ' )
+    PyEndSwitch.append( '        sleep(1)  ' )
+    PyEndSwitch.append( '    return a    ' )
+    EndSwitch.SetPyFunction( 'EndSwitch' , PyEndSwitch )
+    IEndSwitcha = EndSwitch.InPort( 'a' , 'long' )
+    IEndSwitchDefault = EndSwitch.GetInPort( 'Default' )
+    OEndSwitcha = EndSwitch.OutPort( 'a' , 'long' )
+    OEndSwitchGate = EndSwitch.GetOutPort( 'Gate' )
+    Switch.SetName( 'Switch' )
+    Switch.SetAuthor( '' )
+    Switch.SetComment( 'Compute Node' )
+    Switch.Coords( 194 , 109 )
+    ISwitcha = Switch.InPort( 'a' , 'long' )
+    ISwitchGate = Switch.GetInPort( 'Gate' )
+    OSwitchOdd = Switch.OutPort( 'Odd' , 'long' )
+    OSwitchEven = Switch.OutPort( 'Even' , 'int' )
+    OSwitcha = Switch.OutPort( 'a' , 'int' )
+    OSwitchDefault = Switch.GetOutPort( 'Default' )
+    
+    # Creation of Links
+    LIsOddaEndSwitcha = GraphLoopSwitch_1.Link( OIsOdda , IEndSwitcha )
+    LIsOddaEndSwitcha.AddCoord( 1 , 576 , 136 )
+    LIsOddaEndSwitcha.AddCoord( 2 , 575 , 81 )
+    
+    LInitLoopIndexSwitcha = GraphLoopSwitch_1.Link( OInitLoopIndex , ISwitcha )
+    
+    LInitLoopMinEndOfInitLoopMin = GraphLoopSwitch_1.Link( OInitLoopMin , IEndOfInitLoopMin )
+    
+    LInitLoopMaxEndOfInitLoopMax = GraphLoopSwitch_1.Link( OInitLoopMax , IEndOfInitLoopMax )
+    
+    LSwitchOddIsOddGate = GraphLoopSwitch_1.Link( OSwitchOdd , IIsOddGate )
+    
+    LSwitchEvenEndSwitchDefault = GraphLoopSwitch_1.Link( OSwitchEven , IEndSwitchDefault )
+    
+    LSwitchEvenIsOddEven = GraphLoopSwitch_1.Link( OSwitchEven , IIsOddEven )
+    LSwitchEvenIsOddEven.AddCoord( 1 , 375 , 111 )
+    LSwitchEvenIsOddEven.AddCoord( 2 , 375 , 172 )
+    
+    LSwitchaIsOdda = GraphLoopSwitch_1.Link( OSwitcha , IIsOdda )
+    LSwitchaIsOdda.AddCoord( 1 , 362 , 82 )
+    LSwitchaIsOdda.AddCoord( 2 , 360 , 201 )
+    
+    LEndSwitchaEndOfInitLoopIndex = GraphLoopSwitch_1.Link( OEndSwitcha , IEndOfInitLoopIndex )
+    
+    # Input datas
+    IInitLoopIndex.Input( 0 )
+    IInitLoopMin.Input( 5 )
+    IInitLoopMax.Input( 100 )
+    
+    # Output Ports of the graph
+    #OEndOfInitLoopIndex = EndOfInitLoop.GetOutPort( 'Index' )
+    #OEndOfInitLoopMin = EndOfInitLoop.GetOutPort( 'Min' )
+    #OEndOfInitLoopMax = EndOfInitLoop.GetOutPort( 'Max' )
+    return GraphLoopSwitch_1
+
+
+GraphLoopSwitch_1 = DefGraphLoopSwitch_1()
index a5e717df03ca39b6b133b6925a9a9c5e88ea3cac..d52d92f02c2c225473af3c54d2f75e412d55ea8d 100755 (executable)
-<!DOCTYPE Dataflow>
+<!DOCTYPE SuperGraph>
+<supergraph>
 <dataflow>
 <info-list>
 <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>GraphLoopSwitch</node-name>
-   <kind>1</kind>
-   <coupled-node>?</coupled-node>
-   <service>
-<service-name>GraphLoopSwitch</service-name>
-    <inParameter-list>
+    <interface-name>?</interface-name>
+    <node-name>GraphLoopSwitch_1</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphLoopSwitch_1</service-name>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>InitLoop\Index</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>InitLoop__Index</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>InitLoop\Min</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>InitLoop__Min</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>InitLoop\Max</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>InitLoop__Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>EndOfInitLoop\Index</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>EndOfInitLoop__Index</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>EndOfInitLoop\Min</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>EndOfInitLoop__Min</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>EndOfInitLoop\Max</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list/>
-   <creation-date>22/10/2003 - 10:36:39</creation-date>
-   <lastmodification-date>22/10/2003 - 10:37:20</lastmodification-date>
-   <editor-release>1.05</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>?</comment>
-   <x-position>0</x-position>
-   <y-position>0</y-position>  </node> </info-list>
- <node-list>
+       <outParameter-name>EndOfInitLoop__Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>22/10/2003 - 10:36:39</creation-date>
+    <lastmodification-date>16/12/2004 - 16:45:0</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
 <node-list>
 <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>IsOdd</node-name>
-   <kind>3</kind>
-   <coupled-node>?</coupled-node>
-   <service>
+    <interface-name>?</interface-name>
+    <node-name>IsOdd</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
 <service-name>IsOdd</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>a</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>a</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>boolean</inParameter-type>
-      <inParameter-name>Even</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>Even</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>a</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
 <PyFunction>
 <FuncName>IsOdd</FuncName>
-     <PyFunc><![CDATA[from time import *    ]]></PyFunc>
-     <PyFunc><![CDATA[def IsOdd(a,Even) :        ]]></PyFunc>
-     <PyFunc><![CDATA[    print a,"IsOdd (GraphLoopSwitch1)"       ]]></PyFunc>
-     <PyFunc><![CDATA[    sleep( 1 )    ]]></PyFunc>
-     <PyFunc><![CDATA[    return a      ]]></PyFunc>    </PyFunction>   </PyFunction-list>
-   <creation-date>22/10/2003 - 10:36:39</creation-date>
-   <lastmodification-date>22/10/2003 - 10:36:39</lastmodification-date>
-   <editor-release>1.05</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>Python function</comment>
-   <x-position>397</x-position>
-   <y-position>1</y-position>  </node>
-  <node>
+      <PyFunc><![CDATA[from time import *    ]]></PyFunc>
+      <PyFunc><![CDATA[def IsOdd(a,Even) :        ]]></PyFunc>
+      <PyFunc><![CDATA[    print a,"IsOdd (GraphLoopSwitch1)"       ]]></PyFunc>
+      <PyFunc><![CDATA[    sleep( 1 )    ]]></PyFunc>
+      <PyFunc><![CDATA[    return a      ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 16:45:0</creation-date>
+    <lastmodification-date>16/12/2004 - 16:45:0</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Python function</comment>
+    <x-position>397</x-position>
+    <y-position>1</y-position>   </node>
+   <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>InitLoop</node-name>
-   <kind>4</kind>
-   <coupled-node>EndOfInitLoop</coupled-node>
-   <service>
-<service-name>Loop</service-name>
-    <inParameter-list>
+    <interface-name>?</interface-name>
+    <node-name>InitLoop</node-name>
+    <kind>4</kind>
+    <coupled-node>EndOfInitLoop</coupled-node>
+    <service>
+<service-name>InitLoop</service-name>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Index</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Min</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Max</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Index</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Min</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Max</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
 <PyFunction>
+<FuncName>InitLoop</FuncName>
+      <PyFunc><![CDATA[def InitLoop(Index,Min,Max) : ]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Min ]]></PyFunc>
+      <PyFunc><![CDATA[        return Index,Min,Max ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
 <FuncName>?</FuncName>
-     <PyFunc><![CDATA[?]]></PyFunc>    </PyFunction>
-    <PyFunction>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
 <FuncName>?</FuncName>
-     <PyFunc><![CDATA[?]]></PyFunc>    </PyFunction>
-    <PyFunction>
-<FuncName>?</FuncName>
-     <PyFunc><![CDATA[?]]></PyFunc>    </PyFunction>   </PyFunction-list>
-   <creation-date>22/10/2003 - 10:36:40</creation-date>
-   <lastmodification-date>22/10/2003 - 10:36:40</lastmodification-date>
-   <editor-release>1.05</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>?</comment>
-   <x-position>10</x-position>
-   <y-position>108</y-position>  </node>
-  <node>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 16:45:0</creation-date>
+    <lastmodification-date>16/12/2004 - 16:45:0</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>10</x-position>
+    <y-position>108</y-position>   </node>
+   <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>EndOfInitLoop</node-name>
-   <kind>5</kind>
-   <coupled-node>InitLoop</coupled-node>
-   <service>
-<service-name>EndLoop</service-name>
-    <inParameter-list>
+    <interface-name>?</interface-name>
+    <node-name>EndOfInitLoop</node-name>
+    <kind>5</kind>
+    <coupled-node>InitLoop</coupled-node>
+    <service>
+<service-name>EndOfInitLoop</service-name>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Index</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Min</inParameter-name>     </inParameter>
-     <inParameter>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>Max</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Index</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Min</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Max</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
 <PyFunction>
 <FuncName>EndOfInitLoop</FuncName>
-     <PyFunc><![CDATA[def EndOfInitLoop( DoLoop , Index , Min , Max ) :]]></PyFunc>
-     <PyFunc><![CDATA[ Index = Index + 1     ]]></PyFunc>
-     <PyFunc><![CDATA[ if Index <= Max :   ]]></PyFunc>
-     <PyFunc><![CDATA[         DoLoop = 1     ]]></PyFunc>
-     <PyFunc><![CDATA[ else :     ]]></PyFunc>
-     <PyFunc><![CDATA[         DoLoop = 0     ]]></PyFunc>
-     <PyFunc><![CDATA[ return DoLoop,Index,Min,Max     ]]></PyFunc>    </PyFunction>   </PyFunction-list>
-   <creation-date>22/10/2003 - 10:36:40</creation-date>
-   <lastmodification-date>22/10/2003 - 10:36:40</lastmodification-date>
-   <editor-release>1.05</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>?</comment>
-   <x-position>767</x-position>
-   <y-position>102</y-position>  </node>
-  <node>
+      <PyFunc><![CDATA[def EndOfInitLoop( DoLoop , Index , Min , Max ) :]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index <= Max :   ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        else :     ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 0     ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Min,Max     ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 16:45:0</creation-date>
+    <lastmodification-date>16/12/2004 - 16:45:0</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>767</x-position>
+    <y-position>102</y-position>   </node>
+   <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>Switch</node-name>
-   <kind>6</kind>
-   <coupled-node>EndSwitch</coupled-node>
-   <service>
+    <interface-name>?</interface-name>
+    <node-name>Switch</node-name>
+    <kind>6</kind>
+    <coupled-node>EndSwitch</coupled-node>
+    <service>
 <service-name>Switch</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>a</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>Odd</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Odd</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>int</outParameter-type>
-      <outParameter-name>Even</outParameter-name>     </outParameter>
-     <outParameter>
+       <outParameter-name>Even</outParameter-name>      </outParameter>
+      <outParameter>
 <outParameter-type>int</outParameter-type>
-      <outParameter-name>a</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
 <PyFunction>
 <FuncName>Switch</FuncName>
-     <PyFunc><![CDATA[from time import *  ]]></PyFunc>
-     <PyFunc><![CDATA[def Switch(a) :    ]]></PyFunc>
-     <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
-     <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
-     <PyFunc><![CDATA[    return a & 1,1-(a&1),a    ]]></PyFunc>    </PyFunction>   </PyFunction-list>
-   <creation-date>22/10/2003 - 10:36:59</creation-date>
-   <lastmodification-date>22/10/2003 - 10:36:59</lastmodification-date>
-   <editor-release>1.05</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>?</comment>
-   <x-position>194</x-position>
-   <y-position>109</y-position>  </node>
-  <node>
+      <PyFunc><![CDATA[from time import *  ]]></PyFunc>
+      <PyFunc><![CDATA[def Switch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a & 1,1-(a&1),a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 16:45:0</creation-date>
+    <lastmodification-date>16/12/2004 - 16:45:0</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>194</x-position>
+    <y-position>109</y-position>   </node>
+   <node>
 <component-name>?</component-name>
-   <interface-name>?</interface-name>
-   <node-name>EndSwitch</node-name>
-   <kind>7</kind>
-   <coupled-node>Switch</coupled-node>
-   <service>
+    <interface-name>?</interface-name>
+    <node-name>EndSwitch</node-name>
+    <kind>7</kind>
+    <coupled-node>Switch</coupled-node>
+    <service>
 <service-name>EndSwitch</service-name>
-    <inParameter-list>
+     <inParameter-list>
 <inParameter>
 <inParameter-type>long</inParameter-type>
-      <inParameter-name>a</inParameter-name>     </inParameter>    </inParameter-list>
-    <outParameter-list>
+       <inParameter-name>a</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
 <outParameter>
 <outParameter-type>long</outParameter-type>
-      <outParameter-name>a</outParameter-name>     </outParameter>    </outParameter-list>   </service>
-   <Parameter-list/>
-   <PyFunction-list>
+       <outParameter-name>a</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
 <PyFunction>
 <FuncName>EndSwitch</FuncName>
-     <PyFunc><![CDATA[def EndSwitch(a) :    ]]></PyFunc>
-     <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
-     <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
-     <PyFunc><![CDATA[    return a    ]]></PyFunc>    </PyFunction>   </PyFunction-list>
-   <creation-date>22/10/2003 - 10:36:59</creation-date>
-   <lastmodification-date>22/10/2003 - 10:36:59</lastmodification-date>
-   <editor-release>1.05</editor-release>
-   <author>?</author>
-   <container>?</container>
-   <comment>?</comment>
-   <x-position>587</x-position>
-   <y-position>103</y-position>  </node> </node-list>
- <link-list>
+      <PyFunc><![CDATA[def EndSwitch(a) :    ]]></PyFunc>
+      <PyFunc><![CDATA[    if ( a & 1 ) == 0 :  ]]></PyFunc>
+      <PyFunc><![CDATA[        sleep(1)  ]]></PyFunc>
+      <PyFunc><![CDATA[    return a    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 16:45:0</creation-date>
+    <lastmodification-date>16/12/2004 - 16:45:0</lastmodification-date>
+    <editor-release>1.05</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>587</x-position>
+    <y-position>103</y-position>   </node>  </node-list>
 <link-list>
 <link>
 <fromnode-name>IsOdd</fromnode-name>
-   <fromserviceparameter-name>a</fromserviceparameter-name>
-   <tonode-name>EndSwitch</tonode-name>
-   <toserviceparameter-name>a</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>576</x>
-     <y>136</y>    </coord>
-    <coord>
+      <y>136</y>     </coord>
+     <coord>
 <x>575</x>
-     <y>81</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>81</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>InitLoop</fromnode-name>
-   <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
-   <tonode-name>EndOfInitLoop</tonode-name>
-   <toserviceparameter-name>DoLoop</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>InitLoop</fromnode-name>
-   <fromserviceparameter-name>Index</fromserviceparameter-name>
-   <tonode-name>Switch</tonode-name>
-   <toserviceparameter-name>a</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>Switch</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>InitLoop</fromnode-name>
-   <fromserviceparameter-name>Min</fromserviceparameter-name>
-   <tonode-name>EndOfInitLoop</tonode-name>
-   <toserviceparameter-name>Min</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>Min</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>InitLoop</fromnode-name>
-   <fromserviceparameter-name>Max</fromserviceparameter-name>
-   <tonode-name>EndOfInitLoop</tonode-name>
-   <toserviceparameter-name>Max</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>Max</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>EndOfInitLoop</fromnode-name>
-   <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
-   <tonode-name>InitLoop</tonode-name>
-   <toserviceparameter-name>InitLoop</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>Switch</fromnode-name>
-   <fromserviceparameter-name>Odd</fromserviceparameter-name>
-   <tonode-name>IsOdd</tonode-name>
-   <toserviceparameter-name>InGate</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>Odd</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>Switch</fromnode-name>
-   <fromserviceparameter-name>Even</fromserviceparameter-name>
-   <tonode-name>EndSwitch</tonode-name>
-   <toserviceparameter-name>Default</toserviceparameter-name>
-   <coord-list/>  </link>
-  <link>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>EndSwitch</tonode-name>
+    <toserviceparameter-name>Default</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
 <fromnode-name>Switch</fromnode-name>
-   <fromserviceparameter-name>Even</fromserviceparameter-name>
-   <tonode-name>IsOdd</tonode-name>
-   <toserviceparameter-name>Even</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>Even</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>Even</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>375</x>
-     <y>111</y>    </coord>
-    <coord>
+      <y>111</y>     </coord>
+     <coord>
 <x>375</x>
-     <y>172</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>172</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>Switch</fromnode-name>
-   <fromserviceparameter-name>a</fromserviceparameter-name>
-   <tonode-name>IsOdd</tonode-name>
-   <toserviceparameter-name>a</toserviceparameter-name>
-   <coord-list>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>IsOdd</tonode-name>
+    <toserviceparameter-name>a</toserviceparameter-name>
+    <coord-list>
 <coord>
 <x>362</x>
-     <y>82</y>    </coord>
-    <coord>
+      <y>82</y>     </coord>
+     <coord>
 <x>360</x>
-     <y>201</y>    </coord>   </coord-list>  </link>
-  <link>
+      <y>201</y>     </coord>    </coord-list>   </link>
+   <link>
 <fromnode-name>EndSwitch</fromnode-name>
-   <fromserviceparameter-name>a</fromserviceparameter-name>
-   <tonode-name>EndOfInitLoop</tonode-name>
-   <toserviceparameter-name>Index</toserviceparameter-name>
-   <coord-list/>  </link> </link-list>
- <data-list>
+    <fromserviceparameter-name>a</fromserviceparameter-name>
+    <tonode-name>EndOfInitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
 <data-list>
 <data>
-<fromnode-name>GraphLoopSwitch</fromnode-name>
-   <fromserviceparameter-name>InitLoop\Index</fromserviceparameter-name>
-   <tonode-name>InitLoop</tonode-name>
-   <toserviceparameter-name>Index</toserviceparameter-name>
-   <data-value>
+<fromnode-name>GraphLoopSwitch_1</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Index</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
 <value-type>3</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>GraphLoopSwitch</fromnode-name>
-   <fromserviceparameter-name>InitLoop\Min</fromserviceparameter-name>
-   <tonode-name>InitLoop</tonode-name>
-   <toserviceparameter-name>Min</toserviceparameter-name>
-   <data-value>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphLoopSwitch_1</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Min</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <data-value>
 <value-type>3</value-type>
-    <value>0</value>   </data-value>
-   <coord-list/>  </data>
-  <data>
-<fromnode-name>GraphLoopSwitch</fromnode-name>
-   <fromserviceparameter-name>InitLoop\Max</fromserviceparameter-name>
-   <tonode-name>InitLoop</tonode-name>
-   <toserviceparameter-name>Max</toserviceparameter-name>
-   <data-value>
+     <value>5</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphLoopSwitch_1</fromnode-name>
+    <fromserviceparameter-name>InitLoop__Max</fromserviceparameter-name>
+    <tonode-name>InitLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
 <value-type>3</value-type>
-    <value>100</value>   </data-value>
-   <coord-list/>  </data> </data-list></dataflow>
+     <value>100</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/GraphLoopWhile.py b/examples/GraphLoopWhile.py
new file mode 100644 (file)
index 0000000..c6f8f8d
--- /dev/null
@@ -0,0 +1,74 @@
+
+# Generated python file of Graph GraphLoopWhile
+
+from SuperV import *
+
+# Graph creation of GraphLoopWhile
+def DefGraphLoopWhile() :
+    GraphLoopWhile = Graph( 'GraphLoopWhile' )
+    GraphLoopWhile.SetName( 'GraphLoopWhile' )
+    GraphLoopWhile.SetAuthor( 'JR' )
+    GraphLoopWhile.SetComment( '' )
+    GraphLoopWhile.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of Loop Nodes
+    PyLoop = []
+    PyMoreLoop = []
+    PyMoreLoop.append( 'import time ' )
+    PyMoreLoop.append( 'def LoopWhileMore(Index,Max) :  ' )
+    PyMoreLoop.append( '       time.sleep(2) ' )
+    PyMoreLoop.append( '       if Index < Max :  ' )
+    PyMoreLoop.append( '               DoLoop = 1  ' )
+    PyMoreLoop.append( '       else :  ' )
+    PyMoreLoop.append( '               DoLoop = 0  ' )
+    PyMoreLoop.append( '       return DoLoop,Index,Max  ' )
+    PyMoreLoop.append( '' )
+    PyNextLoop = []
+    PyNextLoop.append( 'def LoopWhileNext(Index,Max) :  ' )
+    PyNextLoop.append( '       Index = Index + 1  ' )
+    PyNextLoop.append( '       return Index,Max  ' )
+    PyNextLoop.append( '' )
+    Loop,EndLoop = GraphLoopWhile.LNode( '' , PyLoop , 'LoopWhileMore' , PyMoreLoop , 'LoopWhileNext' , PyNextLoop )
+    EndLoop.SetName( 'EndLoop' )
+    EndLoop.SetAuthor( '' )
+    EndLoop.SetComment( 'Compute Node' )
+    EndLoop.Coords( 414 , 232 )
+    PyEndLoop = []
+    EndLoop.SetPyFunction( 'EndLoop' , PyEndLoop )
+    ILoopDoLoop = Loop.GetInPort( 'DoLoop' )
+    ILoopIndex = Loop.InPort( 'Index' , 'long' )
+    ILoopMax = Loop.InPort( 'Max' , 'long' )
+    ILoopGate = Loop.GetInPort( 'Gate' )
+    OLoopDoLoop = Loop.GetOutPort( 'DoLoop' )
+    OLoopIndex = Loop.GetOutPort( 'Index' )
+    OLoopMax = Loop.GetOutPort( 'Max' )
+    IEndLoopDoLoop = EndLoop.GetInPort( 'DoLoop' )
+    IEndLoopIndex = EndLoop.GetInPort( 'Index' )
+    IEndLoopMax = EndLoop.GetInPort( 'Max' )
+    IEndLoopGate = EndLoop.GetInPort( 'Gate' )
+    OEndLoopDoLoop = EndLoop.GetOutPort( 'DoLoop' )
+    OEndLoopIndex = EndLoop.GetOutPort( 'Index' )
+    OEndLoopMax = EndLoop.GetOutPort( 'Max' )
+    Loop.SetName( 'Loop' )
+    Loop.SetAuthor( '' )
+    Loop.SetComment( 'Compute Node' )
+    Loop.Coords( 105 , 226 )
+    
+    # Creation of Links
+    LLoopIndexEndLoopIndex = GraphLoopWhile.Link( OLoopIndex , IEndLoopIndex )
+    
+    LLoopMaxEndLoopMax = GraphLoopWhile.Link( OLoopMax , IEndLoopMax )
+    
+    # Input datas
+    ILoopIndex.Input( 5 )
+    ILoopMax.Input( 10 )
+    
+    # Output Ports of the graph
+    #OEndLoopIndex = EndLoop.GetOutPort( 'Index' )
+    #OEndLoopMax = EndLoop.GetOutPort( 'Max' )
+    return GraphLoopWhile
+
+
+GraphLoopWhile = DefGraphLoopWhile()
diff --git a/examples/GraphLoopWhile.xml b/examples/GraphLoopWhile.xml
new file mode 100644 (file)
index 0000000..1733430
--- /dev/null
@@ -0,0 +1,168 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphLoopWhile</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphLoopWhile_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Loop__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Loop__Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndLoop__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndLoop__Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>16/12/2004 - 15:39:50</creation-date>
+    <lastmodification-date>16/12/2004 - 16:51:46</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>JR</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Loop</node-name>
+    <kind>4</kind>
+    <coupled-node>EndLoop</coupled-node>
+    <service>
+<service-name>Loop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>LoopWhileMore</FuncName>
+      <PyFunc><![CDATA[import time ]]></PyFunc>
+      <PyFunc><![CDATA[def LoopWhileMore(Index,Max) :  ]]></PyFunc>
+      <PyFunc><![CDATA[        time.sleep(2) ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index < Max :  ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1  ]]></PyFunc>
+      <PyFunc><![CDATA[        else :  ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 0  ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Max  ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>LoopWhileNext</FuncName>
+      <PyFunc><![CDATA[def LoopWhileNext(Index,Max) :  ]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1  ]]></PyFunc>
+      <PyFunc><![CDATA[        return Index,Max  ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 16:51:46</creation-date>
+    <lastmodification-date>16/12/2004 - 16:51:46</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>105</x-position>
+    <y-position>226</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndLoop</node-name>
+    <kind>5</kind>
+    <coupled-node>Loop</coupled-node>
+    <service>
+<service-name>EndLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndLoop</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 16:51:46</creation-date>
+    <lastmodification-date>16/12/2004 - 16:51:46</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>414</x-position>
+    <y-position>232</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndLoop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>EndLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>Max</fromserviceparameter-name>
+    <tonode-name>EndLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphLoopWhile</fromnode-name>
+    <fromserviceparameter-name>Loop__Index</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>5</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphLoopWhile</fromnode-name>
+    <fromserviceparameter-name>Loop__Max</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>10</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/GraphLoopsCoupled.py b/examples/GraphLoopsCoupled.py
new file mode 100644 (file)
index 0000000..26e5c5d
--- /dev/null
@@ -0,0 +1,215 @@
+
+# Generated python file of Graph GraphLoopsCoupled_3
+
+from SuperV import *
+
+# Graph creation of GraphLoopsCoupled_3
+def DefGraphLoopsCoupled_3() :
+    GraphLoopsCoupled_3 = Graph( 'GraphLoopsCoupled_3' )
+    GraphLoopsCoupled_3.SetName( 'GraphLoopsCoupled_3' )
+    GraphLoopsCoupled_3.SetAuthor( 'JR' )
+    GraphLoopsCoupled_3.SetComment( '' )
+    GraphLoopsCoupled_3.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of InLine Nodes
+    PyAdd = []
+    PyAdd.append( 'def Add(x,y) : ' )
+    PyAdd.append( '    return x+y ' )
+    PyAdd.append( '' )
+    Add = GraphLoopsCoupled_3.INode( 'Add' , PyAdd )
+    Add.SetName( 'Add' )
+    Add.SetAuthor( '' )
+    Add.SetComment( 'Compute Node' )
+    Add.Coords( 245 , 38 )
+    IAddx = Add.InPort( 'x' , 'long' )
+    IAddy = Add.InPort( 'y' , 'long' )
+    IAddGate = Add.GetInPort( 'Gate' )
+    OAddz = Add.OutPort( 'z' , 'long' )
+    OAddGate = Add.GetOutPort( 'Gate' )
+    
+    PyAdd_1 = []
+    PyAdd_1.append( 'def Add(x,y) :  ' )
+    PyAdd_1.append( '  return x+y  ' )
+    PyAdd_1.append( '' )
+    Add_1 = GraphLoopsCoupled_3.INode( 'Add' , PyAdd_1 )
+    Add_1.SetName( 'Add_1' )
+    Add_1.SetAuthor( '' )
+    Add_1.SetComment( 'Compute Node' )
+    Add_1.Coords( 243 , 288 )
+    IAdd_1x = Add_1.InPort( 'x' , 'long' )
+    IAdd_1y = Add_1.InPort( 'y' , 'long' )
+    IAdd_1Gate = Add_1.GetInPort( 'Gate' )
+    OAdd_1z = Add_1.OutPort( 'z' , 'long' )
+    OAdd_1Gate = Add_1.GetOutPort( 'Gate' )
+    
+    PySub = []
+    PySub.append( 'def Sub(x,y) :  ' )
+    PySub.append( '    return x-y  ' )
+    PySub.append( '' )
+    Sub = GraphLoopsCoupled_3.INode( 'Sub' , PySub )
+    Sub.SetName( 'Sub' )
+    Sub.SetAuthor( '' )
+    Sub.SetComment( 'Compute Node' )
+    Sub.Coords( 458 , 18 )
+    ISubx = Sub.InPort( 'x' , 'long' )
+    ISuby = Sub.InPort( 'y' , 'long' )
+    ISubGate = Sub.GetInPort( 'Gate' )
+    OSubz = Sub.OutPort( 'z' , 'long' )
+    OSubGate = Sub.GetOutPort( 'Gate' )
+    
+    PySub_1 = []
+    PySub_1.append( 'def Sub(x,y) :   ' )
+    PySub_1.append( '  return x-y   ' )
+    PySub_1.append( '' )
+    Sub_1 = GraphLoopsCoupled_3.INode( 'Sub' , PySub_1 )
+    Sub_1.SetName( 'Sub_1' )
+    Sub_1.SetAuthor( '' )
+    Sub_1.SetComment( 'Compute Node' )
+    Sub_1.Coords( 461 , 268 )
+    ISub_1x = Sub_1.InPort( 'x' , 'long' )
+    ISub_1y = Sub_1.InPort( 'y' , 'long' )
+    ISub_1Gate = Sub_1.GetInPort( 'Gate' )
+    OSub_1z = Sub_1.OutPort( 'z' , 'long' )
+    OSub_1Gate = Sub_1.GetOutPort( 'Gate' )
+    
+    # Creation of Loop Nodes
+    PyLoop = []
+    PyLoop.append( '  ' )
+    PyMoreLoop = []
+    PyMoreLoop.append( 'def More(Index,Max,z) :    ' )
+    PyMoreLoop.append( '       DoLoop = 0    ' )
+    PyMoreLoop.append( '       if Index < Max :   ' )
+    PyMoreLoop.append( '               DoLoop = 1    ' )
+    PyMoreLoop.append( '       return DoLoop,Index,Max,z ' )
+    PyMoreLoop.append( '  ' )
+    PyNextLoop = []
+    PyNextLoop.append( 'def Next(Index,Max,z) :    ' )
+    PyNextLoop.append( '       Index = Index + 1    ' )
+    PyNextLoop.append( '       return Index,Max,z  ' )
+    PyNextLoop.append( '  ' )
+    Loop,EndLoop = GraphLoopsCoupled_3.LNode( '' , PyLoop , 'More' , PyMoreLoop , 'Next' , PyNextLoop )
+    EndLoop.SetName( 'EndLoop' )
+    EndLoop.SetAuthor( '' )
+    EndLoop.SetComment( 'Compute Node' )
+    EndLoop.Coords( 662 , 38 )
+    PyEndLoop = []
+    EndLoop.SetPyFunction( 'EndLoop' , PyEndLoop )
+    ILoopDoLoop = Loop.GetInPort( 'DoLoop' )
+    ILoopIndex = Loop.InPort( 'Index' , 'long' )
+    ILoopMax = Loop.InPort( 'Max' , 'long' )
+    ILoopz = Loop.InPort( 'z' , 'long' )
+    ILoopGate = Loop.GetInPort( 'Gate' )
+    OLoopDoLoop = Loop.GetOutPort( 'DoLoop' )
+    OLoopIndex = Loop.GetOutPort( 'Index' )
+    OLoopMax = Loop.GetOutPort( 'Max' )
+    OLoopz = Loop.GetOutPort( 'z' )
+    IEndLoopDoLoop = EndLoop.GetInPort( 'DoLoop' )
+    IEndLoopIndex = EndLoop.GetInPort( 'Index' )
+    IEndLoopMax = EndLoop.GetInPort( 'Max' )
+    IEndLoopz = EndLoop.GetInPort( 'z' )
+    IEndLoopGate = EndLoop.GetInPort( 'Gate' )
+    OEndLoopDoLoop = EndLoop.GetOutPort( 'DoLoop' )
+    OEndLoopIndex = EndLoop.GetOutPort( 'Index' )
+    OEndLoopMax = EndLoop.GetOutPort( 'Max' )
+    OEndLoopz = EndLoop.GetOutPort( 'z' )
+    OEndLoopGate = EndLoop.GetOutPort( 'Gate' )
+    Loop.SetName( 'Loop' )
+    Loop.SetAuthor( '' )
+    Loop.SetComment( 'Compute Node' )
+    Loop.Coords( 15 , 58 )
+    
+    PyInit = []
+    PyInit.append( '  ' )
+    PyMoreInit = []
+    PyMoreInit.append( 'def More(Index,Max,z) :      ' )
+    PyMoreInit.append( '       DoLoop = 0      ' )
+    PyMoreInit.append( '       if Index < Max :     ' )
+    PyMoreInit.append( '               DoLoop = 1      ' )
+    PyMoreInit.append( '       return DoLoop,Index,Max,z      ' )
+    PyMoreInit.append( '  ' )
+    PyNextInit = []
+    PyNextInit.append( 'def Next(Index,Max,z) :     ' )
+    PyNextInit.append( '       Index = Index + 1     ' )
+    PyNextInit.append( '       return Index,Max,z     ' )
+    PyNextInit.append( '  ' )
+    Init,EndInit = GraphLoopsCoupled_3.LNode( '' , PyInit , 'More' , PyMoreInit , 'Next' , PyNextInit )
+    EndInit.SetName( 'EndInit' )
+    EndInit.SetAuthor( '' )
+    EndInit.SetComment( 'Compute Node' )
+    EndInit.Coords( 670 , 288 )
+    PyEndInit = []
+    EndInit.SetPyFunction( 'EndInit' , PyEndInit )
+    IInitDoLoop = Init.GetInPort( 'DoLoop' )
+    IInitIndex = Init.InPort( 'Index' , 'long' )
+    IInitMax = Init.InPort( 'Max' , 'long' )
+    IInitz = Init.InPort( 'z' , 'long' )
+    IInitGate = Init.GetInPort( 'Gate' )
+    OInitDoLoop = Init.GetOutPort( 'DoLoop' )
+    OInitIndex = Init.GetOutPort( 'Index' )
+    OInitMax = Init.GetOutPort( 'Max' )
+    OInitz = Init.GetOutPort( 'z' )
+    IEndInitDoLoop = EndInit.GetInPort( 'DoLoop' )
+    IEndInitIndex = EndInit.GetInPort( 'Index' )
+    IEndInitMax = EndInit.GetInPort( 'Max' )
+    IEndInitz = EndInit.GetInPort( 'z' )
+    IEndInitGate = EndInit.GetInPort( 'Gate' )
+    OEndInitDoLoop = EndInit.GetOutPort( 'DoLoop' )
+    OEndInitIndex = EndInit.GetOutPort( 'Index' )
+    OEndInitMax = EndInit.GetOutPort( 'Max' )
+    OEndInitz = EndInit.GetOutPort( 'z' )
+    OEndInitGate = EndInit.GetOutPort( 'Gate' )
+    Init.SetName( 'Init' )
+    Init.SetAuthor( '' )
+    Init.SetComment( 'Compute Node' )
+    Init.Coords( 10 , 308 )
+    
+    # Creation of Links
+    LAddzSuby = GraphLoopsCoupled_3.Link( OAddz , ISuby )
+    
+    LAddzSub_1x = GraphLoopsCoupled_3.Link( OAddz , ISub_1x )
+    
+    LAdd_1zSub_1y = GraphLoopsCoupled_3.Link( OAdd_1z , ISub_1y )
+    
+    LAdd_1zSubx = GraphLoopsCoupled_3.Link( OAdd_1z , ISubx )
+    
+    LSubzEndInitz = GraphLoopsCoupled_3.Link( OSubz , IEndInitz )
+    
+    LSub_1zEndLoopz = GraphLoopsCoupled_3.Link( OSub_1z , IEndLoopz )
+    
+    LLoopIndexEndLoopIndex = GraphLoopsCoupled_3.Link( OLoopIndex , IEndLoopIndex )
+    
+    LLoopMaxEndLoopMax = GraphLoopsCoupled_3.Link( OLoopMax , IEndLoopMax )
+    
+    LLoopMaxAddx = GraphLoopsCoupled_3.Link( OLoopMax , IAddx )
+    
+    LLoopzAddy = GraphLoopsCoupled_3.Link( OLoopz , IAddy )
+    
+    LInitIndexEndInitIndex = GraphLoopsCoupled_3.Link( OInitIndex , IEndInitIndex )
+    
+    LInitMaxEndInitMax = GraphLoopsCoupled_3.Link( OInitMax , IEndInitMax )
+    
+    LInitMaxAdd_1x = GraphLoopsCoupled_3.Link( OInitMax , IAdd_1x )
+    
+    LInitzAdd_1y = GraphLoopsCoupled_3.Link( OInitz , IAdd_1y )
+    
+    # Input datas
+    ILoopIndex.Input( 5 )
+    ILoopMax.Input( 15 )
+    ILoopz.Input( -1 )
+    IInitIndex.Input( 3 )
+    IInitMax.Input( 13 )
+    IInitz.Input( -2 )
+    
+    # Output Ports of the graph
+    #OEndLoopIndex = EndLoop.GetOutPort( 'Index' )
+    #OEndLoopMax = EndLoop.GetOutPort( 'Max' )
+    #OEndLoopz = EndLoop.GetOutPort( 'z' )
+    #OEndInitIndex = EndInit.GetOutPort( 'Index' )
+    #OEndInitMax = EndInit.GetOutPort( 'Max' )
+    #OEndInitz = EndInit.GetOutPort( 'z' )
+    return GraphLoopsCoupled_3
+
+
+GraphLoopsCoupled_3 = DefGraphLoopsCoupled_3()
diff --git a/examples/GraphLoopsCoupled.xml b/examples/GraphLoopsCoupled.xml
new file mode 100644 (file)
index 0000000..33d583e
--- /dev/null
@@ -0,0 +1,553 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphLoopsCoupled_3</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphLoopsCoupled_3</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Loop__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Loop__Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Loop__z</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Init__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Init__Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Init__z</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndLoop__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndLoop__Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndLoop__z</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndInit__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndInit__Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndInit__z</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>17/12/2004 - 17:11:7</creation-date>
+    <lastmodification-date>17/12/2004 - 18:26:39</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>JR</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Add</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>Add</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>x</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>y</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>z</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Add</FuncName>
+      <PyFunc><![CDATA[def Add(x,y) : ]]></PyFunc>
+      <PyFunc><![CDATA[        return x+y ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>17/12/2004 - 18:26:39</creation-date>
+    <lastmodification-date>17/12/2004 - 18:26:39</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>245</x-position>
+    <y-position>38</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Add_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>Add_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>x</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>y</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>z</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Add</FuncName>
+      <PyFunc><![CDATA[def Add(x,y) :  ]]></PyFunc>
+      <PyFunc><![CDATA[        return x+y  ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>17/12/2004 - 18:26:39</creation-date>
+    <lastmodification-date>17/12/2004 - 18:26:39</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>243</x-position>
+    <y-position>288</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Sub</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>Sub</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>x</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>y</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>z</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Sub</FuncName>
+      <PyFunc><![CDATA[def Sub(x,y) :  ]]></PyFunc>
+      <PyFunc><![CDATA[        return x-y  ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>17/12/2004 - 18:26:39</creation-date>
+    <lastmodification-date>17/12/2004 - 18:26:39</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>458</x-position>
+    <y-position>18</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Sub_1</node-name>
+    <kind>3</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>Sub_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>x</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>y</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>z</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Sub</FuncName>
+      <PyFunc><![CDATA[def Sub(x,y) :   ]]></PyFunc>
+      <PyFunc><![CDATA[        return x-y   ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>17/12/2004 - 18:26:39</creation-date>
+    <lastmodification-date>17/12/2004 - 18:26:39</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>461</x-position>
+    <y-position>268</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Loop</node-name>
+    <kind>4</kind>
+    <coupled-node>EndLoop</coupled-node>
+    <service>
+<service-name>Loop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>z</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>z</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>More</FuncName>
+      <PyFunc><![CDATA[def More(Index,Max,z) :    ]]></PyFunc>
+      <PyFunc><![CDATA[        DoLoop = 0    ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index < Max :   ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1    ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Max,z ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>Next</FuncName>
+      <PyFunc><![CDATA[def Next(Index,Max,z) :    ]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1    ]]></PyFunc>
+      <PyFunc><![CDATA[        return Index,Max,z  ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>17/12/2004 - 18:26:39</creation-date>
+    <lastmodification-date>17/12/2004 - 18:26:39</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>15</x-position>
+    <y-position>58</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndLoop</node-name>
+    <kind>5</kind>
+    <coupled-node>Loop</coupled-node>
+    <service>
+<service-name>EndLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>z</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>z</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndLoop</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>17/12/2004 - 18:26:39</creation-date>
+    <lastmodification-date>17/12/2004 - 18:26:39</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>662</x-position>
+    <y-position>38</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Init</node-name>
+    <kind>4</kind>
+    <coupled-node>EndInit</coupled-node>
+    <service>
+<service-name>Init</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>z</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>z</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>More</FuncName>
+      <PyFunc><![CDATA[def More(Index,Max,z) :      ]]></PyFunc>
+      <PyFunc><![CDATA[        DoLoop = 0      ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index < Max :     ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1      ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Max,z      ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>Next</FuncName>
+      <PyFunc><![CDATA[def Next(Index,Max,z) :     ]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1     ]]></PyFunc>
+      <PyFunc><![CDATA[        return Index,Max,z     ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>17/12/2004 - 18:26:39</creation-date>
+    <lastmodification-date>17/12/2004 - 18:26:39</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>10</x-position>
+    <y-position>308</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndInit</node-name>
+    <kind>5</kind>
+    <coupled-node>Init</coupled-node>
+    <service>
+<service-name>EndInit</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>z</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>z</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndInit</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>17/12/2004 - 18:26:39</creation-date>
+    <lastmodification-date>17/12/2004 - 18:26:39</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>670</x-position>
+    <y-position>288</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>Add</fromnode-name>
+    <fromserviceparameter-name>z</fromserviceparameter-name>
+    <tonode-name>Sub</tonode-name>
+    <toserviceparameter-name>y</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Add</fromnode-name>
+    <fromserviceparameter-name>z</fromserviceparameter-name>
+    <tonode-name>Sub_1</tonode-name>
+    <toserviceparameter-name>x</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Add_1</fromnode-name>
+    <fromserviceparameter-name>z</fromserviceparameter-name>
+    <tonode-name>Sub_1</tonode-name>
+    <toserviceparameter-name>y</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Add_1</fromnode-name>
+    <fromserviceparameter-name>z</fromserviceparameter-name>
+    <tonode-name>Sub</tonode-name>
+    <toserviceparameter-name>x</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Sub</fromnode-name>
+    <fromserviceparameter-name>z</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>z</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Sub_1</fromnode-name>
+    <fromserviceparameter-name>z</fromserviceparameter-name>
+    <tonode-name>EndLoop</tonode-name>
+    <toserviceparameter-name>z</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndLoop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>EndLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>Max</fromserviceparameter-name>
+    <tonode-name>EndLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>Max</fromserviceparameter-name>
+    <tonode-name>Add</tonode-name>
+    <toserviceparameter-name>x</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>z</fromserviceparameter-name>
+    <tonode-name>Add</tonode-name>
+    <toserviceparameter-name>y</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>Max</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>Max</fromserviceparameter-name>
+    <tonode-name>Add_1</tonode-name>
+    <toserviceparameter-name>x</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>z</fromserviceparameter-name>
+    <tonode-name>Add_1</tonode-name>
+    <toserviceparameter-name>y</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndInit</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphLoopsCoupled_3</fromnode-name>
+    <fromserviceparameter-name>Loop__Index</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>5</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphLoopsCoupled_3</fromnode-name>
+    <fromserviceparameter-name>Loop__Max</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>15</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphLoopsCoupled_3</fromnode-name>
+    <fromserviceparameter-name>Loop__z</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>z</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>-1</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphLoopsCoupled_3</fromnode-name>
+    <fromserviceparameter-name>Init__Index</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>3</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphLoopsCoupled_3</fromnode-name>
+    <fromserviceparameter-name>Init__Max</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>13</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphLoopsCoupled_3</fromnode-name>
+    <fromserviceparameter-name>Init__z</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>z</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>-2</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/GraphNonVoidEndLoop.py b/examples/GraphNonVoidEndLoop.py
new file mode 100644 (file)
index 0000000..5131b3b
--- /dev/null
@@ -0,0 +1,101 @@
+
+# Generated python file of Graph GraphNonVoidEndLoop
+
+from SuperV import *
+
+# Graph creation of GraphNonVoidEndLoop
+def DefGraphNonVoidEndLoop() :
+    GraphNonVoidEndLoop = Graph( 'GraphNonVoidEndLoop' )
+    GraphNonVoidEndLoop.SetName( 'GraphNonVoidEndLoop' )
+    GraphNonVoidEndLoop.SetAuthor( '' )
+    GraphNonVoidEndLoop.SetComment( '' )
+    GraphNonVoidEndLoop.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of Loop Nodes
+    PyInit = []
+    PyInit.append( 'def Init(Index,Min,Max,Incr) :     ' )
+    PyInit.append( '    if Min <= Max :     ' )
+    PyInit.append( '        Index = Min     ' )
+    PyInit.append( '    else :     ' )
+    PyInit.append( '        Index = Max     ' )
+    PyInit.append( '    print 'Init',Index,Min,Max,Incr   ' )
+    PyInit.append( '    return Index,Min,Max,Incr     ' )
+    PyMoreInit = []
+    PyMoreInit.append( 'import time ' )
+    PyMoreInit.append( 'def More(Index,Min,Max,Incr) :   ' )
+    PyMoreInit.append( '    time.sleep(2) ' )
+    PyMoreInit.append( '    if Index < Max :     ' )
+    PyMoreInit.append( '        DoLoop = 1     ' )
+    PyMoreInit.append( '    else :     ' )
+    PyMoreInit.append( '        DoLoop = 0     ' )
+    PyMoreInit.append( '    print 'More', DoLoop,Index,Min,Max,Incr   ' )
+    PyMoreInit.append( '    return DoLoop,Index,Min,Max,Incr     ' )
+    PyNextInit = []
+    PyNextInit.append( 'def Next(Index,Min,Max,Incr) :     ' )
+    PyNextInit.append( '    Index = Index + Incr     ' )
+    PyNextInit.append( '    print 'Next', Index,Min,Max,Incr   ' )
+    PyNextInit.append( '    return Index,Min,Max,Incr    ' )
+    Init,EndInit = GraphNonVoidEndLoop.LNode( 'Init' , PyInit , 'More' , PyMoreInit , 'Next' , PyNextInit )
+    EndInit.SetName( 'EndInit' )
+    EndInit.SetAuthor( '' )
+    EndInit.SetComment( 'Compute Node' )
+    EndInit.Coords( 411 , 260 )
+    PyEndInit = []
+    PyEndInit.append( 'def EndLoop(DoLoop,Index,Min,Max,Incr) : ' )
+    PyEndInit.append( '        print 'EndLoop',DoLoop,Index,Min,Max,Incr ' )
+    PyEndInit.append( '        return DoLoop,Index,Min,Max,Incr ' )
+    PyEndInit.append( '' )
+    EndInit.SetPyFunction( 'EndLoop' , PyEndInit )
+    IInitDoLoop = Init.GetInPort( 'DoLoop' )
+    IInitIndex = Init.InPort( 'Index' , 'long' )
+    IInitMin = Init.InPort( 'Min' , 'long' )
+    IInitMax = Init.InPort( 'Max' , 'long' )
+    IInitIncr = Init.InPort( 'Incr' , 'long' )
+    IInitGate = Init.GetInPort( 'Gate' )
+    OInitDoLoop = Init.GetOutPort( 'DoLoop' )
+    OInitIndex = Init.GetOutPort( 'Index' )
+    OInitMin = Init.GetOutPort( 'Min' )
+    OInitMax = Init.GetOutPort( 'Max' )
+    OInitIncr = Init.GetOutPort( 'Incr' )
+    IEndInitDoLoop = EndInit.GetInPort( 'DoLoop' )
+    IEndInitIndex = EndInit.GetInPort( 'Index' )
+    IEndInitMin = EndInit.GetInPort( 'Min' )
+    IEndInitMax = EndInit.GetInPort( 'Max' )
+    IEndInitIncr = EndInit.GetInPort( 'Incr' )
+    IEndInitGate = EndInit.GetInPort( 'Gate' )
+    OEndInitDoLoop = EndInit.GetOutPort( 'DoLoop' )
+    OEndInitIndex = EndInit.GetOutPort( 'Index' )
+    OEndInitMin = EndInit.GetOutPort( 'Min' )
+    OEndInitMax = EndInit.GetOutPort( 'Max' )
+    OEndInitIncr = EndInit.GetOutPort( 'Incr' )
+    Init.SetName( 'Init' )
+    Init.SetAuthor( '' )
+    Init.SetComment( 'Compute Node' )
+    Init.Coords( 17 , 257 )
+    
+    # Creation of Links
+    LInitIndexEndInitIndex = GraphNonVoidEndLoop.Link( OInitIndex , IEndInitIndex )
+    
+    LInitMinEndInitMin = GraphNonVoidEndLoop.Link( OInitMin , IEndInitMin )
+    
+    LInitMaxEndInitMax = GraphNonVoidEndLoop.Link( OInitMax , IEndInitMax )
+    
+    LInitIncrEndInitIncr = GraphNonVoidEndLoop.Link( OInitIncr , IEndInitIncr )
+    
+    # Input datas
+    IInitIndex.Input( 0 )
+    IInitMin.Input( 5 )
+    IInitMax.Input( 10 )
+    IInitIncr.Input( 1 )
+    
+    # Output Ports of the graph
+    #OEndInitIndex = EndInit.GetOutPort( 'Index' )
+    #OEndInitMin = EndInit.GetOutPort( 'Min' )
+    #OEndInitMax = EndInit.GetOutPort( 'Max' )
+    #OEndInitIncr = EndInit.GetOutPort( 'Incr' )
+    return GraphNonVoidEndLoop
+
+
+GraphNonVoidEndLoop = DefGraphNonVoidEndLoop()
diff --git a/examples/GraphNonVoidEndLoop.xml b/examples/GraphNonVoidEndLoop.xml
new file mode 100644 (file)
index 0000000..8094cb0
--- /dev/null
@@ -0,0 +1,243 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphNonVoidEndLoop</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphNonVoidEndLoop_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Init__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Init__Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Init__Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Init__Incr</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndInit__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndInit__Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndInit__Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndInit__Incr</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>24/3/2003 - 14:44:35</creation-date>
+    <lastmodification-date>16/12/2004 - 16:53:28</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Init</node-name>
+    <kind>4</kind>
+    <coupled-node>EndInit</coupled-node>
+    <service>
+<service-name>Init</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Incr</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Incr</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Init</FuncName>
+      <PyFunc><![CDATA[def Init(Index,Min,Max,Incr) :     ]]></PyFunc>
+      <PyFunc><![CDATA[    if Min <= Max :     ]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Min     ]]></PyFunc>
+      <PyFunc><![CDATA[    else :     ]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Max     ]]></PyFunc>
+      <PyFunc><![CDATA[    print 'Init',Index,Min,Max,Incr   ]]></PyFunc>
+      <PyFunc><![CDATA[    return Index,Min,Max,Incr     ]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>More</FuncName>
+      <PyFunc><![CDATA[import time ]]></PyFunc>
+      <PyFunc><![CDATA[def More(Index,Min,Max,Incr) :   ]]></PyFunc>
+      <PyFunc><![CDATA[    time.sleep(2) ]]></PyFunc>
+      <PyFunc><![CDATA[    if Index < Max :     ]]></PyFunc>
+      <PyFunc><![CDATA[        DoLoop = 1     ]]></PyFunc>
+      <PyFunc><![CDATA[    else :     ]]></PyFunc>
+      <PyFunc><![CDATA[        DoLoop = 0     ]]></PyFunc>
+      <PyFunc><![CDATA[    print 'More', DoLoop,Index,Min,Max,Incr   ]]></PyFunc>
+      <PyFunc><![CDATA[    return DoLoop,Index,Min,Max,Incr     ]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>Next</FuncName>
+      <PyFunc><![CDATA[def Next(Index,Min,Max,Incr) :     ]]></PyFunc>
+      <PyFunc><![CDATA[    Index = Index + Incr     ]]></PyFunc>
+      <PyFunc><![CDATA[    print 'Next', Index,Min,Max,Incr   ]]></PyFunc>
+      <PyFunc><![CDATA[    return Index,Min,Max,Incr    ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 16:53:28</creation-date>
+    <lastmodification-date>16/12/2004 - 16:53:28</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>17</x-position>
+    <y-position>257</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndInit</node-name>
+    <kind>5</kind>
+    <coupled-node>Init</coupled-node>
+    <service>
+<service-name>EndInit</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Incr</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Incr</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndLoop</FuncName>
+      <PyFunc><![CDATA[def EndLoop(DoLoop,Index,Min,Max,Incr) : ]]></PyFunc>
+      <PyFunc><![CDATA[        print 'EndLoop',DoLoop,Index,Min,Max,Incr ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Min,Max,Incr ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 16:53:28</creation-date>
+    <lastmodification-date>16/12/2004 - 16:53:28</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>411</x-position>
+    <y-position>260</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>Min</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>Max</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>Incr</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Incr</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndInit</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphNonVoidEndLoop</fromnode-name>
+    <fromserviceparameter-name>Init__Index</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphNonVoidEndLoop</fromnode-name>
+    <fromserviceparameter-name>Init__Min</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>5</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphNonVoidEndLoop</fromnode-name>
+    <fromserviceparameter-name>Init__Max</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>10</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphNonVoidEndLoop</fromnode-name>
+    <fromserviceparameter-name>Init__Incr</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Incr</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>1</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/GraphTwoLoops.py b/examples/GraphTwoLoops.py
new file mode 100644 (file)
index 0000000..98b1989
--- /dev/null
@@ -0,0 +1,132 @@
+
+# Generated python file of Graph GraphTwoLoops
+
+from SuperV import *
+
+# Graph creation of GraphTwoLoops
+def DefGraphTwoLoops() :
+    GraphTwoLoops = Graph( 'GraphTwoLoops' )
+    GraphTwoLoops.SetName( 'GraphTwoLoops' )
+    GraphTwoLoops.SetAuthor( 'JR' )
+    GraphTwoLoops.SetComment( '' )
+    GraphTwoLoops.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of Loop Nodes
+    PyLoop1 = []
+    PyLoop1.append( 'def Loop1(Index,Max) :      ' )
+    PyLoop1.append( '  return Index,Max        ' )
+    PyLoop1.append( '' )
+    PyMoreLoop1 = []
+    PyMoreLoop1.append( 'import time  ' )
+    PyMoreLoop1.append( 'def More(Index,Max) :   ' )
+    PyMoreLoop1.append( '      time.sleep(2)  ' )
+    PyMoreLoop1.append( '      DoLoop = 0       ' )
+    PyMoreLoop1.append( '      if Index < Max :       ' )
+    PyMoreLoop1.append( '              DoLoop = 1       ' )
+    PyMoreLoop1.append( '      return DoLoop,Index,Max       ' )
+    PyMoreLoop1.append( '' )
+    PyNextLoop1 = []
+    PyNextLoop1.append( 'def Next(Index,Max) :       ' )
+    PyNextLoop1.append( '      Index = Index + 1       ' )
+    PyNextLoop1.append( '      return Index,Max       ' )
+    PyNextLoop1.append( '' )
+    Loop1,EndLoop1 = GraphTwoLoops.LNode( 'Loop1' , PyLoop1 , 'More' , PyMoreLoop1 , 'Next' , PyNextLoop1 )
+    EndLoop1.SetName( 'EndLoop1' )
+    EndLoop1.SetAuthor( '' )
+    EndLoop1.SetComment( 'Compute Node' )
+    EndLoop1.Coords( 634 , 177 )
+    PyEndLoop1 = []
+    EndLoop1.SetPyFunction( 'EndLoop1' , PyEndLoop1 )
+    ILoop1DoLoop = Loop1.GetInPort( 'DoLoop' )
+    ILoop1Index = Loop1.InPort( 'Index' , 'long' )
+    ILoop1Max = Loop1.InPort( 'Max' , 'long' )
+    ILoop1Gate = Loop1.GetInPort( 'Gate' )
+    OLoop1DoLoop = Loop1.GetOutPort( 'DoLoop' )
+    OLoop1Index = Loop1.GetOutPort( 'Index' )
+    OLoop1Max = Loop1.GetOutPort( 'Max' )
+    IEndLoop1DoLoop = EndLoop1.GetInPort( 'DoLoop' )
+    IEndLoop1Index = EndLoop1.GetInPort( 'Index' )
+    IEndLoop1Max = EndLoop1.GetInPort( 'Max' )
+    IEndLoop1Gate = EndLoop1.GetInPort( 'Gate' )
+    OEndLoop1DoLoop = EndLoop1.GetOutPort( 'DoLoop' )
+    OEndLoop1Index = EndLoop1.GetOutPort( 'Index' )
+    OEndLoop1Max = EndLoop1.GetOutPort( 'Max' )
+    OEndLoop1Gate = EndLoop1.GetOutPort( 'Gate' )
+    Loop1.SetName( 'Loop1' )
+    Loop1.SetAuthor( '' )
+    Loop1.SetComment( 'Compute Node' )
+    Loop1.Coords( 7 , 175 )
+    
+    PyLoop = []
+    PyMoreLoop = []
+    PyMoreLoop.append( '' )
+    PyNextLoop = []
+    PyNextLoop.append( 'def Next(Index,Max) : ' )
+    PyNextLoop.append( '       Index = Index + 1 ' )
+    PyNextLoop.append( '       return Index,Max ' )
+    PyNextLoop.append( '' )
+    Loop,EndLoop = GraphTwoLoops.LNode( '' , PyLoop , '' , PyMoreLoop , 'Next' , PyNextLoop )
+    EndLoop.SetName( 'EndLoop' )
+    EndLoop.SetAuthor( '' )
+    EndLoop.SetComment( 'Compute Node' )
+    EndLoop.Coords( 426 , 180 )
+    PyEndLoop = []
+    PyEndLoop.append( 'import time ' )
+    PyEndLoop.append( 'def EndLoop(DoLoop,Index,Max) :  ' )
+    PyEndLoop.append( '        time.sleep(1) ' )
+    PyEndLoop.append( '        DoLoop = 0  ' )
+    PyEndLoop.append( '        if Index < Max :  ' )
+    PyEndLoop.append( '                DoLoop = 1  ' )
+    PyEndLoop.append( '        return DoLoop,Index,Max  ' )
+    PyEndLoop.append( '' )
+    EndLoop.SetPyFunction( 'EndLoop' , PyEndLoop )
+    ILoopDoLoop = Loop.GetInPort( 'DoLoop' )
+    ILoopIndex = Loop.InPort( 'Index' , 'long' )
+    ILoopMax = Loop.InPort( 'Max' , 'long' )
+    ILoopGate = Loop.GetInPort( 'Gate' )
+    OLoopDoLoop = Loop.GetOutPort( 'DoLoop' )
+    OLoopIndex = Loop.GetOutPort( 'Index' )
+    OLoopMax = Loop.GetOutPort( 'Max' )
+    IEndLoopDoLoop = EndLoop.GetInPort( 'DoLoop' )
+    IEndLoopIndex = EndLoop.GetInPort( 'Index' )
+    IEndLoopMax = EndLoop.GetInPort( 'Max' )
+    IEndLoopGate = EndLoop.GetInPort( 'Gate' )
+    OEndLoopDoLoop = EndLoop.GetOutPort( 'DoLoop' )
+    OEndLoopIndex = EndLoop.GetOutPort( 'Index' )
+    OEndLoopMax = EndLoop.GetOutPort( 'Max' )
+    OEndLoopGate = EndLoop.GetOutPort( 'Gate' )
+    Loop.SetName( 'Loop' )
+    Loop.SetAuthor( '' )
+    Loop.SetComment( 'Compute Node' )
+    Loop.Coords( 208 , 179 )
+    
+    # Creation of Links
+    LLoop1IndexEndLoop1Index = GraphTwoLoops.Link( OLoop1Index , IEndLoop1Index )
+    
+    LLoop1MaxEndLoop1Max = GraphTwoLoops.Link( OLoop1Max , IEndLoop1Max )
+    
+    LLoop1GateLoopGate = GraphTwoLoops.Link( OLoop1Gate , ILoopGate )
+    
+    LLoopIndexEndLoopIndex = GraphTwoLoops.Link( OLoopIndex , IEndLoopIndex )
+    
+    LLoopMaxEndLoopMax = GraphTwoLoops.Link( OLoopMax , IEndLoopMax )
+    
+    LEndLoopGateEndLoop1Gate = GraphTwoLoops.Link( OEndLoopGate , IEndLoop1Gate )
+    
+    # Input datas
+    ILoop1Index.Input( 5 )
+    ILoop1Max.Input( 15 )
+    ILoopIndex.Input( 2 )
+    ILoopMax.Input( 20 )
+    
+    # Output Ports of the graph
+    #OEndLoop1Index = EndLoop1.GetOutPort( 'Index' )
+    #OEndLoop1Max = EndLoop1.GetOutPort( 'Max' )
+    #OEndLoopIndex = EndLoop.GetOutPort( 'Index' )
+    #OEndLoopMax = EndLoop.GetOutPort( 'Max' )
+    return GraphTwoLoops
+
+
+GraphTwoLoops = DefGraphTwoLoops()
diff --git a/examples/GraphTwoLoops.xml b/examples/GraphTwoLoops.xml
new file mode 100644 (file)
index 0000000..2809c05
--- /dev/null
@@ -0,0 +1,321 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphTwoLoops</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>aNewDataFlow</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Loop1__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Loop1__Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Loop__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Loop__Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndLoop1__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndLoop1__Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndLoop__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndLoop__Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>17/12/2004 - 11:3:21</creation-date>
+    <lastmodification-date>17/12/2004 - 16:23:40</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>JR</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Loop1</node-name>
+    <kind>4</kind>
+    <coupled-node>EndLoop1</coupled-node>
+    <service>
+<service-name>Loop1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Loop1</FuncName>
+      <PyFunc><![CDATA[def Loop1(Index,Max) :      ]]></PyFunc>
+      <PyFunc><![CDATA[        return Index,Max        ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>More</FuncName>
+      <PyFunc><![CDATA[import time  ]]></PyFunc>
+      <PyFunc><![CDATA[def More(Index,Max) :   ]]></PyFunc>
+      <PyFunc><![CDATA[        time.sleep(2)  ]]></PyFunc>
+      <PyFunc><![CDATA[        DoLoop = 0       ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index < Max :       ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1       ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Max       ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>Next</FuncName>
+      <PyFunc><![CDATA[def Next(Index,Max) :       ]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1       ]]></PyFunc>
+      <PyFunc><![CDATA[        return Index,Max       ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>17/12/2004 - 16:23:40</creation-date>
+    <lastmodification-date>17/12/2004 - 16:23:40</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>7</x-position>
+    <y-position>175</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndLoop1</node-name>
+    <kind>5</kind>
+    <coupled-node>Loop1</coupled-node>
+    <service>
+<service-name>EndLoop1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndLoop1</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>17/12/2004 - 16:23:40</creation-date>
+    <lastmodification-date>17/12/2004 - 16:23:40</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>634</x-position>
+    <y-position>177</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Loop</node-name>
+    <kind>4</kind>
+    <coupled-node>EndLoop</coupled-node>
+    <service>
+<service-name>Loop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>Next</FuncName>
+      <PyFunc><![CDATA[def Next(Index,Max) : ]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Index + 1 ]]></PyFunc>
+      <PyFunc><![CDATA[        return Index,Max ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>17/12/2004 - 16:23:40</creation-date>
+    <lastmodification-date>17/12/2004 - 16:23:40</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>208</x-position>
+    <y-position>179</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndLoop</node-name>
+    <kind>5</kind>
+    <coupled-node>Loop</coupled-node>
+    <service>
+<service-name>EndLoop</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndLoop</FuncName>
+      <PyFunc><![CDATA[import time ]]></PyFunc>
+      <PyFunc><![CDATA[def EndLoop(DoLoop,Index,Max) :  ]]></PyFunc>
+      <PyFunc><![CDATA[        time.sleep(1) ]]></PyFunc>
+      <PyFunc><![CDATA[        DoLoop = 0  ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index < Max :  ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 1  ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Max  ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>17/12/2004 - 16:23:40</creation-date>
+    <lastmodification-date>17/12/2004 - 16:23:40</lastmodification-date>
+    <editor-release>2.0</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>426</x-position>
+    <y-position>180</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>Loop1</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndLoop1</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop1</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>EndLoop1</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop1</fromnode-name>
+    <fromserviceparameter-name>Max</fromserviceparameter-name>
+    <tonode-name>EndLoop1</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop1</fromnode-name>
+    <fromserviceparameter-name>Gate</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndLoop1</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>Loop1</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndLoop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>EndLoop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Loop</fromnode-name>
+    <fromserviceparameter-name>Max</fromserviceparameter-name>
+    <tonode-name>EndLoop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndLoop</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndLoop</fromnode-name>
+    <fromserviceparameter-name>Gate</fromserviceparameter-name>
+    <tonode-name>EndLoop1</tonode-name>
+    <toserviceparameter-name>Gate</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphTwoLoops</fromnode-name>
+    <fromserviceparameter-name>Loop1__Index</fromserviceparameter-name>
+    <tonode-name>Loop1</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>5</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphTwoLoops</fromnode-name>
+    <fromserviceparameter-name>Loop1__Max</fromserviceparameter-name>
+    <tonode-name>Loop1</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>15</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphTwoLoops</fromnode-name>
+    <fromserviceparameter-name>Loop__Index</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>2</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphTwoLoops</fromnode-name>
+    <fromserviceparameter-name>Loop__Max</fromserviceparameter-name>
+    <tonode-name>Loop</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>20</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
diff --git a/examples/GraphVoidMoreLoop.py b/examples/GraphVoidMoreLoop.py
new file mode 100644 (file)
index 0000000..e83d66d
--- /dev/null
@@ -0,0 +1,97 @@
+
+# Generated python file of Graph GraphNonVoidEndLoop_1
+
+from SuperV import *
+
+# Graph creation of GraphNonVoidEndLoop_1
+def DefGraphNonVoidEndLoop_1() :
+    GraphNonVoidEndLoop_1 = Graph( 'GraphNonVoidEndLoop_1' )
+    GraphNonVoidEndLoop_1.SetName( 'GraphNonVoidEndLoop_1' )
+    GraphNonVoidEndLoop_1.SetAuthor( '' )
+    GraphNonVoidEndLoop_1.SetComment( '' )
+    GraphNonVoidEndLoop_1.Coords( 0 , 0 )
+    
+    # Creation of Factory Nodes
+    
+    # Creation of Loop Nodes
+    PyInit = []
+    PyInit.append( 'def Init(Index,Min,Max,Incr) :      ' )
+    PyInit.append( '    if Min <= Max :      ' )
+    PyInit.append( '        Index = Min      ' )
+    PyInit.append( '    else :      ' )
+    PyInit.append( '        Index = Max      ' )
+    PyInit.append( '    print 'Init',Index,Min,Max,Incr    ' )
+    PyInit.append( '    return Index,Min,Max,Incr      ' )
+    PyMoreInit = []
+    PyMoreInit.append( ' ' )
+    PyNextInit = []
+    PyNextInit.append( 'import time ' )
+    PyNextInit.append( 'def Next(Index,Min,Max,Incr) :   ' )
+    PyNextInit.append( '    time.sleep(2) ' )
+    PyNextInit.append( '    Index = Index + Incr      ' )
+    PyNextInit.append( '    print 'Next', Index,Min,Max,Incr    ' )
+    PyNextInit.append( '    return Index,Min,Max,Incr     ' )
+    Init,EndInit = GraphNonVoidEndLoop_1.LNode( 'Init' , PyInit , '' , PyMoreInit , 'Next' , PyNextInit )
+    EndInit.SetName( 'EndInit' )
+    EndInit.SetAuthor( '' )
+    EndInit.SetComment( 'Compute Node' )
+    EndInit.Coords( 411 , 260 )
+    PyEndInit = []
+    PyEndInit.append( 'def EndLoop(DoLoop,Index,Min,Max,Incr) :  ' )
+    PyEndInit.append( '        print 'EndLoop',DoLoop,Index,Min,Max,Incr ' )
+    PyEndInit.append( '        if Index == Max : ' )
+    PyEndInit.append( '                DoLoop = 0  ' )
+    PyEndInit.append( '        return DoLoop,Index,Min,Max,Incr  ' )
+    PyEndInit.append( '' )
+    EndInit.SetPyFunction( 'EndLoop' , PyEndInit )
+    IInitInitLoop = Init.GetInPort( 'InitLoop' )
+    IInitIndex = Init.InPort( 'Index' , 'long' )
+    IInitMin = Init.InPort( 'Min' , 'long' )
+    IInitMax = Init.InPort( 'Max' , 'long' )
+    IInitIncr = Init.InPort( 'Incr' , 'long' )
+    IInitGate = Init.GetInPort( 'Gate' )
+    OInitDoLoop = Init.GetOutPort( 'DoLoop' )
+    OInitIndex = Init.GetOutPort( 'Index' )
+    OInitMin = Init.GetOutPort( 'Min' )
+    OInitMax = Init.GetOutPort( 'Max' )
+    OInitIncr = Init.GetOutPort( 'Incr' )
+    IEndInitDoLoop = EndInit.GetInPort( 'DoLoop' )
+    IEndInitIndex = EndInit.GetInPort( 'Index' )
+    IEndInitMin = EndInit.GetInPort( 'Min' )
+    IEndInitMax = EndInit.GetInPort( 'Max' )
+    IEndInitIncr = EndInit.GetInPort( 'Incr' )
+    IEndInitGate = EndInit.GetInPort( 'Gate' )
+    OEndInitDoLoop = EndInit.GetOutPort( 'DoLoop' )
+    OEndInitIndex = EndInit.GetOutPort( 'Index' )
+    OEndInitMin = EndInit.GetOutPort( 'Min' )
+    OEndInitMax = EndInit.GetOutPort( 'Max' )
+    OEndInitIncr = EndInit.GetOutPort( 'Incr' )
+    Init.SetName( 'Init' )
+    Init.SetAuthor( '' )
+    Init.SetComment( 'Compute Node' )
+    Init.Coords( 17 , 257 )
+    
+    # Creation of Links
+    LInitIndexEndInitIndex = GraphNonVoidEndLoop_1.Link( OInitIndex , IEndInitIndex )
+    
+    LInitMinEndInitMin = GraphNonVoidEndLoop_1.Link( OInitMin , IEndInitMin )
+    
+    LInitMaxEndInitMax = GraphNonVoidEndLoop_1.Link( OInitMax , IEndInitMax )
+    
+    LInitIncrEndInitIncr = GraphNonVoidEndLoop_1.Link( OInitIncr , IEndInitIncr )
+    
+    # Input datas
+    IInitIndex.Input( 0 )
+    IInitMin.Input( 5 )
+    IInitMax.Input( 10 )
+    IInitIncr.Input( 1 )
+    
+    # Output Ports of the graph
+    #OEndInitIndex = EndInit.GetOutPort( 'Index' )
+    #OEndInitMin = EndInit.GetOutPort( 'Min' )
+    #OEndInitMax = EndInit.GetOutPort( 'Max' )
+    #OEndInitIncr = EndInit.GetOutPort( 'Incr' )
+    return GraphNonVoidEndLoop_1
+
+
+GraphNonVoidEndLoop_1 = DefGraphNonVoidEndLoop_1()
diff --git a/examples/GraphVoidMoreLoop.xml b/examples/GraphVoidMoreLoop.xml
new file mode 100644 (file)
index 0000000..6126ed7
--- /dev/null
@@ -0,0 +1,239 @@
+<!DOCTYPE SuperGraph>
+<supergraph>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>GraphNonVoidEndLoop_1</node-name>
+    <kind>1</kind>
+    <coupled-node>?</coupled-node>
+    <service>
+<service-name>GraphNonVoidEndLoop_1</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Init__Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Init__Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Init__Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Init__Incr</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndInit__Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndInit__Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndInit__Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>EndInit__Incr</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list/>
+    <creation-date>24/3/2003 - 14:44:35</creation-date>
+    <lastmodification-date>16/12/2004 - 11:17:3</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>?</comment>
+    <x-position>0</x-position>
+    <y-position>0</y-position>   </node>  </info-list>
+  <node-list>
+<node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>Init</node-name>
+    <kind>4</kind>
+    <coupled-node>EndInit</coupled-node>
+    <service>
+<service-name>Init</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Incr</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Incr</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>Init</FuncName>
+      <PyFunc><![CDATA[def Init(Index,Min,Max,Incr) :      ]]></PyFunc>
+      <PyFunc><![CDATA[    if Min <= Max :      ]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Min      ]]></PyFunc>
+      <PyFunc><![CDATA[    else :      ]]></PyFunc>
+      <PyFunc><![CDATA[        Index = Max      ]]></PyFunc>
+      <PyFunc><![CDATA[    print 'Init',Index,Min,Max,Incr    ]]></PyFunc>
+      <PyFunc><![CDATA[    return Index,Min,Max,Incr      ]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>?</FuncName>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>
+     <PyFunction>
+<FuncName>Next</FuncName>
+      <PyFunc><![CDATA[import time ]]></PyFunc>
+      <PyFunc><![CDATA[def Next(Index,Min,Max,Incr) :   ]]></PyFunc>
+      <PyFunc><![CDATA[    time.sleep(2) ]]></PyFunc>
+      <PyFunc><![CDATA[    Index = Index + Incr      ]]></PyFunc>
+      <PyFunc><![CDATA[    print 'Next', Index,Min,Max,Incr    ]]></PyFunc>
+      <PyFunc><![CDATA[    return Index,Min,Max,Incr     ]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 11:17:3</creation-date>
+    <lastmodification-date>16/12/2004 - 11:17:3</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>17</x-position>
+    <y-position>257</y-position>   </node>
+   <node>
+<component-name>?</component-name>
+    <interface-name>?</interface-name>
+    <node-name>EndInit</node-name>
+    <kind>5</kind>
+    <coupled-node>Init</coupled-node>
+    <service>
+<service-name>EndInit</service-name>
+     <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Index</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Min</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Max</inParameter-name>      </inParameter>
+      <inParameter>
+<inParameter-type>long</inParameter-type>
+       <inParameter-name>Incr</inParameter-name>      </inParameter>     </inParameter-list>
+     <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Index</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Min</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Max</outParameter-name>      </outParameter>
+      <outParameter>
+<outParameter-type>long</outParameter-type>
+       <outParameter-name>Incr</outParameter-name>      </outParameter>     </outParameter-list>    </service>
+    <DataStream-list/>
+    <PyFunction-list>
+<PyFunction>
+<FuncName>EndLoop</FuncName>
+      <PyFunc><![CDATA[def EndLoop(DoLoop,Index,Min,Max,Incr) :  ]]></PyFunc>
+      <PyFunc><![CDATA[        print 'EndLoop',DoLoop,Index,Min,Max,Incr ]]></PyFunc>
+      <PyFunc><![CDATA[        if Index == Max : ]]></PyFunc>
+      <PyFunc><![CDATA[                DoLoop = 0  ]]></PyFunc>
+      <PyFunc><![CDATA[        return DoLoop,Index,Min,Max,Incr  ]]></PyFunc>
+      <PyFunc><![CDATA[?]]></PyFunc>     </PyFunction>    </PyFunction-list>
+    <creation-date>16/12/2004 - 11:17:3</creation-date>
+    <lastmodification-date>16/12/2004 - 11:17:3</lastmodification-date>
+    <editor-release>1.04</editor-release>
+    <author>?</author>
+    <container>?</container>
+    <comment>Compute Node</comment>
+    <x-position>411</x-position>
+    <y-position>260</y-position>   </node>  </node-list>
+  <link-list>
+<link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>DoLoop</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>Index</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>Min</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>Max</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>Init</fromnode-name>
+    <fromserviceparameter-name>Incr</fromserviceparameter-name>
+    <tonode-name>EndInit</tonode-name>
+    <toserviceparameter-name>Incr</toserviceparameter-name>
+    <coord-list/>   </link>
+   <link>
+<fromnode-name>EndInit</fromnode-name>
+    <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>InitLoop</toserviceparameter-name>
+    <coord-list/>   </link>  </link-list>
+  <data-list>
+<data>
+<fromnode-name>GraphNonVoidEndLoop_1</fromnode-name>
+    <fromserviceparameter-name>Init__Index</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Index</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>0</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphNonVoidEndLoop_1</fromnode-name>
+    <fromserviceparameter-name>Init__Min</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Min</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>5</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphNonVoidEndLoop_1</fromnode-name>
+    <fromserviceparameter-name>Init__Max</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Max</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>10</value>    </data-value>
+    <coord-list/>   </data>
+   <data>
+<fromnode-name>GraphNonVoidEndLoop_1</fromnode-name>
+    <fromserviceparameter-name>Init__Incr</fromserviceparameter-name>
+    <tonode-name>Init</tonode-name>
+    <toserviceparameter-name>Incr</toserviceparameter-name>
+    <data-value>
+<value-type>3</value-type>
+     <value>1</value>    </data-value>
+    <coord-list/>   </data>  </data-list> </dataflow></supergraph>
index 15132a8802f93beeb2733e38d44d7c7de3f17b9d..125b0517a8dae46b8331269c38cd144afbfe0cd4 100644 (file)
@@ -523,7 +523,8 @@ SUPERV::LNode_ptr Graph_Impl::LNode( const char * InitName ,
       myNode->SetCoupled( myEndNode->BaseNode()->Name() ) ;
       myEndNode->SetCoupled( myNode->BaseNode()->Name() ) ;
       Link( myNode->Port( "DoLoop" ) , myEndNode->Port( "DoLoop" ) ) ;
-      Link( myEndNode->Port( "DoLoop" ) , myNode->Port( "InitLoop" ) ) ;
+//      Link( myEndNode->Port( "DoLoop" ) , myNode->Port( "InitLoop" ) ) ;
+      Link( myEndNode->Port( "DoLoop" ) , myNode->Port( "DoLoop" ) ) ;
     }
   }
   anEndOfLoop = SUPERV::ELNode::_duplicate( iendobject ) ;