aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/nodes_meta.adb.in
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2017-10-02 20:47:13 +0200
committerTristan Gingold <tgingold@free.fr>2017-10-02 20:49:37 +0200
commit1c1cdc4f5f7420f88a1ac4bc2df35a31cf45a892 (patch)
tree1935243db094054478243966d47d4a544cbe59d4 /src/vhdl/nodes_meta.adb.in
parent255fb07204db93a302305795c2220901cf7a883e (diff)
downloadghdl-1c1cdc4f5f7420f88a1ac4bc2df35a31cf45a892.tar.gz
ghdl-1c1cdc4f5f7420f88a1ac4bc2df35a31cf45a892.tar.bz2
ghdl-1c1cdc4f5f7420f88a1ac4bc2df35a31cf45a892.zip
nodes_meta: Generate Attr_, add subprograms for interfaces.
Diffstat (limited to 'src/vhdl/nodes_meta.adb.in')
-rw-r--r--src/vhdl/nodes_meta.adb.in29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/vhdl/nodes_meta.adb.in b/src/vhdl/nodes_meta.adb.in
index d94c2d626..8f9e96490 100644
--- a/src/vhdl/nodes_meta.adb.in
+++ b/src/vhdl/nodes_meta.adb.in
@@ -53,22 +53,35 @@ package body Nodes_Meta is
-- FIELDS_ARRAY
);
- Fields_Of_Iir_Last : constant array (Iir_Kind) of Integer :=
+ Fields_Of_Iir_Last : constant array (Iir_Kind) of Fields_Index_Extended :=
(
-- FIELDS_ARRAY_POS
);
- function Get_Fields (K : Iir_Kind) return Fields_Array
- is
- First : Natural;
- Last : Integer;
+ function Get_Fields_First (K : Iir_Kind) return Fields_Index is
begin
if K = Iir_Kind'First then
- First := Fields_Of_Iir'First;
+ return Fields_Of_Iir'First;
else
- First := Fields_Of_Iir_Last (Iir_Kind'Pred (K)) + 1;
+ return Fields_Of_Iir_Last (Iir_Kind'Pred (K)) + 1;
end if;
- Last := Fields_Of_Iir_Last (K);
+ end Get_Fields_First;
+
+ function Get_Fields_Last (K : Iir_Kind) return Fields_Index is
+ begin
+ return Fields_Of_Iir_Last (K);
+ end Get_Fields_Last;
+
+ function Get_Field_By_Index (Idx : Fields_Index) return Fields_Enum is
+ begin
+ return Fields_Of_Iir (Idx);
+ end Get_Field_By_Index;
+
+ function Get_Fields (K : Iir_Kind) return Fields_Array
+ is
+ First : constant Fields_Index := Get_Fields_First (K);
+ Last : constant Fields_Index := Fields_Of_Iir_Last (K);
+ begin
return Fields_Of_Iir (First .. Last);
end Get_Fields;