[Wisp-cvs] wisp/users/dig tran-builtins,1.14,1.15 tran.py,1.85,1.86
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2003-05-17 08:46:27
|
Update of /cvsroot/wisp/wisp/users/dig In directory sc8-pr-cvs1:/tmp/cvs-serv14469 Modified Files: tran-builtins tran.py Log Message: let interpreter.regpath be an instance of Register Index: tran-builtins =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/tran-builtins,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- tran-builtins 17 May 2003 06:44:35 -0000 1.14 +++ tran-builtins 17 May 2003 08:46:24 -0000 1.15 @@ -79,15 +79,14 @@ :regs|family def regs_state0 (family): if Meaning.has_key(family): raise 'duplicate declaration', family - f = apply(Register, interpreter.regpath) + f = interpreter.regpath Meaning[family] = f Registers[f] = family - interpreter.regpath.append(0) + interpreter.regpath = interpreter.regpath.child() interpreter.state = regs_state def regs_state (tok): if tok == Semicolon: - interpreter.regpath.pop() - interpreter.regpath[-1] += 1 + interpreter.regpath = interpreter.regpath.parent().next() if len(interpreter.regpath) == 1: interpreter.state = outer_state elif Meaning.has_key(tok): @@ -95,10 +94,10 @@ interpreter.state = regs_state0 else: raise 'duplicate declaration', tok else: - r = apply(Register, interpreter.regpath) + r = interpreter.regpath Meaning[tok] = r Registers[r] = tok - interpreter.regpath[-1] += 1 + interpreter.regpath = interpreter.regpath.next() regs_state0(family) align int Index: tran.py =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/tran.py,v retrieving revision 1.85 retrieving revision 1.86 diff -u -d -r1.85 -r1.86 --- tran.py 17 May 2003 08:37:23 -0000 1.85 +++ tran.py 17 May 2003 08:46:24 -0000 1.86 @@ -161,7 +161,7 @@ def next (this): l = list(this) l[-1] += 1 - return apply(Register, this) + return apply(Register, l) def child (this, index = 0): return apply(Register, this + (index,)) def __repr__ (this): @@ -284,7 +284,7 @@ interpreter.bss = Linkie('<') interpreter.current = interpreter.text interpreter.recordee = None -interpreter.regpath = [0] # for generating new registers +interpreter.regpath = Register(0) # for generating new registers interpreter.hanging = {} default_output_names = {'elf': 'a.out', 'pe': 'untitled.exe'} |