Bläddra i källkod

Fixed negation bug in parser.

Sander Mathijs van Veen 14 år sedan
förälder
incheckning
10cc67cae2
2 ändrade filer med 8 tillägg och 2 borttagningar
  1. 1 2
      src/parser.py
  2. 7 0
      tests/test_calc.py

+ 1 - 2
src/parser.py

@@ -239,8 +239,7 @@ class Parser(BisonParser):
                                + combine('+', values[2])))
 
         if option == 1:  # rule: exp MINUS exp
-            return Node('-', *(combine('-', values[0])
-                               + combine('-', values[2])))
+            return Node('-', values[0], values[2])
 
         if option == 2:  # rule: exp TIMES exp
             return Node('*', *(combine('*', values[0])

+ 7 - 0
tests/test_calc.py

@@ -79,3 +79,10 @@ class TestCalc(unittest.TestCase):
                       ]
 
         run_expressions(Parser, expressions)
+
+    def test_negation(self):
+        run_expressions(Parser, [
+            ('-9', N('-', L(9))),
+            ('--9', N('-', N('-', L(9)))),
+            ('a--9', N('-', L('a'), N('-', L(9)))),
+            ])