create and test derived classes too
This commit is contained in:
parent
170d453a36
commit
af9987659f
@ -9,10 +9,14 @@ module Melon
|
|||||||
compiler.process ast
|
compiler.process ast
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_name( statement )
|
||||||
|
return nil unless statement
|
||||||
|
statement.children[1]
|
||||||
|
end
|
||||||
|
|
||||||
def on_class statement
|
def on_class statement
|
||||||
name , _ , _ = *statement
|
name , sup , _ = *statement
|
||||||
clazz_name = name.children[1]
|
Parfait::Space.object_space.create_class(get_name(name) , get_name(sup) )
|
||||||
Parfait::Space.object_space.create_class(clazz_name , nil )
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -3,15 +3,20 @@ require_relative "helper"
|
|||||||
module Melon
|
module Melon
|
||||||
class TestClass < MiniTest::Test
|
class TestClass < MiniTest::Test
|
||||||
|
|
||||||
def test_creates_class
|
def setup
|
||||||
Register.machine.boot
|
Register.machine.boot unless Register.machine.booted
|
||||||
before = Parfait::Space.object_space.classes.length
|
|
||||||
@string_input = <<HERE
|
|
||||||
class Testing
|
|
||||||
end
|
|
||||||
HERE
|
|
||||||
Compiler.compile @string_input
|
|
||||||
assert_equal 1 , Parfait::Space.object_space.classes.length - before , "No classes created"
|
|
||||||
end
|
end
|
||||||
|
def test_creates_class_without_deriviation
|
||||||
|
Compiler.compile "class Testing ; end"
|
||||||
|
assert t = Parfait::Space.object_space.get_class_by_name(:Testing) , "No classes created"
|
||||||
|
assert_equal :Object , t.super_class_name
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_creates_class_with_deriviation
|
||||||
|
Compiler.compile "class Test2 < List ;end"
|
||||||
|
assert t = Parfait::Space.object_space.get_class_by_name(:Test2) , "No classes created"
|
||||||
|
assert_equal :List , t.super_class_name
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user