spec/parser/procedure_calls_spec.rb in gobstones-0.0.2 vs spec/parser/procedure_calls_spec.rb in gobstones-0.0.3

- old
+ new

@@ -1,36 +1,35 @@ -describe Gobstones::Parser, "procedure calls" do - - it "parses a procedure call without args" do +RSpec.describe Gobstones::Parser, 'procedure calls' do + it 'parses a procedure call without args' do expect('P1()').to be_parsed_as(:command).and_return(ProcedureCall.new('P1')) end - it "does not parse a procedure call without a valid identifier" do + it 'does not parse a procedure call without a valid identifier' do expect('p1()').to be_parsed_as(:command).and_fail end - it "parses a procedure call with one arg" do - expected = ProcedureCall.new 'Proc1', [verde] + it 'parses a procedure call with one arg' do + expected = ProcedureCall.new('Proc1', [verde]) + expect('Proc1(Verde)').to be_parsed_as(:command).and_return(expected) end - it "parses a procedure with many args" do + it 'parses a procedure with many args' do first_arg = 42.to_gbs_num - second_arg = NroBolitas.new verde + second_arg = NroBolitas.new(verde) third_arg = norte - expected = ProcedureCall.new 'Proc1', [first_arg, second_arg, third_arg] + expected = ProcedureCall.new('Proc1', [first_arg, second_arg, third_arg]) - expect('Proc1(42, nroBolitas(Verde), Norte)'). - to be_parsed_as(:command).and_return(expected) + expect('Proc1(42, nroBolitas(Verde), Norte)').to be_parsed_as(:command).and_return(expected) end - it "parses a complex procedure call" do - or_expr = Or.new 'a'.to_var_name, 'b'.to_var_name - paren_expr = EnclosedByParensExpression.new Div.new(10.to_gbs_num, 'c'.to_var_name) - num_expr = Mul.new 5.to_gbs_num, paren_expr - func_call = FunctionCall.new 'func', [verde, Opuesto.new(norte)] - proc_call = ProcedureCall.new 'Proc1', [or_expr, num_expr, func_call] + it 'parses a complex procedure call' do + or_expr = Or.new('a'.to_var_name, 'b'.to_var_name) + paren_expr = EnclosedByParensExpression.new(Div.new(10.to_gbs_num, 'c'.to_var_name)) + num_expr = Mul.new(5.to_gbs_num, paren_expr) + func_call = FunctionCall.new('func', [verde, Opuesto.new(norte)]) + proc_call = ProcedureCall.new('Proc1', [or_expr, num_expr, func_call]) + expect('Proc1(a || b, 5*(10 div c), func(Verde, opuesto(Norte)))'). to be_parsed_as(:command).and_return(proc_call) end - end