aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/simulate/simul-environments.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/simulate/simul-environments.adb')
-rw-r--r--src/vhdl/simulate/simul-environments.adb36
1 files changed, 22 insertions, 14 deletions
diff --git a/src/vhdl/simulate/simul-environments.adb b/src/vhdl/simulate/simul-environments.adb
index 4e8622da3..662fd1729 100644
--- a/src/vhdl/simulate/simul-environments.adb
+++ b/src/vhdl/simulate/simul-environments.adb
@@ -18,6 +18,7 @@
with System;
with Ada.Unchecked_Conversion;
+with Ada.Text_IO;
with GNAT.Debug_Utilities;
with Name_Table;
with Simul.Debugger; use Simul.Debugger;
@@ -808,13 +809,20 @@ package body Simul.Environments is
end case;
end Get_Enum_Pos;
+ procedure Put_Indent (Indent : Natural)
+ is
+ use Ada.Text_IO;
+ begin
+ Put ((1 .. 2 * Indent => ' '));
+ end Put_Indent;
+
procedure Disp_Value_Tab (Value: Iir_Value_Literal_Acc;
- Tab: Ada.Text_IO.Count)
+ Indent : Natural)
is
use Ada.Text_IO;
use GNAT.Debug_Utilities;
begin
- Set_Col (Tab);
+ Put_Indent (Indent);
if Value = null then
Put_Line ("*NULL*");
return;
@@ -851,51 +859,51 @@ package body Simul.Environments is
Put_Line ("array, length: "
& Iir_Index32'Image (Value.Val_Array.Len));
declare
- Ntab: constant Count := Tab + Indentation;
+ Nindent: constant Natural := Indent + 1;
begin
- Set_Col (Ntab);
+ Put_Indent (Nindent);
if Value.Bounds /= null then
Put_Line ("bounds 1 .."
& Iir_Index32'Image (Value.Bounds.Nbr_Dims)
& ':');
for I in Value.Bounds.D'Range loop
- Disp_Value_Tab (Value.Bounds.D (I), Ntab);
+ Disp_Value_Tab (Value.Bounds.D (I), Nindent);
end loop;
else
Put_Line ("bounds = null");
end if;
- Set_Col (Ntab);
+ Put_Indent (Nindent);
Put_Line ("values 1 .."
& Iir_Index32'Image (Value.Val_Array.Len)
& ':');
for I in Value.Val_Array.V'Range loop
- Disp_Value_Tab (Value.Val_Array.V (I), Ntab);
+ Disp_Value_Tab (Value.Val_Array.V (I), Nindent);
end loop;
end;
end if;
when Iir_Value_Range =>
Put_Line ("range:");
- Set_Col (Tab);
+ Put_Indent (Indent);
Put (" direction: ");
Put (Iir_Direction'Image (Value.Dir));
Put (", length:");
Put_Line (Iir_Index32'Image (Value.Length));
if Value.Left /= null then
- Set_Col (Tab);
+ Put_Indent (Indent);
Put (" left bound: ");
- Disp_Value_Tab (Value.Left, Col);
+ Disp_Value_Tab (Value.Left, 0);
end if;
if Value.Right /= null then
- Set_Col (Tab);
+ Put_Indent (Indent);
Put (" right bound: ");
- Disp_Value_Tab (Value.Right, Col);
+ Disp_Value_Tab (Value.Right, 0);
end if;
when Iir_Value_Record =>
Put_Line ("record:");
for I in Value.Val_Record.V'Range loop
- Disp_Value_Tab (Value.Val_Record.V (I), Tab + Indentation);
+ Disp_Value_Tab (Value.Val_Record.V (I), Indent + 1);
end loop;
when Iir_Value_Signal =>
Put ("signal: ");
@@ -920,7 +928,7 @@ package body Simul.Environments is
procedure Disp_Value (Value: Iir_Value_Literal_Acc) is
begin
- Disp_Value_Tab (Value, 1);
+ Disp_Value_Tab (Value, 0);
end Disp_Value;
-- Return TRUE if VALUE has an indirect value.