Salome HOME
AY a ajouté l'interception de l'exception levée lorsque la chaine passée
[tools/eficas.git] / convert / parseur_python.py
index b999b6ba43044f72c0d059031f11988c8e96756e..feb815e9b9a17cf1f6819b04f0bbabb30e35f505 100644 (file)
@@ -1,9 +1,21 @@
-#@ MODIF parseur_python Parsers  DATE 05/09/2001   AUTEUR DURAND C.DURAND 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-#              SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-#              REDISTRIBUTION OF THIS FILE.
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
 # ======================================================================
 import sys,string,re
 
@@ -195,11 +207,10 @@ class PARSEUR_PYTHON:
 
     def analyse(self):
         """
-        Transforme dans self.fichier les commentaires Python (#...) par un objet
-        commentaire qui pourra donc être interprété par EFICAS.
-        Stocke le résultat dans self.texte
+        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 = open(self.fichier,'r').readlines()
+        #AY##l_lignes = open(self.fichier,'r').readlines()
         l_lignes = string.split(self.texte,'\n')
         commentaire_courant             = None
         commande_courante               = None
@@ -233,6 +244,10 @@ class PARSEUR_PYTHON:
                             # on crée un objet commande_commentarisee_courante
                             commande_commentarisee_courante = COMMANDE_COMMENTARISEE(self)
                             commande_commentarisee_courante.append_text(ligne)
+                        # si la ligne courante se termine par un ';', on décide - par hypothèse et peut-être à tort - que
+                        # la commande commentarisée courante est terminée !!
+                        if re.search( '; *$', ligne ) != None :
+                            commande_commentarisee_courante = None
                         continue
                     else:
                         # on a un double commentaire en fin de ligne
@@ -288,7 +303,8 @@ class PARSEUR_PYTHON:
                         else:
                             #--> poursuite d'une affectation
                             affectation_courante.append_text(ligne)
-                                
+
+
     def get_texte(self):
         """
         Retourne le texte issu de l'analyse