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
|