Sha256: e3bbd3fb1817c380964b4bdb29814270f27ce952bb9927f2c3f3fe4d7a75763f
Contents?: true
Size: 1.08 KB
Versions: 1
Compression:
Stored size: 1.08 KB
Contents
describe Gobstones::Parser, "while statements" do it "should parse a statement with a simple boolean and an empty block" do while_cmd = WhileCmd.new True.new, CmdBlock.empty expect('while (True) {}').to be_parsed_as(:command).and_return(while_cmd) expect('while (True) { }').to be_parsed_as(:command).and_return(while_cmd) expect('while (True) {}').to be_parsed_as(:command).and_return(while_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] while_cmd = WhileCmd.new False.new, cmd_block expect('while(False){Poner(Verde); Skip}'). to be_parsed_as(:command).and_return(while_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) while_cmd = WhileCmd.new exp, CmdBlock.empty expect('while (puedeMover(Norte) || (a && False)) {}'). to be_parsed_as(:command).and_return(while_cmd) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gobstones-0.0.1.1 | spec/parser/while_command_spec.rb |