[Wisp-cvs] wisp/users/dig tran-builtins,1.17,1.18 tran.py,1.88,1.89
Status: Alpha
Brought to you by:
digg
|
From: <di...@us...> - 2003-05-17 10:29:45
|
Update of /cvsroot/wisp/wisp/users/dig
In directory sc8-pr-cvs1:/tmp/cvs-serv22927
Modified Files:
tran-builtins tran.py
Log Message:
renamed Regstack to interpreter.regstack
Index: tran-builtins
===================================================================
RCS file: /cvsroot/wisp/wisp/users/dig/tran-builtins,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- tran-builtins 17 May 2003 09:51:15 -0000 1.17
+++ tran-builtins 17 May 2003 10:29:40 -0000 1.18
@@ -7,38 +7,38 @@
#### @(#) $Id$
$-t, sum
- s = Regstack.pop()
+ s = interpreter.regstack.pop()
scalar = long(s[0])
symbols = map(str, s[1:])
interpreter.current.emit_tetra_sum(symbols, delta = scalar % 0x100000000L, relative = 1)
$-t, sym
- interpreter.current.emit_tetra_sum([str(Regstack.pop())], relative = 1)
+ interpreter.current.emit_tetra_sum([str(interpreter.regstack.pop())], relative = 1)
$-w, sum
- s = Regstack.pop()
+ s = interpreter.regstack.pop()
scalar = long(s[0])
symbols = map(str, s[1:])
interpreter.current.emit_wyde_sum(symbols, delta = scalar % 0x10000L, relative = 1)
$-w, sym
- interpreter.current.emit_wyde_sum([str(Regstack.pop())], relative = 1)
+ interpreter.current.emit_wyde_sum([str(interpreter.regstack.pop())], relative = 1)
+ int int
- n = Regstack.pop(); m = Regstack.pop()
- Regstack.append(m + n)
+ n = interpreter.regstack.pop(); m = interpreter.regstack.pop()
+ interpreter.regstack.append(m + n)
- int int
- n = Regstack.pop(); m = Regstack.pop()
- Regstack.append(m - n)
+ n = interpreter.regstack.pop(); m = interpreter.regstack.pop()
+ interpreter.regstack.append(m - n)
- sum int
- n = Regstack.pop(); m = Regstack.pop()
- Regstack.append(m - n)
+ n = interpreter.regstack.pop(); m = interpreter.regstack.pop()
+ interpreter.regstack.append(m - n)
- sym int
- n = Regstack.pop(); m = Regstack.pop()
- Regstack.append(m - n)
+ n = interpreter.regstack.pop(); m = interpreter.regstack.pop()
+ interpreter.regstack.append(m - n)
.bss
interpreter.current = interpreter.bss
@@ -50,31 +50,33 @@
interpreter.current = interpreter.text
//
- Regstack = []
+ interpreter.regstack = []
3rev
- if len(Regstack) < 3: raise 'unstacking is not implemented yet'
- r = Regstack[-3:]; r.reverse()
- Regstack = Regstack[:-3] + r
+ if len(interpreter.regstack) < 3: raise 'unstacking is not implemented yet'
+ r = interpreter.regstack[-3:]; r.reverse()
+ interpreter.regstack = interpreter.regstack[:-3] + r
4rev
- if len(Regstack) < 4: raise 'unstacking is not implemented yet'
- r = Regstack[-4:]; r.reverse()
- Regstack = Regstack[:-4] + r
+ if len(interpreter.regstack) < 4: raise 'unstacking is not implemented yet'
+ r = interpreter.regstack[-4:]; r.reverse()
+ interpreter.regstack = interpreter.regstack[:-4] + r
5rev
- if len(Regstack) < 5: raise 'unstacking is not implemented yet'
- r = Regstack[-5:]; r.reverse()
- Regstack = Regstack[:-5] + r
+ if len(interpreter.regstack) < 5: raise 'unstacking is not implemented yet'
+ r = interpreter.regstack[-5:]; r.reverse()
+ interpreter.regstack = interpreter.regstack[:-5] + r
:[
# intended to be used before the macro's pattern
- if Regstack: raise 'stack not empty for :[', Regstack
+ if interpreter.regstack:
+ raise 'stack not empty for :[', interpreter.regstack
]|name
- if len(Regstack) > 2: raise 'too long argument pattern', Regstack
- name = ' '.join([name] + [matchers(i).next() for i in Regstack])
- Regstack = []
+ if len(interpreter.regstack) > 2:
+ raise 'too long argument pattern', interpreter.regstack
+ name = ' '.join([name] + [matchers(i).next() for i in interpreter.regstack])
+ interpreter.regstack = []
if Meaning.has_key(name): raise 'duplicate declaration', name
interpreter.recordee = Meaning[name] = []
def record_state (tok):
@@ -126,53 +128,53 @@
regs_state0(family)
align int
- interpreter.current.align(long(Regstack.pop()))
+ interpreter.current.align(long(interpreter.regstack.pop()))
b, int
- interpreter.current[::1] = long(Regstack.pop())
+ interpreter.current[::1] = long(interpreter.regstack.pop())
b, sym
- interpreter.current[::1] = str(Regstack.pop())
+ interpreter.current[::1] = str(interpreter.regstack.pop())
commit
- Regstack.reverse()
- prep.push(Macro_Cursor(['$push'] * len(Regstack)))
+ interpreter.regstack.reverse()
+ prep.push(Macro_Cursor(['$push'] * len(interpreter.regstack)))
drop any
- Regstack.pop()
+ interpreter.regstack.pop()
dup any
- Regstack.append(Regstack[-1])
+ interpreter.regstack.append(interpreter.regstack[-1])
label|name
interpreter.current.place_symbol('&' + name)
minor reg
- Regstack.append(Integer_Literal(Regstack.pop()[-1]))
+ interpreter.regstack.append(Integer_Literal(interpreter.regstack.pop()[-1]))
include|name
prep.push_file(str(name) + '.tran')
ref|name
- Regstack.append(Symbol_Literal('&' + name))
+ interpreter.regstack.append(Symbol_Literal('&' + name))
reserve int
- interpreter.current.skip(Regstack.pop())
+ interpreter.current.skip(interpreter.regstack.pop())
swap any any
- y = Regstack.pop(); x = Regstack.pop()
- Regstack.append(y); Regstack.append(x)
+ y = interpreter.regstack.pop(); x = interpreter.regstack.pop()
+ interpreter.regstack.append(y); interpreter.regstack.append(x)
t, int
- interpreter.current[::4] = long(Regstack.pop())
+ interpreter.current[::4] = long(interpreter.regstack.pop())
t, sym
- interpreter.current[::4] = str(Regstack.pop())
+ interpreter.current[::4] = str(interpreter.regstack.pop())
w, int
- interpreter.current[::2] = long(Regstack.pop())
+ interpreter.current[::2] = long(interpreter.regstack.pop())
w, sym
- interpreter.current[::2] = str(Regstack.pop())
+ interpreter.current[::2] = str(interpreter.regstack.pop())
# vim: ft=python
Index: tran.py
===================================================================
RCS file: /cvsroot/wisp/wisp/users/dig/tran.py,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -d -r1.88 -r1.89
--- tran.py 17 May 2003 10:16:53 -0000 1.88
+++ tran.py 17 May 2003 10:29:41 -0000 1.89
@@ -200,27 +200,26 @@
def match_generator (root):
yield root
- if len(Regstack) < 1: yield None # want more registers
- m = matchers(Regstack[-1])
+ if len(interpreter.regstack) < 1: yield None # want more registers
+ m = matchers(interpreter.regstack[-1])
try:
while 1:
yield root + ' ' + m.next()
except StopIteration: pass
- if len(Regstack) < 2: yield None
- m1 = matchers(Regstack[-2])
+ if len(interpreter.regstack) < 2: yield None
+ m1 = matchers(interpreter.regstack[-2])
try:
while 1:
n1 = m1.next()
- m2 = matchers(Regstack[-1])
+ m2 = matchers(interpreter.regstack[-1])
try:
while 1: yield root + ' ' + n1 + ' ' + m2.next()
except StopIteration: pass
except StopIteration: pass
def outer_state (tok):
- global Regstack
if isinstance(tok, Integer_Literal):
- Regstack.append(tok)
+ interpreter.regstack.append(tok)
elif isinstance(tok, str):
root = tok
mg = match_generator(root)
@@ -233,7 +232,7 @@
raise 'meaningless word', root
m = Meaning[tok]
if isinstance(m, list): prep.push(Macro_Cursor(m))
- elif isinstance(m, Stackable): Regstack.append(m)
+ elif isinstance(m, Stackable): interpreter.regstack.append(m)
elif isinstance(m, tuple):
mtype = m[0]
if mtype == 'builtin':
@@ -247,7 +246,6 @@
else: raise 'Unknown meaning format for', tok
else: raise 'bad token', tok
-Regstack = []
Generic_Register = Register()
MA_PREFIX = 1
@@ -268,7 +266,7 @@
np = (name + '|').split('|')
name = np[0]
pa = np[1]
- exec 'def _p (%s):\n global Regstack\n%s\n' % (pa, code)
+ exec 'def _p (%s):\n%s\n' % (pa, code)
flags = 0
if pa: flags |= MA_PREFIX
Meaning[name] = 'builtin', _p, flags
@@ -286,6 +284,7 @@
interpreter.recordee = None
interpreter.regpaths = [Register(0)] # for generating new registers
interpreter.hanging = {}
+interpreter.regstack = []
default_output_names = {'elf': 'a.out', 'pe': 'untitled.exe'}
verbose = 0
@@ -320,14 +319,14 @@
prep = Preprocessor(args[0])
tok = prep.get_token()
while tok <> None:
- if verbose: print '(%s) %s' % (' '.join(map(str, Regstack)), tok)
+ if verbose: print '(%s) %s' % (' '.join(map(str, interpreter.regstack)), tok)
interpreter.state(tok)
tok = prep.get_token()
interpreter.text.dump(title = 'TEXT')
interpreter.data.dump(title = 'DATA')
interpreter.bss.dump(title = 'BSS')
- if Regstack:
- raise 'Regstack not empty after parsing ended', Regstack
+ if interpreter.regstack:
+ raise 'Regstack not empty after parsing ended', interpreter.regstack
argum = {
'text': interpreter.text,
'data': interpreter.data,
|