]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
PN : evolution fiche 10417
authorPascale Noyret <pascale.noyret@edf.fr>
Tue, 29 May 2007 11:59:19 +0000 (11:59 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Tue, 29 May 2007 11:59:19 +0000 (11:59 +0000)
generator/Formatage.py
generator/generator_python.py

index 1eaf04b453358bf83cc5f87fc7d6fa7d03fc7348..a8b0599fe7aa4635d7ae8f8f18267deee6948b16 100644 (file)
@@ -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
   
   
index f8645f42c65c0cffae16a1b3eda1ff86b5c335df..393833a689579f6c6a69f74d7f238ace1cf921b9 100644 (file)
@@ -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