aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/iir_chains.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/iir_chains.adb')
-rw-r--r--src/vhdl/iir_chains.adb22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/vhdl/iir_chains.adb b/src/vhdl/iir_chains.adb
index d6d944f4e..43d02d44f 100644
--- a/src/vhdl/iir_chains.adb
+++ b/src/vhdl/iir_chains.adb
@@ -28,6 +28,28 @@ package body Iir_Chains is
return Res;
end Get_Chain_Length;
+ procedure Append_Chain
+ (N : Iir; Field : Nodes_Meta.Fields_Enum; Chain : Iir)
+ is
+ use Nodes_Meta;
+ N_Chain : Iir;
+ Next_Chain : Iir;
+ begin
+ N_Chain := Get_Iir (N, Field);
+ if Is_Null (N_Chain) then
+ Set_Iir (N, Field, Chain);
+ else
+ loop
+ Next_Chain := Get_Chain (N_Chain);
+ if Is_Null (Next_Chain) then
+ Set_Chain (N_Chain, Chain);
+ exit;
+ end if;
+ N_Chain := Next_Chain;
+ end loop;
+ end if;
+ end Append_Chain;
+
procedure Sub_Chain_Init (First, Last : out Iir) is
begin
First := Null_Iir;