diff options
Diffstat (limited to 'src/kompsos-pretty_print.adb')
| -rw-r--r-- | src/kompsos-pretty_print.adb | 45 |
1 files changed, 19 insertions, 26 deletions
diff --git a/src/kompsos-pretty_print.adb b/src/kompsos-pretty_print.adb index 73cee40..834c0ca 100644 --- a/src/kompsos-pretty_print.adb +++ b/src/kompsos-pretty_print.adb @@ -9,7 +9,8 @@ with Ada.Characters.Latin_1, - Ada.Strings.Fixed; + Ada.Strings.Fixed, + Kompsos.Collector; package body Kompsos.Pretty_Print is @@ -30,10 +31,10 @@ package body Kompsos.Pretty_Print is function Image - (Item : in ID_Number) + (Item : in Long_Natural) return String is begin - return Str.Fixed.Trim (ID_Number'Image (Item), Str.Left); + return Str.Fixed.Trim (Long_Natural'Image (Item), Str.Left); end Image; @@ -43,7 +44,7 @@ package body Kompsos.Pretty_Print is (Item : in Variable) return String is begin - return "Vargen#" & Image (ID_Number (Item.Ident)) & + return "Vargen#" & Image (Long_Natural (Item.Ident)) & (if SU.Length (Item.Name) /= 0 then "/" & SU.To_String (Item.Name) else ""); @@ -101,8 +102,8 @@ package body Kompsos.Pretty_Print is SU.Append (Result, Latin.LF); for Iter in Item.Ident.Iterate loop SU.Append (Result, Latin.HT & Latin.HT & "Vargen#" & - Image (ID_Number (ID_Number_Maps.Key (Iter))) & " => " & - Image (ID_Number (ID_Number_Maps.Element (Iter))) & Latin.LF); + 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:"); @@ -112,7 +113,7 @@ package body Kompsos.Pretty_Print is 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 (ID_Number (Index)) & + "Var#" & Image (Long_Natural (Index)) & (if SU.Length (Item.LVars (Index)) /= 0 then "/" & SU.To_String (Item.LVars (Index)) else "") & Latin.LF); @@ -125,7 +126,7 @@ 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 (ID_Number (Binding_Maps.Key (Iter))) & " => " & + Image (Long_Natural (Binding_Maps.Key (Iter))) & " => " & Image (Binding_Maps.Element (Iter)) & Latin.LF); end loop; end if; @@ -134,17 +135,17 @@ package body Kompsos.Pretty_Print is function Image - (Items : in State_Array) + (Item : in State_Array) return String is Result : SU.Unbounded_String; begin - if Items'Length = 0 then + if Item'Length = 0 then return "States: N/A" & Latin.LF; end if; - for Index in Items'Range loop + for Index in Item'Range loop SU.Append (Result, "State#" & Image (Index) & ":" & Latin.LF); - SU.Append (Result, Image (Items (Index))); + SU.Append (Result, Image (Item (Index))); end loop; return SU.Slice (Result, 1, SU.Length (Result) - 1); end Image; @@ -153,35 +154,27 @@ package body Kompsos.Pretty_Print is function Image - (Item : in out World) + (Item : in World) return String is Result : SU.Unbounded_String; Counter : Positive := 1; + + package Collect is new Collector (Item); begin - if not Item.Has_State (Counter) then + if not Collect.Has_Next then return "States: N/A" & Latin.LF; end if; loop SU.Append (Result, "State#" & Image (Counter) & ":" & Latin.LF); - SU.Append (Result, Image (Item.Possibles.Constant_Reference (Counter))); + SU.Append (Result, Image (Collect.Next)); + exit when not Collect.Has_Next; Counter := Counter + 1; - exit when not Item.Has_State (Counter); end loop; return SU.Slice (Result, 1, SU.Length (Result) - 1); end Image; - function Image_Constant - (Item : in World) - return String - is - Scratch : World := Item; - begin - return Image (Scratch); - end Image_Constant; - - end Kompsos.Pretty_Print; |
