aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/kompsos-collector.adb16
-rw-r--r--src/kompsos-collector.ads4
-rw-r--r--src/kompsos-pretty_print.adb20
-rw-r--r--src/kompsos-pretty_print.ads14
-rw-r--r--src/kompsos.adb20
-rw-r--r--src/kompsos.ads4
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;