more speration
Separating vm and parfait especially in method this is hairy, lots of ripples bug is back in sod (i hope thats a good thing)
This commit is contained in:
@ -34,7 +34,7 @@ module Parfait
|
||||
# used to determine if a send must be issued
|
||||
# return index of the name into the message if so
|
||||
def has_var name
|
||||
name = name.to_sym
|
||||
raise "uups #{name}.#{name.class}" unless name.is_a? Word
|
||||
index = has_arg(name)
|
||||
return index if index
|
||||
has_local(name)
|
||||
|
@ -14,15 +14,20 @@
|
||||
module Parfait
|
||||
class Module < Object
|
||||
def initialize name , superclass
|
||||
@name = name
|
||||
@instance_methods = []
|
||||
@name = name
|
||||
@super_class = superclass
|
||||
@meta_class = Virtual::MetaClass.new(self)
|
||||
end
|
||||
|
||||
def name
|
||||
@name
|
||||
end
|
||||
|
||||
def add_instance_method method
|
||||
raise "not a method #{method.class} #{method.inspect}" unless method.is_a? Method
|
||||
raise "syserr " unless method.name.is_a? Symbol
|
||||
raise "syserr #{method.name.class}" unless method.name.is_a? Word
|
||||
method.for_class = self
|
||||
@instance_methods << method
|
||||
method
|
||||
|
@ -64,13 +64,16 @@ module Parfait
|
||||
# this is the way to instantiate classes (not Parfait::Class.new)
|
||||
# so we get and keep exactly one per name
|
||||
def get_class_by_name name
|
||||
raise "uups #{name}.#{name.class}" unless name.is_a? String or name.is_a? Word
|
||||
raise "uups #{name}.#{name.class}" unless name.is_a? Word
|
||||
c = @classes[name]
|
||||
raise "uups " if name.is_a? String
|
||||
puts "MISS, no class #{name} #{name.class}" # " #{@classes}"
|
||||
c
|
||||
end
|
||||
|
||||
def create_class name
|
||||
c = Class.new_object(name)
|
||||
raise "uups " if name.is_a? String
|
||||
@classes[name] = c
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user