1 # -*- coding: utf-8 -*-
6 from mocles import parseKeywords
12 """Cet objet conserve toutes les informations relatives à un fichier de commandes .comm"""
14 def __init__(self,filename,src,atraiter):
15 #----------------------------------------
16 self.filename = os.path.abspath(filename)
17 self.atraiter=atraiter
18 self.init(src,atraiter)
20 def init(self,src,atraiter):
21 #---------------------------
22 # construction de self.lines
23 self.root=parseur.Parser(src,atraiter)
24 self.lines=src.splitlines(1)
26 def parseKeywords(self):
27 #-----------------------
28 # construction de fils (cf mocles.py)
29 parseKeywords(self.root)
32 #-----------------------
34 self.init(src,self.atraiter)
38 #-----------------------
39 # retourne la concatenation de
41 return "".join(self.getLines())
43 def getLine(self,linenum):
44 #-----------------------
45 # retourne la linenumieme ligne
46 return self.getLines()[linenum-1]
49 #----------------------------
50 # retourne toutes les lignes
53 def addLine(self,ligne,numero) :
54 #----------------------------
55 # insere le texte contenu dans ligne
56 # dans la liste self.lines au rang numero
57 Ldebut=self.lines[0:numero]
59 Lfin=self.lines[numero:]
60 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
81 def joinLineandNext(self,numeroLigne) :
82 #--------------------------------------
83 # concatene les lignes numeroLigne et numeroLigne +1
84 # enleve les blancs de debut de la ligne (numeroLigne +1)
85 Ldebut=self.lines[0:numeroLigne-1]
86 if len(self.lines) > numeroLigne :
87 Lfin=self.lines[numeroLigne+1:]
91 ligneMilieuDeb=self.lines[numeroLigne - 1 ]
92 ligneMilieuDeb=ligneMilieuDeb[0:-1]
93 ligneMilieuFin=self.lines[numeroLigne]
94 for i in range(len(ligneMilieuFin)):
95 if ligneMilieuFin[i] != " " :
96 ligneMilieuFin=ligneMilieuFin[i:]
98 Lmilieu=[ligneMilieuDeb+ligneMilieuFin,]
100 self.lines=Ldebut+Lmilieu+Lfin
102 def supLignes(self,debut,fin):
103 #------------------------
104 Ldebut=self.lines[0:debut-1]
105 Lfin=self.lines[fin:]
106 self.lines=Ldebut+Lfin
108 def remplaceLine(self,numeroLigne,nouveauTexte) :
109 #------------------------------------------------
110 self.lines[numeroLigne]=nouveauTexte
112 def getJDC(filename,atraiter):
113 #---------------------------_
115 jdc=JDCdict.get(filename)
120 jdc=JDC(filename,src,atraiter)
121 JDCdict[filename]=jdc