1.1 --- a/micropython/rsvp.py Sun Sep 07 18:43:40 2008 +0200
1.2 +++ b/micropython/rsvp.py Sun Sep 07 20:23:10 2008 +0200
1.3 @@ -25,11 +25,15 @@
1.4 def raw(code, objtable, paramtable):
1.5 new_code = []
1.6 for item in code:
1.7 +
1.8 if isinstance(item, Attr):
1.9 new_code.append((
1.10 item.context and item.context.location,
1.11 item.value and item.value.location # no useful context is provided
1.12 ))
1.13 +
1.14 + # Using classcode, attrcode, codeaddr, codedetails, instance.
1.15 +
1.16 elif isinstance(item, Class):
1.17 # NOTE: Need initialiser details!
1.18 new_code.append((
1.19 @@ -39,14 +43,20 @@
1.20 (
1.21 len(item.get_instantiator().positional_names),
1.22 len(item.get_instantiator().defaults)
1.23 - )))
1.24 + ),
1.25 + 0
1.26 + ))
1.27 +
1.28 elif isinstance(item, Const):
1.29 # NOTE: Need class details!
1.30 new_code.append((
1.31 None, #objtable.as_list().get_code(item.full_name()),
1.32 None, #objtable.get_index(item.full_name()),
1.33 - None, None
1.34 + None,
1.35 + None,
1.36 + 1
1.37 ))
1.38 +
1.39 elif isinstance(item, Function):
1.40 # NOTE: Need class and parameter details! Should arguably be types.FunctionType.
1.41 new_code.append((
1.42 @@ -56,9 +66,13 @@
1.43 (
1.44 len(item.positional_names),
1.45 len(item.defaults)
1.46 - )))
1.47 + ),
1.48 + 0
1.49 + ))
1.50 +
1.51 else:
1.52 new_code.append(item)
1.53 +
1.54 return new_code
1.55
1.56 def name(attr):