aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-parse.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/vhdl-parse.adb')
-rw-r--r--src/vhdl/vhdl-parse.adb15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/vhdl/vhdl-parse.adb b/src/vhdl/vhdl-parse.adb
index f46535623..a628acf54 100644
--- a/src/vhdl/vhdl-parse.adb
+++ b/src/vhdl/vhdl-parse.adb
@@ -6104,6 +6104,9 @@ package body Vhdl.Parse is
begin
if Current_Token = Tok_Transport then
Set_Delay_Mechanism (Assign, Iir_Transport_Delay);
+ Set_Has_Delay_Mechanism (Assign, True);
+
+ -- Skip 'transport'.
Scan;
else
Set_Delay_Mechanism (Assign, Iir_Inertial_Delay);
@@ -6112,15 +6115,23 @@ package body Vhdl.Parse is
Error_Msg_Parse
("'reject' delay mechanism not allowed in vhdl 87");
end if;
+ Set_Has_Delay_Mechanism (Assign, True);
+
+ -- Skip 'reject'.
Scan;
+
Set_Reject_Time_Expression (Assign, Parse_Expression);
- Expect (Tok_Inertial);
- Scan;
+
+ -- Skip 'inertial'.
+ Expect_Scan (Tok_Inertial);
elsif Current_Token = Tok_Inertial then
if Flags.Vhdl_Std = Vhdl_87 then
Error_Msg_Parse
("'inertial' keyword not allowed in vhdl 87");
end if;
+ Set_Has_Delay_Mechanism (Assign, True);
+
+ -- Skip 'inertial'.
Scan;
end if;
end if;