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' )