1 # -*- coding: utf-8 -*-
5 from mocles import parseKeywords
11 """Cet objet conserve toutes les informations relatives à un fichier de commandes .comm"""
13 def __init__(self,filename,src,atraiter):
14 #----------------------------------------
15 self.filename = os.path.abspath(filename)
16 self.atraiter=atraiter
17 self.init(src,atraiter)
19 def init(self,src,atraiter):
20 #---------------------------
21 # construction de self.lines
22 self.root=parseur.parser(src,atraiter)
23 self.lines=src.splitlines(1)
25 def parseKeywords(self):
26 #-----------------------
27 # construction de fils (cf mocles.py)
28 parseKeywords(self.root)
31 #-----------------------
33 self.init(src,self.atraiter)
37 #-----------------------
38 # retourne la concatenation de
40 return "".join(self.getLines())
42 def getLine(self,linenum):
43 #-----------------------
44 # retourne la linenumieme ligne
45 return self.getLines()[linenum-1]
48 #----------------------------
49 # retourne toutes les lignes
52 def addLine(self,ligne,numero) :
53 #----------------------------
54 # insere le texte contenu dans ligne
55 # dans la liste self.lines au rang numero
56 Ldebut=self.lines[0:numero]
58 Lfin=self.lines[numero:]
59 self.lines=Ldebut+Lmilieu+Lfin
63 def splitLine(self,numeroLigne,numeroColonne) :
64 #----------------------------------------------
65 # coupe la ligne numeroLigne en 2 a numeroColonne
66 # ajoute des blancs en debut de 2nde Ligne pour
68 numeroLigne = numeroLigne -1
69 Ldebut=self.lines[0:numeroLigne]
70 if len(self.lines) > numeroLigne :
71 Lfin=self.lines[numeroLigne+1:]
74 Lsplit=self.lines[numeroLigne]
75 LigneSplitDebut=Lsplit[0:numeroColonne]+"\n"
76 LigneSplitFin=" "*numeroColonne+Lsplit[numeroColonne:]
77 Lmilieu=[LigneSplitDebut,LigneSplitFin]
79 self.lines=Ldebut+Lmilieu+Lfin
83 def joinLineandNext(self,numeroLigne) :
84 #--------------------------------------
85 # concatene les lignes numeroLigne et numeroLigne +1
86 # enleve les blancs de debut de la ligne (numeroLigne +1)
87 Ldebut=self.lines[0:numeroLigne-1]
88 if len(self.lines) > numeroLigne :
89 Lfin=self.lines[numeroLigne+1:]
93 ligneMilieuDeb=self.lines[numeroLigne - 1 ]
94 ligneMilieuDeb=ligneMilieuDeb[0:-1]
95 ligneMilieuFin=self.lines[numeroLigne]
96 for i in range(len(ligneMilieuFin)):
97 if ligneMilieuFin[i] != " " :
98 ligneMilieuFin=ligneMilieuFin[i:]
100 Lmilieu=[ligneMilieuDeb+ligneMilieuFin,]
102 self.lines=Ldebut+Lmilieu+Lfin
106 def getJDC(filename,atraiter):
107 #---------------------------_
109 jdc=JDCdict.get(filename)
114 jdc=JDC(filename,src,atraiter)
115 JDCdict[filename]=jdc