Salome HOME
DCQ : Merge with Ecole_Ete_a6.
[modules/superv.git] / examples / SyrStruct.py
index cf52c775f9ba5976c2d21cff4d09ecf26d84361f..18091029a2dcdb66d8cbf3fc2bc4c4106e595e67 100644 (file)
@@ -10,63 +10,88 @@ SyrStruct.SetComment( 'Syracuse algorithm' )
 SyrStruct.Coords( 0 , 0 )
 
 # Creation of Factory Nodes
+
 m3 = SyrStruct.FNode( 'SyrComponent' , 'SyrComponent' , 'C_M3' )
 m3.SetName( 'm3' )
 m3.SetAuthor( '' )
 m3.SetContainer( 'localhost/FactoryServer' )
-m3.SetComment( '' )
-m3.Coords( 678 , 11 )
+m3.SetComment( 'C_M3 from SyrComponent' )
+m3.Coords( 672 , 28 )
+
 m3incr = SyrStruct.FNode( 'SyrComponent' , 'SyrComponent' , 'C_INCR' )
 m3incr.SetName( 'm3incr' )
 m3incr.SetAuthor( '' )
 m3incr.SetContainer( 'localhost/FactoryServer' )
-m3incr.SetComment( '' )
-m3incr.Coords( 896 , 10 )
+m3incr.SetComment( 'C_INCR from SyrComponent' )
+m3incr.Coords( 898 , 29 )
+
 incra = SyrStruct.FNode( 'SyrComponent' , 'SyrComponent' , 'C_INCR' )
 incra.SetName( 'incra' )
 incra.SetAuthor( '' )
 incra.SetContainer( 'localhost/FactoryServer' )
-incra.SetComment( '' )
-incra.Coords( 789 , 201 )
+incra.SetComment( 'C_INCR from SyrComponent' )
+incra.Coords( 803 , 195 )
+
 div2 = SyrStruct.FNode( 'SyrComponent' , 'SyrComponent' , 'C_DIV2' )
 div2.SetName( 'div2' )
 div2.SetAuthor( '' )
 div2.SetContainer( 'localhost/FactoryServer' )
-div2.SetComment( '' )
-div2.Coords( 792 , 387 )
+div2.SetComment( 'C_DIV2 from SyrComponent' )
+div2.Coords( 810 , 435 )
+
 incrb = SyrStruct.FNode( 'SyrComponent' , 'SyrComponent' , 'C_INCR' )
 incrb.SetName( 'incrb' )
 incrb.SetAuthor( '' )
 incrb.SetContainer( 'localhost/FactoryServer' )
-incrb.SetComment( '' )
-incrb.Coords( 796 , 577 )
+incrb.SetComment( 'C_INCR from SyrComponent' )
+incrb.Coords( 809 , 574 )
+
+# Creation of InLine Nodes
+PySyrComponent = []
+PySyrComponent.append( 'from LifeCycleCORBA import * ' )
+PySyrComponent.append( 'def SyrComponent( aContainer , aComponent ) : ' )
+PySyrComponent.append( '    orb = CORBA.ORB_init([], CORBA.ORB_ID) ' )
+PySyrComponent.append( '    lcc = LifeCycleCORBA(orb) ' )
+PySyrComponent.append( '    ComponentRef = lcc.FindOrLoadComponent( aContainer , aComponent ) ' )
+PySyrComponent.append( '    return ComponentRef ' )
+SyrComponent = SyrStruct.INode( 'SyrComponent' , PySyrComponent )
+SyrComponent.SetName( 'SyrComponent' )
+SyrComponent.SetAuthor( '' )
+SyrComponent.SetComment( 'SyrComponent( aContainer , aComponent )' )
+SyrComponent.Coords( 0 , 0 )
+SyrComponent.InPort( 'aContainer' , 'string' )
+SyrComponent.InPort( 'aComponent' , 'string' )
+SyrComponent.OutPort( 'SyrComponentobjref' , 'objref' )
 
 # Creation of Loop Nodes
 PyforN = []
-PyforN.append( 'def InitN( NN , K , SyrComponent , min , max ) :' )
-PyforN.append( '    N = max' )
-PyforN.append( '    if min > 0 :' )
-PyforN.append( '        if min <= max :' )
-PyforN.append( '            N = min' )
-PyforN.append( '    return N,K,SyrComponent,min,max' )
+PyforN.append( 'def InitN( NN , K , SyrComponent , min , max ) : ' )
+PyforN.append( '    N = max ' )
+PyforN.append( '    if min > 0 : ' )
+PyforN.append( '        if max >= min : ' )
+PyforN.append( '            N = min ' )
+PyforN.append( '    return N,K,SyrComponent,min,max ' )
 PyMoreforN = []
-PyMoreforN.append( 'def MoreN( NN , KK , SyrComponent , min , max ) :' )
-PyMoreforN.append( '    N = 0' )
-PyMoreforN.append( '    OutLoop = 0' )
-PyMoreforN.append( '    if NN < max :' )
-PyMoreforN.append( '        N = NN' )
-PyMoreforN.append( '        OutLoop = 1' )
-PyMoreforN.append( '    return OutLoop,N,0,SyrComponent,min,max' )
+PyMoreforN.append( 'def MoreN( NN , KK , SyrComponent , min , max ) : ' )
+PyMoreforN.append( '    N = NN ' )
+PyMoreforN.append( '    OutLoop = 0 ' )
+PyMoreforN.append( '    if max > NN : ' )
+PyMoreforN.append( '        OutLoop = 1 ' )
+PyMoreforN.append( '    return OutLoop,N,0,SyrComponent,min,max ' )
 PyNextforN = []
-PyNextforN.append( 'def NextN( NN , KK , SyrComponent , min , max ) :' )
-PyNextforN.append( '    N = NN + 1' )
-PyNextforN.append( '    K = KK' )
-PyNextforN.append( '    return N,K,SyrComponent,min,max' )
-forN,endforN = SyrStruct.LNode( 'InitN' , PyforN , 'MoreN' , PyMoreforN , 'NextN' , PyNextforN )
-endforN.SetName( 'endforN' )
-endforN.SetAuthor( '' )
-endforN.SetComment( '' )
-endforN.Coords( 1530 , 332 )
+PyNextforN.append( 'def NextN( NN , KK , SyrComponent , min , max ) : ' )
+PyNextforN.append( '    N = NN + 1 ' )
+PyNextforN.append( '    K = KK ' )
+PyNextforN.append( '    return N,K,SyrComponent,min,max ' )
+forN,EndOfforN = SyrStruct.LNode( 'InitN' , PyforN , 'MoreN' , PyMoreforN , 'NextN' , PyNextforN )
+EndOfforN.SetName( 'EndOfforN' )
+EndOfforN.SetAuthor( '' )
+EndOfforN.SetComment( '' )
+EndOfforN.Coords( 1535 , 332 )
+forN.SetName( 'forN' )
+forN.SetAuthor( '' )
+forN.SetComment( 'InitN , MoreN , NextN' )
+forN.Coords( 20 , 302 )
 forN.InPort( 'N' , 'long' )
 forN.InPort( 'K' , 'long' )
 forN.InPort( 'SyrComponent' , 'objref' )
@@ -77,10 +102,7 @@ forN.OutPort( 'K' , 'long' )
 forN.OutPort( 'SyrComponent' , 'objref' )
 forN.OutPort( 'min' , 'long' )
 forN.OutPort( 'max' , 'long' )
-forN.SetName( 'forN' )
-forN.SetAuthor( '' )
-forN.SetComment( '' )
-forN.Coords( 21 , 242 )
+
 PywhileNotOne = []
 PywhileNotOne.append( 'import threading' )
 PywhileNotOne.append( 'import SyrComponent_idl' )
@@ -95,47 +117,49 @@ PyNextwhileNotOne = []
 PyNextwhileNotOne.append( 'import SyrComponent_idl' )
 PyNextwhileNotOne.append( 'def NextNotOne( SyrComponent , N , K ) :' )
 PyNextwhileNotOne.append( '    return SyrComponent,N,K' )
-whileNotOne,endwhileNotOne = SyrStruct.LNode( 'InitNotOne' , PywhileNotOne , 'MoreNotOne' , PyMorewhileNotOne , 'NextNotOne' , PyNextwhileNotOne )
-endwhileNotOne.SetName( 'endwhileNotOne' )
-endwhileNotOne.SetAuthor( '' )
-endwhileNotOne.SetComment( '' )
-endwhileNotOne.Coords( 1340 , 332 )
+whileNotOne,EndOfwhileNotOne = SyrStruct.LNode( 'InitNotOne' , PywhileNotOne , 'MoreNotOne' , PyMorewhileNotOne , 'NextNotOne' , PyNextwhileNotOne )
+EndOfwhileNotOne.SetName( 'EndOfwhileNotOne' )
+EndOfwhileNotOne.SetAuthor( '' )
+EndOfwhileNotOne.SetComment( '' )
+EndOfwhileNotOne.Coords( 1366 , 303 )
+whileNotOne.SetName( 'whileNotOne' )
+whileNotOne.SetAuthor( '' )
+whileNotOne.SetComment( 'InitNotOne , MoreNotOne , NextNotOne' )
+whileNotOne.Coords( 212 , 274 )
 whileNotOne.InPort( 'SyrComponent' , 'objref' )
 whileNotOne.InPort( 'N' , 'long' )
 whileNotOne.InPort( 'K' , 'long' )
 whileNotOne.OutPort( 'SyrComponent' , 'objref' )
 whileNotOne.OutPort( 'N' , 'long' )
 whileNotOne.OutPort( 'K' , 'long' )
-whileNotOne.SetName( 'whileNotOne' )
-whileNotOne.SetAuthor( '' )
-whileNotOne.SetComment( '' )
-whileNotOne.Coords( 210 , 297 )
+
 Pyfori = []
 Pyfori.append( 'def Initfori( ii , K ) :' )
 Pyfori.append( '    return 1,0,K' )
 PyMorefori = []
 PyMorefori.append( 'def Morefori( ii , K ) :' )
 PyMorefori.append( '    OutLoop = 0' )
-PyMorefori.append( '    if ii < 2 :' )
+PyMorefori.append( '    if 2 > ii :' )
 PyMorefori.append( '        OutLoop = 1' )
 PyMorefori.append( '    return OutLoop,ii,K' )
 PyNextfori = []
 PyNextfori.append( 'def Nextfori( ii , K ) :' )
 PyNextfori.append( '    ii = ii + 1' )
 PyNextfori.append( '    return ii,K' )
-fori,endfori = SyrStruct.LNode( 'Initfori' , Pyfori , 'Morefori' , PyMorefori , 'Nextfori' , PyNextfori )
-endfori.SetName( 'endfori' )
-endfori.SetAuthor( '' )
-endfori.SetComment( '' )
-endfori.Coords( 971 , 202 )
+fori,EndOffori = SyrStruct.LNode( 'Initfori' , Pyfori , 'Morefori' , PyMorefori , 'Nextfori' , PyNextfori )
+EndOffori.SetName( 'EndOffori' )
+EndOffori.SetAuthor( '' )
+EndOffori.SetComment( '' )
+EndOffori.Coords( 976 , 212 )
+fori.SetName( 'fori' )
+fori.SetAuthor( '' )
+fori.SetComment( 'Initfori, Morefori, Nextfori' )
+fori.Coords( 635 , 212 )
 fori.InPort( 'i' , 'long' )
 fori.InPort( 'K' , 'long' )
 fori.OutPort( 'i' , 'long' )
 fori.OutPort( 'K' , 'long' )
-fori.SetName( 'fori' )
-fori.SetAuthor( '' )
-fori.SetComment( '' )
-fori.Coords( 605 , 202 )
+
 PywhileEven = []
 PywhileEven.append( 'import SyrComponent_idl' )
 PywhileEven.append( 'def InitEven( SyrComponent , N , K ) :' )
@@ -149,21 +173,21 @@ PyNextwhileEven = []
 PyNextwhileEven.append( 'import SyrComponent_idl' )
 PyNextwhileEven.append( 'def NextEven( SyrComponent , N , K ) :' )
 PyNextwhileEven.append( '    return SyrComponent,N,K' )
-whileEven,endwhileEven = SyrStruct.LNode( 'InitEven' , PywhileEven , 'MoreEven' , PyMorewhileEven , 'NextEven' , PyNextwhileEven )
-endwhileEven.SetName( 'endwhileEven' )
-endwhileEven.SetAuthor( '' )
-endwhileEven.SetComment( '' )
-endwhileEven.Coords( 974 , 450 )
+whileEven,EndOfwhileEven = SyrStruct.LNode( 'InitEven' , PywhileEven , 'MoreEven' , PyMorewhileEven , 'NextEven' , PyNextwhileEven )
+EndOfwhileEven.SetName( 'EndOfwhileEven' )
+EndOfwhileEven.SetAuthor( '' )
+EndOfwhileEven.SetComment( '' )
+EndOfwhileEven.Coords( 988 , 451 )
+whileEven.SetName( 'whileEven' )
+whileEven.SetAuthor( '' )
+whileEven.SetComment( 'InitEven, MoreEven, NextEven' )
+whileEven.Coords( 632 , 451 )
 whileEven.InPort( 'SyrComponent' , 'objref' )
 whileEven.InPort( 'N' , 'long' )
 whileEven.InPort( 'K' , 'long' )
 whileEven.OutPort( 'SyrComponent' , 'objref' )
 whileEven.OutPort( 'N' , 'long' )
 whileEven.OutPort( 'K' , 'long' )
-whileEven.SetName( 'whileEven' )
-whileEven.SetAuthor( '' )
-whileEven.SetComment( '' )
-whileEven.Coords( 605 , 452 )
 
 # Creation of Switch Nodes
 PyifNotEven = []
@@ -172,17 +196,21 @@ PyifNotEven.append( 'def ifNotEven( SyrComponent , N , K ) :' )
 PyifNotEven.append( '    Even = SyrComponent.C_ISEVEN( N )' )
 PyifNotEven.append( '    Odd = 1 - Even' )
 PyifNotEven.append( '    return Odd,Even,SyrComponent,N,K' )
-ifNotEven,endifNotEven = SyrStruct.SNode( 'ifNotEven' , PyifNotEven )
-endifNotEven.SetName( 'endifNotEven' )
-endifNotEven.SetAuthor( '' )
-endifNotEven.SetComment( '' )
-endifNotEven.Coords( 1155 , 331 )
-PyendifNotEven = []
-endifNotEven.SetPyFunction( 'EndifNotEven' , PyendifNotEven )
-endifNotEven.InPort( 'N' , 'long' )
-endifNotEven.InPort( 'K' , 'long' )
-endifNotEven.OutPort( 'N' , 'long' )
-endifNotEven.OutPort( 'K' , 'long' )
+ifNotEven,EndOfifNotEven = SyrStruct.SNode( 'ifNotEven' , PyifNotEven )
+EndOfifNotEven.SetName( 'EndOfifNotEven' )
+EndOfifNotEven.SetAuthor( '' )
+EndOfifNotEven.SetComment( '' )
+EndOfifNotEven.Coords( 1205 , 331 )
+PyEndOfifNotEven = []
+EndOfifNotEven.SetPyFunction( 'EndifNotEven' , PyEndOfifNotEven )
+EndOfifNotEven.InPort( 'N' , 'long' )
+EndOfifNotEven.InPort( 'K' , 'long' )
+EndOfifNotEven.OutPort( 'N' , 'long' )
+EndOfifNotEven.OutPort( 'K' , 'long' )
+ifNotEven.SetName( 'ifNotEven' )
+ifNotEven.SetAuthor( '' )
+ifNotEven.SetComment( 'ifNotEven' )
+ifNotEven.Coords( 418 , 274 )
 ifNotEven.InPort( 'SyrComponent' , 'objref' )
 ifNotEven.InPort( 'N' , 'long' )
 ifNotEven.InPort( 'K' , 'long' )
@@ -191,164 +219,185 @@ ifNotEven.OutPort( 'Even' , 'long' )
 ifNotEven.OutPort( 'SyrComponent' , 'objref' )
 ifNotEven.OutPort( 'N' , 'long' )
 ifNotEven.OutPort( 'K' , 'long' )
-ifNotEven.SetName( 'ifNotEven' )
-ifNotEven.SetAuthor( '' )
-ifNotEven.SetComment( '' )
-ifNotEven.Coords( 416 , 286 )
 
-# Creation of intermediate Output variables and of Control Links
+# Creation of Links
 m3anInteger = m3.Port( 'anInteger' )
 m3incraCount = SyrStruct.Link( m3anInteger , m3incr.Port( 'aCount' ) )
+
 m3incraNewCount = m3incr.Port( 'aNewCount' )
-endifNotEvenN = SyrStruct.Link( m3incraNewCount , endifNotEven.Port( 'N' ) )
+EndOfifNotEvenN = SyrStruct.Link( m3incraNewCount , EndOfifNotEven.Port( 'N' ) )
+EndOfifNotEvenN.AddCoord( 1 , 1190 , 366 )
+EndOfifNotEvenN.AddCoord( 2 , 1191 , 109 )
+
 incraaNewCount = incra.Port( 'aNewCount' )
-endforiK = SyrStruct.Link( incraaNewCount , endfori.Port( 'K' ) )
-endforiK.AddCoord( 1 , 953 , 414 )
-endforiK.AddCoord( 2 , 953 , 353 )
+EndOfforiK = SyrStruct.Link( incraaNewCount , EndOffori.Port( 'K' ) )
+
 div2anInteger = div2.Port( 'anInteger' )
-endwhileEvenN = SyrStruct.Link( div2anInteger , endwhileEven.Port( 'N' ) )
-endwhileEvenN.AddCoord( 1 , 960 , 632 )
-endwhileEvenN.AddCoord( 2 , 960 , 539 )
+EndOfwhileEvenN = SyrStruct.Link( div2anInteger , EndOfwhileEven.Port( 'N' ) )
+
 incrbaNewCount = incrb.Port( 'aNewCount' )
-endwhileEvenK = SyrStruct.Link( incrbaNewCount , endwhileEven.Port( 'K' ) )
-endwhileEvenK.AddCoord( 1 , 963 , 662 )
-endwhileEvenK.AddCoord( 2 , 963 , 729 )
-forNDoLoop = forN.Port( 'DoLoop' )
-endforNDoLoop = SyrStruct.Link( forNDoLoop , endforN.Port( 'DoLoop' ) )
+EndOfwhileEvenK = SyrStruct.Link( incrbaNewCount , EndOfwhileEven.Port( 'K' ) )
+EndOfwhileEvenK.AddCoord( 1 , 988 , 543 )
+EndOfwhileEvenK.AddCoord( 2 , 988 , 654 )
+
+SyrComponentSyrComponentobjref = SyrComponent.Port( 'SyrComponentobjref' )
+forNSyrComponent = SyrStruct.Link( SyrComponentSyrComponentobjref , forN.Port( 'SyrComponent' ) )
+forNSyrComponent.AddCoord( 1 , 13 , 394 )
+forNSyrComponent.AddCoord( 2 , 12 , 181 )
+forNSyrComponent.AddCoord( 3 , 196 , 181 )
+forNSyrComponent.AddCoord( 4 , 197 , 81 )
+
 forNN = forN.Port( 'N' )
-endforNN = SyrStruct.Link( forNN , endforN.Port( 'N' ) )
-endforNN.AddCoord( 1 , 1554 , 513 )
-endforNN.AddCoord( 2 , 1523 , 513 )
-endforNN.AddCoord( 3 , 1523 , 806 )
-endforNN.AddCoord( 4 , 202 , 806 )
-endforNN.AddCoord( 5 , 202 , 424 )
 whileNotOneN = SyrStruct.Link( forNN , whileNotOne.Port( 'N' ) )
-whileNotOneN.AddCoord( 1 , 200 , 479 )
-whileNotOneN.AddCoord( 2 , 200 , 424 )
+
+EndOfforNN = SyrStruct.Link( forNN , EndOfforN.Port( 'N' ) )
+
 forNK = forN.Port( 'K' )
 whileNotOneK = SyrStruct.Link( forNK , whileNotOne.Port( 'K' ) )
-whileNotOneK.AddCoord( 1 , 187 , 509 )
-whileNotOneK.AddCoord( 2 , 187 , 454 )
+
 forNSyrComponent = forN.Port( 'SyrComponent' )
-endforNSyrComponent = SyrStruct.Link( forNSyrComponent , endforN.Port( 'SyrComponent' ) )
+EndOfforNSyrComponent = SyrStruct.Link( forNSyrComponent , EndOfforN.Port( 'SyrComponent' ) )
+
 whileNotOneSyrComponent = SyrStruct.Link( forNSyrComponent , whileNotOne.Port( 'SyrComponent' ) )
+whileNotOneSyrComponent.AddCoord( 1 , 192 , 309 )
+whileNotOneSyrComponent.AddCoord( 2 , 191 , 394 )
+
 forNmin = forN.Port( 'min' )
-endforNmin = SyrStruct.Link( forNmin , endforN.Port( 'min' ) )
+EndOfforNmin = SyrStruct.Link( forNmin , EndOfforN.Port( 'min' ) )
+
 forNmax = forN.Port( 'max' )
-endforNmax = SyrStruct.Link( forNmax , endforN.Port( 'max' ) )
-endforNDoLoop = endforN.Port( 'DoLoop' )
-forNInitLoop = SyrStruct.Link( endforNDoLoop , forN.Port( 'InitLoop' ) )
-whileNotOneDoLoop = whileNotOne.Port( 'DoLoop' )
-endwhileNotOneDoLoop = SyrStruct.Link( whileNotOneDoLoop , endwhileNotOne.Port( 'DoLoop' ) )
+EndOfforNmax = SyrStruct.Link( forNmax , EndOfforN.Port( 'max' ) )
+
 whileNotOneSyrComponent = whileNotOne.Port( 'SyrComponent' )
-endwhileNotOneSyrComponent = SyrStruct.Link( whileNotOneSyrComponent , endwhileNotOne.Port( 'SyrComponent' ) )
+EndOfwhileNotOneSyrComponent = SyrStruct.Link( whileNotOneSyrComponent , EndOfwhileNotOne.Port( 'SyrComponent' ) )
+
 ifNotEvenSyrComponent = SyrStruct.Link( whileNotOneSyrComponent , ifNotEven.Port( 'SyrComponent' ) )
+
 whileNotOneN = whileNotOne.Port( 'N' )
 ifNotEvenN = SyrStruct.Link( whileNotOneN , ifNotEven.Port( 'N' ) )
-ifNotEvenN.AddCoord( 1 , 378 , 438 )
-ifNotEvenN.AddCoord( 2 , 378 , 479 )
+
 whileNotOneK = whileNotOne.Port( 'K' )
 ifNotEvenK = SyrStruct.Link( whileNotOneK , ifNotEven.Port( 'K' ) )
-ifNotEvenK.AddCoord( 1 , 395 , 468 )
-ifNotEvenK.AddCoord( 2 , 395 , 509 )
-endwhileNotOneDoLoop = endwhileNotOne.Port( 'DoLoop' )
-whileNotOneInitLoop = SyrStruct.Link( endwhileNotOneDoLoop , whileNotOne.Port( 'InitLoop' ) )
-endwhileNotOneK = endwhileNotOne.Port( 'K' )
-endforNK = SyrStruct.Link( endwhileNotOneK , endforN.Port( 'K' ) )
-foriDoLoop = fori.Port( 'DoLoop' )
-endforiDoLoop = SyrStruct.Link( foriDoLoop , endfori.Port( 'DoLoop' ) )
+
+EndOfwhileNotOneK = EndOfwhileNotOne.Port( 'K' )
+EndOfforNK = SyrStruct.Link( EndOfwhileNotOneK , EndOfforN.Port( 'K' ) )
+
 forii = fori.Port( 'i' )
-endforii = SyrStruct.Link( forii , endfori.Port( 'i' ) )
+EndOfforii = SyrStruct.Link( forii , EndOffori.Port( 'i' ) )
+
 foriK = fori.Port( 'K' )
 incraaCount = SyrStruct.Link( foriK , incra.Port( 'aCount' ) )
-incraaCount.AddCoord( 1 , 783 , 353 )
-incraaCount.AddCoord( 2 , 783 , 414 )
-endforiDoLoop = endfori.Port( 'DoLoop' )
-foriInitLoop = SyrStruct.Link( endforiDoLoop , fori.Port( 'InitLoop' ) )
-endforiK = endfori.Port( 'K' )
-endifNotEvenK = SyrStruct.Link( endforiK , endifNotEven.Port( 'K' ) )
-whileEvenDoLoop = whileEven.Port( 'DoLoop' )
-endwhileEvenDoLoop = SyrStruct.Link( whileEvenDoLoop , endwhileEven.Port( 'DoLoop' ) )
+
+EndOfforiK = EndOffori.Port( 'K' )
+EndOfifNotEvenK = SyrStruct.Link( EndOfforiK , EndOfifNotEven.Port( 'K' ) )
+EndOfifNotEvenK.AddCoord( 1 , 1170 , 396 )
+EndOfifNotEvenK.AddCoord( 2 , 1169 , 275 )
+
 whileEvenSyrComponent = whileEven.Port( 'SyrComponent' )
-endwhileEvenSyrComponent = SyrStruct.Link( whileEvenSyrComponent , endwhileEven.Port( 'SyrComponent' ) )
+EndOfwhileEvenSyrComponent = SyrStruct.Link( whileEvenSyrComponent , EndOfwhileEven.Port( 'SyrComponent' ) )
+
 whileEvenN = whileEven.Port( 'N' )
 div2anEvenInteger = SyrStruct.Link( whileEvenN , div2.Port( 'anEvenInteger' ) )
-div2anEvenInteger.AddCoord( 1 , 779 , 539 )
-div2anEvenInteger.AddCoord( 2 , 779 , 634 )
+
 whileEvenK = whileEven.Port( 'K' )
 incrbaCount = SyrStruct.Link( whileEvenK , incrb.Port( 'aCount' ) )
-incrbaCount.AddCoord( 1 , 777 , 729 )
-incrbaCount.AddCoord( 2 , 777 , 664 )
-endwhileEvenDoLoop = endwhileEven.Port( 'DoLoop' )
-whileEvenInitLoop = SyrStruct.Link( endwhileEvenDoLoop , whileEven.Port( 'InitLoop' ) )
-endwhileEvenN = endwhileEven.Port( 'N' )
-endifNotEvenN = SyrStruct.Link( endwhileEvenN , endifNotEven.Port( 'N' ) )
-endwhileEvenK = endwhileEven.Port( 'K' )
-endifNotEvenK = SyrStruct.Link( endwhileEvenK , endifNotEven.Port( 'K' ) )
-ifNotEvenDefault = ifNotEven.Port( 'Default' )
-endifNotEvenDefault = SyrStruct.Link( ifNotEvenDefault , endifNotEven.Port( 'Default' ) )
+incrbaCount.AddCoord( 1 , 796 , 655 )
+incrbaCount.AddCoord( 2 , 795 , 543 )
+
+EndOfwhileEvenN = EndOfwhileEven.Port( 'N' )
+EndOfifNotEvenN = SyrStruct.Link( EndOfwhileEvenN , EndOfifNotEven.Port( 'N' ) )
+EndOfifNotEvenN.AddCoord( 1 , 1191 , 366 )
+EndOfifNotEvenN.AddCoord( 2 , 1191 , 513 )
+
+EndOfwhileEvenK = EndOfwhileEven.Port( 'K' )
+EndOfifNotEvenK = SyrStruct.Link( EndOfwhileEvenK , EndOfifNotEven.Port( 'K' ) )
+EndOfifNotEvenK.AddCoord( 1 , 1169 , 395 )
+EndOfifNotEvenK.AddCoord( 2 , 1170 , 543 )
+
 ifNotEvenOdd = ifNotEven.Port( 'Odd' )
 m3InGate = SyrStruct.Link( ifNotEvenOdd , m3.Port( 'InGate' ) )
-m3InGate.AddCoord( 1 , 585 , 133 )
-m3InGate.AddCoord( 2 , 585 , 438 )
+m3InGate.AddCoord( 1 , 593 , 141 )
+m3InGate.AddCoord( 2 , 593 , 307 )
+
 foriInGate = SyrStruct.Link( ifNotEvenOdd , fori.Port( 'InGate' ) )
-foriInGate.AddCoord( 1 , 584 , 324 )
-foriInGate.AddCoord( 2 , 584 , 438 )
+
 ifNotEvenEven = ifNotEven.Port( 'Even' )
 whileEvenInGate = SyrStruct.Link( ifNotEvenEven , whileEven.Port( 'InGate' ) )
-whileEvenInGate.AddCoord( 1 , 593 , 574 )
-whileEvenInGate.AddCoord( 2 , 593 , 468 )
+whileEvenInGate.AddCoord( 1 , 593 , 576 )
+whileEvenInGate.AddCoord( 2 , 592 , 339 )
+
 ifNotEvenSyrComponent = ifNotEven.Port( 'SyrComponent' )
 whileEvenSyrComponent = SyrStruct.Link( ifNotEvenSyrComponent , whileEven.Port( 'SyrComponent' ) )
+whileEvenSyrComponent.AddCoord( 1 , 586 , 486 )
+whileEvenSyrComponent.AddCoord( 2 , 587 , 367 )
+
 ifNotEvenN = ifNotEven.Port( 'N' )
 whileEvenN = SyrStruct.Link( ifNotEvenN , whileEven.Port( 'N' ) )
-whileEvenN.AddCoord( 1 , 586 , 634 )
-whileEvenN.AddCoord( 2 , 586 , 498 )
+whileEvenN.AddCoord( 1 , 604 , 513 )
+whileEvenN.AddCoord( 2 , 603 , 397 )
+
 m3anOddInteger = SyrStruct.Link( ifNotEvenN , m3.Port( 'anOddInteger' ) )
-m3anOddInteger.AddCoord( 1 , 579 , 163 )
-m3anOddInteger.AddCoord( 2 , 579 , 498 )
+m3anOddInteger.AddCoord( 1 , 604 , 107 )
+m3anOddInteger.AddCoord( 2 , 604 , 395 )
+
 ifNotEvenK = ifNotEven.Port( 'K' )
 whileEvenK = SyrStruct.Link( ifNotEvenK , whileEven.Port( 'K' ) )
-whileEvenK.AddCoord( 1 , 580 , 664 )
-whileEvenK.AddCoord( 2 , 580 , 528 )
+whileEvenK.AddCoord( 1 , 621 , 544 )
+whileEvenK.AddCoord( 2 , 622 , 426 )
+
 foriK = SyrStruct.Link( ifNotEvenK , fori.Port( 'K' ) )
-foriK.AddCoord( 1 , 599 , 414 )
-foriK.AddCoord( 2 , 599 , 528 )
-endifNotEvenN = endifNotEven.Port( 'N' )
-endwhileNotOneN = SyrStruct.Link( endifNotEvenN , endwhileNotOne.Port( 'N' ) )
-endwhileNotOneN.AddCoord( 1 , 1324 , 514 )
-endwhileNotOneN.AddCoord( 2 , 1324 , 483 )
-endifNotEvenK = endifNotEven.Port( 'K' )
-endwhileNotOneK = SyrStruct.Link( endifNotEvenK , endwhileNotOne.Port( 'K' ) )
-endwhileNotOneK.AddCoord( 1 , 1318 , 544 )
-endwhileNotOneK.AddCoord( 2 , 1318 , 513 )
+foriK.AddCoord( 1 , 622 , 275 )
+foriK.AddCoord( 2 , 622 , 426 )
+
+ifNotEvenDefault = ifNotEven.Port( 'Default' )
+EndOfifNotEvenDefault = SyrStruct.Link( ifNotEvenDefault , EndOfifNotEven.Port( 'Default' ) )
+EndOfifNotEvenDefault.AddCoord( 1 , 1204 , 429 )
+EndOfifNotEvenDefault.AddCoord( 2 , 1203 , 12 )
+EndOfifNotEvenDefault.AddCoord( 3 , 581 , 13 )
+EndOfifNotEvenDefault.AddCoord( 4 , 581 , 458 )
+
+EndOfifNotEvenN = EndOfifNotEven.Port( 'N' )
+EndOfwhileNotOneN = SyrStruct.Link( EndOfifNotEvenN , EndOfwhileNotOne.Port( 'N' ) )
+
+EndOfifNotEvenK = EndOfifNotEven.Port( 'K' )
+EndOfwhileNotOneK = SyrStruct.Link( EndOfifNotEvenK , EndOfwhileNotOne.Port( 'K' ) )
 
 # Creation of Input datas
+SyrComponentaContainer = SyrComponent.Input( 'aContainer' , 'FactoryServer')
+SyrComponentaComponent = SyrComponent.Input( 'aComponent' , 'SyrComponent')
 forNN = forN.Input( 'N' , 0)
+
 forNK = forN.Input( 'K' , 0)
-FactoryServerSyrComponent = SyrStruct.ComponentRef( 'FactoryServer' , 'SyrComponent' )
-forNSyrComponent.Input( FactoryServerSyrComponent )
 forNmin = forN.Input( 'min' , 5)
 forNmax = forN.Input( 'max' , 9)
 forii = fori.Input( 'i' , 0)
 
 # Creation of Output variables
-endforNN = endforN.Port( 'N' )
-endforNK = endforN.Port( 'K' )
-endforNSyrComponent = endforN.Port( 'SyrComponent' )
-endforNmin = endforN.Port( 'min' )
-endforNmax = endforN.Port( 'max' )
-endwhileNotOneSyrComponent = endwhileNotOne.Port( 'SyrComponent' )
-endwhileNotOneN = endwhileNotOne.Port( 'N' )
-endforii = endfori.Port( 'i' )
-endwhileEvenSyrComponent = endwhileEven.Port( 'SyrComponent' )
-
+EndOfforNN = EndOfforN.Port( 'N' )
+EndOfforNK = EndOfforN.Port( 'K' )
+EndOfforNSyrComponent = EndOfforN.Port( 'SyrComponent' )
+EndOfforNmin = EndOfforN.Port( 'min' )
+EndOfforNmax = EndOfforN.Port( 'max' )
+EndOfwhileNotOneSyrComponent = EndOfwhileNotOne.Port( 'SyrComponent' )
+EndOfwhileNotOneN = EndOfwhileNotOne.Port( 'N' )
+EndOfforii = EndOffori.Port( 'i' )
+EndOfwhileEvenSyrComponent = EndOfwhileEven.Port( 'SyrComponent' )
 
 SyrStruct.Run()
 
 SyrStruct.DoneW()
 
-SyrStruct.State()
+print SyrStruct.State()
 
 SyrStruct.PrintPorts()
 
+SyrStruct.Export( '/tmp/SyrStruct.xml' )
+
+SyrStruct = Graph( '/tmp/SyrStruct.xml' )
+
+SyrStruct.Run()
+
+SyrStruct.DoneW()
+
+print SyrStruct.State()
+