Explorar o código

Fixed bug in nary-operator flattening

Taddeus Kroes %!s(int64=11) %!d(string=hai) anos
pai
achega
b3315224d6
Modificáronse 1 ficheiros con 2 adicións e 2 borrados
  1. 2 2
      parser.mly

+ 2 - 2
parser.mly

@@ -23,8 +23,8 @@
     in
     let rec flatten_nary = function
       | [] -> []
-      | Nary (op, Nary (op2, left) :: right) :: tl when op2 = op ->
-        Nary (op, flatten_nary left @ flatten_nary right) :: flatten_nary tl
+      | Nary (op1, Nary (op2, left) :: right) :: tl when op1 = op2 ->
+        flatten_nary (Nary (op1, flatten_nary left @ flatten_nary right) :: tl)
       | hd :: tl -> hd :: flatten_nary tl
     in
     match terms |> transform_ops |> flatten_nary with