rubyx/lib/bosl/compiler/class_field.rb
Torsten Ruger f4a4ccb98e several larger changes came together, bit of cleaning too
- all code must be in functions (which must be in classes).
— changes a fair few tests
— also changes api, as method is not recursive, not passed around
- all state in instance vars in compiler (no accessors)
- class is another such variable, surely more coming
all green again
2015-10-06 00:27:13 +03:00

24 lines
653 B
Ruby

module Bosl
Compiler.class_eval do
def on_class_field expression
#puts expression.inspect
type , name , value = *expression
for_class = @clazz
raise "no class" unless for_class
index = for_class.object_layout.variable_index(name)
#raise "class field already defined:#{name} for class #{for_class.name}" if index
puts "Define field #{name} on class #{for_class.name}"
index = for_class.object_layout.add_instance_variable( name ) #TODO need typing
if value
value = process( value )
raise "value #{value}" #tbc
end
Virtual::Return.new( index )
end
end
end