From 3b8b1b19f0fbb98943a34e9c63daf882e3610fe0 Mon Sep 17 00:00:00 2001 From: Thelonius Kort Date: Tue, 28 Mar 2023 23:44:19 +0200 Subject: [PATCH] Cleanup TunitModifications --- .../internal_tree/tunit_modifications.ex | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/lib/outlook/internal_tree/tunit_modifications.ex b/lib/outlook/internal_tree/tunit_modifications.ex index 8d382e8..da93c4a 100644 --- a/lib/outlook/internal_tree/tunit_modifications.ex +++ b/lib/outlook/internal_tree/tunit_modifications.ex @@ -2,8 +2,6 @@ defmodule Outlook.InternalTree.TunitModifications do alias Outlook.InternalTree.{InternalNode,TranslationUnit} - require Logger - def modifiers do [ %{ @@ -25,20 +23,21 @@ defmodule Outlook.InternalTree.TunitModifications do defp unite_with_next(nodelist, tu_ids) when is_list(tu_ids) do ids_to_process = Enum.reverse(tu_ids) - Logger.info "nu: #{inspect tu_ids}" Enum.reduce(ids_to_process, nodelist, fn id, nodes -> unite_with_next(nodes, id) end) end defp unite_with_next(nodelist, tu_id) do ind = Enum.find_index(nodelist, fn n -> n.nid == tu_id end) - case Enum.slice(nodelist, ind, 2) do - [unit, next] -> - nunit = %TranslationUnit{unit | content: unit.content <> next.content} - nodelist - |> List.replace_at(ind, nunit) - |> List.delete_at(ind + 1) - [_] -> - nodelist - end + nodes = Enum.slice(nodelist, ind, 2) + unite_with_next(nodelist, ind, nodes) + end + defp unite_with_next(nodelist, ind, [unit,next]) do + nunit = %TranslationUnit{unit | content: unit.content <> next.content} + nodelist + |> List.replace_at(ind, nunit) + |> List.delete_at(ind + 1) + end + defp unite_with_next(nodelist, _, [_]) do + nodelist end defp split_tunit(_nodelist, _tu_ids) do