modulize class_field and class_statement
This commit is contained in:
@@ -1,15 +1,14 @@
|
||||
module Typed
|
||||
Compiler.class_eval do
|
||||
module ClassField
|
||||
|
||||
def on_ClassField statement
|
||||
#puts statement.inspect
|
||||
#type , name , value = *statement
|
||||
|
||||
for_class = @clazz
|
||||
raise "no class" unless for_class
|
||||
index = for_class.instance_type.variable_index(statement.name)
|
||||
#raise "class field already defined:#{name} for class #{for_class.name}" if index
|
||||
#puts "Define field #{name} on class #{for_class.name}"
|
||||
raise "class field already defined:#{name} for class #{for_class.name}" if index
|
||||
|
||||
for_class.instance_type.add_instance_variable( statement.name , statement.type )
|
||||
|
||||
return nil # statements don't reurn values, only expressions
|
||||
|
@@ -1,9 +1,10 @@
|
||||
module Typed
|
||||
Compiler.class_eval do
|
||||
module ClassStatement
|
||||
|
||||
def on_ClassStatement statement
|
||||
#puts statement.inspect
|
||||
|
||||
raise "classes dont yet play babushka, get coding #{name}" if @clazz
|
||||
|
||||
@clazz = Parfait::Space.object_space.get_class_by_name! statement.name
|
||||
#puts "Compiling class #{@clazz.name.inspect}"
|
||||
statement_value = process(statement.statements).last
|
||||
|
Reference in New Issue
Block a user