summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingold2009-08-13 04:08:04 +0000
committergingold2009-08-13 04:08:04 +0000
commite7dc6e070312309191128f737cf6d43dfebfbda4 (patch)
tree4ac549c8455ee987cdab6e8d8070348df9482a1e
parenta194501f049a49926d6b8397aacdfd65dadcee7b (diff)
downloadghdl-e7dc6e070312309191128f737cf6d43dfebfbda4.tar.gz
ghdl-e7dc6e070312309191128f737cf6d43dfebfbda4.tar.bz2
ghdl-e7dc6e070312309191128f737cf6d43dfebfbda4.zip
Add VHDL 2008 new words.
Add PSL keywords.
-rw-r--r--std_names.adb52
-rw-r--r--std_names.ads86
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;