require_relative "../parser_helper" class TestConditional < MiniTest::Test include ParserHelper def test_assignment @input = "myvar = 42" @output = s(:assign, :myvar, s(:int, 42)) check :assignment end def test_variable_declaration @input = "int myvar" @output = s(:variable,s(:type, "int", "myvar"), nil) check :variable_definition end def test_variable_declaration_value @input = "int myvar = 42" @output = s(:variable, s(:type, "int", "myvar"), s(:int, 42)) check :variable_definition end def test_if @input = <"if", :conditional=>{:l=>{:integer=>"3"}, :o=>"== ", :r=>{:nil=>"nil"}}, :if_true=>{:expressions=>[{:integer=>"3"}], :else=>"else"}, :if_false=>{:expressions=>[{:integer=>"4"}], :end=>"end"}} @output = nil @root = :conditional end def pest_simple_if @input = <"if", :conditional=>{:l=>{:integer=>"3"}, :o=>"== ", :r=>{:nil=>"nil"}}, :if_true=>{:expressions=>[{:integer=>"3"}], :else=>"else"}, :if_false=>{:expressions=>[{:integer=>"4"}], :end=>"end"}} @output = nil @root = :conditional end end