147 |
""" % self.__dict__; |
""" % self.__dict__; |
148 |
return s + " ".join([e.drawCode_draw() for e in self.list]) |
return s + " ".join([e.drawCode_draw() for e in self.list]) |
149 |
|
|
150 |
|
class delete(call): |
151 |
|
def drawCode_measure(self): |
152 |
|
s = mpsequence.call.drawCode_measure(self) |
153 |
|
self.parent.seqobjsdeletes[self.targetname] = self.yl; |
154 |
|
return s |
155 |
|
|
156 |
|
def drawCode_draw(self): |
157 |
|
s = mpsequence.call.drawCode_draw(self) |
158 |
|
return (s + |
159 |
|
" sequencedestroy( %(targetx)s, %(yl)s ); " |
160 |
|
% self.__dict__) |
161 |
class create(call): |
class create(call): |
162 |
def measure(self): |
def measure(self): |
163 |
self.yu = self.parent.getVarForY(10,10) |
self.yu = self.parent.getVarForY(10,10) |
180 |
|
|
181 |
def __init__(self, var, s, l): |
def __init__(self, var, s, l): |
182 |
self.seqobjs = [] |
self.seqobjs = [] |
183 |
|
self.seqobjsdeletes = {} |
184 |
toks = s.split(" "); |
toks = s.split(" "); |
185 |
s = toks[0] |
s = toks[0] |
186 |
self.var = var or s |
self.var = var or s |
195 |
s = toks[0] |
s = toks[0] |
196 |
if s == "call": |
if s == "call": |
197 |
l.append(self.call(self, sourceName, toks, el[1:])) |
l.append(self.call(self, sourceName, toks, el[1:])) |
198 |
|
elif s == "delete": |
199 |
|
l.append(self.delete(self, sourceName, toks, el[1:])) |
200 |
elif s == "create": |
elif s == "create": |
201 |
l.append(self.create(self, sourceName, toks, el[1:])) |
l.append(self.create(self, sourceName, toks, el[1:])) |
202 |
elif s == "return" or s == "delete": |
elif s == "return": |
203 |
pass |
pass |
204 |
else: |
else: |
205 |
assert 0, "Must have call or return, not '"+s+"'" |
assert 0, "Must have call or return, not '"+s+"'" |
208 |
return self.repl( |
return self.repl( |
209 |
" ".join([e.setupCode() for e in self.list]) |
" ".join([e.setupCode() for e in self.list]) |
210 |
) |
) |
211 |
|
def lifeend(self, obj): |
212 |
|
return self.seqobjsdeletes.get(obj, self.yvar) |
213 |
def drawCode(self): |
def drawCode(self): |
214 |
self.yvar = randomVar() |
self.yvar = randomVar() |
215 |
self.ycode = "numeric %(yvar)s; %(yvar)s = -50;" % self.__dict__; |
self.ycode = "numeric %(yvar)s; %(yvar)s = -50;" % self.__dict__; |
218 |
m = self.ycode |
m = self.ycode |
219 |
m += " ".join([e.drawCode_measure() for e in self.list]) |
m += " ".join([e.drawCode_measure() for e in self.list]) |
220 |
m += " ".join([ |
m += " ".join([ |
221 |
"sequencedrawlifeline(%s, %s);" % (so, self.yvar) |
"sequencedrawlifeline(%s, %s);" % (so, self.lifeend(so)) |
222 |
for so in self.seqobjs |
for so in self.seqobjs |
223 |
]) |
]) |
224 |
m += " ".join([e.drawCode_draw() for e in self.list]) |
m += " ".join([e.drawCode_draw() for e in self.list]) |