From 8e07a7568f4b41d0f9b06c6c851b4fa785b88fc4 Mon Sep 17 00:00:00 2001 From: Torsten Ruger Date: Sat, 19 Sep 2015 17:11:15 +0300 Subject: [PATCH] fix array in if_false --- lib/parser/transform.rb | 2 +- test/cases/class_def/class_if.tst | 37 +++++++++--------- test/cases/conditional/if_else.tst | 15 ++++---- .../cases/conditional/if_else_expressions.tst | 38 +++++++++---------- .../cases/function_definition/function_if.tst | 33 ++++++++-------- .../function_return_if.tst | 33 ++++++++-------- test/cases/module_def/module_if.tst | 35 ++++++++--------- 7 files changed, 99 insertions(+), 94 deletions(-) diff --git a/lib/parser/transform.rb b/lib/parser/transform.rb index ba6c758..c9a995b 100644 --- a/lib/parser/transform.rb +++ b/lib/parser/transform.rb @@ -40,7 +40,7 @@ module Parser rule(:if => simple(:if), :conditional => simple(:conditional), :if_true => {:expressions => sequence(:if_true) , :else => simple(:else) }, :if_false => {:expressions => sequence(:if_false) , :end => simple(:e) }) do - s(:if , s(:condition, conditional), s(:if_true, *if_true), s(:if_false , if_false)) + s(:if , s(:condition, conditional), s(:if_true, *if_true), s(:if_false , *if_false)) end rule(:if => simple(:if), :conditional => simple(:conditional), diff --git a/test/cases/class_def/class_if.tst b/test/cases/class_def/class_if.tst index a743b7c..07062b6 100644 --- a/test/cases/class_def/class_if.tst +++ b/test/cases/class_def/class_if.tst @@ -8,21 +8,22 @@ class Ifi end end -- -- -- -s(:expressions, - s(:class, :Ifi, - s(:derives, nil), - s(:function, :int, - s(:name, :ofthen), - s(:parameters, - s(:field, :int, :n)), - s(:expressions, - s(:if, - s(:condition, - s(:int, 0)), - s(:if_true, - s(:assign, - s(:name, :isit), - s(:int, 42))), - s(:if_false, [s(:assign, - s(:name, :maybenot), - s(:int, 667))])))))) +s(:expressions, + s(:class, :Ifi, + s(:derives, nil), + s(:function, :int, + s(:name, :ofthen), + s(:parameters, + s(:field, :int, :n)), + s(:expressions, + s(:if, + s(:condition, + s(:int, 0)), + s(:if_true, + s(:assign, + s(:name, :isit), + s(:int, 42))), + s(:if_false, + s(:assign, + s(:name, :maybenot), + s(:int, 667)))))))) diff --git a/test/cases/conditional/if_else.tst b/test/cases/conditional/if_else.tst index d0e7c93..e9ec1fe 100644 --- a/test/cases/conditional/if_else.tst +++ b/test/cases/conditional/if_else.tst @@ -4,10 +4,11 @@ else 667 end -- -- -- -s(:expressions, - s(:if, - s(:condition, - s(:int, 0)), - s(:if_true, - s(:int, 42)), - s(:if_false, [s(:int, 667)]))) +s(:expressions, + s(:if, + s(:condition, + s(:int, 0)), + s(:if_true, + s(:int, 42)), + s(:if_false, + s(:int, 667)))) diff --git a/test/cases/conditional/if_else_expressions.tst b/test/cases/conditional/if_else_expressions.tst index e8d9651..b3d6b0f 100644 --- a/test/cases/conditional/if_else_expressions.tst +++ b/test/cases/conditional/if_else_expressions.tst @@ -4,22 +4,22 @@ else var.new(33) end -- -- -- -s(:expressions, - s(:if, - s(:condition, - s(:operator, ">", - s(:int, 3), - s(:name, :var))), - s(:if_true, - s(:call, - s(:name, :initialize), - s(:arguments, - s(:int, 3)), - s(:receiver, - s(:module, "Object")))), - s(:if_false, [s(:call, - s(:name, :new), - s(:arguments, - s(:int, 33)), - s(:receiver, - s(:name, :var)))]))) +s(:expressions, + s(:if, + s(:condition, + s(:operator, ">", + s(:int, 3), + s(:name, :var))), + s(:if_true, + s(:call, + s(:name, :initialize), + s(:arguments, + s(:int, 3)), + s(:receiver, + s(:module, "Object")))), + s(:if_false, s(:call, + s(:name, :new), + s(:arguments, + s(:int, 33)), + s(:receiver, + s(:name, :var)))))) diff --git a/test/cases/function_definition/function_if.tst b/test/cases/function_definition/function_if.tst index 01c7e9b..001888f 100644 --- a/test/cases/function_definition/function_if.tst +++ b/test/cases/function_definition/function_if.tst @@ -6,19 +6,20 @@ ref ofthen(int n) end end -- -- -- -s(:expressions, - s(:function, :ref, - s(:name, :ofthen), - s(:parameters, - s(:field, :int, :n)), - s(:expressions, - s(:if, - s(:condition, - s(:int, 0)), - s(:if_true, - s(:assign, - s(:name, :isit), - s(:int, 42))), - s(:if_false, [s(:assign, - s(:name, :maybenot), - s(:int, 667))]))))) +s(:expressions, + s(:function, :ref, + s(:name, :ofthen), + s(:parameters, + s(:field, :int, :n)), + s(:expressions, + s(:if, + s(:condition, + s(:int, 0)), + s(:if_true, + s(:assign, + s(:name, :isit), + s(:int, 42))), + s(:if_false, + s(:assign, + s(:name, :maybenot), + s(:int, 667))))))) diff --git a/test/cases/function_definition/function_return_if.tst b/test/cases/function_definition/function_return_if.tst index 9b45f44..2c8df5d 100644 --- a/test/cases/function_definition/function_return_if.tst +++ b/test/cases/function_definition/function_return_if.tst @@ -6,19 +6,20 @@ int retvar(int n) end end -- -- -- -s(:expressions, - s(:function, :int, - s(:name, :retvar), - s(:parameters, - s(:field, :int, :n)), - s(:expressions, - s(:if, - s(:condition, - s(:operator, ">", - s(:name, :n), - s(:int, 5))), - s(:if_true, - s(:return, - s(:int, 10))), - s(:if_false, [s(:return, - s(:int, 20))]))))) +s(:expressions, + s(:function, :int, + s(:name, :retvar), + s(:parameters, + s(:field, :int, :n)), + s(:expressions, + s(:if, + s(:condition, + s(:operator, ">", + s(:name, :n), + s(:int, 5))), + s(:if_true, + s(:return, + s(:int, 10))), + s(:if_false, + s(:return, + s(:int, 20))))))) diff --git a/test/cases/module_def/module_if.tst b/test/cases/module_def/module_if.tst index 2b45a0e..b6492a1 100644 --- a/test/cases/module_def/module_if.tst +++ b/test/cases/module_def/module_if.tst @@ -8,20 +8,21 @@ module Foo end end -- -- -- -s(:expressions, - s(:module, :Foo, - s(:function, :ref, - s(:name, :ofthen), - s(:parameters, - s(:field, :int, :n)), - s(:expressions, - s(:if, - s(:condition, - s(:int, 0)), - s(:if_true, - s(:assign, - s(:name, :isit), - s(:int, 42))), - s(:if_false, [s(:assign, - s(:name, :maybenot), - s(:int, 667))])))))) +s(:expressions, + s(:module, :Foo, + s(:function, :ref, + s(:name, :ofthen), + s(:parameters, + s(:field, :int, :n)), + s(:expressions, + s(:if, + s(:condition, + s(:int, 0)), + s(:if_true, + s(:assign, + s(:name, :isit), + s(:int, 42))), + s(:if_false, + s(:assign, + s(:name, :maybenot), + s(:int, 667))))))))