Sha256: 7da4c12f9cd514f240dd82ce28434c9f11f75f04725edeaa46e411216bda084b
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
describe Gobstones::Parser, "if statements" do describe "if" do it "should parse a statement with a simple boolean and an empty block" do if_cmd = IfCmd.new True.new, CmdBlock.empty expect('if (True) {}').to be_parsed_as(:command).and_return(if_cmd) expect('if (True) { }').to be_parsed_as(:command).and_return(if_cmd) expect('if (True) {}').to be_parsed_as(:command).and_return(if_cmd) end it "should parse a statement with a simple boolean and a block with commands" do cmd_block = CmdBlock.new [Poner.new(Verde.new), Skip.new] if_cmd = IfCmd.new False.new, cmd_block expect('if(False){Poner(Verde); Skip}'). to be_parsed_as(:command).and_return(if_cmd) end it "should parse a statement with a complex boolean expression" do and_expr = And.new VarName.new('a'), False.new exp = Or.new PuedeMover.new(Norte.new), ParenthesesExpr.new(and_expr) if_cmd = IfCmd.new exp, CmdBlock.empty expect('if (puedeMover(Norte) || (a && False)) {}'). to be_parsed_as(:command).and_return(if_cmd) end end describe "if-else" do it "should parse a statement with an else block" do else_block = CmdBlock.new [Mover.new(Norte.new)] if_else_cmd = IfElseCmd.new False.new, CmdBlock.empty, else_block expect('if (False) { } else { Mover(Norte) }'). to be_parsed_as(:command).and_return(if_else_cmd) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gobstones-0.0.1.1 | spec/parser/if_command_spec.rb |