[Wisp-cvs] wisp/users/dig tran.py,1.63,1.64
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2003-04-22 16:03:09
|
Update of /cvsroot/wisp/wisp/users/dig In directory sc8-pr-cvs1:/tmp/cvs-serv10964 Modified Files: tran.py Log Message: minor cleanup Index: tran.py =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/tran.py,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- tran.py 22 Apr 2003 15:57:17 -0000 1.63 +++ tran.py 22 Apr 2003 16:03:02 -0000 1.64 @@ -126,7 +126,7 @@ def contained_registers (this): return this, -class Class_Marker (object): +class Class_Marker (object, Stackable): def __init__ (this, id): this.id = id @@ -185,7 +185,8 @@ raise 'meaningless word', root m = Meaning[tok] if isinstance(m, list): prep.push_macro(m) - else: + elif isinstance(m, Stackable): Regstack.append(m) + else: # assume tuple mtype = m[0] if mtype == 'builtin': if m[2] & MA_PREFIX: @@ -194,7 +195,6 @@ m[1](tok) else: m[1]() - elif mtype == 'simple': Regstack.append(m[1]) else: raise 'Unknown meaning type in', `Meaning[tok]` else: raise 'bad token', tok @@ -208,15 +208,9 @@ reggen = Generic_Register.child_generator() MA_PREFIX = 1 -Meaning = { - 'any': ('simple', Class_Marker('any')), - 'const': ('simple', Class_Marker('const')), - 'int': ('simple', Class_Marker('int')), - 'lit': ('simple', Class_Marker('lit')), - 'reg': ('simple', Generic_Register), - 'sum': ('simple', Class_Marker('sum')), - 'sym': ('simple', Class_Marker('sym')), -} +Meaning = {'reg': Generic_Register} +for m in 'any const int lit sum sym'.split(' '): + Meaning[m] = Class_Marker(m) BUILTINS = ''' @@ -258,7 +252,7 @@ if Meaning.has_key(family): raise 'duplicate declaration', tok Register(current_register_family) f = Register(current_register_family) - Meaning[family] = 'simple', f + Meaning[family] = f Registers[f] = family current_register_index = 0 def regs_state (tok): @@ -266,7 +260,7 @@ if tok != Semicolon: if Meaning.has_key(tok): raise 'duplicate declaration', tok r = Register(current_register_family, current_register_index) - Meaning[tok] = 'simple', r + Meaning[tok] = r Registers[r] = tok current_register_index += 1 else: |