[Wisp-cvs] wisp/users/dig mswhello.tran,1.12,1.13 tran-builtins,1.12,1.13 tran.py,1.81,1.82
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2003-05-17 06:08:35
|
Update of /cvsroot/wisp/wisp/users/dig In directory sc8-pr-cvs1:/tmp/cvs-serv31572 Modified Files: mswhello.tran tran-builtins tran.py Log Message: replaced current_register_index and current_register_family by interpreter.regpath Index: mswhello.tran =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/mswhello.tran,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- mswhello.tran 17 May 2003 05:37:51 -0000 1.12 +++ mswhello.tran 17 May 2003 06:08:31 -0000 1.13 @@ -8,8 +8,8 @@ \ Don't forget to translate with -fpe -include ia32 include i80386 +include ia32 include winapi \ main entry point Index: tran-builtins =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/tran-builtins,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- tran-builtins 17 May 2003 05:42:31 -0000 1.12 +++ tran-builtins 17 May 2003 06:08:31 -0000 1.13 @@ -78,23 +78,21 @@ :regs|family if Meaning.has_key(family): raise 'duplicate declaration', family - Register(current_register_family) - f = Register(current_register_family) + f = apply(Register, interpreter.regpath) Meaning[family] = f Registers[f] = family - current_register_index = 0 + interpreter.regpath.append(0) def regs_state (tok): - global current_register_family, current_register_index if tok != Semicolon: if Meaning.has_key(tok): raise 'duplicate declaration', tok - r = Register(current_register_family, current_register_index) + r = apply(Register, interpreter.regpath) Meaning[tok] = r Registers[r] = tok - current_register_index += 1 + interpreter.regpath[-1] += 1 else: interpreter.state = outer_state - current_register_family += 1 - current_register_index = None + interpreter.regpath.pop() + interpreter.regpath[-1] += 1 interpreter.state = regs_state align int Index: tran.py =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/tran.py,v retrieving revision 1.81 retrieving revision 1.82 diff -u -d -r1.81 -r1.82 --- tran.py 17 May 2003 05:48:12 -0000 1.81 +++ tran.py 17 May 2003 06:08:31 -0000 1.82 @@ -260,13 +260,11 @@ np = (name + '|').split('|') name = np[0] pa = np[1] - g = 'Regstack, current_register_index' - exec 'def _p (%s):\n global %s\n%s\n' % (pa, g, code) + exec 'def _p (%s):\n global Regstack\n%s\n' % (pa, code) flags = 0 if pa: flags |= MA_PREFIX Meaning[name] = 'builtin', _p, flags -current_register_family = 0 Registers = {Generic_Register: 'reg'} # for reverse translation class container (object): pass @@ -278,6 +276,7 @@ interpreter.bss = Linkie('<') interpreter.current = interpreter.text interpreter.recordee = None +interpreter.regpath = [0] # for generating new registers default_output_names = {'elf': 'a.out', 'pe': 'untitled.exe'} verbose = 0 |