diff --git a/parser.mly b/parser.mly index df8f827074a2d6dceb07ff182939acdde5c5b51f..f4dc10fec959e35e3e26d79e76b7c4cf85899dc7 100644 --- a/parser.mly +++ b/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