@ -8,6 +8,7 @@ module Vool
|
||||
end
|
||||
|
||||
def to_mom(clazz)
|
||||
raise "not meta" unless clazz.class == Parfait::MetaClass
|
||||
raise( "no class in #{self}") unless clazz
|
||||
method = clazz.add_method_for(name , make_arg_type , make_frame , body )
|
||||
compiler = method.compiler_for(clazz.instance_type)
|
||||
|
@ -20,10 +20,14 @@ module Vool
|
||||
def to_mom( _ )
|
||||
create_class_object
|
||||
method_compilers = body.statements.collect do |node|
|
||||
unless node.is_a?(MethodStatement) or node.is_a?(ClassMethodStatement)
|
||||
case node
|
||||
when MethodStatement
|
||||
node.to_mom(@clazz)
|
||||
when ClassMethodStatement
|
||||
node.to_mom(@clazz.meta_class)
|
||||
else
|
||||
raise "Only methods for now #{node.class}:#{node}"
|
||||
end
|
||||
node.to_mom(@clazz)
|
||||
end
|
||||
Mom::MomCompiler.new(method_compilers)
|
||||
end
|
||||
|
Reference in New Issue
Block a user