clearer organization for compiler tests

was slightly messy with small/large
now needed different test for expression and statements
This commit is contained in:
Torsten Ruger
2015-10-14 21:49:05 +03:00
parent 0c8be466df
commit 2094101bb2
21 changed files with 11 additions and 8 deletions

View File

@ -0,0 +1,31 @@
require_relative '../../helper'
require 'parslet/convenience'
Phisol::Compiler.class_eval do
def set_main main
@clazz = Virtual.machine.space.get_class_by_name :Object
@method = main
end
end
module CompilerHelper
def set_main compiler
compiler.set_main Virtual.machine.space.get_main
end
def check
machine = Virtual.machine
machine.boot unless machine.booted
parser = Parser::Salama.new
parser = parser.send @root
syntax = parser.parse_with_debug(@string_input)
parts = Parser::Transform.new.apply(syntax)
#puts parts.inspect
compiler = Phisol::Compiler.new
set_main(compiler)
produced = compiler.process( parts )
assert @output , "No output given"
assert_equal produced.class, @output , "Wrong class"
end
end