adds while statement to vool

This commit is contained in:
Torsten Ruger
2017-04-03 11:49:21 +03:00
parent 5335d08408
commit c545bfdfc6
4 changed files with 56 additions and 11 deletions

View File

@ -7,3 +7,4 @@ require_relative "test_if_statement"
require_relative "test_method_statement"
require_relative "test_send_statement"
require_relative "test_variables"
require_relative "test_while_statement"

View File

@ -0,0 +1,39 @@
require_relative 'helper'
module Vool
class TestWhileStatement < MiniTest::Test
def basic_while
"while(10 < 12) ; true ; end"
end
def test_while_basic
lst = Compiler.compile( basic_while )
assert_equal WhileStatement , lst.class
end
def test_while_basic_cond
lst = Compiler.compile( basic_while )
assert_equal SendStatement , lst.condition.class
end
def test_while_basic_branches
lst = Compiler.compile( basic_while )
assert_equal TrueStatement , lst.statements.class
end
def reverse_while
"true while(false)"
end
def test_while_reverse_branches
lst = Compiler.compile( reverse_while )
assert_equal WhileStatement , lst.class
end
def test_while_reverse_cond
lst = Compiler.compile( reverse_while )
assert_equal FalseStatement , lst.condition.class
end
def test_while_reverse_branches
lst = Compiler.compile( reverse_while )
assert_equal TrueStatement , lst.statements.class
end
end
end