]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
excep et print
authorpascale.noyret <pascale.noyret@edf.fr>
Thu, 9 Feb 2017 15:32:42 +0000 (16:32 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Thu, 9 Feb 2017 15:32:42 +0000 (16:32 +0100)
convert/autre_parseur.py
convert/convert_TELEMAC.py
convert/convert_ini.py
convert/convert_pyth.py
convert/parseur_cas.py [deleted file]
convert/parseur_python.py

index 7bde5c9931d9f733506a06274de1f054867936ca..b86e77a145f881c14b0a1fddfa7556d7077ac54a 100644 (file)
@@ -189,7 +189,7 @@ class PARSEUR_PYTHON:
         try:
             fn = getattr(self, tokenize.tok_name[ttype])
         except AttributeError:
-            print >>sys.stderr, "No match!", tokenize.tok_name[ttype], tstring
+            print( "No match!", tokenize.tok_name[ttype], tstring)
             return
 
         if ttype != tokenize.DEDENT and ttype != tokenize.INDENT and self.please_indent:
@@ -322,7 +322,7 @@ class PARSEUR_PYTHON:
            return
 
     def ERRORTOKEN(self, tstring):
-        print "ERRORTOKEN", tstring
+        print ("ERRORTOKEN", tstring)
 
     def NAME(self, tstring):
         if self.buffer:
@@ -637,16 +637,6 @@ for k in range(1,5):
   DS1[k] = CREA_CHAMP( OPERATION='EXTR', TYPE_CHAM='NOEU_DEPL_R',
                   RESULTAT= MODESTA1, NUME_ORDRE=k, NOM_CHAM = 'DEPL');
 
-if x==1:
-   print "coucou"
-elif x==2:
-   print "coucou"
-elif x==2:
-   print "coucou"
-elif x==2:
-   print "coucou"
-else:
-   print "coucou"
 # parse: +affectation
 ff=23 # parametre bidon
 
@@ -730,7 +720,6 @@ def f(x):return x
 #comment
 def f(x):
 #comment
-  if a==1:print "coucou"
   for i in range(10): s=0
 
 #com1
@@ -902,5 +891,5 @@ def POST_GOUJ_ops(self,TABLE):
     else:
        t=text
     txt = PARSEUR_PYTHON(t).get_texte()
-    print txt
+    print (txt)
     compile(txt,"<string>",'exec')
index 6bbb49995a55dd4d000bbfa1b64e2a6b697cb74d..14806ce919a36201a93fc72b34dba6a4c3ce0f1e 100644 (file)
@@ -145,9 +145,9 @@ class TELEMACParser(PythonParser):
               
               m=pattern_ligne.match(finLigne)
               if m == None : 
-                 #print "________________________________________________"
-                 print 'pb avec ****', finLigne , '**** dans ', ligne
-                 #print "________________________________________________"
+                 #print( "________________________________________________")
+                 print ('pb avec ****', finLigne , '**** dans ', ligne)
+                 #print( "________________________________________________")
                  break
       
               simpCas=self.traiteIdent(m.group('ident'))
@@ -170,10 +170,10 @@ class TELEMACParser(PythonParser):
               elif pattern_texteSimple.match(finLigne):
                  m=pattern_texteSimple.match(finLigne)
               else :
-                 #print "________________________________________________"
-                 print 'pb avec ****', finLigne , '**** dans ', ligne
-                 print "non match"
-                 #print "________________________________________________"
+                 #print ("________________________________________________")
+                 print ('pb avec ****', finLigne , '**** dans ', ligne)
+                 print ("non match")
+                 #print ("________________________________________________")
                  break
               
 
@@ -190,7 +190,6 @@ class TELEMACParser(PythonParser):
 
               finLigne=m.group('reste')
               self.dictSimp[simpCas]=valeur
-              #print self.dictSimp
       
       if 'TITLE' not in self.dictSimp.keys() :
           import os
@@ -203,10 +202,9 @@ class TELEMACParser(PythonParser):
       for simp in self.dictSimp.keys():
           if simp in ListeSupprimeCasToEficas: continue
           if simp not in self.dicoInverse.keys() : 
-             #print "************"
-             print "pb avec dans dicoInverse", simp,'------'
-             #print "************"
-             #print poum
+             #print ( "************")
+             print  ("pb avec dans dicoInverse", simp,'------')
+             #print  ("************")
              continue
           listeGenea=self.dicoInverse[simp]
           listeGeneaReverse=[]
@@ -216,7 +214,6 @@ class TELEMACParser(PythonParser):
           listeGeneaReverse.reverse()
           dicoTravail=dicoParMC
           i=0
-          #print (listeGeneaReverse[0:-1])
           while i < len(listeGeneaReverse[0:-1]) : 
             mot=listeGeneaReverse[i]
             i=i+1
@@ -225,16 +222,11 @@ class TELEMACParser(PythonParser):
           dicoTravail[simp]=self.dictSimp[simp]
         
       self.textePy=""
-      #print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
-      #print dicoParMC
-      #print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
       listeMC=self.tri(dicoParMC.keys())
       for k in listeMC :
-          #print "----------- traitement de " , k
           self.textePy += str(k )+ "("
           self.traiteMC(dicoParMC[k])
           self.textePy += ");\n"
-          #print "----------- " 
            
               
       appli.listeTelemac=self.dictSimp.keys()  
@@ -246,12 +238,11 @@ class TELEMACParser(PythonParser):
    # enleve les espaces de part et autre
    # traduit du langage Telemac vers le langage Catalogue
    #----------------------------------------
-          #print ident
           while ident[-1] == " " or ident[-1] == '\t' : ident=ident[0:-1]
           while ident[0]  == " " or ident[0]  == '\t' : ident=ident[1:]
           try : identCata=self.dicoCasToCata[ident]
           except :  
-            print  "---> ", "pb mot clef  pour", ident
+            print ( "---> ", "pb mot clef  pour", ident)
             identCata=None
           return identCata
 
@@ -266,12 +257,10 @@ class TELEMACParser(PythonParser):
            if isinstance(obj,A_FACT.FACT):   self.convertFACT(obj,kA,valeur)
            elif isinstance(obj,A_BLOC.BLOC): self.convertBLOC(obj,kA,valeur)
            elif isinstance(obj,A_SIMP.SIMP): self.convertSIMP(obj,kA,valeur)
-           else : print "%%%%%%%%%%%\n", "pb conversion type pour", k, obj, "\n%%%%%%%%%%%"
+           else : print ("%%%%%%%%%%%\n", "pb conversion type pour", k, obj, "\n%%%%%%%%%%%")
 
-           #print "_____________"
 
    def convertFACT(self,obj,nom,valeur):
-       #print "convertFACT", nom,valeur
        if nom in TELEMACParser.__dict__.keys() : 
           apply(TELEMACParser.__dict__[nom],(self,))
           return
@@ -281,8 +270,8 @@ class TELEMACParser(PythonParser):
 
 
    def convertBLOC(self,obj,nom,valeur):
-       print "BLOC "
-       print nom
+       print ("ANOMALIE _________ BLOC ")
+       print (nom)
 
    def convertSIMP(self,obj,nom,valeur):
        #print 'in convertSIMP', nom,valeur
@@ -335,7 +324,7 @@ class TELEMACParser(PythonParser):
                      break
                 except:
                    if valeur != None :
-                      print "pb avec le type de ", obj.nom, obj.type, 'et la valeur ', valeur
+                      print ("pb avec le type de ", obj.nom, obj.type, 'et la valeur ', valeur)
 
           if 'Fichier' in obj.type or 'TXM' in obj.type or 'Repertoire' in obj.type :
               valeur=str(valeur)
@@ -387,7 +376,6 @@ class TELEMACParser(PythonParser):
             try :    v=eval(v,{})
             except : pass
             if nom in TelemacdicoEn.keys():
-               #print "est dans le dico des enum, valeurs multiples"
                try    : v=TelemacdicoEn[nom][v]
                except : pass
             newVal.append(v)
@@ -398,7 +386,6 @@ class TELEMACParser(PythonParser):
    def tri(self, listeIn):
       if len(listeIn) == 1 : return listeIn
       if self.Ordre_Des_Commandes == None : return listeIn
-      #print listeIn
       listeOut=[listeIn[0],]
       for k in listeIn[1:]:
           #k=str(self.dicoFrancaisAnglais[kF])
@@ -414,7 +401,6 @@ class TELEMACParser(PythonParser):
       return listeOut
 
    def LIQUID_BOUNDARIES(self):
-       print 'Liquid Boundaries'
        texte_Boundaries="LIQUID_BOUNDARIES=( "
        if 'PRESCRIBED_ELEVATIONS' in self.dictSimp.keys(): 
               valeursPE=self.dictSimp["PRESCRIBED_ELEVATIONS"]
@@ -445,7 +431,6 @@ class TELEMACParser(PythonParser):
        if valeursPF == None : valeursPF = listNulle
        if valeursPV == None : valeursPV = listNulle
       
-       #print valeursPE,valeursPF,valeursPV
 
        for e in range(len(valeursPE)):
           if valeursPE[e] != "" or valeursPE[e] != "\n" :
@@ -465,7 +450,7 @@ class TELEMACParser(PythonParser):
                 texte_Boundaries += "_F( BOUNDARY_TYPE= 'Prescribed Velocity',\n"
                 texte_Boundaries += "PRESCRIBED_VELOCITIES = " + str(valeursPV[e]) + "),\n"
                 continue
-          print "pb texte_Boundaries avec la valeur numero ", e
+          print ("pb texte_Boundaries avec la valeur numero ", e)
 
        texte_Boundaries +="),\n"
        self.textePy += texte_Boundaries
index 3a7956db82cd80f3afd1a4836369b97d955650ef..9f6ded8d895e0b75620779c07a078e7ddd226c63 100644 (file)
@@ -77,7 +77,7 @@ class IniParser(ConfigParser):
    def readfile(self,filename):
       try:
          self.read(filename)
-      except Exception,e:
+      except Exception as e:
          self.cr.fatal(tr("lecture du fichier impossible :")+str(e))
 
    def convert(self,outformat,appli=None):
@@ -86,7 +86,7 @@ class IniParser(ConfigParser):
       elif outformat == 'dict':
          return self.getdict()
       else:
-        raise ExceptionException("Format de sortie : %s, non supporte", outformat)
+        raise Exception("Format de sortie : %s, non supporte", outformat)
 
 
    def getdicttext(self):
index 3d85e5b4d15df3eecc4f4f242523dff8c2f4a838..98a6faabd9cffa1f4440889e0dd4a4b64e65467a 100644 (file)
     au format python pour EFICAS.
 
     Un plugin convertisseur doit fournir deux attributs de classe :
-    extensions et formats et deux méthodes : readfile,convert.
+    extensions et formats et deux methodes : readfile,convert.
 
     L'attribut de classe extensions est une liste d'extensions
-    de fichiers préconisées pour ce type de format. Cette information
+    de fichiers preconisees pour ce type de format. Cette information
     est seulement indicative.
 
     L'attribut de classe formats est une liste de formats de sortie
-    supportés par le convertisseur. Les formats possibles sont :
+    supportes par le convertisseur. Les formats possibles sont :
     eval, dict ou exec.
-    Le format eval est un texte source Python qui peut etre evalué. Le
-    résultat de l'évaluation est un objet Python quelconque.
+    Le format eval est un texte source Python qui peut etre evalue. Le
+    resultat de l'evaluation est un objet Python quelconque.
     Le format dict est un dictionnaire Python.
-    Le format exec est un texte source Python qui peut etre executé
+    Le format exec est un texte source Python qui peut etre execute
 
-    La méthode readfile a pour fonction de lire un fichier dont le
-    nom est passé en argument de la fonction.
+    La methode readfile a pour fonction de lire un fichier dont le
+    nom est passe en argument de la fonction.
        - convertisseur.readfile(nom_fichier)
 
-    La méthode convert a pour fonction de convertir le fichier
-    préalablement lu dans un objet du format passé en argument.
+    La methode convert a pour fonction de convertir le fichier
+    prealablement lu dans un objet du format passe en argument.
        - objet=convertisseur.convert(outformat)
 
     Ce convertisseur supporte le format de sortie dict
@@ -55,13 +55,13 @@ from Extensions.eficas_exception import EficasException
 
 def entryPoint():
    """
-       Retourne les informations nécessaires pour le chargeur de plugins
-       Ces informations sont retournées dans un dictionnaire
+       Retourne les informations necessaires pour le chargeur de plugins
+       Ces informations sont retournees dans un dictionnaire
    """
    return {
         # Le nom du plugin
           'name' : 'pyth',
-        # La factory pour créer une instance du plugin
+        # La factory pour creer une instance du plugin
           'factory' : PythParser,
           }
 
@@ -73,14 +73,14 @@ class PythParser:
        et retourne le texte au format outformat avec la 
        methode convertisseur.convert(outformat)
 
-       Ses caractéristiques principales sont exposées dans 2 attributs 
+       Ses caracteristiques principales sont exposees dans 2 attributs 
        de classe :
-         - extensions : qui donne une liste d'extensions de fichier préconisées
-         - formats : qui donne une liste de formats de sortie supportés
+         - extensions : qui donne une liste d'extensions de fichier preconisees
+         - formats : qui donne une liste de formats de sortie supportes
    """
-   # Les extensions de fichier préconisées
+   # Les extensions de fichier preconisees
    extensions=('.pyth',)
-   # Les formats de sortie supportés (eval dict ou exec)
+   # Les formats de sortie supportes (eval dict ou exec)
    formats=('dict',)
 
    def __init__(self,cr=None):
diff --git a/convert/parseur_cas.py b/convert/parseur_cas.py
deleted file mode 100644 (file)
index 56f40e7..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-import sys,string,re
-import traceback
-from Extensions.i18n import tr
-import Accas
-
-# mot cles a traiter : Discretisations_In_Space
-from enumTelemac import dicoEnum
-
-escapedQuotesRE = re.compile(r"(\\\\|\\\"|\\\')")
-stringsAndCommentsRE =  \
-      re.compile(u"(\"\"\".*?\"\"\"|'''.*?'''|\"[^\"]*\"|\'[^\']*\'|#.*?\n)", re.DOTALL)
-allchars = string.maketrans(u"", "")
-allcharsExceptNewline = allchars[: allchars.index('\n')]+allchars[allchars.index('\n')+1:]
-allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline))
-
-ordreEtapes=('INITIALIZATION', 'TIDE_PARAMETERS', 'INITIAL_STATE', 'NUMERICAL_PARAMETERS', 'PHYSICAL_PARAMETERS',) 
-
-def maskStringsAndComments(src):
-    """Masque tous les caracteres de src contenus dans des commentaires ou des strings multilignes (triples
-       quotes et guillemets.
-       Le masquage est realise en remplacant les caracteres par des * 
-       Attention : cette fonction doit etre utilisee sur un texte complet et pas ligne par ligne
-    """
-    src = escapedQuotesRE.sub(u"**", src)
-    allstrings = stringsAndCommentsRE.split(src)
-    # every odd element is a string or comment
-    for i in xrange(1, len(allstrings), 2):
-        if allstrings[i].startswith(u"'''")or allstrings[i].startswith('"""'):
-            allstrings[i] = allstrings[i][:3]+ \
-                           allstrings[i][3:-3].translate(allcharsExceptNewlineTranstable)+ \
-                           allstrings[i][-3:]
-        else:
-            allstrings[i] = allstrings[i][0]+ \
-                           allstrings[i][1:-1].translate(allcharsExceptNewlineTranstable)+ \
-                           allstrings[i][-1]
-
-    return "".join(allstrings)
-
-    
-implicitContinuationChars = (('(', ')'), ('[', ']'), ('{', '}'))
-linecontinueRE = re.compile(r"\\\s*(#.*)?$")
-emptyHangingBraces = [0,0,0,0,0]
-
-class ParserException(Exception): pass
-class FatalError(Exception): pass
-
-# ligne commençant par /
-pattern_commentaireTelemac   = re.compile(r"^\s*/.*")
-# ligne commençant par &
-pattern_eperluetteTelemac   = re.compile(r"^&.*")
-#commentaire double precede d'un nombre quelconque de blancs (pas multiligne)
-pattern_2comments   = re.compile(r"^\s*##.*")
-#commentaire standard precede d'un nombre quelconque de blancs (pas multiligne)
-pattern_comment   = re.compile(r"^\s*#.*")
-#fin de ligne ; suivi d'un nombre quelconque de blancs (pas multiligne)
-pattern_fin   = re.compile(r"; *$")
-#pattern pour supprimer les blancs, tabulations et fins de ligne
-pattern_blancs = re.compile(r"[ \t\r\f\v]")
-#pattern_blancs = re.compile(r"[\s\n]")
-number_kw_pattern=re.compile(r"""
-(
-    #groupe nombre decimal
-    (?:
-        #signe : on ignore le signe +
-        [-]?
-        #groupe (avec ?: n'apparait pas en tant que groupe dans le resultat)
-        (?:
-            #mantisse forme entiere.fractionnaire
-            \d+(?:\.\d*)?
-            |
-            #ou forme .fractionnaire
-            \.\d+
-        )
-        (?:[eE][+-]?\d+)?
-    )
-    |
-    #argument keyword
-    [a-zA-Z_]\w*=
-)
-""",re.VERBOSE|re.MULTILINE)
-
-def construit_genea(texte,liste_mc):
-    """
-       Retourne un dictionnaire dont les cles sont des reels et les valeurs sont leurs representations textuelles.
-
-       Realise un filtrage sur les reels :
-
-         - Ne garde que les reels pour lesquels str ne donne pas une bonne representation.
-         - Ne garde que les reels derriere un argument keyword dont le nom est dans liste_mc
-
-       >>> s = '''a=+21.3e-5*85,b=-.1234,c=81.6   , d= -8 , e=_F(x=342.67,y=-1), f=+1.1, g=(1.3,-5,1.54E-3),
-       ... #POMPE_PRIMA._BOUCLE_N._2_ELEMENT_NUMERO:0239
-       ... h=_F(x=34.6,y=-1)'''
-       >>> construit_genea(s,['a','x'])
-       {0.000213: '21.3e-5'}
-    """
-    d={}
-    mot=""
-    #on masque les strings et commentaires pour ne pas identifier de faux reels
-    for m in number_kw_pattern.findall(maskStringsAndComments(texte)):
-        if m[-1] == '=':
-            #argument keyword
-            mot=m[:-1]
-        else:
-            if mot not in liste_mc:continue
-            #valeur
-            key=eval(m)
-            if str(key) != m: d[key]=m
-    return d
-
-
-ListeMCAExclure=("Computation_Continued",)
-DicoMCAExclureSiValeur={"Computation_Continued" : "NO"}
-ListeMCARecalculer=('tt',)
-DicoMCARecalculerSiValeur={"Computation_Continued" : "YES"}
-DicoMCAReformater = {"Variables_For_Graphic_Printouts": "texteEnListe", \
-                     "Solver" : "remplaceEnum" }
-DicoPlusieursMC =  {"Type_Of_Advection": "decoupeAdvection" ,\
-                    }
-
-class PARSEUR_CAS:
-  
-
-    pattern_ligne_vide = re.compile(r'^[\t\r\f\v\n]+')
-    
-    def __init__(self,texte):
-        self.texte = texte
-        self.l_objets=None
-        self.appli=None
-
-    def get_texte(self,appli=None):
-        """
-        Retourne le texte issu de l'analyse
-        """
-        self.appli=appli
-        self.dicoInverse=self.appli.readercata.dicoInverse
-
-        try:
-            self.analyse()
-            txt=self.texteComm
-        except  ParserException:
-            #Impossible de convertir le texte, on le retourne tel que
-            txt=self.texte
-        return txt
-
-    def analyse(self):
-        """
-        Eclate la chaine self.texte en self.l_objets une liste lignes d'instructions
-        et de commentaires (parmi lesquels des instructions "commentarisées").
-        """
-        l_lignes = string.split(self.texte,'\n')
-        affectation_courante            = None
-        self.l_objets = []
-
-        #Masquage des commentaires et strings multilignes
-        #srcMasked=maskStringsAndComments('\n'.join(l_lignes))
-        #print srcMasked
-        #masked_lines=srcMasked.split('\n')
-
-        lineno=0
-        self.listeNomValeur=[]
-        for ligne in l_lignes :
-            #line=masked_lines[lineno]
-            lineno=lineno+1
-
-            if string.strip(ligne) == '': continue
-            if pattern_commentaireTelemac.match(ligne) : continue
-            if pattern_eperluetteTelemac.match(ligne)  : continue
-            # On remplace les : par un =
-            # On s assure que les = soient entoures d espace
-            # On remplace les espaces successifs par un seul
-            # On enleve les blancs en debut et fin de ligne
-            # On remplace les ' ; ' par des ;
-            ligne=ligne.replace(':','=')
-            ligne=ligne.replace('=',' = ')
-            ligne=re.sub(r';\s*',';',ligne)
-            ligne=re.sub(r'\s*;',';',ligne)
-            ligne=re.sub(r' \s*',' ',ligne)
-            ligne=re.sub(r'^\s','',ligne)
-            ligne=re.sub(r'\s$','',ligne)
-            listeMot=ligne.split(" ")
-            while listeMot != [] :
-               nom,listeMot    = self.construitNom(listeMot)
-               valeur,listeMot = self.construitValeur(listeMot)
-               bTraite, nom, valeur =self.verifieNom(nom,valeur)
-               if bTraite : self.listeNomValeur.append((nom, valeur))
-        self.construitTexteFinal()
-               
-               
-    def construitNom(self,liste):
-        nomEficas=''
-        index=0
-        for mot in liste :
-           index+=1
-           if mot in (":","=") : break
-           motE=mot[0].upper()+mot[1:].lower()
-           nomEficas+=motE+'_'
-        nouveauNom=nomEficas[0:-1].replace('-','_')
-        nouvelleListe=liste[index:]
-        return nouveauNom,nouvelleListe
-
-    def construitValeur(self,liste):
-        index=0
-        if liste[0][0]=="'" :
-           valeur=''
-           for mot in liste :
-               index+=1
-               valeur+=str(mot)+" "
-               if mot[-1]=="'":
-                  valeur=valeur[0:-1]
-                  break
-        elif liste[0].find(';') > -1 :
-          valeur=liste[0].split(';')
-          index=1
-        else : 
-          valeur=liste[0]
-          index=1
-        nouvelleListe=liste[index:]
-        return valeur,nouvelleListe
-               
-
-    def verifieNom(self,nom,valeur):
-        if nom in ListeMCAExclure : return (False, nom, valeur) 
-        if nom in DicoMCAExclureSiValeur.keys() :
-          if valeur != DicoMCAExclureSiValeur[nom] :  print "prevoir Traitement pour ", nom, valeur
-          return (False, nom, valeur)
-
-        bTrue=True
-        if nom in DicoMCAReformater.keys() :
-           bTrue,nom,valeur=apply(PARSEUR_CAS.__dict__[DicoMCAReformater[nom]],(self,nom,valeur))
-        if nom in DicoPlusieursMC.keys() :
-           bTrue,nom,valeur=apply(PARSEUR_CAS.__dict__[DicoPlusieursMC[nom]],(self,nom,valeur))
-           return (bTrue,nom,valeur)
-        if nom not in self.dicoInverse.keys() : 
-           print  "******** ", nom, " non encore connu ***********"
-           bTrue=False
-        return (bTrue, nom, valeur)
-
-    def remplaceEnum(self,nom,valeur):
-       newValeur=dicoEnum[nom][valeur]
-       return (True,nom,newValeur)
-       
-
-
-    def texteEnListe(self,nom,valeur): 
-       print "je passe dans decoupeEnListe pour ", nom,valeur
-       v1=re.sub(r'^\'','',valeur)
-       v2=re.sub(r'\'$','',v1)
-       newValeur=v2.split(',')
-       return (True,nom,newValeur)
-
-    def decoupeAdvection(self,nom,valeur):
-        # on met a jour la liste des valeurs ici : il y a plusieurs MC calcule
-        print "je passe dans decoupeAdvection pour",nom,valeur
-        self.listeNomValeur.append(('Advection_Of_U_And_V',True)) 
-        v=dicoEnum['Type_Of_Advection'][valeur[0]]
-        self.listeNomValeur.append(('Type_Of_Advection_U_And_V',v) )
-        if len(valeur)==1: return  (False,nom,valeur)
-
-        self.listeNomValeur.append(('Advection_Of_H',True)) 
-        v=dicoEnum['Type_Of_Advection'][valeur[1]]
-        self.listeNomValeur.append(('Type_Of_Advection_H',v)) 
-        if len(valeur)==2: return (False,nom,valeur)
-
-        self.listeNomValeur.append(('Advection_Of_Tracers',True)) 
-        v=dicoEnum['Type_Of_Advection'][valeur[2]]
-        self.listeNomValeur.append(('Type_Of_Advection_Tracers',v)) 
-        if len(valeur)==3: return (False,nom,valeur)
-
-        self.listeNomValeur.append(('Advection_Of_K_And_Epsilon',True)) 
-        v=dicoEnum['Type_Of_Advection'][valeur[3]]
-        self.listeNomValeur.append(('Type_Of_Advection_K_And_Epsilon',v)) 
-        # on retourne False, l append est deja fait
-        return (False,nom,valeur)
-
-    def construitTexteFinal(self):
-        self.dicoTexte={}
-        self.dicoNature={}
-        print self.listeNomValeur
-        for nomMC,valeur in self.listeNomValeur:
-            mc,objmc=self.dicoInverse[nomMC][0]
-            if nomMC=="Solver_Option" : print self.dicoInverse[nomMC][0]
-            self.dicoNature[mc]=objmc
-            liste=self.dicoInverse[nomMC][1:]
-            liste.reverse()
-            dico=self.dicoTexte
-            for (nom,obj) in liste:
-               if isinstance(obj,Accas.A_BLOC.BLOC) :
-                  continue
-               self.dicoNature[nom]=obj
-               if not(isinstance(obj,Accas.A_PROC.PROC)) and  not(isinstance(obj,Accas.A_FACT.FACT)) :
-                  print "******** ", nom,obj, "********"
-                  continue
-               if not nom in dico.keys(): dico[nom]={}
-               dico=dico[nom]
-            dico[nomMC]=valeur
-        self.texteComm=""
-        for etape in ordreEtapes :
-            print etape
-            if etape in self.dicoTexte.keys():
-               self.texteComm+=etape+"("
-               self.traiteEtape(self.dicoTexte[etape])
-               self.texteComm+=");\n"
-        print self.texteComm
-
-    def traiteEtape(self,dico):
-        for mc in dico.keys() :
-            valeur=dico[mc]
-            if isinstance(self.dicoNature[mc],Accas.A_SIMP.SIMP):
-               if 'TXM' in  self.dicoNature[mc].type and valeur[0] !="'" : valeur="'"+valeur
-               if 'TXM' in  self.dicoNature[mc].type and valeur[-1] !="'" : valeur=valeur+"'"
-               if 'Fichier' in  self.dicoNature[mc].type and valeur[0] !="'" : valeur="'"+valeur
-               if 'Fichier' in  self.dicoNature[mc].type and valeur[-1] !="'" : valeur=valeur+"'"
-               if 'Repertoire' in  self.dicoNature[mc].type and valeur[0] !="'" : valeur="'"+valeur
-               if 'Repertoire' in  self.dicoNature[mc].type and valeur[-1] !="'" : valeur=valeur+"'"
-               print self.dicoNature[mc].type
-               #self.texteComm+=mc+" = '"+str(valeur)+"',"
-               #else : self.texteComm+=mc+" = "+str(valeur)+","
-               self.texteComm+=mc+" = "+str(valeur)+","
-               continue
-            self.texteComm+=mc+"=_F("
-            self.traiteEtape(valeur)
-            self.texteComm+="),\n"
index 8771995cf1f36d2ddc501f13e8eaa151699d4748..c42fa7f7fa34f142cf67ed1a012817669e5c3925 100644 (file)
@@ -36,7 +36,6 @@ allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*le
 #   allcharsExceptNewlineTranstable = dict((ord(char), u'*') for char in allcharsExceptNewline)#
 #else :
 #   allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline))
-#   print 'Plateforme non geree'
 
 def maskStringsAndComments(src):
     """Masque tous les caracteres de src contenus dans des commentaires ou des strings multilignes (triples
@@ -136,7 +135,7 @@ def construit_genea(texte,liste_mc):
 
 class ENTITE_JDC :
     """Classe de base pour tous les objets créés lors de la conversion
-       Tout objet dérivé est enregistré auprès de son pere a sa création
+       Tout objet dérivé est enregistré aupres de son pere a sa création
     """
     def __init__(self,pere):
         self.texte = ''
@@ -159,7 +158,7 @@ class COMMENTAIRE(ENTITE_JDC):
 
     def __str__(self):
         """
-        Retourne une chaine de caractères représentants self
+        Retourne une chaine de caracteres représentants self
         sous une forme interprétable par EFICAS
         """
         t=repr(self.texte)
@@ -176,8 +175,8 @@ class COMMENTAIRE(ENTITE_JDC):
         if texte[0] == '#':
             self.texte = self.texte+texte[1:]
         else:
-            # le dièse n'est pas sur le premier caractere
-            amont,aval = string.split(texte,'#',1) # on découpe suivant la première occurrence de #
+            # le diese n'est pas sur le premier caractere
+            amont,aval = string.split(texte,'#',1) # on découpe suivant la premiere occurrence de #
             self.texte = self.texte +amont + aval
         
 class COMMANDE(ENTITE_JDC):
@@ -190,12 +189,12 @@ class COMMANDE(ENTITE_JDC):
         
     def get_nb_par(self):
         """
-        Retourne la différence entre le nombre de parenthèses ouvrantes
-        et le nombre de parenthèses fermantes présentes dans self.texte
+        Retourne la différence entre le nombre de parentheses ouvrantes
+        et le nombre de parentheses fermantes présentes dans self.texte
         Peut donc retourner un entier négatif
         """
         # faire attention aux commentaires contenus dans self.texte
-        # qui peuvent eux-memes contenir des parenthèses !!!!
+        # qui peuvent eux-memes contenir des parentheses !!!!
         l_lignes = string.split(self.texte,'\n')
         nb = 0
         for ligne in l_lignes:
@@ -254,7 +253,7 @@ class AFFECTATION_EVAL(ENTITE_JDC):
         
     def __str__(self):
         """
-        Retourne une expression du paramètre EVAL compréhensible par ACCAS
+        Retourne une expression du parametre EVAL compréhensible par ACCAS
         et exploitable par EFICAS
         """
         nom,valeur = string.split(self.texte,'=',1)
@@ -300,7 +299,6 @@ class PARSEUR_PYTHON:
             if m is None : return 0
             if m.start() != 0 :return 0
             if m.end() != len(s):return 0
-            #print texte,amont,aval
             return 1
 
     def is_eval(self,texte):
@@ -364,14 +362,13 @@ class PARSEUR_PYTHON:
 
         #Masquage des commentaires et strings multilignes
         srcMasked=maskStringsAndComments('\n'.join(l_lignes))
-        #print srcMasked
         masked_lines=srcMasked.split('\n')
         lineno=0
 
         for ligne in l_lignes :
             line=masked_lines[lineno]
             lineno=lineno+1
-            #print "ligne:",line
+            #print ("ligne:",line)
             # mise a jour du nombre total de parentheses ouvertes (non fermees)
             # et du nombre de commentaires non termines
             for i in range(len(implicitContinuationChars)):
@@ -381,7 +378,7 @@ class PARSEUR_PYTHON:
 
             hangingComments ^= line.count('"""') % 2
             hangingComments ^= line.count(u"'''") % 2
-            #print hangingComments,hangingBraces
+            #print (hangingComments,hangingBraces)
             if hangingBraces[0] < 0 or hangingBraces[1] < 0 or hangingBraces[2] < 0: 
                 raise ParserException()
 
@@ -426,7 +423,7 @@ class PARSEUR_PYTHON:
                     #on l'ajoute au texte de la commande 
                     commande_courante.append_text(ligne)
                 elif commentaire_courant :
-                    # il s'agit de la nième ligne d'un commentaire entre deux commandes
+                    # il s'agit de la nieme ligne d'un commentaire entre deux commandes
                     # --> on ajoute cette ligne au commentaire courant
                     commentaire_courant.append_text(ligne)
                 else :
@@ -454,7 +451,6 @@ class PARSEUR_PYTHON:
                    and (hangingBraces == emptyHangingBraces) \
                    and not hangingComments:
                     #la commande est terminée 
-                    #print "fin de commande"
                     self.analyse_reel(commande_courante.texte)
                     commande_courante = None
 
@@ -518,23 +514,20 @@ class PARSEUR_PYTHON:
                 affectation_courante = None
                 commande_courante = COMMANDE(self)
                 commande_courante.append_text(ligne)
-                #si la commande est complète, on la termine
+                #si la commande est complete, on la termine
                 if not linecontinueRE.search(line) \
                    and (hangingBraces == emptyHangingBraces) \
                    and not hangingComments:
-                    #la commande est terminée 
-                    #print "fin de commande"
+                    #la commande est terminee 
                     self.analyse_reel(commande_courante.texte)
                     commande_courante = None
                 #on passe a la ligne suivante
                 continue
 
-            #if self.is_modification_catalogue(ligne) :
-            #   print ligne
  
     def enleve (self,texte) :
         """Supprime de texte tous les caracteres blancs, fins de ligne, tabulations
-           Le nouveau texte est retourné
+           Le nouveau texte est retourne
         """
         i=0
         chaine=""
@@ -611,7 +604,7 @@ class PARSEUR_PYTHON:
                              except :
                                   pass
                        mot=""
-               # ou de ( imbriqueés
+               # ou de ( imbriquees
                  else :
                     #cas du mocle facteur simple ou 
                     mot=""
@@ -685,20 +678,5 @@ if __name__ == "__main__" :
        liste_simp_reel=["VALE","VALE_C","GROUP_MA","RAYON"]
     a=appli()
 
-    if 1:
-        t0=time.clock()
-        txt = PARSEUR_PYTHON(texte).get_texte(a)
-        print t0,time.clock()-t0
-    else:
-        import hotshot, hotshot.stats
-        prof = hotshot.Profile(u"stones.prof")
-        txt = prof.runcall(PARSEUR_PYTHON(texte).get_texte,a)
-        prof.close()
-        stats = hotshot.stats.load(u"stones.prof")
-        stats.strip_dirs()
-        stats.sort_stats('time', 'calls')
-        stats.print_stats(20)
-
-    print txt
     compile(txt, '<string>', 'exec')
-    print a.dict_reels
+    print (a.dict_reels)