[Wisp-cvs] wisp/users/dig tran-builtins,1.28,1.29 tran.py,1.107,1.108
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2003-05-17 16:19:44
|
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): |