diff options
author | Tristan Gingold <tgingold@free.fr> | 2017-11-06 20:20:52 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2017-11-06 20:20:52 +0100 |
commit | 1984d2adb083153f03eb7775d956445772ca484f (patch) | |
tree | 92939d572fd44940755e30d3963101c0a797f9e7 /src/vhdl/disp_tree.adb | |
parent | f9dd14670a2b17575bc879f82030faaaabdbbea6 (diff) | |
download | ghdl-1984d2adb083153f03eb7775d956445772ca484f.tar.gz ghdl-1984d2adb083153f03eb7775d956445772ca484f.tar.bz2 ghdl-1984d2adb083153f03eb7775d956445772ca484f.zip |
Use Flist for array indexes.
Diffstat (limited to 'src/vhdl/disp_tree.adb')
-rw-r--r-- | src/vhdl/disp_tree.adb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/vhdl/disp_tree.adb b/src/vhdl/disp_tree.adb index 9af60f01b..97fde1910 100644 --- a/src/vhdl/disp_tree.adb +++ b/src/vhdl/disp_tree.adb @@ -86,6 +86,27 @@ package body Disp_Tree is end if; end Disp_Iir_List; + procedure Disp_Iir_Flist + (Tree_Flist : Iir_Flist; Tab : Natural; Depth : Natural) + is + El: Iir; + begin + if Tree_Flist = Null_Iir_Flist then + Put_Line ("null-flist"); + elsif Tree_Flist = Iir_Flist_All then + Put_Line ("flist-all"); + elsif Tree_Flist = Iir_Flist_Others then + Put_Line ("flist-others"); + else + New_Line; + for I in Flist_First .. Flist_Last (Tree_Flist) loop + El := Get_Nth_Element (Tree_Flist, I); + Put_Indent (Tab); + Disp_Iir (El, Tab + 1, Depth); + end loop; + end if; + end Disp_Iir_Flist; + procedure Disp_Chain (Tree_Chain: Iir; Indent: Natural; Depth : Natural) is El: Iir; @@ -462,6 +483,24 @@ package body Disp_Tree is raise Internal_Error; end case; Disp_Iir_List (Get_Iir_List (N, F), Sub_Indent, Ndepth); + when Type_Iir_Flist => + case Get_Field_Attribute (F) is + when Attr_None => + Ndepth := Depth - 1; + when Attr_Of_Ref => + Ndepth := 0; + when Attr_Ref => + Ndepth := 0; + when Attr_Of_Maybe_Ref => + if Get_Is_Ref (N) then + Ndepth := 0; + else + Ndepth := Depth - 1; + end if; + when others => + raise Internal_Error; + end case; + Disp_Iir_Flist (Get_Iir_Flist (N, F), Sub_Indent, Ndepth); when Type_PSL_NFA => Disp_PSL_NFA (Get_PSL_NFA (N, F), Sub_Indent); when Type_String8_Id => |