cleaned up chained assignment and conditional
Making this almost usable
This commit is contained in:
@ -44,12 +44,21 @@ module SlotLanguage
|
||||
class TestAssignment3 < MiniTest::Test
|
||||
include SlotHelper
|
||||
|
||||
def est_slot_load_linst_trav2
|
||||
assert_equal Assignment , compile_class("@a.c = b.c")
|
||||
def test_inst_ass
|
||||
assign = compile("@a.b = c")
|
||||
assert_equal Assignment , assign.class
|
||||
assert_equal MessageVariable , assign.left.class
|
||||
assert_equal :a , assign.left.name
|
||||
assert_equal Variable , assign.left.chain.class
|
||||
assert_equal :b , assign.left.chain.name
|
||||
end
|
||||
def est_assign2
|
||||
assign = compile("c.next = d")
|
||||
assert_equal Assignment , assign.class
|
||||
def test_local_ass
|
||||
assign = compile("a.b = c")
|
||||
assert_equal Assignment , assign.class
|
||||
assert_equal Variable , assign.left.class
|
||||
assert_equal :a , assign.left.name
|
||||
assert_equal Variable , assign.left.chain.class
|
||||
assert_equal :b , assign.left.chain.name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -55,4 +55,38 @@ module SlotLanguage
|
||||
assert_equal :c , @expr.last.right.name
|
||||
end
|
||||
end
|
||||
class TestEqualGotoChain < MiniTest::Test
|
||||
include SlotHelper
|
||||
def setup
|
||||
@expr = compile("goto(start_label) if( a.b == c)")
|
||||
end
|
||||
def test_eq
|
||||
assert_equal EqualGoto , @expr.class
|
||||
end
|
||||
def test_left
|
||||
assert_equal Variable , @expr.left.class
|
||||
assert_equal :a , @expr.left.name
|
||||
end
|
||||
def test_left_chain
|
||||
assert_equal Variable , @expr.left.chain.class
|
||||
assert_equal :b , @expr.left.chain.name
|
||||
end
|
||||
end
|
||||
class TestEqualGotoChain2 < MiniTest::Test
|
||||
include SlotHelper
|
||||
def setup
|
||||
@expr = compile("goto(start_label) if( a == @b.c)")
|
||||
end
|
||||
def test_eq
|
||||
assert_equal EqualGoto , @expr.class
|
||||
end
|
||||
def test_left
|
||||
assert_equal MessageVariable , @expr.right.class
|
||||
assert_equal :b , @expr.right.name
|
||||
end
|
||||
def test_left_chain
|
||||
assert_equal Variable , @expr.right.chain.class
|
||||
assert_equal :c , @expr.right.chain.name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user