create and test derived classes too
This commit is contained in:
parent
170d453a36
commit
af9987659f
@ -9,10 +9,14 @@ module Melon
|
||||
compiler.process ast
|
||||
end
|
||||
|
||||
def get_name( statement )
|
||||
return nil unless statement
|
||||
statement.children[1]
|
||||
end
|
||||
|
||||
def on_class statement
|
||||
name , _ , _ = *statement
|
||||
clazz_name = name.children[1]
|
||||
Parfait::Space.object_space.create_class(clazz_name , nil )
|
||||
name , sup , _ = *statement
|
||||
Parfait::Space.object_space.create_class(get_name(name) , get_name(sup) )
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -3,15 +3,20 @@ require_relative "helper"
|
||||
module Melon
|
||||
class TestClass < MiniTest::Test
|
||||
|
||||
def test_creates_class
|
||||
Register.machine.boot
|
||||
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"
|
||||
def setup
|
||||
Register.machine.boot unless Register.machine.booted
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user