This commit is contained in:
Torsten Ruger 2015-09-27 11:27:30 +03:00
parent 4d9d67af5c
commit c4f89441e2
4 changed files with 23 additions and 18 deletions

View File

@ -3,14 +3,14 @@ module Bosl
# attr_reader :values
def on_array expession, context
# to.do
raise "not implemented"
end
# attr_reader :key , :value
def on_association context
# to.do
raise "not implemented"
end
def on_hash context
# to.do
raise "not implemented"
end
end
end

View File

@ -2,6 +2,7 @@ module Bosl
Compiler.class_eval do
def on_field_def expression
# puts expression.inspect
type , name , value = *expression
name = name
index = method.ensure_local( name )

View File

@ -0,0 +1,16 @@
module CodeChecker
def check
Virtual.machine.boot.compile_main @string_input
produced = Virtual.machine.space.get_main.source
assert @output , "No output given"
assert_equal @output.length , produced.blocks.length , "Block length"
produced.blocks.each_with_index do |b,i|
codes = @output[i]
assert codes , "No codes for block #{i}"
assert_equal b.codes.length , codes.length , "Code length for block #{i}"
b.codes.each_with_index do |c , ii |
assert_equal codes[ii] , c.class , "Block #{i} , code #{ii}"
end
end
end
end

View File

@ -1,21 +1,9 @@
require_relative "compiler_helper"
require_relative "code_checker"
module Virtual
class TestMethods < MiniTest::Test
def check
Virtual.machine.boot.compile_main @string_input
produced = Virtual.machine.space.get_main.source
assert @output , "No output given"
assert_equal @output.length , produced.blocks.length , "Block length"
produced.blocks.each_with_index do |b,i|
codes = @output[i]
assert codes , "No codes for block #{i}"
assert_equal b.codes.length , codes.length , "Code length for block #{i}"
b.codes.each_with_index do |c , ii |
assert_equal codes[ii] , c.class , "Block #{i} , code #{ii}"
end
end
end
include CodeChecker
def test_module
@string_input = <<HERE