+# -*- coding: utf-8 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
nom = string.strip(nom)
if valeur[-1] == '\n': valeur = valeur[:-1]
valeur = string.strip(valeur)
+ ## traitement des "
+ if valeur[0]=='"':
+ valeur=valeur[1:-1]
+ if valeur[-1]=='"':
+ valeur=valeur[0:-2]
+
return nom+' = PARAMETRE(nom=\''+nom+'\',valeur="'+valeur+'")\n\n'
class COMMANDE_COMMENTARISEE(ENTITE_JDC):
"""
Cette classe sert à générer un objet PARSEUR_PYTHON qui réalise l'analyse d'un texte
représentant un JDC Python en distinguant :
- - les commentaires inter commandes
- - les affectations
- - les commandes
+ - les commentaires inter commandes
+ - les affectations
+ - les commandes
"""
pattern_commande = re.compile(r'^([A-Z][A-Z0-9_]+)([ \t\r\f\v]*)\(([\w\W]*)')
pattern_eval = re.compile(r'^(EVAL)([ \t\r\f\v]*)\(([\w\W]*)')
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
# 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
commande_courante = None
else:
#--> poursuite d'une affectation
- affectation_courante.append_text(ligne)
-
+ # PN -- pour Empecher une erreur pas propre
+ if affectation_courante != None :
+ affectation_courante.append_text(ligne)
+ #affectation_courante.append_text(ligne)
+
+
def get_texte(self):
"""
Retourne le texte issu de l'analyse