diff options
author | gingold | 2009-08-13 04:08:04 +0000 |
---|---|---|
committer | gingold | 2009-08-13 04:08:04 +0000 |
commit | e7dc6e070312309191128f737cf6d43dfebfbda4 (patch) | |
tree | 4ac549c8455ee987cdab6e8d8070348df9482a1e | |
parent | a194501f049a49926d6b8397aacdfd65dadcee7b (diff) | |
download | ghdl-e7dc6e070312309191128f737cf6d43dfebfbda4.tar.gz ghdl-e7dc6e070312309191128f737cf6d43dfebfbda4.tar.bz2 ghdl-e7dc6e070312309191128f737cf6d43dfebfbda4.zip |
Add VHDL 2008 new words.
Add PSL keywords.
-rw-r--r-- | std_names.adb | 52 | ||||
-rw-r--r-- | std_names.ads | 86 |
2 files changed, 125 insertions, 13 deletions
diff --git a/std_names.adb b/std_names.adb index 97b613a..2118dc8 100644 --- a/std_names.adb +++ b/std_names.adb @@ -55,6 +55,7 @@ package body Std_Names is or GI ("/") /= Name_Op_Div or GI ("**") /= Name_Op_Exp or GI ("&") /= Name_Op_Concatenation + or GI ("??") /= Name_Op_Condition then raise Program_Error; end if; @@ -226,6 +227,7 @@ package body Std_Names is or GI ("file_close") /= Name_File_Close or GI ("read") /= Name_Read or GI ("write") /= Name_Write + or GI ("flush") /= Name_Flush or GI ("endfile") /= Name_Endfile or GI ("p") /= Name_P or GI ("f") /= Name_F @@ -237,6 +239,7 @@ package body Std_Names is or GI ("textio") /= Name_Textio or GI ("work") /= Name_Work or GI ("text") /= Name_Text + or GI ("to_string") /= Name_To_String or GI ("untruncated_text_read") /= Name_Untruncated_Text_Read then raise Program_Error; @@ -257,6 +260,7 @@ package body Std_Names is raise Program_Error; end if; + -- Verilog keywords if GI ("always") /= Name_Always or GI ("assign") /= Name_Assign or GI ("buf") /= Name_Buf @@ -348,5 +352,53 @@ package body Std_Names is raise Program_Error; end if; + -- PSL keywords + if GI ("a") /= Name_A + or GI ("af") /= Name_Af + or GI ("ag") /= Name_Ag + or GI ("ax") /= Name_Ax + or GI ("abort") /= Name_Abort + or GI ("assume") /= Name_Assume + or GI ("assume_guarantee") /= Name_Assume_Guarantee + or GI ("before") /= Name_Before + or GI ("clock") /= Name_Clock + or GI ("const") /= Name_Const + or GI ("cover") /= Name_Cover + or GI ("e") /= Name_E + or GI ("ef") /= Name_Ef + or GI ("eg") /= Name_Eg + or GI ("ex") /= Name_Ex + or GI ("endpoint") /= Name_Endpoint + or GI ("eventually") /= Name_Eventually + or GI ("fairness") /= Name_Fairness + or GI ("fell ") /= Name_Fell + or GI ("forall") /= Name_forall + or GI ("g") /= Name_G + or GI ("inf") /= Name_Inf + or GI ("inherit") /= Name_Inherit + or GI ("never") /= Name_Never + or GI ("next_a") /= Name_Next_A + or GI ("next_e") /= Name_Next_E + or GI ("next_event") /= Name_Next_Event + or GI ("next_event_a") /= Name_Next_Event_A + or GI ("next_event_e") /= Name_Next_Event_E + or GI ("property") /= Name_Property + or GI ("prev") /= Name_Prev + or GI ("restrict") /= Name_Restrict + or GI ("restrict_guarantee") /= Name_Restrict_Guarantee + or GI ("rose") /= Name_Rose + or GI ("sequence") /= Name_Sequence + or GI ("strong") /= Name_Strong + or GI ("union") /= Name_Union + or GI ("vmode") /= Name_Vmode + or GI ("vprop") /= Name_Vprop + or GI ("vunit") /= Name_Vunit + or GI ("w") /= Name_W + or GI ("whilenot") /= Name_Whilenot + or GI ("within") /= Name_Within + or GI ("x") /= Name_X + then + raise Program_Error; + end if; end Std_Names_Initialize; end Std_Names; diff --git a/std_names.ads b/std_names.ads index 90c948f..a425c1c 100644 --- a/std_names.ads +++ b/std_names.ads @@ -182,7 +182,8 @@ package Std_Names is Name_Op_Div : constant Name_Id := Name_First_Operator + 009; Name_Op_Exp : constant Name_Id := Name_First_Operator + 010; Name_Op_Concatenation : constant Name_Id := Name_First_Operator + 011; - Name_Last_Operator : constant Name_Id := Name_Op_Concatenation; + Name_Op_Condition : constant Name_Id := Name_First_Operator + 012; + Name_Last_Operator : constant Name_Id := Name_Op_Condition; subtype Name_Relational_Operators is Name_Id range Name_Op_Equality .. Name_Op_Greater_Equal; @@ -367,18 +368,20 @@ package Std_Names is Name_File_Close : constant Name_Id := Name_First_Misc + 003; Name_Read : constant Name_Id := Name_First_Misc + 004; Name_Write : constant Name_Id := Name_First_Misc + 005; - Name_Endfile : constant Name_Id := Name_First_Misc + 006; - Name_P : constant Name_Id := Name_First_Misc + 007; - Name_F : constant Name_Id := Name_First_Misc + 008; - Name_External_Name : constant Name_Id := Name_First_Misc + 009; - Name_Open_Kind : constant Name_Id := Name_First_Misc + 010; - Name_Status : constant Name_Id := Name_First_Misc + 011; - Name_First : constant Name_Id := Name_First_Misc + 012; - Name_Last : constant Name_Id := Name_First_Misc + 013; - Name_Textio : constant Name_Id := Name_First_Misc + 014; - Name_Work : constant Name_Id := Name_First_Misc + 015; - Name_Text : constant Name_Id := Name_First_Misc + 016; - Name_Untruncated_Text_Read : constant Name_Id := Name_First_Misc + 017; + Name_Flush : constant Name_Id := Name_First_Misc + 006; + Name_Endfile : constant Name_Id := Name_First_Misc + 007; + Name_P : constant Name_Id := Name_First_Misc + 008; + Name_F : constant Name_Id := Name_First_Misc + 009; + Name_External_Name : constant Name_Id := Name_First_Misc + 010; + Name_Open_Kind : constant Name_Id := Name_First_Misc + 011; + Name_Status : constant Name_Id := Name_First_Misc + 012; + Name_First : constant Name_Id := Name_First_Misc + 013; + Name_Last : constant Name_Id := Name_First_Misc + 014; + Name_Textio : constant Name_Id := Name_First_Misc + 015; + Name_Work : constant Name_Id := Name_First_Misc + 016; + Name_Text : constant Name_Id := Name_First_Misc + 017; + Name_To_String : constant Name_Id := Name_First_Misc + 018; + Name_Untruncated_Text_Read : constant Name_Id := Name_First_Misc + 019; Name_Last_Misc : constant Name_Id := Name_Untruncated_Text_Read; Name_First_Ieee : constant Name_Id := Name_Last_Misc + 1; @@ -486,6 +489,63 @@ package Std_Names is Name_Finish : constant Name_Id := Name_First_Systask + 01; Name_Last_Systask : constant Name_Id := Name_Finish; + Name_First_Psl : constant Name_Id := Name_Last_Systask + 1; + Name_A : constant Name_Id := Name_First_Psl + 00; + Name_Af : constant Name_Id := Name_First_Psl + 01; + Name_Ag : constant Name_Id := Name_First_Psl + 02; + Name_Ax : constant Name_Id := Name_First_Psl + 03; + Name_Abort : constant Name_Id := Name_First_Psl + 04; + -- Name_Always + -- Name_And + Name_Assume : constant Name_Id := Name_First_Psl + 05; + Name_Assume_Guarantee : constant Name_Id := Name_First_Psl + 06; + Name_Before : constant Name_Id := Name_First_Psl + 07; + -- Name_Boolean + Name_Clock : constant Name_Id := Name_First_Psl + 08; + Name_Const : constant Name_Id := Name_First_Psl + 09; + Name_Cover : constant Name_Id := Name_First_Psl + 10; + -- Name_Default + Name_E : constant Name_Id := Name_First_Psl + 11; + Name_Ef : constant Name_Id := Name_First_Psl + 12; + Name_Eg : constant Name_Id := Name_First_Psl + 13; + Name_Ex : constant Name_Id := Name_First_Psl + 14; + Name_Endpoint : constant Name_Id := Name_First_Psl + 15; + Name_Eventually : constant Name_Id := Name_First_Psl + 16; + Name_Fairness : constant Name_Id := Name_First_Psl + 17; + Name_Fell : constant Name_Id := Name_First_Psl + 18; + Name_forall : constant Name_Id := Name_First_Psl + 19; + Name_G : constant Name_Id := Name_First_Psl + 20; + -- Name_In + Name_Inf : constant Name_Id := Name_First_Psl + 21; + Name_Inherit : constant Name_Id := Name_First_Psl + 22; + -- Name_Is + Name_Never : constant Name_Id := Name_First_Psl + 23; + -- Name_Next + Name_Next_A : constant Name_Id := Name_First_Psl + 24; + Name_Next_E : constant Name_Id := Name_First_Psl + 25; + Name_Next_Event : constant Name_Id := Name_First_Psl + 26; + Name_Next_Event_A : constant Name_Id := Name_First_Psl + 27; + Name_Next_Event_E : constant Name_Id := Name_First_Psl + 28; + -- Name_Not + -- Name_Or + Name_Property : constant Name_Id := Name_First_Psl + 29; + Name_Prev : constant Name_Id := Name_First_Psl + 30; + Name_Restrict : constant Name_Id := Name_First_Psl + 31; + Name_Restrict_Guarantee : constant Name_Id := Name_First_Psl + 32; + Name_Rose : constant Name_Id := Name_First_Psl + 33; + Name_Sequence : constant Name_Id := Name_First_Psl + 34; + Name_Strong : constant Name_Id := Name_First_Psl + 35; + Name_Union : constant Name_Id := Name_First_Psl + 36; + -- Name_Until + Name_Vmode : constant Name_Id := Name_First_Psl + 37; + Name_Vprop : constant Name_Id := Name_First_Psl + 38; + Name_Vunit : constant Name_Id := Name_First_Psl + 39; + Name_W : constant Name_Id := Name_First_Psl + 40; + Name_Whilenot : constant Name_Id := Name_First_Psl + 41; + Name_Within : constant Name_Id := Name_First_Psl + 42; + Name_X : constant Name_Id := Name_First_Psl + 43; + Name_Last_Psl : constant Name_Id := Name_X; + -- Initialize the name table with the values defined here. procedure Std_Names_Initialize; end Std_Names; |