2015-07-19 11:31:57 +02:00
|
|
|
require_relative "compiler_helper"
|
|
|
|
|
|
|
|
|
|
|
|
class CompilerTest < MiniTest::Test
|
2015-09-20 16:33:05 +02:00
|
|
|
include AST::Sexp
|
2015-07-19 11:31:57 +02:00
|
|
|
def setup
|
|
|
|
Virtual.machine.boot
|
|
|
|
end
|
|
|
|
def check
|
2015-10-09 16:51:14 +02:00
|
|
|
res = Phisol::Compiler.compile( @statement )
|
2015-09-20 16:33:05 +02:00
|
|
|
assert res.is_a?(Virtual::Slot) , "compiler must compile to slot, not #{res.inspect}"
|
2015-07-19 11:31:57 +02:00
|
|
|
end
|
2015-10-09 16:51:14 +02:00
|
|
|
def test_function_statement
|
|
|
|
@statement = s(:class, :Foo,
|
2015-10-05 23:27:13 +02:00
|
|
|
s(:derives, :Object),
|
2015-10-09 16:51:14 +02:00
|
|
|
s(:statements,
|
2015-10-05 23:27:13 +02:00
|
|
|
s(:function, :int, s(:name, :foo),
|
|
|
|
s(:parameters, s(:parameter, :ref, :x)),
|
2015-10-09 16:51:14 +02:00
|
|
|
s(:statements, s(:int, 5)))))
|
2015-07-19 11:31:57 +02:00
|
|
|
check
|
|
|
|
end
|
|
|
|
end
|