1 # -*- coding: utf-8 -*-
6 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
62 def splitLine(self,numeroLigne,numeroColonne) :
63 #----------------------------------------------
64 # coupe la ligne numeroLigne en 2 a numeroColonne
65 # ajoute des blancs en debut de 2nde Ligne pour
67 numeroLigne = numeroLigne -1
68 Ldebut=self.lines[0:numeroLigne]
69 if len(self.lines) > numeroLigne :
70 Lfin=self.lines[numeroLigne+1:]
73 Lsplit=self.lines[numeroLigne]
74 LigneSplitDebut=Lsplit[0:numeroColonne]+"\n"
75 LigneSplitFin=" "*numeroColonne+Lsplit[numeroColonne:]
76 Lmilieu=[LigneSplitDebut,LigneSplitFin]
78 self.lines=Ldebut+Lmilieu+Lfin
80 def joinLineandNext(self,numeroLigne) :
81 #--------------------------------------
82 # concatene les lignes numeroLigne et numeroLigne +1
83 # enleve les blancs de debut de la ligne (numeroLigne +1)
84 Ldebut=self.lines[0:numeroLigne-1]
85 if len(self.lines) > numeroLigne :
86 Lfin=self.lines[numeroLigne+1:]
90 ligneMilieuDeb=self.lines[numeroLigne - 1 ]
91 ligneMilieuDeb=ligneMilieuDeb[0:-1]
92 ligneMilieuFin=self.lines[numeroLigne]
93 for i in range(len(ligneMilieuFin)):
94 if ligneMilieuFin[i] != " " :
95 ligneMilieuFin=ligneMilieuFin[i:]
97 Lmilieu=[ligneMilieuDeb+ligneMilieuFin,]
99 self.lines=Ldebut+Lmilieu+Lfin
101 def supLignes(self,debut,fin):
102 #------------------------
103 Ldebut=self.lines[0:debut-1]
104 Lfin=self.lines[fin:]
105 self.lines=Ldebut+Lfin
107 def remplaceLine(self,numeroLigne,nouveauTexte) :
108 #------------------------------------------------
109 self.lines[numeroLigne]=nouveauTexte
111 def getJDC(filename,atraiter):
112 #---------------------------_
117 jdc=JDC(filename,src,atraiter)