diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/kompsos-collector.adb | 16 | ||||
| -rw-r--r-- | src/kompsos-collector.ads | 4 | ||||
| -rw-r--r-- | src/kompsos-pretty_print.adb | 20 | ||||
| -rw-r--r-- | src/kompsos-pretty_print.ads | 14 | ||||
| -rw-r--r-- | src/kompsos.adb | 20 | ||||
| -rw-r--r-- | src/kompsos.ads | 4 |
6 files changed, 31 insertions, 47 deletions
diff --git a/src/kompsos-collector.adb b/src/kompsos-collector.adb index db499f2..cca9dbd 100644 --- a/src/kompsos-collector.adb +++ b/src/kompsos-collector.adb @@ -9,9 +9,7 @@ with Ada.Containers, - Ada.Unchecked_Deallocation, - System.Address_To_Access_Conversions, - System.Storage_Elements; + Ada.Unchecked_Deallocation; package body Kompsos.Collector is @@ -103,18 +101,6 @@ package body Kompsos.Collector is end "<"; - package Graph_Comp_Conv is new System.Address_To_Access_Conversions (Graph_Component); - - function Graph_Component_Access_Hash - (Key : in Graph_Component_Access) - return Ada.Containers.Hash_Type - is - use Ada.Containers, Graph_Comp_Conv, System.Storage_Elements; - begin - return Hash_Type (To_Integer (To_Address (Object_Pointer (Key))) mod Hash_Type'Modulus); - end Graph_Component_Access_Hash; - - ------------------------ diff --git a/src/kompsos-collector.ads b/src/kompsos-collector.ads index da3c592..a341e1b 100644 --- a/src/kompsos-collector.ads +++ b/src/kompsos-collector.ads @@ -72,10 +72,6 @@ private (Index_Type => Positive, Element_Type => Node_Upwards); - function Graph_Component_Access_Hash - (Key : in Graph_Component_Access) - return Ada.Containers.Hash_Type; - package Upwards_Maps is new Ada.Containers.Hashed_Maps (Key_Type => Graph_Component_Access, Element_Type => Positive, diff --git a/src/kompsos-pretty_print.adb b/src/kompsos-pretty_print.adb index 328f467..a34abe6 100644 --- a/src/kompsos-pretty_print.adb +++ b/src/kompsos-pretty_print.adb @@ -11,9 +11,7 @@ with Ada.Characters.Latin_1, Ada.Strings.Fixed, Ada.Strings.Unbounded, - Kompsos.Collector, - System.Address_To_Access_Conversions, - System.Storage_Elements; + Kompsos.Collector; package body Kompsos.Pretty_Print is @@ -26,22 +24,6 @@ package body Kompsos.Pretty_Print is - package Graph_Convert is new System.Address_To_Access_Conversions (Graph_Component); - - function "<" - (Left, Right : in Graph_Component_Access) - return Boolean - is - use System.Storage_Elements; - begin - return - To_Integer (Graph_Convert.To_Address (Graph_Convert.Object_Pointer (Left))) < - To_Integer (Graph_Convert.To_Address (Graph_Convert.Object_Pointer (Right))); - end "<"; - - - - function Image (Item : in Long_Natural) return String is diff --git a/src/kompsos-pretty_print.ads b/src/kompsos-pretty_print.ads index 5b443f9..5e6b9ca 100644 --- a/src/kompsos-pretty_print.ads +++ b/src/kompsos-pretty_print.ads @@ -8,7 +8,7 @@ private with - Ada.Containers.Ordered_Maps; + Ada.Containers.Hashed_Maps; generic @@ -64,13 +64,11 @@ private - function "<" - (Left, Right : in Graph_Component_Access) - return Boolean; - - package DOT_Node_Maps is new Ada.Containers.Ordered_Maps - (Key_Type => Graph_Component_Access, - Element_Type => Long_Natural); + package DOT_Node_Maps is new Ada.Containers.Hashed_Maps + (Key_Type => Graph_Component_Access, + Element_Type => Long_Natural, + Hash => Graph_Component_Access_Hash, + Equivalent_Keys => "="); end Kompsos.Pretty_Print; diff --git a/src/kompsos.adb b/src/kompsos.adb index b12e1fb..7eecb00 100644 --- a/src/kompsos.adb +++ b/src/kompsos.adb @@ -8,8 +8,11 @@ with + Ada.Containers, Ada.Unchecked_Deallocation, - Kompsos.Collector; + Kompsos.Collector, + System.Address_To_Access_Conversions, + System.Storage_Elements; package body Kompsos is @@ -268,6 +271,21 @@ package body Kompsos is + -- Goals -- + + package Graph_Comp_Conv is new System.Address_To_Access_Conversions (Graph_Component); + + function Graph_Component_Access_Hash + (Key : in Graph_Component_Access) + return Ada.Containers.Hash_Type + is + use Ada.Containers, Graph_Comp_Conv, System.Storage_Elements; + begin + return Hash_Type (To_Integer (To_Address (Object_Pointer (Key))) mod Hash_Type'Modulus); + end Graph_Component_Access_Hash; + + + ------------------- -- microKanren -- diff --git a/src/kompsos.ads b/src/kompsos.ads index ab50a08..fa2ea8e 100644 --- a/src/kompsos.ads +++ b/src/kompsos.ads @@ -498,6 +498,10 @@ private type Graph_Component_Access is access Graph_Component; + function Graph_Component_Access_Hash + (Key : in Graph_Component_Access) + return Ada.Containers.Hash_Type; + type Goal_Graph is new Ada.Finalization.Controlled with record Actual : Graph_Component_Access := null; end record; |
