From 796ea5d8f5d6ea422fbb1fbe29621abd7a9f2161 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Mon, 29 Oct 2018 12:33:50 +0000 Subject: Add case to make it more readable --- src/Main.hs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/Main.hs b/src/Main.hs index aabff1c..ffbef9a 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -40,14 +40,19 @@ eval (Node Xor c1 c2) = eval c1 `xor` eval c2 eval (Node Nand c1 c2) = complement $ eval c1 .&. eval c2 eval (Node Nor c1 c2) = complement $ eval c1 .|. eval c2 -visualize :: (Show a) => Circuit a -> Gr String () +visualize :: (Show a) => Circuit a -> Gr String String visualize circ = uncurry mkGraph $ graph Nothing 0 ([], []) circ where - graph (Just (par, _)) nl (n, e) (In val) = (n ++ [(nl, "In: " ++ show val)], e ++ [(par, nl, ())]) - graph Nothing nl (n, e) (In val) = (n ++ [(nl, "In: " ++ show val)], e) - graph _ _ _ _ = ([], []) + graph parent nl (l, e) circ = + case (parent, circ) of + (Nothing, (In val)) -> + ((nl, "In: " ++ show val) : l, e) + (Just par, (In val)) -> + ((nl, "In: " ++ show val) : l, (par, nl, "") : e) + _ -> + ([], []) main :: IO () --main = sample (arbitrary :: Gen (Circuit Input)) -main = putStrLn . unpack . renderDot . toDot . graphToDot nonClusteredParams $ visualize (In True) +main = preview $ visualize (In True) -- cgit