aboutsummaryrefslogtreecommitdiffstats
path: root/src/std_names.ads
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2014-11-04 20:14:19 +0100
committerTristan Gingold <tgingold@free.fr>2014-11-04 20:14:19 +0100
commit9c195bf5d86d67ea5eb419ccf6e48dc153e57c68 (patch)
tree575346e529b99e26382b4a06f6ff2caa0b391ab2 /src/std_names.ads
parent184a123f91e07c927292d67462561dc84f3a920d (diff)
downloadghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.tar.gz
ghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.tar.bz2
ghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.zip
Move sources to src/ subdirectory.
Diffstat (limited to 'src/std_names.ads')
-rw-r--r--src/std_names.ads727
1 files changed, 727 insertions, 0 deletions
diff --git a/src/std_names.ads b/src/std_names.ads
new file mode 100644
index 000000000..0a44c91c0
--- /dev/null
+++ b/src/std_names.ads
@@ -0,0 +1,727 @@
+-- Well known name table entries.
+-- Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold
+--
+-- GHDL is free software; you can redistribute it and/or modify it under
+-- the terms of the GNU General Public License as published by the Free
+-- Software Foundation; either version 2, or (at your option) any later
+-- version.
+--
+-- GHDL is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or
+-- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+-- for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with GHDL; see the file COPYING. If not, write to the Free
+-- Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+-- 02111-1307, USA.
+with Types; use Types;
+
+-- Note: since all identifiers declared in this package begins with either
+-- std_names or name, this package is expected to be use'd.
+
+package Std_Names is
+ -- Predefined names.
+ Name_First_Character : constant Name_Id := 1;
+ Name_Last_Character : constant Name_Id :=
+ Name_First_Character + Character'Pos (Character'Last)
+ - Character'Pos (Character'First);
+ subtype Name_Characters is Name_Id
+ range Name_First_Character .. Name_Last_Character;
+
+ Name_First_Keyword : constant Name_Id := Name_Last_Character + 1;
+
+ -- Word operators.
+ Name_Mod : constant Name_Id := Name_First_Keyword + 000;
+ Name_Rem : constant Name_Id := Name_First_Keyword + 001;
+
+ Name_And : constant Name_Id := Name_First_Keyword + 002;
+ Name_Or : constant Name_Id := Name_First_Keyword + 003;
+ Name_Xor : constant Name_Id := Name_First_Keyword + 004;
+ Name_Nand : constant Name_Id := Name_First_Keyword + 005;
+ Name_Nor : constant Name_Id := Name_First_Keyword + 006;
+
+ Name_Abs : constant Name_Id := Name_First_Keyword + 007;
+ Name_Not : constant Name_Id := Name_First_Keyword + 008;
+
+ subtype Name_Logical_Operators is Name_Id range Name_And .. Name_Nor;
+ subtype Name_Word_Operators is Name_Id range Name_Mod .. Name_Not;
+
+ Name_Access : constant Name_Id := Name_First_Keyword + 009;
+ Name_After : constant Name_Id := Name_First_Keyword + 010;
+ Name_Alias : constant Name_Id := Name_First_Keyword + 011;
+ Name_All : constant Name_Id := Name_First_Keyword + 012;
+ Name_Architecture : constant Name_Id := Name_First_Keyword + 013;
+ Name_Array : constant Name_Id := Name_First_Keyword + 014;
+ Name_Assert : constant Name_Id := Name_First_Keyword + 015;
+ Name_Attribute : constant Name_Id := Name_First_Keyword + 016;
+
+ Name_Begin : constant Name_Id := Name_First_Keyword + 017;
+ Name_Block : constant Name_Id := Name_First_Keyword + 018;
+ Name_Body : constant Name_Id := Name_First_Keyword + 019;
+ Name_Buffer : constant Name_Id := Name_First_Keyword + 020;
+ Name_Bus : constant Name_Id := Name_First_Keyword + 021;
+
+ Name_Case : constant Name_Id := Name_First_Keyword + 022;
+ Name_Component : constant Name_Id := Name_First_Keyword + 023;
+ Name_Configuration : constant Name_Id := Name_First_Keyword + 024;
+ Name_Constant : constant Name_Id := Name_First_Keyword + 025;
+
+ Name_Disconnect : constant Name_Id := Name_First_Keyword + 026;
+ Name_Downto : constant Name_Id := Name_First_Keyword + 027;
+
+ Name_Else : constant Name_Id := Name_First_Keyword + 028;
+ Name_Elsif : constant Name_Id := Name_First_Keyword + 029;
+ Name_End : constant Name_Id := Name_First_Keyword + 030;
+ Name_Entity : constant Name_Id := Name_First_Keyword + 031;
+ Name_Exit : constant Name_Id := Name_First_Keyword + 032;
+
+ Name_File : constant Name_Id := Name_First_Keyword + 033;
+ Name_For : constant Name_Id := Name_First_Keyword + 034;
+ Name_Function : constant Name_Id := Name_First_Keyword + 035;
+
+ Name_Generate : constant Name_Id := Name_First_Keyword + 036;
+ Name_Generic : constant Name_Id := Name_First_Keyword + 037;
+ Name_Guarded : constant Name_Id := Name_First_Keyword + 038;
+
+ Name_If : constant Name_Id := Name_First_Keyword + 039;
+ Name_In : constant Name_Id := Name_First_Keyword + 040;
+ Name_Inout : constant Name_Id := Name_First_Keyword + 041;
+ Name_Is : constant Name_Id := Name_First_Keyword + 042;
+
+ Name_Label : constant Name_Id := Name_First_Keyword + 043;
+ Name_Library : constant Name_Id := Name_First_Keyword + 044;
+ Name_Linkage : constant Name_Id := Name_First_Keyword + 045;
+ Name_Loop : constant Name_Id := Name_First_Keyword + 046;
+
+ Name_Map : constant Name_Id := Name_First_Keyword + 047;
+
+ Name_New : constant Name_Id := Name_First_Keyword + 048;
+ Name_Next : constant Name_Id := Name_First_Keyword + 049;
+ Name_Null : constant Name_Id := Name_First_Keyword + 050;
+
+ Name_Of : constant Name_Id := Name_First_Keyword + 051;
+ Name_On : constant Name_Id := Name_First_Keyword + 052;
+ Name_Open : constant Name_Id := Name_First_Keyword + 053;
+ Name_Others : constant Name_Id := Name_First_Keyword + 054;
+ Name_Out : constant Name_Id := Name_First_Keyword + 055;
+
+ Name_Package : constant Name_Id := Name_First_Keyword + 056;
+ Name_Port : constant Name_Id := Name_First_Keyword + 057;
+ Name_Procedure : constant Name_Id := Name_First_Keyword + 058;
+ Name_Process : constant Name_Id := Name_First_Keyword + 059;
+
+ Name_Range : constant Name_Id := Name_First_Keyword + 060;
+ Name_Record : constant Name_Id := Name_First_Keyword + 061;
+ Name_Register : constant Name_Id := Name_First_Keyword + 062;
+ Name_Report : constant Name_Id := Name_First_Keyword + 063;
+ Name_Return : constant Name_Id := Name_First_Keyword + 064;
+
+ Name_Select : constant Name_Id := Name_First_Keyword + 065;
+ Name_Severity : constant Name_Id := Name_First_Keyword + 066;
+ Name_Signal : constant Name_Id := Name_First_Keyword + 067;
+ Name_Subtype : constant Name_Id := Name_First_Keyword + 068;
+
+ Name_Then : constant Name_Id := Name_First_Keyword + 069;
+ Name_To : constant Name_Id := Name_First_Keyword + 070;
+ Name_Transport : constant Name_Id := Name_First_Keyword + 071;
+ Name_Type : constant Name_Id := Name_First_Keyword + 072;
+
+ Name_Units : constant Name_Id := Name_First_Keyword + 073;
+ Name_Until : constant Name_Id := Name_First_Keyword + 074;
+ Name_Use : constant Name_Id := Name_First_Keyword + 075;
+
+ Name_Variable : constant Name_Id := Name_First_Keyword + 076;
+
+ Name_Wait : constant Name_Id := Name_First_Keyword + 077;
+ Name_When : constant Name_Id := Name_First_Keyword + 078;
+ Name_While : constant Name_Id := Name_First_Keyword + 079;
+ Name_With : constant Name_Id := Name_First_Keyword + 080;
+
+ Name_Last_Vhdl87 : constant Name_Id := Name_With;
+ subtype Name_Id_Vhdl87_Reserved_Words is
+ Name_Id range Name_First_Keyword .. Name_With;
+
+ -- VHDL93 reserved words.
+ Name_Xnor : constant Name_Id := Name_First_Keyword + 081;
+ Name_Group : constant Name_Id := Name_First_Keyword + 082;
+ Name_Impure : constant Name_Id := Name_First_Keyword + 083;
+ Name_Inertial : constant Name_Id := Name_First_Keyword + 084;
+ Name_Literal : constant Name_Id := Name_First_Keyword + 085;
+ Name_Postponed : constant Name_Id := Name_First_Keyword + 086;
+ Name_Pure : constant Name_Id := Name_First_Keyword + 087;
+ Name_Reject : constant Name_Id := Name_First_Keyword + 088;
+ Name_Shared : constant Name_Id := Name_First_Keyword + 089;
+ Name_Unaffected : constant Name_Id := Name_First_Keyword + 090;
+
+ Name_Sll : constant Name_Id := Name_First_Keyword + 091;
+ Name_Sla : constant Name_Id := Name_First_Keyword + 092;
+ Name_Sra : constant Name_Id := Name_First_Keyword + 093;
+ Name_Srl : constant Name_Id := Name_First_Keyword + 094;
+ Name_Rol : constant Name_Id := Name_First_Keyword + 095;
+ Name_Ror : constant Name_Id := Name_First_Keyword + 096;
+ subtype Name_Shift_Operators is Name_Id range Name_Sll .. Name_Ror;
+
+ Name_Last_Vhdl93 : constant Name_Id := Name_Ror;
+ subtype Name_Id_Vhdl93_Reserved_Words is
+ Name_Id range Name_Xnor .. Name_Ror;
+
+ Name_Protected : constant Name_Id := Name_First_Keyword + 097;
+
+ Name_Last_Vhdl00 : constant Name_Id := Name_Protected;
+ subtype Name_Id_Vhdl00_Reserved_Words is
+ Name_Id range Name_Protected .. Name_Protected;
+
+ Name_Across : constant Name_Id := Name_First_Keyword + 098;
+ Name_Break : constant Name_Id := Name_First_Keyword + 099;
+ Name_Limit : constant Name_Id := Name_First_Keyword + 100;
+ Name_Nature : constant Name_Id := Name_First_Keyword + 101;
+ Name_Noise : constant Name_Id := Name_First_Keyword + 102;
+ Name_Procedural : constant Name_Id := Name_First_Keyword + 103;
+ Name_Quantity : constant Name_Id := Name_First_Keyword + 104;
+ Name_Reference : constant Name_Id := Name_First_Keyword + 105;
+ Name_Spectrum : constant Name_Id := Name_First_Keyword + 106;
+ Name_Subnature : constant Name_Id := Name_First_Keyword + 107;
+ Name_Terminal : constant Name_Id := Name_First_Keyword + 108;
+ Name_Through : constant Name_Id := Name_First_Keyword + 109;
+ Name_Tolerance : constant Name_Id := Name_First_Keyword + 110;
+
+ Name_Last_AMS_Vhdl : constant Name_Id := Name_Tolerance;
+
+ subtype Name_Id_AMS_Reserved_Words is
+ Name_Id range Name_Across .. Name_Tolerance;
+
+ Name_Last_Keyword : constant Name_Id := Name_Tolerance;
+
+ subtype Name_Id_Keywords is
+ Name_Id range Name_First_Keyword .. Name_Last_Keyword;
+
+ Name_First_Operator : constant Name_Id := Name_Last_Keyword + 1;
+ Name_Op_Equality : constant Name_Id := Name_First_Operator + 000;
+ Name_Op_Inequality : constant Name_Id := Name_First_Operator + 001;
+ Name_Op_Less : constant Name_Id := Name_First_Operator + 002;
+ Name_Op_Less_Equal : constant Name_Id := Name_First_Operator + 003;
+ Name_Op_Greater : constant Name_Id := Name_First_Operator + 004;
+ Name_Op_Greater_Equal : constant Name_Id := Name_First_Operator + 5;
+ Name_Op_Plus : constant Name_Id := Name_First_Operator + 006;
+ Name_Op_Minus : constant Name_Id := Name_First_Operator + 007;
+ Name_Op_Mul : constant Name_Id := Name_First_Operator + 008;
+ 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_Op_Condition : constant Name_Id := Name_First_Operator + 012;
+ Name_Op_Match_Equality : constant Name_Id := Name_First_Operator + 013;
+ Name_Op_Match_Inequality : constant Name_Id := Name_First_Operator + 014;
+ Name_Op_Match_Less : constant Name_Id := Name_First_Operator + 015;
+ Name_Op_Match_Less_Equal : constant Name_Id := Name_First_Operator + 016;
+ Name_Op_Match_Greater : constant Name_Id := Name_First_Operator + 017;
+ Name_Op_Match_Greater_Equal : constant Name_Id := Name_First_Operator + 018;
+ Name_Last_Operator : constant Name_Id := Name_Op_Match_Greater_Equal;
+
+ subtype Name_Relational_Operators is Name_Id
+ range Name_Op_Equality .. Name_Op_Greater_Equal;
+
+ -- List of symbolic operators (available as string).
+ subtype Name_Id_Operators is Name_Id
+ range Name_First_Operator .. Name_Last_Operator;
+
+ Name_First_Attribute : constant Name_Id := Name_Last_Operator + 1;
+ Name_Base : constant Name_Id := Name_First_Attribute + 000;
+ Name_Left : constant Name_Id := Name_First_Attribute + 001;
+ Name_Right : constant Name_Id := Name_First_Attribute + 002;
+ Name_High : constant Name_Id := Name_First_Attribute + 003;
+ Name_Low : constant Name_Id := Name_First_Attribute + 004;
+ Name_Pos : constant Name_Id := Name_First_Attribute + 005;
+ Name_Val : constant Name_Id := Name_First_Attribute + 006;
+ Name_Succ : constant Name_Id := Name_First_Attribute + 007;
+ Name_Pred : constant Name_Id := Name_First_Attribute + 008;
+ Name_Leftof : constant Name_Id := Name_First_Attribute + 009;
+ Name_Rightof : constant Name_Id := Name_First_Attribute + 010;
+ Name_Reverse_Range : constant Name_Id := Name_First_Attribute + 011;
+ Name_Length : constant Name_Id := Name_First_Attribute + 012;
+ Name_Delayed : constant Name_Id := Name_First_Attribute + 013;
+ Name_Stable : constant Name_Id := Name_First_Attribute + 014;
+ Name_Quiet : constant Name_Id := Name_First_Attribute + 015;
+ Name_Transaction : constant Name_Id := Name_First_Attribute + 016;
+ Name_Event : constant Name_Id := Name_First_Attribute + 017;
+ Name_Active : constant Name_Id := Name_First_Attribute + 018;
+ Name_Last_Event : constant Name_Id := Name_First_Attribute + 019;
+ Name_Last_Active : constant Name_Id := Name_First_Attribute + 020;
+ Name_Last_Value : constant Name_Id := Name_First_Attribute + 021;
+ Name_Last_Attribute : constant Name_Id := Name_Last_Value;
+
+ subtype Name_Id_Attributes is Name_Id
+ range Name_First_Attribute ..Name_Last_Attribute;
+
+ Name_First_Vhdl87_Attribute : constant Name_Id := Name_Last_Value + 1;
+ Name_Behavior : constant Name_Id := Name_First_Attribute + 022;
+ Name_Structure : constant Name_Id := Name_First_Attribute + 023;
+ Name_Last_Vhdl87_Attribute : constant Name_Id := Name_Structure;
+
+ subtype Name_Id_Vhdl87_Attributes is Name_Id
+ range Name_First_Vhdl87_Attribute ..Name_Last_Vhdl87_Attribute;
+
+ Name_First_Vhdl93_Attribute : constant Name_Id := Name_Structure + 1;
+ Name_Ascending : constant Name_Id := Name_First_Attribute + 024;
+ Name_Image : constant Name_Id := Name_First_Attribute + 025;
+ Name_Value : constant Name_Id := Name_First_Attribute + 026;
+ Name_Driving : constant Name_Id := Name_First_Attribute + 027;
+ Name_Driving_Value : constant Name_Id := Name_First_Attribute + 028;
+ Name_Simple_Name : constant Name_Id := Name_First_Attribute + 029;
+ Name_Instance_Name : constant Name_Id := Name_First_Attribute + 030;
+ Name_Path_Name : constant Name_Id := Name_First_Attribute + 031;
+ Name_Last_Vhdl93_Attribute : constant Name_Id := Name_Path_Name;
+
+ subtype Name_Id_Vhdl93_Attributes is Name_Id
+ range Name_First_Vhdl93_Attribute ..Name_Last_Vhdl93_Attribute;
+
+ Name_First_AMS_Attribute : constant Name_Id :=
+ Name_Last_Vhdl93_Attribute + 1;
+ Name_Contribution : constant Name_Id := Name_First_AMS_Attribute + 000;
+ Name_Dot : constant Name_Id := Name_First_AMS_Attribute + 001;
+ Name_Integ : constant Name_Id := Name_First_AMS_Attribute + 002;
+ Name_Above : constant Name_Id := Name_First_AMS_Attribute + 003;
+ Name_ZOH : constant Name_Id := Name_First_AMS_Attribute + 004;
+ Name_LTF : constant Name_Id := Name_First_AMS_Attribute + 005;
+ Name_ZTF : constant Name_Id := Name_First_AMS_Attribute + 006;
+ Name_Ramp : constant Name_Id := Name_First_AMS_Attribute + 007;
+ Name_Slew : constant Name_Id := Name_First_AMS_Attribute + 008;
+ Name_Last_AMS_Attribute : constant Name_Id := Name_Slew;
+
+ subtype Name_Id_Name_Attributes is Name_Id
+ range Name_Simple_Name .. Name_Path_Name;
+
+ -- Names used in std.standard package.
+ Name_First_Standard : constant Name_Id := Name_Last_AMS_Attribute + 1;
+ Name_Std : constant Name_Id := Name_First_Standard + 000;
+ Name_Standard : constant Name_Id := Name_First_Standard + 001;
+ Name_Boolean : constant Name_Id := Name_First_Standard + 002;
+ Name_False : constant Name_Id := Name_First_Standard + 003;
+ Name_True : constant Name_Id := Name_First_Standard + 004;
+ Name_Bit : constant Name_Id := Name_First_Standard + 005;
+ Name_Character : constant Name_Id := Name_First_Standard + 006;
+ Name_Severity_Level : constant Name_Id := Name_First_Standard + 007;
+ Name_Note : constant Name_Id := Name_First_Standard + 008;
+ Name_Warning : constant Name_Id := Name_First_Standard + 009;
+ Name_Error : constant Name_Id := Name_First_Standard + 010;
+ Name_Failure : constant Name_Id := Name_First_Standard + 011;
+ Name_Universal_Integer : constant Name_Id := Name_First_Standard + 012;
+ Name_Universal_Real : constant Name_Id := Name_First_Standard + 013;
+ Name_Convertible_Integer : constant Name_Id := Name_First_Standard + 014;
+ Name_Convertible_Real : constant Name_Id := Name_First_Standard + 015;
+ Name_Integer : constant Name_Id := Name_First_Standard + 016;
+ Name_Real : constant Name_Id := Name_First_Standard + 017;
+ Name_Time : constant Name_Id := Name_First_Standard + 018;
+ Name_Fs : constant Name_Id := Name_First_Standard + 019;
+ Name_Ps : constant Name_Id := Name_First_Standard + 020;
+ Name_Ns : constant Name_Id := Name_First_Standard + 021;
+ Name_Us : constant Name_Id := Name_First_Standard + 022;
+ Name_Ms : constant Name_Id := Name_First_Standard + 023;
+ Name_Sec : constant Name_Id := Name_First_Standard + 024;
+ Name_Min : constant Name_Id := Name_First_Standard + 025;
+ Name_Hr : constant Name_Id := Name_First_Standard + 026;
+ Name_Delay_Length : constant Name_Id := Name_First_Standard + 027;
+ Name_Now : constant Name_Id := Name_First_Standard + 028;
+ Name_Natural : constant Name_Id := Name_First_Standard + 029;
+ Name_Positive : constant Name_Id := Name_First_Standard + 030;
+ Name_String : constant Name_Id := Name_First_Standard + 031;
+ Name_Bit_Vector : constant Name_Id := Name_First_Standard + 032;
+ Name_File_Open_Kind : constant Name_Id := Name_First_Standard + 033;
+ Name_Read_Mode : constant Name_Id := Name_First_Standard + 034;
+ Name_Write_Mode : constant Name_Id := Name_First_Standard + 035;
+ Name_Append_Mode : constant Name_Id := Name_First_Standard + 036;
+ Name_File_Open_Status : constant Name_Id := Name_First_Standard + 037;
+ Name_Open_Ok : constant Name_Id := Name_First_Standard + 038;
+ Name_Status_Error : constant Name_Id := Name_First_Standard + 039;
+ Name_Name_Error : constant Name_Id := Name_First_Standard + 040;
+ Name_Mode_Error : constant Name_Id := Name_First_Standard + 041;
+ Name_Foreign : constant Name_Id := Name_First_Standard + 042;
+
+ -- Added by VHDL 08
+ Name_Boolean_Vector : constant Name_Id := Name_First_Standard + 043;
+ Name_To_Bstring : constant Name_Id := Name_First_Standard + 044;
+ Name_To_Binary_String : constant Name_Id := Name_First_Standard + 045;
+ Name_To_Ostring : constant Name_Id := Name_First_Standard + 046;
+ Name_To_Octal_String : constant Name_Id := Name_First_Standard + 047;
+ Name_To_Hstring : constant Name_Id := Name_First_Standard + 048;
+ Name_To_Hex_String : constant Name_Id := Name_First_Standard + 049;
+ Name_Integer_Vector : constant Name_Id := Name_First_Standard + 050;
+ Name_Real_Vector : constant Name_Id := Name_First_Standard + 051;
+ Name_Time_Vector : constant Name_Id := Name_First_Standard + 052;
+ Name_Digits : constant Name_Id := Name_First_Standard + 053;
+ Name_Format : constant Name_Id := Name_First_Standard + 054;
+ Name_Unit : constant Name_Id := Name_First_Standard + 055;
+
+ -- Added by AMS vhdl.
+ Name_Domain_Type : constant Name_Id := Name_First_Standard + 056;
+ Name_Quiescent_Domain : constant Name_Id := Name_First_Standard + 057;
+ Name_Time_Domain : constant Name_Id := Name_First_Standard + 058;
+ Name_Frequency_Domain : constant Name_Id := Name_First_Standard + 059;
+ Name_Domain : constant Name_Id := Name_First_Standard + 060;
+ Name_Frequency : constant Name_Id := Name_First_Standard + 061;
+
+ Name_Last_Standard : constant Name_Id := Name_Frequency;
+
+ Name_First_Charname : constant Name_Id := Name_Last_Standard + 1;
+ Name_Nul : constant Name_Id := Name_First_Charname + 00;
+ Name_Soh : constant Name_Id := Name_First_Charname + 01;
+ Name_Stx : constant Name_Id := Name_First_Charname + 02;
+ Name_Etx : constant Name_Id := Name_First_Charname + 03;
+ Name_Eot : constant Name_Id := Name_First_Charname + 04;
+ Name_Enq : constant Name_Id := Name_First_Charname + 05;
+ Name_Ack : constant Name_Id := Name_First_Charname + 06;
+ Name_Bel : constant Name_Id := Name_First_Charname + 07;
+ Name_Bs : constant Name_Id := Name_First_Charname + 08;
+ Name_Ht : constant Name_Id := Name_First_Charname + 09;
+ Name_Lf : constant Name_Id := Name_First_Charname + 10;
+ Name_Vt : constant Name_Id := Name_First_Charname + 11;
+ Name_Ff : constant Name_Id := Name_First_Charname + 12;
+ Name_Cr : constant Name_Id := Name_First_Charname + 13;
+ Name_So : constant Name_Id := Name_First_Charname + 14;
+ Name_Si : constant Name_Id := Name_First_Charname + 15;
+ Name_Dle : constant Name_Id := Name_First_Charname + 16;
+ Name_Dc1 : constant Name_Id := Name_First_Charname + 17;
+ Name_Dc2 : constant Name_Id := Name_First_Charname + 18;
+ Name_Dc3 : constant Name_Id := Name_First_Charname + 19;
+ Name_Dc4 : constant Name_Id := Name_First_Charname + 20;
+ Name_Nak : constant Name_Id := Name_First_Charname + 21;
+ Name_Syn : constant Name_Id := Name_First_Charname + 22;
+ Name_Etb : constant Name_Id := Name_First_Charname + 23;
+ Name_Can : constant Name_Id := Name_First_Charname + 24;
+ Name_Em : constant Name_Id := Name_First_Charname + 25;
+ Name_Sub : constant Name_Id := Name_First_Charname + 26;
+ Name_Esc : constant Name_Id := Name_First_Charname + 27;
+ Name_Fsp : constant Name_Id := Name_First_Charname + 28;
+ Name_Gsp : constant Name_Id := Name_First_Charname + 29;
+ Name_Rsp : constant Name_Id := Name_First_Charname + 30;
+ Name_Usp : constant Name_Id := Name_First_Charname + 31;
+
+ Name_Del : constant Name_Id := Name_First_Charname + 32;
+
+ Name_C128 : constant Name_Id := Name_First_Charname + 33;
+ Name_C129 : constant Name_Id := Name_First_Charname + 34;
+ Name_C130 : constant Name_Id := Name_First_Charname + 35;
+ Name_C131 : constant Name_Id := Name_First_Charname + 36;
+ Name_C132 : constant Name_Id := Name_First_Charname + 37;
+ Name_C133 : constant Name_Id := Name_First_Charname + 38;
+ Name_C134 : constant Name_Id := Name_First_Charname + 39;
+ Name_C135 : constant Name_Id := Name_First_Charname + 40;
+ Name_C136 : constant Name_Id := Name_First_Charname + 41;
+ Name_C137 : constant Name_Id := Name_First_Charname + 42;
+ Name_C138 : constant Name_Id := Name_First_Charname + 43;
+ Name_C139 : constant Name_Id := Name_First_Charname + 44;
+ Name_C140 : constant Name_Id := Name_First_Charname + 45;
+ Name_C141 : constant Name_Id := Name_First_Charname + 46;
+ Name_C142 : constant Name_Id := Name_First_Charname + 47;
+ Name_C143 : constant Name_Id := Name_First_Charname + 48;
+ Name_C144 : constant Name_Id := Name_First_Charname + 49;
+ Name_C145 : constant Name_Id := Name_First_Charname + 50;
+ Name_C146 : constant Name_Id := Name_First_Charname + 51;
+ Name_C147 : constant Name_Id := Name_First_Charname + 52;
+ Name_C148 : constant Name_Id := Name_First_Charname + 53;
+ Name_C149 : constant Name_Id := Name_First_Charname + 54;
+ Name_C150 : constant Name_Id := Name_First_Charname + 55;
+ Name_C151 : constant Name_Id := Name_First_Charname + 56;
+ Name_C152 : constant Name_Id := Name_First_Charname + 57;
+ Name_C153 : constant Name_Id := Name_First_Charname + 58;
+ Name_C154 : constant Name_Id := Name_First_Charname + 59;
+ Name_C155 : constant Name_Id := Name_First_Charname + 60;
+ Name_C156 : constant Name_Id := Name_First_Charname + 61;
+ Name_C157 : constant Name_Id := Name_First_Charname + 62;
+ Name_C158 : constant Name_Id := Name_First_Charname + 63;
+ Name_C159 : constant Name_Id := Name_First_Charname + 64;
+ Name_Last_Charname : constant Name_Id := Name_C159;
+
+ Name_First_Misc : constant Name_Id := Name_Last_Charname + 1;
+ Name_Guard : constant Name_Id := Name_First_Misc + 000;
+ Name_Deallocate : constant Name_Id := Name_First_Misc + 001;
+ Name_File_Open : constant Name_Id := Name_First_Misc + 002;
+ 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_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_L : constant Name_Id := Name_First_Misc + 010;
+ Name_R : constant Name_Id := Name_First_Misc + 011;
+ Name_S : constant Name_Id := Name_First_Misc + 012;
+ Name_External_Name : constant Name_Id := Name_First_Misc + 013;
+ Name_Open_Kind : constant Name_Id := Name_First_Misc + 014;
+ Name_Status : constant Name_Id := Name_First_Misc + 015;
+ Name_First : constant Name_Id := Name_First_Misc + 016;
+ Name_Last : constant Name_Id := Name_First_Misc + 017;
+ Name_Textio : constant Name_Id := Name_First_Misc + 018;
+ Name_Work : constant Name_Id := Name_First_Misc + 019;
+ Name_Text : constant Name_Id := Name_First_Misc + 020;
+ Name_To_String : constant Name_Id := Name_First_Misc + 021;
+ Name_Minimum : constant Name_Id := Name_First_Misc + 022;
+ Name_Maximum : constant Name_Id := Name_First_Misc + 023;
+ Name_Untruncated_Text_Read : constant Name_Id := Name_First_Misc + 024;
+ Name_Get_Resolution_Limit : constant Name_Id := Name_First_Misc + 025;
+ Name_Control_Simulation : constant Name_Id := Name_First_Misc + 026;
+ Name_Last_Misc : constant Name_Id := Name_Control_Simulation;
+
+ Name_First_Ieee : constant Name_Id := Name_Last_Misc + 1;
+ Name_Ieee : constant Name_Id := Name_First_Ieee + 000;
+ Name_Std_Logic_1164 : constant Name_Id := Name_First_Ieee + 001;
+ Name_Std_Ulogic : constant Name_Id := Name_First_Ieee + 002;
+ Name_Std_Ulogic_Vector : constant Name_Id := Name_First_Ieee + 003;
+ Name_Std_Logic : constant Name_Id := Name_First_Ieee + 004;
+ Name_Std_Logic_Vector : constant Name_Id := Name_First_Ieee + 005;
+ Name_Rising_Edge : constant Name_Id := Name_First_Ieee + 006;
+ Name_Falling_Edge : constant Name_Id := Name_First_Ieee + 007;
+ Name_VITAL_Timing : constant Name_Id := Name_First_Ieee + 008;
+ Name_VITAL_Level0 : constant Name_Id := Name_First_Ieee + 009;
+ Name_VITAL_Level1 : constant Name_Id := Name_First_Ieee + 010;
+ Name_Last_Ieee : constant Name_Id := Name_VITAL_Level1;
+
+ -- Verilog keywords.
+ Name_First_Verilog : constant Name_Id := Name_Last_Ieee + 1;
+ Name_Always : constant Name_Id := Name_First_Verilog + 00;
+ Name_Assign : constant Name_Id := Name_First_Verilog + 01;
+ Name_Buf : constant Name_Id := Name_First_Verilog + 02;
+ Name_Bufif0 : constant Name_Id := Name_First_Verilog + 03;
+ Name_Bufif1 : constant Name_Id := Name_First_Verilog + 04;
+ Name_Casex : constant Name_Id := Name_First_Verilog + 05;
+ Name_Casez : constant Name_Id := Name_First_Verilog + 06;
+ Name_Cmos : constant Name_Id := Name_First_Verilog + 07;
+ Name_Deassign : constant Name_Id := Name_First_Verilog + 08;
+ Name_Default : constant Name_Id := Name_First_Verilog + 09;
+ Name_Defparam : constant Name_Id := Name_First_Verilog + 10;
+ Name_Disable : constant Name_Id := Name_First_Verilog + 11;
+ Name_Endcase : constant Name_Id := Name_First_Verilog + 12;
+ Name_Endfunction : constant Name_Id := Name_First_Verilog + 13;
+ Name_Endmodule : constant Name_Id := Name_First_Verilog + 14;
+ Name_Endprimitive : constant Name_Id := Name_First_Verilog + 15;
+ Name_Endspecify : constant Name_Id := Name_First_Verilog + 16;
+ Name_Endtable : constant Name_Id := Name_First_Verilog + 17;
+ Name_Endtask : constant Name_Id := Name_First_Verilog + 18;
+ Name_Forever : constant Name_Id := Name_First_Verilog + 19;
+ Name_Fork : constant Name_Id := Name_First_Verilog + 20;
+ Name_Highz0 : constant Name_Id := Name_First_Verilog + 21;
+ Name_Highz1 : constant Name_Id := Name_First_Verilog + 22;
+ Name_Initial : constant Name_Id := Name_First_Verilog + 23;
+ Name_Input : constant Name_Id := Name_First_Verilog + 24;
+ Name_Join : constant Name_Id := Name_First_Verilog + 25;
+ Name_Large : constant Name_Id := Name_First_Verilog + 26;
+ Name_Medium : constant Name_Id := Name_First_Verilog + 27;
+ Name_Module : constant Name_Id := Name_First_Verilog + 28;
+ Name_Negedge : constant Name_Id := Name_First_Verilog + 29;
+ Name_Nmos : constant Name_Id := Name_First_Verilog + 30;
+ Name_Notif0 : constant Name_Id := Name_First_Verilog + 31;
+ Name_Notif1 : constant Name_Id := Name_First_Verilog + 32;
+ Name_Output : constant Name_Id := Name_First_Verilog + 33;
+ Name_Parameter : constant Name_Id := Name_First_Verilog + 34;
+ Name_Pmos : constant Name_Id := Name_First_Verilog + 35;
+ Name_Posedge : constant Name_Id := Name_First_Verilog + 36;
+ Name_Primitive : constant Name_Id := Name_First_Verilog + 37;
+ Name_Pull0 : constant Name_Id := Name_First_Verilog + 38;
+ Name_Pull1 : constant Name_Id := Name_First_Verilog + 39;
+ Name_Pulldown : constant Name_Id := Name_First_Verilog + 40;
+ Name_Pullup : constant Name_Id := Name_First_Verilog + 41;
+ Name_Reg : constant Name_Id := Name_First_Verilog + 42;
+ Name_Repeat : constant Name_Id := Name_First_Verilog + 43;
+ Name_Rcmos : constant Name_Id := Name_First_Verilog + 44;
+ Name_Rnmos : constant Name_Id := Name_First_Verilog + 45;
+ Name_Rpmos : constant Name_Id := Name_First_Verilog + 46;
+ Name_Rtran : constant Name_Id := Name_First_Verilog + 47;
+ Name_Rtranif0 : constant Name_Id := Name_First_Verilog + 48;
+ Name_Rtranif1 : constant Name_Id := Name_First_Verilog + 49;
+ Name_Small : constant Name_Id := Name_First_Verilog + 50;
+ Name_Specify : constant Name_Id := Name_First_Verilog + 51;
+ Name_Specparam : constant Name_Id := Name_First_Verilog + 52;
+ Name_Strong0 : constant Name_Id := Name_First_Verilog + 53;
+ Name_Strong1 : constant Name_Id := Name_First_Verilog + 54;
+ Name_Supply0 : constant Name_Id := Name_First_Verilog + 55;
+ Name_Supply1 : constant Name_Id := Name_First_Verilog + 56;
+ Name_Tablex : constant Name_Id := Name_First_Verilog + 57;
+ Name_Task : constant Name_Id := Name_First_Verilog + 58;
+ Name_Tran : constant Name_Id := Name_First_Verilog + 59;
+ Name_Tranif0 : constant Name_Id := Name_First_Verilog + 60;
+ Name_Tranif1 : constant Name_Id := Name_First_Verilog + 61;
+ Name_Tri : constant Name_Id := Name_First_Verilog + 62;
+ Name_Tri0 : constant Name_Id := Name_First_Verilog + 63;
+ Name_Tri1 : constant Name_Id := Name_First_Verilog + 64;
+ Name_Trireg : constant Name_Id := Name_First_Verilog + 65;
+ Name_Wand : constant Name_Id := Name_First_Verilog + 66;
+ Name_Weak0 : constant Name_Id := Name_First_Verilog + 67;
+ Name_Weak1 : constant Name_Id := Name_First_Verilog + 68;
+ Name_Wire : constant Name_Id := Name_First_Verilog + 69;
+ Name_Wor : constant Name_Id := Name_First_Verilog + 70;
+ Name_Last_Verilog : constant Name_Id := Name_Wor;
+
+ -- Verilog Directives.
+ Name_First_Directive : constant Name_Id := Name_Last_Verilog + 1;
+ Name_Define : constant Name_Id := Name_First_Directive + 00;
+ Name_Endif : constant Name_Id := Name_First_Directive + 01;
+ Name_Ifdef : constant Name_Id := Name_First_Directive + 02;
+ Name_Include : constant Name_Id := Name_First_Directive + 03;
+ Name_Timescale : constant Name_Id := Name_First_Directive + 04;
+ Name_Undef : constant Name_Id := Name_First_Directive + 05;
+ Name_Last_Directive : constant Name_Id := Name_Undef;
+
+ -- Verilog system tasks.
+ Name_First_Systask : constant Name_Id := Name_Last_Directive + 1;
+ Name_Display : constant Name_Id := Name_First_Systask + 00;
+ Name_Finish : constant Name_Id := Name_First_Systask + 01;
+ Name_Last_Systask : constant Name_Id := Name_Finish;
+
+ -- BSV names
+ Name_First_BSV : constant Name_Id := Name_Last_Systask + 1;
+ Name_uAction : constant Name_Id := Name_First_BSV + 0;
+ Name_uActionValue : constant Name_Id := Name_First_BSV + 1;
+ Name_BVI : constant Name_Id := Name_First_BSV + 2;
+ Name_uC : constant Name_Id := Name_First_BSV + 3;
+ Name_uCF : constant Name_Id := Name_First_BSV + 4;
+ Name_uE : constant Name_Id := Name_First_BSV + 5;
+ Name_uSB : constant Name_Id := Name_First_BSV + 6;
+ Name_uSBR : constant Name_Id := Name_First_BSV + 7;
+ Name_Action : constant Name_Id := Name_First_BSV + 8;
+ Name_Endaction : constant Name_Id := Name_First_BSV + 9;
+ Name_Actionvalue : constant Name_Id := Name_First_BSV + 10;
+ Name_Endactionvalue : constant Name_Id := Name_First_BSV + 11;
+ Name_Ancestor : constant Name_Id := Name_First_BSV + 12;
+ -- begin
+ -- bit
+ -- case
+ -- endcase
+ Name_Clocked_By : constant Name_Id := Name_First_BSV + 13;
+ Name_Continue : constant Name_Id := Name_First_BSV + 14;
+ -- default
+ Name_Default_Clock : constant Name_Id := Name_First_BSV + 15;
+ Name_Default_Reset : constant Name_Id := Name_First_BSV + 16;
+ Name_Dependencies : constant Name_Id := Name_First_BSV + 17;
+ Name_Deriving : constant Name_Id := Name_First_BSV + 18;
+ Name_Determines : constant Name_Id := Name_First_BSV + 19;
+ -- e
+ -- else
+ Name_Enable : constant Name_Id := Name_First_BSV + 20;
+ -- end
+ Name_Enum : constant Name_Id := Name_First_BSV + 21;
+ Name_Export : constant Name_Id := Name_First_BSV + 22;
+ -- for
+ -- function
+ -- endfunction
+ -- if
+ Name_Ifc_Inout : constant Name_Id := Name_First_BSV + 23;
+ Name_Import : constant Name_Id := Name_First_BSV + 24;
+ -- inout
+ Name_Input_Clock : constant Name_Id := Name_First_BSV + 25;
+ Name_Input_Reset : constant Name_Id := Name_First_BSV + 26;
+ Name_Instance : constant Name_Id := Name_First_BSV + 27;
+ Name_Endinstance : constant Name_Id := Name_First_BSV + 28;
+ Name_Interface : constant Name_Id := Name_First_BSV + 29;
+ Name_Endinterface : constant Name_Id := Name_First_BSV + 30;
+ Name_Let : constant Name_Id := Name_First_BSV + 31;
+ Name_Match : constant Name_Id := Name_First_BSV + 32;
+ Name_Matches : constant Name_Id := Name_First_BSV + 33;
+ Name_Method : constant Name_Id := Name_First_BSV + 34;
+ Name_Endmethod : constant Name_Id := Name_First_BSV + 35;
+ -- module
+ -- endmodule
+ Name_Numeric : constant Name_Id := Name_First_BSV + 36;
+ Name_Output_Clock : constant Name_Id := Name_First_BSV + 37;
+ Name_Output_Reset : constant Name_Id := Name_First_BSV + 38;
+ -- package
+ Name_Endpackage : constant Name_Id := Name_First_BSV + 39;
+ -- parameter
+ Name_Par : constant Name_Id := Name_First_BSV + 40;
+ Name_Endpar : constant Name_Id := Name_First_BSV + 41;
+ Name_Path : constant Name_Id := Name_First_BSV + 42;
+ -- port
+ Name_Provisos : constant Name_Id := Name_First_BSV + 43;
+ Name_Ready : constant Name_Id := Name_First_BSV + 44;
+ Name_Reset_By : constant Name_Id := Name_First_BSV + 45;
+ -- return
+ Name_Rule : constant Name_Id := Name_First_BSV + 46;
+ Name_Endrule : constant Name_Id := Name_First_BSV + 47;
+ Name_Rules : constant Name_Id := Name_First_BSV + 48;
+ Name_Endrules : constant Name_Id := Name_First_BSV + 49;
+ Name_Same_Family : constant Name_Id := Name_First_BSV + 50;
+ Name_Schedule : constant Name_Id := Name_First_BSV + 51;
+ Name_Seq : constant Name_Id := Name_First_BSV + 52;
+ Name_Endseq : constant Name_Id := Name_First_BSV + 53;
+ Name_Struct : constant Name_Id := Name_First_BSV + 54;
+ Name_Tagged : constant Name_Id := Name_First_BSV + 55;
+ -- type
+ Name_Typeclass : constant Name_Id := Name_First_BSV + 56;
+ Name_Endtypeclass : constant Name_Id := Name_First_BSV + 57;
+ Name_Typedef : constant Name_Id := Name_First_BSV + 58;
+ Name_Union : constant Name_Id := Name_First_BSV + 59;
+ Name_Valueof : constant Name_Id := Name_First_BSV + 60;
+ Name_uValueof : constant Name_Id := Name_First_BSV + 61;
+ Name_Void : constant Name_Id := Name_First_BSV + 62;
+ -- while
+ Name_Last_BSV : constant Name_Id := Name_First_BSV + 62;
+
+ -- VHDL special comments
+ Name_First_Comment : constant Name_Id := Name_Last_BSV + 1;
+ Name_Psl : constant Name_Id := Name_First_Comment + 0;
+ Name_Pragma : constant Name_Id := Name_First_Comment + 1;
+ Name_Last_Comment : constant Name_Id := Name_First_Comment + 1;
+
+ -- PSL words.
+ Name_First_PSL : constant Name_Id := Name_Last_Comment + 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;
+ -- union
+ -- until
+ Name_Vmode : constant Name_Id := Name_First_PSL + 36;
+ Name_Vprop : constant Name_Id := Name_First_PSL + 37;
+ Name_Vunit : constant Name_Id := Name_First_PSL + 38;
+ Name_W : constant Name_Id := Name_First_PSL + 39;
+ Name_Whilenot : constant Name_Id := Name_First_PSL + 40;
+ Name_Within : constant Name_Id := Name_First_PSL + 41;
+ Name_X : constant Name_Id := Name_First_PSL + 42;
+ Name_Last_PSL : constant Name_Id := Name_First_PSL + 42;
+
+ subtype Name_Id_PSL_Keywords is
+ Name_Id range Name_First_PSL .. Name_Last_PSL;
+
+ -- Initialize the name table with the values defined here.
+ procedure Std_Names_Initialize;
+end Std_Names;