diff options
author | Yann Herklotz <git@yannherklotz.com> | 2020-05-05 14:07:18 +0100 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2020-05-05 14:07:18 +0100 |
commit | 7837fb746d5f0ccadf85d3f3808bb1e173c07841 (patch) | |
tree | 9baedb7e8ef25c58b37ce78e65ceecb71972a43d | |
parent | 34aaba05bda3377a90e056b7b371cae82778a202 (diff) | |
download | verismith-dev/distance.tar.gz verismith-dev/distance.zip |
Fix distance always giving 0dev/distance
-rw-r--r-- | src/Verismith/Verilog/Distance.hs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/Verismith/Verilog/Distance.hs b/src/Verismith/Verilog/Distance.hs index 3559a6a..edc24f5 100644 --- a/src/Verismith/Verilog/Distance.hs +++ b/src/Verismith/Verilog/Distance.hs @@ -82,7 +82,7 @@ instance Distance a => Distance [a] where ] dempty [] = 0 - dempty (a:b) = minimum [dempty a, dempty b] + dempty (a:b) = maximum [dempty a, dempty b] instance Distance a => Distance (Maybe a) where distance Nothing a = dempty a @@ -127,8 +127,8 @@ instance Distance PortDir where distance = eqDistance instance Distance (Statement a) where - distance (TimeCtrl _ s1) s2 = 1 + distance s1 (Just s2) - distance (EventCtrl _ s1) s2 = 1 + distance s1 (Just s2) + distance (TimeCtrl _ s1) (TimeCtrl _ s2) = distance s1 s2 + distance (EventCtrl _ s1) (EventCtrl _ s2) = distance s1 s2 distance (SeqBlock s1) (SeqBlock s2) = distance s1 s2 distance (CondStmnt _ st1 sf1) (CondStmnt _ st2 sf2) = distance st1 st2 + distance sf1 sf2 distance (ForLoop _ _ _ s1) (ForLoop _ _ _ s2) = distance s1 s2 @@ -161,21 +161,21 @@ instance Distance Port where distance t1 t2 + distance s1 s2 + distance r1 r2 udistance (Port t1 s1 r1 _) (Port t2 s2 r2 _) = udistance t1 t2 + udistance s1 s2 + udistance r1 r2 - dempty (Port t1 s1 r1 _) = dempty t1 + dempty s1 + dempty r1 + dempty (Port t1 s1 r1 _) = 1 + dempty t1 + dempty s1 + dempty r1 instance Distance (ModDecl a) where distance (ModDecl _ min1 mout1 mis1 mp1) (ModDecl _ min2 mout2 mis2 mp2) = distance min1 min2 + distance mout1 mout2 + distance mis1 mis2 + distance mp1 mp2 udistance (ModDecl _ min1 mout1 mis1 mp1) (ModDecl _ min2 mout2 mis2 mp2) = udistance min1 min2 + udistance mout1 mout2 + udistance mis1 mis2 + udistance mp1 mp2 - dempty (ModDecl _ min mout mis mp) = dempty min + dempty mout + dempty mis + dempty mp + dempty (ModDecl _ min mout mis mp) = 1 + dempty min + dempty mout + dempty mis + dempty mp instance Distance (Verilog a) where distance (Verilog m1) (Verilog m2) = distance m1 m2 udistance (Verilog m1) (Verilog m2) = udistance m1 m2 - dempty (Verilog m) = dempty m + dempty (Verilog m) = 1 + dempty m instance Distance (SourceInfo a) where distance (SourceInfo _ v1) (SourceInfo _ v2) = distance v1 v2 udistance (SourceInfo _ v1) (SourceInfo _ v2) = udistance v1 v2 - dempty (SourceInfo _ v) = dempty v + dempty (SourceInfo _ v) = 1 + dempty v |