Update of /cvsroot/wisp/wisp/users/dig
In directory sc8-pr-cvs1:/tmp/cvs-serv10111
Modified Files:
tran-builtins tran.py
Log Message:
implemented |+ sym sym| and |t, sum|
Index: tran-builtins
===================================================================
RCS file: /cvsroot/wisp/wisp/users/dig/tran-builtins,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- tran-builtins 17 May 2003 15:21:25 -0000 1.28
+++ tran-builtins 17 May 2003 16:19:41 -0000 1.29
@@ -28,6 +28,10 @@
n = interpreter.regstack.pop(); m = interpreter.regstack.pop()
interpreter.regstack.append(m + n)
++ sym sym
+ n = interpreter.regstack.pop(); m = interpreter.regstack.pop()
+ interpreter.regstack.append(Sum([m, n]))
+
- int int
n = interpreter.regstack.pop(); m = interpreter.regstack.pop()
interpreter.regstack.append(m - n)
@@ -187,6 +191,11 @@
t, sym
interpreter.current[::4] = str(interpreter.regstack.pop())
+
+t, sum
+ sum = interpreter.regstack.pop()
+ interpreter.current.emit_tetra_sum(map(str, sum.get_symbols()),
+ delta = sum.get_scalar())
w, int
interpreter.current[::2] = long(interpreter.regstack.pop())
Index: tran.py
===================================================================
RCS file: /cvsroot/wisp/wisp/users/dig/tran.py,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -d -r1.107 -r1.108
--- tran.py 17 May 2003 15:33:36 -0000 1.107
+++ tran.py 17 May 2003 16:19:42 -0000 1.108
@@ -78,6 +78,10 @@
elif isinstance(a, Symbol_Literal): me.append(a)
else: raise 'improper addend', a
return tuple.__new__(cls, [Integer_Literal(scalar)] + me)
+ def get_scalar (this):
+ return this[0]
+ def get_symbols (this):
+ return this[1:]
def __repr__ (this):
return 'Sum(%s)' % repr(tuple(this))
def __str__ (this):
|