]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
Merge branch 'V9_8_ReacteurNumerique_Dev' of https://git.forge.pleiade.edf.fr/git...
authorPASCALE NOYRET <pascale.noyret@edf.fr>
Fri, 20 May 2022 12:49:28 +0000 (14:49 +0200)
committerPASCALE NOYRET <pascale.noyret@edf.fr>
Fri, 20 May 2022 12:49:28 +0000 (14:49 +0200)
1  2 
Efi2Xsd/AccasXsd.py

index 8279ecbe6092ae0d811c17cdd0bfd91dcb23339b,c13c5227790374658fd1dd36341c7dccaba18519..cb073c85dd196fa18f04934e095337be6effc34e
@@@ -353,8 -356,8 +354,8 @@@ class X_compoFactoriseAmbigu(X_definiti
                  else : aReduire[ligne[0]]=[ligne[1:],]
  
  
 -        if debug : print ('la Liste', laListe, declencheChoiceAvecSeqVid)
 +        if debug : print ('la Liste', laListe, 'declencheChoiceAvecSeqVid : ',declencheChoiceAvecSeqVid)
-         if debug : print (aReduire)
+         if debug : print ('aReduire',aReduire, 'keys', aReduire.keys())
          if len(aReduire.keys()) == 1 :
              if declencheChoiceAvecSeqVid == False :
                  creeChoice=False
              self.texteComplexe += '\t'*indent + debutChoiceDsBloc; indent=indent+1
              creeChoice=True
              creeSequence=False
--
-         if debug : print ('self.texteComplexe', self.texteComplexe)
-         if debug : print ('creeSequence', creeSequence, aReduire)
++  
+         if debug : print ('creeSequence', creeSequence,'creechoice', creeChoice)
          for nomMC in aReduire.keys():
              if debug : print ('--------------------------------------------- boucle for', nomMC, aReduire[nomMC])
              listeSuivante=aReduire[nomMC]
              if listeSuivante == [[]] : continue # Est-ce toujours vrai ?
              if debug : print ('listeSuivante', listeSuivante)
              aTraiter=listeSuivante
-             while len(aTraiter) == 1 and isinstance(aTraiter[0],list): aTraiter=aTraiter[0]
              if debug : print ('aTraiter', aTraiter)
 -            if debug : print ('aTraiter', aTraiter)
 -            if len(aTraiter) == 1 : 
 -                 if not(isinstance(aTraiter[0],list)) : self.ajouteAuxTextes(aTraiter[0],indent )
 -                 while len(aTraiter) == 1 and isinstance(aTraiter[0],list):  aTraiter=aTraiter[0]
 -                 for mc in aTraiter : self.ajouteAuxTextes(mc, indent)
 -            else :
 -                 self.factoriseEtCreeDump(aTraiter, indent+int(creeSequence),nomMC)
 +            if len(listeSuivante) == 1 : self.ajouteAuxTextes(listeSuivante[0],indent)
 +            else : self.factoriseEtCreeDump(listeSuivante, indent+int(creeSequence),nomMC)
++            #if len(aTraiter) == 1 : 
++            #     if not(isinstance(aTraiter[0],list)) : self.ajouteAuxTextes(aTraiter[0],indent )
++            #     while len(aTraiter) == 1 and isinstance(aTraiter[0],list):  aTraiter=aTraiter[0]
++            #     for mc in aTraiter : self.ajouteAuxTextes(mc, indent)
++            #else :
++            #    self.factoriseEtCreeDump(aTraiter, indent+int(creeSequence),nomMC)
++
              if creeChoice   : indent=indent -1 ; self.texteComplexe += '\t'*(indent) + finSequenceDsBloc
              if debug : print ('--------------------------------------------- fin boucle for', nomMC)
 -            #if nomMC=='A' : self.texteComplexe=''
 -            #if nomMC=='B' : break
  
          if declencheChoiceAvecSeqVid :
              self.texteComplexe +=  '\t'*indent +  debSequenceDsBloc
          # PN change le 17 fevrier . Est-ce normal  d arriver la ?
          # if faut traiter les Blocs exclusifs qui donnent des choices de sequences
          # mais celles-ci risquent d etre ambigues
 +
 +        if nomMC==[] : return
 +        # on a un niveau de liste par niveau de bloc imbrique
 +        # voir cata_UQ
 +        while (isinstance(nomMC,list)) :
 +            if nomMC==[] : return
 +            if len(nomMC) ==1 : nomMC = nomMC[0]
 +            elif isinstance(nomMC[0],list) : nomMC = nomMC[0]
 +            else : 
 +                for mc in nomMC : self.ajouteAuxTextes(mc, indent,debug)
 +                return
 +
+         while (isinstance(nomMC,list)) : 
+               if nomMC == [] : return # on garde les [] dans les choix sinon souci sur les sequences/choix
+               nomMC=nomMC[0]
+               
 +        if debug : print ('ajouteAuxTextes apresWhile', nomMC)
          if nomMC == 'Consigne' or nomMC == 'blocConsigne' : return
          #if debug : print (nomMC, 'dans ajoute vraiment aux textes', self.entites )
          if debug : print (nomMC, 'dans ajoute vraiment aux textes' )