diff options
Diffstat (limited to 'src/vhdl/parse.adb')
-rw-r--r-- | src/vhdl/parse.adb | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/vhdl/parse.adb b/src/vhdl/parse.adb index 1b4b41021..239a0e675 100644 --- a/src/vhdl/parse.adb +++ b/src/vhdl/parse.adb @@ -986,7 +986,8 @@ package body Parse is Is_Guarded : Boolean; Signal_Kind: Iir_Signal_Kind; Default_Value: Iir; - Lexical_Layout : Iir_Lexical_Layout_Type; + Has_Mode : Boolean; + Has_Class : Boolean; begin Res := Null_Iir; Last := Null_Iir; @@ -1044,10 +1045,10 @@ package body Parse is if Current_Token = Tok_Identifier then Is_Default := True; - Lexical_Layout := 0; + Has_Class := False; else Is_Default := False; - Lexical_Layout := Iir_Lexical_Has_Class; + Has_Class := True; -- Skip 'signal', 'variable', 'constant' or 'file'. Scan; @@ -1130,8 +1131,9 @@ package body Parse is | Tok_Inout | Tok_Linkage | Tok_Buffer => - Lexical_Layout := Lexical_Layout or Iir_Lexical_Has_Mode; + Has_Mode := True; when others => + Has_Mode := False; null; end case; @@ -1194,12 +1196,9 @@ package body Parse is while Inter /= Null_Iir loop Set_Mode (Inter, Interface_Mode); Set_Is_Ref (Inter, Inter /= First); - if Inter = Last then - Set_Lexical_Layout (Inter, - Lexical_Layout or Iir_Lexical_Has_Type); - else - Set_Lexical_Layout (Inter, Lexical_Layout); - end if; + Set_Has_Mode (Inter, Has_Mode); + Set_Has_Class (Inter, Has_Class); + Set_Has_Identifier_List (Inter, Inter /= Last); if Get_Kind (Inter) = Iir_Kind_Interface_Signal_Declaration then Set_Guarded_Signal_Flag (Inter, Is_Guarded); Set_Signal_Kind (Inter, Signal_Kind); |