rubyx/test/compiler/test_compiler.rb
2015-09-20 17:33:05 +03:00

30 lines
850 B
Ruby

require_relative "compiler_helper"
class CompilerTest < MiniTest::Test
include AST::Sexp
def setup
Virtual.machine.boot
end
def check
res = Bosl::Compiler.compile( @expression , Virtual.machine.space.get_main )
assert res.is_a?(Virtual::Slot) , "compiler must compile to slot, not #{res.inspect}"
end
def ttest_if_expression
#TODO review constant : all expressions return a slot
@expression = s(:if,
s(:condition,
s(:int, 0)),
s(:if_true,
s(:int, 42)),
s(:if_false, nil))
check
end
def test_function_expression
@expression = s(:function, :int, s(:name, :foo),
s(:parameters, s(:parameter, :ref, :x)),
s(:expressions, s(:int, 5)))
check
end
end