aboutsummaryrefslogtreecommitdiff
path: root/src/kompsos-pretty_print.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/kompsos-pretty_print.adb')
-rw-r--r--src/kompsos-pretty_print.adb50
1 files changed, 20 insertions, 30 deletions
diff --git a/src/kompsos-pretty_print.adb b/src/kompsos-pretty_print.adb
index 250c6a6..c888e13 100644
--- a/src/kompsos-pretty_print.adb
+++ b/src/kompsos-pretty_print.adb
@@ -10,6 +10,7 @@ with
Ada.Characters.Latin_1,
Ada.Strings.Fixed,
+ Ada.Strings.Unbounded,
Kompsos.Collector;
@@ -18,41 +19,41 @@ package body Kompsos.Pretty_Print is
package Latin renames Ada.Characters.Latin_1;
package Str renames Ada.Strings;
+ package SU renames Ada.Strings.Unbounded;
function Image
- (Item : in Integer)
+ (Item : in Long_Natural)
return String is
begin
- return Str.Fixed.Trim (Integer'Image (Item), Str.Left);
+ return Str.Fixed.Trim (Long_Natural'Image (Item), Str.Left);
end Image;
function Image
- (Item : in Long_Natural)
+ (Item : in Variable)
return String is
begin
- return Str.Fixed.Trim (Long_Natural'Image (Item), Str.Left);
+ return "Var#" & Image (Long_Natural (Item));
end Image;
+ -----------------------------------
+ -- Datatype->String Conversion --
+ -----------------------------------
+
function Image
- (Item : in Variable)
+ (Item : in Integer)
return String is
begin
- return "Vargen#" & Image (Long_Natural (Item.Ident)) &
- (if SU.Length (Item.Name) /= 0
- then "/" & SU.To_String (Item.Name)
- else "");
+ return Str.Fixed.Trim (Integer'Image (Item), Str.Left);
end Image;
-
-
function Image
(Item : in Term)
return String
@@ -93,28 +94,13 @@ package body Kompsos.Pretty_Print is
is
Result : SU.Unbounded_String;
begin
- SU.Append (Result, Latin.HT & "Generation:");
- if Item.Ident.Is_Empty then
- SU.Append (Result, " N/A" & Latin.LF);
- else
- SU.Append (Result, Latin.LF);
- for Iter in Item.Ident.Iterate loop
- SU.Append (Result, Latin.HT & Latin.HT & "Vargen#" &
- Image (Long_Natural (ID_Number_Maps.Key (Iter))) & " => " &
- Image (Long_Natural (ID_Number_Maps.Element (Iter))) & Latin.LF);
- end loop;
- end if;
SU.Append (Result, Latin.HT & "Variables:");
if Item.LVars.Is_Empty then
SU.Append (Result, " N/A" & Latin.LF);
else
SU.Append (Result, Latin.LF);
- for Index in Item.LVars.First_Index .. Item.LVars.Last_Index loop
- SU.Append (Result, Latin.HT & Latin.HT &
- "Var#" & Image (Long_Natural (Index)) &
- (if SU.Length (Item.LVars (Index)) /= 0
- then "/" & SU.To_String (Item.LVars (Index))
- else "") & Latin.LF);
+ for LVar of Item.LVars loop
+ SU.Append (Result, Latin.HT & Latin.HT & Image (LVar) & Latin.LF);
end loop;
end if;
SU.Append (Result, Latin.HT & "Substitution:");
@@ -124,11 +110,11 @@ package body Kompsos.Pretty_Print is
SU.Append (Result, Latin.LF);
for Iter in Item.Subst.Iterate loop
SU.Append (Result, Latin.HT & Latin.HT &
- Image (Long_Natural (Binding_Maps.Key (Iter))) & " => " &
+ Image (Binding_Maps.Key (Iter)) & " => " &
Image (Binding_Maps.Element (Iter)) & Latin.LF);
end loop;
end if;
- return -Result;
+ return SU.To_String (Result);
end Image;
@@ -173,6 +159,10 @@ package body Kompsos.Pretty_Print is
+ --------------------------------
+ -- Graphviz DAG Of Tomorrow --
+ --------------------------------
+
procedure Do_Structure_DOT
(This : in Goal;
Nodes : in out DOT_Node_Maps.Map;