]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
*** empty log message ***
authorPascale Noyret <pascale.noyret@edf.fr>
Thu, 7 Sep 2006 15:32:24 +0000 (15:32 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Thu, 7 Sep 2006 15:32:24 +0000 (15:32 +0000)
Traducteur/inseremocle.py
Traducteur/parseur.py
Traducteur/removemocle.py
Traducteur/renamemocle.py

index 4f131280dab55b39976296c6a025cb068b3642bc..ded8cf9fa5a1c22b23986352325af24b9e33f527 100644 (file)
@@ -38,6 +38,7 @@ def insereMotCleDansFacteur(jdc,facteur,texte):
     if debug : print "insereMotCle ", texte , " dans ", facteur.name
 
     ancien=jdc.getLine(facteur.lineno )
+   
 
     # On va chercher la derniere ) pour ajouter avant
     # on va verifier s il il y a un , avant
@@ -49,8 +50,25 @@ def insereMotCleDansFacteur(jdc,facteur,texte):
        indice = indice -1
     if texte[indice] != "," : texte=texte+","
     texte=texte+"\n"
-    debut=ancien.find("_F") + 3
-    jdc.splitLine(facteur.lineno,debut)
+  
+    ligneaCouper=facteur.lineno
+    trouve=0
+    while ligneaCouper < facteur.endline + 1 :
+       if ancien.find("_F") > 0 :
+          indice=ancien.find("_F")
+          # pour ne pas tenir compte 
+          if ancien[indice+2] in ("("," ") :
+             trouve=1
+             break
+       ligneaCouper=ligneaCouper+1
+       ancien=jdc.getLine(ligneaCouper)
+         
+    if trouve :
+       debut=ancien.find("_F(") + 3
+       jdc.splitLine(ligneaCouper,debut)
+    else :
+       print "Le traducteur ne sait pas faire"
+       assert 0
 
     # enleve les blancs en debut de texte
     i = 0
@@ -58,8 +76,8 @@ def insereMotCleDansFacteur(jdc,facteur,texte):
       if texte[i] != " " : break
       i = i +1
 
-    jdc.addLine(texte,facteur.lineno)
-    jdc.joinLineandNext(facteur.lineno)
+    jdc.addLine(texte,ligneaCouper)
+    jdc.joinLineandNext(ligneaCouper)
     # Gestion du cas particulier du mot clef facteur vide
     if facteur.childNodes == []:
        jdc.joinLineandNext(facteur.lineno)
index 2f77232944d9764c474bb425f9948dd1049249b1..fead5e6ce9a203e22e29f953271a220eebed16bb 100644 (file)
@@ -89,12 +89,11 @@ class Keyword(Node):
 
     def getText(self,jdc):
         if self.endline > self.lineno:
-            lignecourante=self.lineno + 1 
             debut=jdc.getLines()[self.lineno-1][self.colno:]
             fin  = jdc.getLines()[self.endline-1][:self.endcol]
             texte=debut
-            lignecourante=self.lineno + 1 
-            while  lignecourante > self.endline  :
+            lignecourante=self.lineno  
+            while  lignecourante < self.endline -1  :
                 texte = texte + jdc.getLines()[lignecourante]
                 lignecourante = lignecourante + 1
             if chaineBlanche(fin) == 0 :  
index ecb20f26a345c0a94744876d673c567ff4b5b52f..77bd833856621d9631694fc88c985dc24828651d 100644 (file)
@@ -67,8 +67,9 @@ def fusionne(jdc,numLigne):
 #   fusionne la ligne numLigne et numLigne+1
 #   si la ligne numLigne+1 ne contient que des parentheses
 #   fermantes
+#   et si la ligne  numLigne ne contient pas par un "#"
 #   Attention a la difference de numerotation
-#        jdc.getLines()[numLigne] donne la ligne numLigne -1
+#        jdc.getLines()[numLigne] donne la ligne numLigne 1
 #        alors que joinLineandNext(numLigne) travaille sur le tableau
     index=0
     texte=jdc.getLines()[numLigne]
@@ -79,6 +80,14 @@ def fusionne(jdc,numLigne):
          break
       index=index+1
        
+    if fusion == 0 : return;
+
+    texte=jdc.getLines()[numLigne -1]
+    if texte.find("#") < 0 :
+       fusion=1
+    else :
+       fusion=0
     if fusion : 
        import load 
        jdc.joinLineandNext(numLigne)
index d8bc5c6a78f1157001ceac6510bc1f18952571c4..646bb86462017d30da9a29edb61e3c2c45504e56 100644 (file)
@@ -2,7 +2,8 @@
 import logging
 import sys
 from parseur import FactNode
-debug=1
+#debug=1
+debug=0
 
 #on n'a qu'un mocle par commande. 
 #en fin de traitement, on remet à jour l'arbre syntaxique (lineno,colno,etc.)
@@ -27,7 +28,6 @@ def renameMotCle(jdc,command,mocle,new_name):
 def renameOper(jdc,command,new_name):
 #-------------------------------------------
     for c in jdc.root.childNodes:
-        print c.name 
         if c.name != command:continue
         if debug:print "Renommage de:",c.name,c.lineno,c.colno
         logging.info("Renommage de: %s, %s, %s, en %s",c.name,c.lineno,c.colno,new_name)
@@ -35,9 +35,6 @@ def renameOper(jdc,command,new_name):
         jdc.getLines()[c.lineno-1]=s[:c.colno]+new_name+s[c.colno+len(command):]
         diff=len(new_name) - len(command)
         decaleLignesdeNBlancs(jdc,c.lineno,c.endline,diff)
-    #print jdc.getSource()
-    #import sys
-    #sys.exit(0)
     jdc.reset(jdc.getSource())
 
 #----------------------------------------------------------