88 |
stack.append(new) |
stack.append(new) |
89 |
return stack[0][1] |
return stack[0][1] |
90 |
|
|
91 |
|
class umlException(Exception): |
92 |
|
def __init__(self, value): |
93 |
|
self.value = value |
94 |
|
def __str__(self): |
95 |
|
return self.value |
96 |
|
|
97 |
class namedEl: |
class namedEl: |
98 |
def docontents(self, l): |
def docontents(self, l): |
99 |
global curList |
global curList |
246 |
elif s == "return": |
elif s == "return": |
247 |
pass |
pass |
248 |
else: |
else: |
249 |
assert 0, "Must have call or return, not '"+s+"'" |
raise umlException("Must have call or return, not '"+s+"'") |
250 |
return l |
return l |
251 |
def setupCode(self): |
def setupCode(self): |
252 |
return self.repl( |
return self.repl( |
511 |
if mat: |
if mat: |
512 |
self.role = mat.group(1) |
self.role = mat.group(1) |
513 |
continue |
continue |
514 |
assert 0, "Invalid assoc adorn "+el |
raise umlException("Invalid assoc adorn "+el) |
515 |
def setupCode(self): |
def setupCode(self): |
516 |
s = """ |
s = """ |
517 |
picture %%.multi, %%.role; |
picture %%.multi, %%.role; |
581 |
self.var = var or randomVar() |
self.var = var or randomVar() |
582 |
self.name = "" |
self.name = "" |
583 |
ends = s.split() |
ends = s.split() |
584 |
assert len(ends) == 2 |
#assert len(ends) == 2 |
585 |
|
if len(ends) != 2: |
586 |
|
raise umlException("len(ends) != 2") |
587 |
self.start = ends[0] |
self.start = ends[0] |
588 |
self.end = ends[1] |
self.end = ends[1] |
589 |
def setupCode(self): |
def setupCode(self): |
716 |
elif key == "left-of": type = leftOf |
elif key == "left-of": type = leftOf |
717 |
elif key == "right-of": type = rightOf |
elif key == "right-of": type = rightOf |
718 |
else: |
else: |
719 |
assert 0, "Unknown key! "+key |
raise umlException("Unknown key! "+key) |
720 |
return type |
return type |
721 |
def setupCode(self): |
def setupCode(self): |
722 |
"The code to set up the metapost objects for user geometry code" |
"The code to set up the metapost objects for user geometry code" |