rubyx/lib/soml/compiler/class_field.rb

22 lines
665 B
Ruby
Raw Normal View History

2015-10-23 13:22:55 +02:00
module Soml
Compiler.class_eval do
def on_class_field statement
#puts statement.inspect
type , name , value = *statement
for_class = @clazz
raise "no class" unless for_class
index = for_class.instance_type.variable_index(name)
2015-09-27 15:06:48 +02:00
#raise "class field already defined:#{name} for class #{for_class.name}" if index
2015-10-15 09:27:06 +02:00
#puts "Define field #{name} on class #{for_class.name}"
index = for_class.instance_type.add_instance_variable( name , type )
2015-10-26 12:08:40 +01:00
# not sure how to run class code yet. later
raise "value #{value}" if value
return nil # statements don't reurn values, only expressions
end
end
end