spec/parser/function_definitions_spec.rb in gobstones-0.0.1.1 vs spec/parser/function_definitions_spec.rb in gobstones-0.0.2
- old
+ new
@@ -1,50 +1,45 @@
describe Gobstones::Parser, "function definitions" do
- it "should parse a function without args and a single return" do
- args = VarTuple.new []
+ it "parses a function without args and a single return" do
func_return = ReturnFromFunction.new [42.to_gbs_num]
- func_def = Function.new 'just42', args, CmdBlock.new([]), func_return
+ func_def = Function.new 'just42', no_arguments, empty_body, func_return
expect('function just42() { return (42) }').
to be_parsed_as(:definition).and_return(func_def)
end
- it "should parse a function with some args" do
- first_arg = VarName.new 'firstArg'
- second_arg = VarName.new 'secondArg'
- third_arg = VarName.new 'thirdArg'
- args = VarTuple.new [first_arg, second_arg, third_arg]
- body =
- return_st = ReturnFromFunction.new [Verde.new, PuedeMover.new(Norte.new)]
- func_def = Function.new 'myCoolFunction', args, CmdBlock.new([]), return_st
+ it "parses a function with some args" do
+ args = VarTuple.new ['firstArg'.to_var_name, 'secondArg'.to_var_name, 'thirdArg'.to_var_name]
+ return_st = ReturnFromFunction.new [verde, PuedeMover.new(norte)]
+ func_def = Function.new 'myCoolFunction', args, empty_body, return_st
expect('function myCoolFunction (firstArg, secondArg, thirdArg) {
return (Verde, puedeMover(Norte))
}').to be_parsed_as(:definition).and_return(func_def)
end
- it "should parse a function with some statements" do
- args = VarTuple.new [VarName.new('arg')]
- body = CmdBlock.new [Poner.new(Verde.new)]
- return_st = ReturnFromFunction.new [True.new]
+ it "parses a function with some statements" do
+ args = VarTuple.new ['arg'.to_var_name]
+ body = CommandBlock.new [Poner.new(verde)]
+ return_st = ReturnFromFunction.new [true_value]
func_def = Function.new 'myFunc', args, body, return_st
expect('function myFunc(arg)
{
Poner(Verde)
return (True)
}').to be_parsed_as(:definition).and_return(func_def)
end
- it "should not parse a function without a valid identifier" do
+ it "does not parse a function without a valid identifier" do
expect('function MyWrongFunc() { return(True) }').
to be_parsed_as(:definition).and_fail
end
- it "should not parse a function without a return statement" do
+ it "does not parse a function without a return statement" do
expect('function myFuncWithoutReturn() { }').
to be_parsed_as(:definition).and_fail
end
-end
\ No newline at end of file
+end