summaryrefslogtreecommitdiff
path: root/disp_vhdl.adb
diff options
context:
space:
mode:
Diffstat (limited to 'disp_vhdl.adb')
-rw-r--r--disp_vhdl.adb28
1 files changed, 19 insertions, 9 deletions
diff --git a/disp_vhdl.adb b/disp_vhdl.adb
index 1f5c893..fd3d710 100644
--- a/disp_vhdl.adb
+++ b/disp_vhdl.adb
@@ -67,6 +67,7 @@ package body Disp_Vhdl is
procedure Disp_Type (A_Type: Iir);
procedure Disp_Nature (Nature : Iir);
+ procedure Disp_Range (Rng : Iir);
procedure Disp_Concurrent_Statement (Stmt: Iir);
procedure Disp_Concurrent_Statement_Chain (Parent: Iir; Indent : Count);
@@ -283,6 +284,9 @@ package body Disp_Vhdl is
| Iir_Kind_Component_Declaration
| Iir_Kind_Group_Template_Declaration =>
Disp_Name_Of (Name);
+ when Iir_Kind_Range_Array_Attribute
+ | Iir_Kind_Reverse_Range_Array_Attribute =>
+ Disp_Range (Name);
when others =>
Error_Kind ("disp_name", Name);
end case;
@@ -2635,6 +2639,9 @@ package body Disp_Vhdl is
when Iir_Kind_Low_Type_Attribute =>
Disp_Name (Get_Prefix (Expr));
Put ("'low");
+ when Iir_Kind_Ascending_Type_Attribute =>
+ Disp_Name (Get_Prefix (Expr));
+ Put ("'ascending");
when Iir_Kind_Stable_Attribute =>
Disp_Parametered_Attribute ("stable", Expr);
@@ -3039,15 +3046,18 @@ package body Disp_Vhdl is
| Iir_Kind_Architecture_Body =>
Disp_Name_Of (Spec);
when Iir_Kind_Indexed_Name =>
- Disp_Name_Of (Get_Prefix (Spec));
- Put (" (");
- Disp_Expression (Get_First_Element (Get_Index_List (Spec)));
- Put (")");
- when Iir_Kind_Selected_Name =>
- Disp_Name_Of (Get_Prefix (Spec));
- Put (" (");
- Put (Iirs_Utils.Image_Identifier (Spec));
- Put (")");
+ declare
+ Index_List : constant Iir_List := Get_Index_List (Spec);
+ begin
+ Disp_Name_Of (Get_Prefix (Spec));
+ Put (" (");
+ if Index_List = Iir_List_Others then
+ Put ("others");
+ else
+ Disp_Expression (Get_First_Element (Index_List));
+ end if;
+ Put (")");
+ end;
when Iir_Kind_Slice_Name =>
Disp_Name_Of (Get_Prefix (Spec));
Put (" (");