adds ivar collection with tests

This commit is contained in:
Torsten Ruger
2017-04-08 12:11:52 +03:00
parent 8942f42310
commit d00fbb233e
5 changed files with 89 additions and 2 deletions

View File

@ -0,0 +1,32 @@
require_relative "helper"
module Vool
module Compilers
class TestIvarCollect < MiniTest::Test
def compile(input)
lst = VoolCompiler.compile( input )
vars = []
lst.collect([]).each do |node|
node.add_ivar(vars)
end
vars
end
def test_instance_collect
vars = compile( "@var" )
assert_equal :var , vars.first
end
def test_return_collect
vars = compile( "return @var" )
assert_equal :var , vars.first
end
def ttest_assign_collect
vars = compile( "@var = 5" )
assert_equal :var , vars.first
end
end
end
end

18
test/vool/helper.rb Normal file
View File

@ -0,0 +1,18 @@
require_relative "../helper"
module Vool
module CompilerHelper
def in_Test(statements)
"class Test ; #{statements} ; end"
end
def in_Space(statements)
"class Space ; #{statements} ; end"
end
def as_main(statements)
in_Space("def main ; #{statements}; end")
end
end
end