From 6f198ecf12f4fcc51d7d3c5040d97afc0f560f49 Mon Sep 17 00:00:00 2001 From: Pascale Noyret Date: Tue, 29 May 2007 11:59:19 +0000 Subject: [PATCH] PN : evolution fiche 10417 --- generator/Formatage.py | 26 +++++++++++++++++++++++--- generator/generator_python.py | 12 +++++------- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/generator/Formatage.py b/generator/Formatage.py index 1eaf04b4..a8b0599f 100644 --- a/generator/Formatage.py +++ b/generator/Formatage.py @@ -23,7 +23,7 @@ liste de chaines de caractères dans une syntaxe représentative d'un jeu de commandes en un texte présentable """ -import types,string +import types,string,re class Formatage : """ @@ -62,6 +62,8 @@ class Formatage : self.l_max = 72 def formate_jdc(self): + comment=re.compile("\n#") + commentaireavant=0 for etape in self.l_jdc: self.count = self.count+1 self.texte_etape = '' @@ -77,8 +79,26 @@ class Formatage : # L'etape est deja sous forme de chaine de caracteres self.indent=[] self.texte_etape = etape - self.jdc_fini = self.jdc_fini + '\n' + self.texte_etape - #on enleve la premiere ligne si elle est blanche : + + m=comment.match(self.texte_etape) + # si ce n est pas la premiere ligne + if self.jdc_fini != "" : + # si il n y avait pas de commentaire avant on met un saut de ligne + if commentaireavant == 0 : + self.jdc_fini = self.jdc_fini + '\n' + self.texte_etape + else : + self.jdc_fini = self.jdc_fini + self.texte_etape + # si c est la premiere ligne + else : + # on ne met pas de saut de ligne avant la premiere ligne + # si c est un commentaire on enleve le saut de ligne precedent + if m : self.texte_etape=self.texte_etape[1:] + self.jdc_fini = self.texte_etape + if m : + commentaireavant=1 + else : + commentaireavant=0 + return self.jdc_fini diff --git a/generator/generator_python.py b/generator/generator_python.py index f8645f42..393833a6 100644 --- a/generator/generator_python.py +++ b/generator/generator_python.py @@ -112,7 +112,6 @@ class PythonGenerator: place (dépend des gouts !!!) """ # ATTENTION a l'ordre des tests : il peut avoir de l'importance (héritage) - premier=1 if isinstance(obj,Accas.PROC_ETAPE): return self.generPROC_ETAPE(obj) # Attention doit etre placé avant MACRO (raison : héritage) @@ -135,7 +134,7 @@ class PythonGenerator: elif isinstance(obj,Accas.ETAPE_NIVEAU): return self.generETAPE_NIVEAU(obj) elif isinstance(obj,Accas.COMMENTAIRE): - return self.generCOMMENTAIRE(obj,premier) + return self.generCOMMENTAIRE(obj) # Attention doit etre placé avant PARAMETRE (raison : héritage) elif isinstance(obj,Accas.PARAMETRE_EVAL): return self.generPARAMETRE_EVAL(obj) @@ -155,7 +154,6 @@ class PythonGenerator: return self.generFormula(obj) else: raise "Type d'objet non prévu",obj - premier=0 def generJDC(self,obj): """ @@ -210,7 +208,7 @@ class PythonGenerator: """ return 'EVAL("""'+ obj.valeur +'""")' - def generCOMMENTAIRE(self,obj,premier=0): + def generCOMMENTAIRE(self,obj): """ Cette méthode convertit un COMMENTAIRE en une liste de chaines de caractères à la syntaxe python @@ -227,11 +225,11 @@ class PythonGenerator: txt = txt + '#'+ligne+'\n' # suppression du dernier saut de ligne - txt = re.sub("\n$","",txt) + #txt = re.sub("\n$","",txt) # on ajoute un saut de ligne avant pattern=re.compile(" ?\#") m=pattern.match(txt) - if m and not premier: + if m: txt="\n"+txt return txt @@ -471,6 +469,7 @@ class PythonGenerator: l.append(data) return l + def format_item(self,valeur,etape): if type(valeur) == types.FloatType : # Pour un flottant on utilise str @@ -514,7 +513,6 @@ class PythonGenerator: s = repr(valeur) return s - def generMCSIMP(self,obj) : """ Convertit un objet MCSIMP en une liste de chaines de caractères à la -- 2.39.2