calculator: implement unary minus
authorAlexis Laferrière <alexis.laf@xymus.net>
Wed, 11 May 2016 18:13:34 +0000 (14:13 -0400)
committerAlexis Laferrière <alexis.laf@xymus.net>
Wed, 11 May 2016 18:18:49 +0000 (14:18 -0400)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

examples/calculator/src/calculator_logic.nit

index 775e8e3..840ed84 100644 (file)
@@ -79,6 +79,17 @@ class CalculatorContext
                else if op == "C" then
                        clear
                        return
+
+               # Unary -
+               else if op == "-" then
+                       if current == null then
+                               if last_op_was_unary then clear
+                               current = "-"
+                               return
+                       else if current == "-" then
+                               current = null
+                               return
+                       end
                end
 
                # For all operators, apply pending operators