# #if reste != [] :self.creeTexteComplexe(reste)
#
- def factoriseEtCreeDump(self, laListe, dejaDansUneSequence=False, indent=2):
+ def factoriseEtCreeDump(self, laListe, dejaDansUneSequence=False, indent=2, apresChoice=False):
print ('debut factorise ********', laListe, indent)
maListeRetour=[]
aReduire={}
else :
declencheChoiceAvecSeqVid=False
+ doitFermerSequence=False
+ if len(laListe) > 1 and apresChoice :
+ self.texteComplexe += '\t'*(indent) + debSequenceDsBloc
+ indent=indent+1
+ doitFermerSequence=True
+
for ligne in laListe :
#print (ligne)
if aReduire.has_key(ligne[0]) : aReduire[ligne[0]].append(ligne[1:])
self.texteComplexe += '\t'*indent + debutChoiceDsBloc
indent += 1
- print ('creeChoice ', creeChoice, 'creeSequence', creeSequence)
for nomMC in aReduire.keys():
if creeSequence : self.texteComplexe += '\t'*(indent) + debSequenceDsBloc; indent=indent+1
listeSuivante=aReduire[nomMC]
if listeSuivante == [[]] : continue # Est-ce toujours vrai ?
if len(listeSuivante) == 1 : self.ajouteAuxTextes(listeSuivante[0])
- else : self.factoriseEtCreeDump(listeSuivante,creeSequence, indent+int(creeSequence))
+ else : self.factoriseEtCreeDump(listeSuivante,creeSequence, indent+int(creeSequence), creeChoice)
if creeSequence : indent=indent -1 ; self.texteComplexe += '\t'*(indent) + finSequenceDsBloc
if declencheChoiceAvecSeqVid :
self.texteComplexe += '\t'*indent + finSequenceDsBloc
if creeChoice : indent=indent -1 ; self.texteComplexe += '\t'*indent + finChoiceDsBloc
+ if doitFermerSequence : indent=indent-1;self.texteComplexe += '\t'*(indent) + finSequenceDsBloc
print ('________ fin factorise________' , laListe)
return (maListeRetour)