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
|