[Wisp-cvs] wisp/users/dig tran.py,1.46,1.47
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2003-04-22 14:51:30
|
Update of /cvsroot/wisp/wisp/users/dig In directory sc8-pr-cvs1:/tmp/cvs-serv32297 Modified Files: tran.py Log Message: introduced clearer syntax for builtin definition Index: tran.py =================================================================== RCS file: /cvsroot/wisp/wisp/users/dig/tran.py,v retrieving revision 1.46 retrieving revision 1.47 diff -u -d -r1.46 -r1.47 --- tran.py 22 Apr 2003 14:32:30 -0000 1.46 +++ tran.py 22 Apr 2003 14:51:25 -0000 1.47 @@ -270,9 +270,6 @@ if not isinstance(a, Constant_Sum): a = Constant_Sum(a) if not isinstance(b, Constant_Sum): b = Constant_Sum(b) Regstack.append(a - b) -def clear (): - global Regstack - Regstack = [] def matchers (object): if isinstance(object, Class_Marker): @@ -389,7 +386,6 @@ Meaning = { '+ const const': ('builtin', plus, 2), '- const const': ('builtin', minus, 2), - '//': ('builtin', clear, 0), ':macro': ('builtin', colon_macro, 0 | MA_PREFIX), ':regs': ('builtin', colon_regs, 0 | MA_PREFIX), 'align int': ('builtin', align, 1), @@ -429,19 +425,33 @@ cursect.emit_tetra_sum([str(n)], relative = 1) Meaning['$-t, sym'] = 'builtin', dollar_minus_tetra_comma_sym, 1 -# Sections -def dot_bss (): global cursect; cursect = Bss -Meaning['.bss'] = 'builtin', dot_bss, 0 -def dot_data (): global cursect; cursect = Data -Meaning['.data'] = 'builtin', dot_data, 0 -def dot_text (): global cursect; cursect = Text -Meaning['.text'] = 'builtin', dot_text, 0 - -# Stack def drop_any (): Regstack.pop() Meaning['drop any'] = 'builtin', drop_any, 0 # End of builtins +BUILTINS = ''' + +.bss + cursect = Bss + +.data + cursect = Data + +.text + cursect = Text + +drop any + Regstack.pop() + +// + Regstack = [] +''' + +for b in BUILTINS.split('\n\n'): + if b: + name, code = b.split('\n', 1) + exec 'def _primitive ():\n global cursect, Regstack\n' + code + '\n' + Meaning[name] = 'builtin', _primitive, 0 current_recordee = None current_register_family = 0 |