diff options
author | Tristan Gingold <tgingold@free.fr> | 2018-08-04 17:23:49 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2018-08-04 17:23:49 +0200 |
commit | 6f9f7f00d61c2fac88a75133cecf80e3fcec52f2 (patch) | |
tree | bcfad77e822165599df89bd73b597cefd668e507 /src | |
parent | 05d3a15bc99214a3c0427f667c3ab25938f7f5be (diff) | |
download | ghdl-6f9f7f00d61c2fac88a75133cecf80e3fcec52f2.tar.gz ghdl-6f9f7f00d61c2fac88a75133cecf80e3fcec52f2.tar.bz2 ghdl-6f9f7f00d61c2fac88a75133cecf80e3fcec52f2.zip |
reorder names.
Diffstat (limited to 'src')
-rw-r--r-- | src/std_names.adb | 321 | ||||
-rw-r--r-- | src/std_names.ads | 788 |
2 files changed, 674 insertions, 435 deletions
diff --git a/src/std_names.adb b/src/std_names.adb index dfe322136..74abf7815 100644 --- a/src/std_names.adb +++ b/src/std_names.adb @@ -169,6 +169,189 @@ package body Std_Names is Def ("through", Name_Through); Def ("tolerance", Name_Tolerance); + -- Verilog keywords + Def ("always", Name_Always); + Def ("assign", Name_Assign); + Def ("buf", Name_Buf); + Def ("bufif0", Name_Bufif0); + Def ("bufif1", Name_Bufif1); + Def ("casex", Name_Casex); + Def ("casez", Name_Casez); + Def ("cmos", Name_Cmos); + Def ("deassign", Name_Deassign); + Def ("default", Name_Default); + Def ("defparam", Name_Defparam); + Def ("disable", Name_Disable); + Def ("edge", Name_Edge); + Def ("endcase", Name_Endcase); + Def ("endfunction", Name_Endfunction); + Def ("endmodule", Name_Endmodule); + Def ("endprimitive", Name_Endprimitive); + Def ("endspecify", Name_Endspecify); + Def ("endtable", Name_Endtable); + Def ("endtask", Name_Endtask); + Def ("force", Name_Force); + Def ("forever", Name_Forever); + Def ("fork", Name_Fork); + Def ("highz0", Name_Highz0); + Def ("highz1", Name_Highz1); + Def ("ifnone", Name_Ifnone); + Def ("initial", Name_Initial); + Def ("input", Name_Input); + Def ("join", Name_Join); + Def ("large", Name_Large); + Def ("macromodule", Name_Macromodule); + Def ("medium", Name_Medium); + Def ("module", Name_Module); + Def ("negedge", Name_Negedge); + Def ("nmos", Name_Nmos); + Def ("notif0", Name_Notif0); + Def ("notif1", Name_Notif1); + Def ("output", Name_Output); + Def ("pmos", Name_Pmos); + Def ("posedge", Name_Posedge); + Def ("primitive", Name_Primitive); + Def ("pull0", Name_Pull0); + Def ("pull1", Name_Pull1); + Def ("pulldown", Name_Pulldown); + Def ("pullup", Name_Pullup); + Def ("realtime", Name_Realtime); + Def ("release", Name_Release); + Def ("reg", Name_Reg); + Def ("repeat", Name_Repeat); + Def ("rcmos", Name_Rcmos); + Def ("rnmos", Name_Rnmos); + Def ("rpmos", Name_Rpmos); + Def ("rtran", Name_Rtran); + Def ("rtranif0", Name_Rtranif0); + Def ("rtranif1", Name_Rtranif1); + Def ("scalared", Name_Scalared); + Def ("small", Name_Small); + Def ("specify", Name_Specify); + Def ("specparam", Name_Specparam); + Def ("strong0", Name_Strong0); + Def ("strong1", Name_Strong1); + Def ("supply0", Name_Supply0); + Def ("supply1", Name_Supply1); + Def ("table", Name_Tablex); + Def ("task", Name_Task); + Def ("tran", Name_Tran); + Def ("tranif0", Name_Tranif0); + Def ("tranif1", Name_Tranif1); + Def ("tri", Name_Tri); + Def ("tri0", Name_Tri0); + Def ("tri1", Name_Tri1); + Def ("triand", Name_Triand); + Def ("trior", Name_Trior); + Def ("trireg", Name_Trireg); + Def ("vectored", Name_Vectored); + Def ("wand", Name_Wand); + Def ("weak0", Name_Weak0); + Def ("weak1", Name_Weak1); + Def ("wire", Name_Wire); + Def ("wor", Name_Wor); + + -- Verilog 2001 + Def ("automatic", Name_Automatic); + Def ("endgenerate", Name_Endgenerate); + Def ("genvar", Name_Genvar); + Def ("localparam", Name_Localparam); + Def ("unsigned", Name_Unsigned); + Def ("signed", Name_Signed); + + -- Verilog 2005 + Def ("uwire", Name_Uwire); + + -- SystemVerilog 2005 + Def ("always_comb", Name_Always_Comb); + Def ("always_ff", Name_Always_Ff); + Def ("always_latch", Name_Always_Latch); + Def ("bit", Name_Bit); + Def ("byte", Name_Byte); + Def ("changed", Name_Changed); + Def ("char", Name_Char); + Def ("const", Name_Const); + Def ("continue", Name_Continue); + Def ("do", Name_Do); + Def ("endinterface", Name_Endinterface); + Def ("endtransition", Name_Endtransition); + Def ("enum", Name_Enum); + Def ("export", Name_Export); + Def ("extern", Name_Extern); + Def ("forkjoin", Name_Forkjoin); + Def ("iff", Name_Iff); + Def ("import", Name_Import); + Def ("int", Name_Int); + Def ("interface", Name_Interface); + Def ("logic", Name_Logic); + Def ("longint", Name_Longint); + Def ("longreal", Name_Longreal); + Def ("modport", Name_Modport); + Def ("packed", Name_Packed); + Def ("priority", Name_Priority); + Def ("shortint", Name_Shortint); + Def ("shortreal", Name_Shortreal); + Def ("static", Name_Static); + Def ("struct", Name_Struct); + Def ("timeprecision", Name_Timeprecision); + Def ("timeunit", Name_Timeunit); + Def ("transition", Name_Transition); + Def ("typedef", Name_Typedef); + Def ("union", Name_Union); + Def ("unique", Name_Unique); + Def ("void", Name_Void); + + -- SystemVerilog 3.1 + Def ("chandle", Name_Chandle); + Def ("class", Name_Class); + Def ("clocking", Name_Clocking); + Def ("constraint", Name_Constraint); + Def ("cover", Name_Cover); + Def ("dist", Name_Dist); + Def ("endclass", Name_Endclass); + Def ("endclocking", Name_Endclocking); + Def ("endprogram", Name_Endprogram); + Def ("endproperty", Name_Endproperty); + Def ("endsequence", Name_Endsequence); + Def ("extends", Name_Extends); + Def ("final", Name_Final); + Def ("first_match", Name_First_Match); + Def ("inside", Name_Inside); + Def ("intersect", Name_Intersect); + Def ("join_any", Name_Join_Any); + Def ("join_none", Name_Join_None); + Def ("local", Name_Local); + Def ("program", Name_Program); + Def ("property", Name_Property); + Def ("rand", Name_Rand); + Def ("randc", Name_Randc); + Def ("ref", Name_Ref); + Def ("sequence", Name_Sequence); + Def ("solve", Name_Solve); + Def ("string", Name_String); + Def ("super", Name_Super); + Def ("this", Name_This); + Def ("throughout", Name_Throughout); + Def ("var", Name_Var); + Def ("virtual", Name_Virtual); + Def ("wait_order", Name_Wait_Order); + + -- SystemVerilog 3.1a + Def ("assume", Name_Assume); + Def ("covergroup", Name_Covergroup); + Def ("coverpoint", Name_Coverpoint); + Def ("endgroup", Name_Endgroup); + Def ("endpackage", Name_Endpackage); + Def ("expect", Name_Expect); + Def ("foreach", Name_Foreach); + Def ("ingore_bins", Name_Ignore_Bins); + Def ("illegal_bins", Name_Illegal_Bins); + Def ("matches", Name_Matches); + Def ("randcase", Name_Randcase); + Def ("randsequence", Name_Randsequence); + Def ("tagged", Name_Tagged); + Def ("wildcard", Name_Wildcard); + -- Create operators. Def ("=", Name_Op_Equality); Def ("/=", Name_Op_Inequality); @@ -381,9 +564,11 @@ package body Std_Names is Def ("write", Name_Write); Def ("flush", Name_Flush); Def ("endfile", Name_Endfile); - Def ("p", Name_P); + Def ("i", Name_I); + Def ("j", Name_J); Def ("f", Name_F); Def ("l", Name_L); + Def ("p", Name_P); Def ("r", Name_R); Def ("s", Name_S); Def ("v", Name_V); @@ -403,6 +588,10 @@ package body Std_Names is Def ("textio_write_real", Name_Textio_Write_Real); Def ("get_resolution_limit", Name_Get_Resolution_Limit); Def ("control_simulation", Name_Control_Simulation); + Def ("step", Name_Step); + Def ("index", Name_Index); + Def ("__FILE__", Name_Uu_File_Uu); + Def ("__LINE__", Name_Uu_Line_Uu); Def ("ieee", Name_Ieee); Def ("std_logic_1164", Name_Std_Logic_1164); @@ -424,103 +613,38 @@ package body Std_Names is Def ("std_logic_textio", Name_Std_Logic_Textio); Def ("std_logic_unsigned", Name_Std_Logic_Unsigned); - -- Verilog keywords - Def ("always", Name_Always); - Def ("assign", Name_Assign); - Def ("buf", Name_Buf); - Def ("bufif0", Name_Bufif0); - Def ("bufif1", Name_Bufif1); - Def ("casex", Name_Casex); - Def ("casez", Name_Casez); - Def ("cmos", Name_Cmos); - Def ("deassign", Name_Deassign); - Def ("default", Name_Default); - Def ("defparam", Name_Defparam); - Def ("disable", Name_Disable); - Def ("endcase", Name_Endcase); - Def ("endfunction", Name_Endfunction); - Def ("endmodule", Name_Endmodule); - Def ("endprimitive", Name_Endprimitive); - Def ("endspecify", Name_Endspecify); - Def ("endtable", Name_Endtable); - Def ("endtask", Name_Endtask); - Def ("forever", Name_Forever); - Def ("fork", Name_Fork); - Def ("highz0", Name_Highz0); - Def ("highz1", Name_Highz1); - Def ("initial", Name_Initial); - Def ("input", Name_Input); - Def ("join", Name_Join); - Def ("large", Name_Large); - Def ("medium", Name_Medium); - Def ("module", Name_Module); - Def ("negedge", Name_Negedge); - Def ("nmos", Name_Nmos); - Def ("notif0", Name_Notif0); - Def ("notif1", Name_Notif1); - Def ("output", Name_Output); - Def ("pmos", Name_Pmos); - Def ("posedge", Name_Posedge); - Def ("primitive", Name_Primitive); - Def ("pull0", Name_Pull0); - Def ("pull1", Name_Pull1); - Def ("pulldown", Name_Pulldown); - Def ("pullup", Name_Pullup); - Def ("reg", Name_Reg); - Def ("repeat", Name_Repeat); - Def ("rcmos", Name_Rcmos); - Def ("rnmos", Name_Rnmos); - Def ("rpmos", Name_Rpmos); - Def ("rtran", Name_Rtran); - Def ("rtranif0", Name_Rtranif0); - Def ("rtranif1", Name_Rtranif1); - Def ("small", Name_Small); - Def ("specify", Name_Specify); - Def ("specparam", Name_Specparam); - Def ("strong0", Name_Strong0); - Def ("strong1", Name_Strong1); - Def ("supply0", Name_Supply0); - Def ("supply1", Name_Supply1); - Def ("table", Name_Tablex); - Def ("task", Name_Task); - Def ("tran", Name_Tran); - Def ("tranif0", Name_Tranif0); - Def ("tranif1", Name_Tranif1); - Def ("tri", Name_Tri); - Def ("tri0", Name_Tri0); - Def ("tri1", Name_Tri1); - Def ("triand", Name_Triand); - Def ("trior", Name_Trior); - Def ("trireg", Name_Trireg); - Def ("wand", Name_Wand); - Def ("weak0", Name_Weak0); - Def ("weak1", Name_Weak1); - Def ("wire", Name_Wire); - Def ("wor", Name_Wor); - - -- Verilog 2001 - Def ("automatic", Name_Automatic); - Def ("endgenerate", Name_Endgenerate); - Def ("genvar", Name_Genvar); - Def ("localparam", Name_Localparam); - Def ("unsigned", Name_Unsigned); - Def ("signed", Name_Signed); - - Def ("define", Name_Define); - Def ("endif", Name_Endif); - Def ("ifdef", Name_Ifdef); - Def ("include", Name_Include); - Def ("timescale", Name_Timescale); - Def ("undef", Name_Undef); - Def ("protect", Name_Protect); + -- Verilog directives + Def ("define", Name_Define); + Def ("endif", Name_Endif); + Def ("ifdef", Name_Ifdef); + Def ("ifndef", Name_Ifndef); + Def ("include", Name_Include); + Def ("timescale", Name_Timescale); + Def ("undef", Name_Undef); + Def ("protect", Name_Protect); Def ("begin_protected", Name_Begin_Protected); Def ("end_protected", Name_End_Protected); Def ("key_block", Name_Key_Block); Def ("data_block", Name_Data_Block); + Def ("line", Name_Line); -- Verilog system tasks - Def ("display", Name_Display); - Def ("finish", Name_Finish); + Def ("$bits", Name_D_Bits); + Def ("$root", Name_D_Root); + Def ("$unit", Name_D_Unit); + + -- SV methods. + Def ("size", Name_Size); + Def ("insert", Name_Insert); + Def ("delete", Name_Delete); + Def ("pop_front", Name_Pop_Front); + Def ("pop_back", Name_Pop_Back); + Def ("push_front", Name_Push_Front); + Def ("push_back", Name_Push_Back); + Def ("name", Name_Name); + Def ("len", Name_Len); + Def ("substr", Name_Substr); + Def ("exists", Name_Exists); -- BSV keywords Def ("Action", Name_uAction); @@ -537,32 +661,24 @@ package body Std_Names is Def ("endactionvalue", Name_Endactionvalue); Def ("ancestor", Name_Ancestor); Def ("clocked_by", Name_Clocked_By); - Def ("continue", Name_Continue); Def ("default_clock", Name_Default_Clock); Def ("default_reset", Name_Default_Reset); Def ("dependencies", Name_Dependencies); Def ("deriving", Name_Deriving); Def ("determines", Name_Determines); Def ("enable", Name_Enable); - Def ("enum", Name_Enum); - Def ("export", Name_Export); Def ("ifc_inout", Name_Ifc_Inout); - Def ("import", Name_Import); Def ("input_clock", Name_Input_Clock); Def ("input_reset", Name_Input_Reset); Def ("instance", Name_Instance); Def ("endinstance", Name_Endinstance); - Def ("interface", Name_Interface); - Def ("endinterface", Name_Endinterface); Def ("let", Name_Let); Def ("match", Name_Match); - Def ("matches", Name_Matches); Def ("method", Name_Method); Def ("endmethod", Name_Endmethod); Def ("numeric", Name_Numeric); Def ("output_clock", Name_Output_Clock); Def ("output_reset", Name_Output_Reset); - Def ("endpackage", Name_Endpackage); Def ("par", Name_Par); Def ("endpar", Name_Endpar); Def ("path", Name_Path); @@ -577,15 +693,10 @@ package body Std_Names is Def ("schedule", Name_Schedule); Def ("seq", Name_Seq); Def ("endseq", Name_Endseq); - Def ("struct", Name_Struct); - Def ("tagged", Name_Tagged); Def ("typeclass", Name_Typeclass); Def ("endtypeclass", Name_Endtypeclass); - Def ("typedef", Name_Typedef); - Def ("union", Name_Union); Def ("valueof", Name_Valueof); Def ("valueOf", Name_uValueof); - Def ("void", Name_Void); -- VHDL special comments Def ("psl", Name_Psl); diff --git a/src/std_names.ads b/src/std_names.ads index b1e39ca6e..e6e335f6f 100644 --- a/src/std_names.ads +++ b/src/std_names.ads @@ -193,7 +193,6 @@ package Std_Names is Name_Terminal : constant Name_Id := Name_First_Ams_Keyword + 010; Name_Through : constant Name_Id := Name_First_Ams_Keyword + 011; Name_Tolerance : constant Name_Id := Name_First_Ams_Keyword + 012; - Name_Last_AMS_Vhdl : constant Name_Id := Name_Tolerance; subtype Name_Id_AMS_Reserved_Words is @@ -204,20 +203,213 @@ package Std_Names is 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; + -- Verilog keywords. + Name_First_Verilog : constant Name_Id := Name_Last_Keyword + 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_Edge : constant Name_Id := Name_First_Verilog + 12; + Name_Endcase : constant Name_Id := Name_First_Verilog + 13; + Name_Endfunction : constant Name_Id := Name_First_Verilog + 14; + Name_Endmodule : constant Name_Id := Name_First_Verilog + 15; + Name_Endprimitive : constant Name_Id := Name_First_Verilog + 16; + Name_Endspecify : constant Name_Id := Name_First_Verilog + 17; + Name_Endtable : constant Name_Id := Name_First_Verilog + 18; + Name_Endtask : constant Name_Id := Name_First_Verilog + 19; + Name_Force : constant Name_Id := Name_First_Verilog + 20; + Name_Forever : constant Name_Id := Name_First_Verilog + 21; + Name_Fork : constant Name_Id := Name_First_Verilog + 22; + Name_Highz0 : constant Name_Id := Name_First_Verilog + 23; + Name_Highz1 : constant Name_Id := Name_First_Verilog + 24; + Name_Ifnone : constant Name_Id := Name_First_Verilog + 25; + Name_Initial : constant Name_Id := Name_First_Verilog + 26; + Name_Input : constant Name_Id := Name_First_Verilog + 27; + Name_Join : constant Name_Id := Name_First_Verilog + 28; + Name_Large : constant Name_Id := Name_First_Verilog + 29; + Name_Macromodule : constant Name_Id := Name_First_Verilog + 30; + Name_Medium : constant Name_Id := Name_First_Verilog + 31; + Name_Module : constant Name_Id := Name_First_Verilog + 32; + Name_Negedge : constant Name_Id := Name_First_Verilog + 33; + Name_Nmos : constant Name_Id := Name_First_Verilog + 34; + Name_Notif0 : constant Name_Id := Name_First_Verilog + 35; + Name_Notif1 : constant Name_Id := Name_First_Verilog + 36; + Name_Output : constant Name_Id := Name_First_Verilog + 37; + Name_Pmos : constant Name_Id := Name_First_Verilog + 38; + Name_Posedge : constant Name_Id := Name_First_Verilog + 39; + Name_Primitive : constant Name_Id := Name_First_Verilog + 40; + Name_Pull0 : constant Name_Id := Name_First_Verilog + 41; + Name_Pull1 : constant Name_Id := Name_First_Verilog + 42; + Name_Pulldown : constant Name_Id := Name_First_Verilog + 43; + Name_Pullup : constant Name_Id := Name_First_Verilog + 44; + Name_Realtime : constant Name_Id := Name_First_Verilog + 45; + Name_Release : constant Name_Id := Name_First_Verilog + 46; + Name_Reg : constant Name_Id := Name_First_Verilog + 47; + Name_Repeat : constant Name_Id := Name_First_Verilog + 48; + Name_Rcmos : constant Name_Id := Name_First_Verilog + 49; + Name_Rnmos : constant Name_Id := Name_First_Verilog + 50; + Name_Rpmos : constant Name_Id := Name_First_Verilog + 51; + Name_Rtran : constant Name_Id := Name_First_Verilog + 52; + Name_Rtranif0 : constant Name_Id := Name_First_Verilog + 53; + Name_Rtranif1 : constant Name_Id := Name_First_Verilog + 54; + Name_Scalared : constant Name_Id := Name_First_Verilog + 55; + Name_Small : constant Name_Id := Name_First_Verilog + 56; + Name_Specify : constant Name_Id := Name_First_Verilog + 57; + Name_Specparam : constant Name_Id := Name_First_Verilog + 58; + Name_Strong0 : constant Name_Id := Name_First_Verilog + 59; + Name_Strong1 : constant Name_Id := Name_First_Verilog + 60; + Name_Supply0 : constant Name_Id := Name_First_Verilog + 61; + Name_Supply1 : constant Name_Id := Name_First_Verilog + 62; + Name_Tablex : constant Name_Id := Name_First_Verilog + 63; + Name_Task : constant Name_Id := Name_First_Verilog + 64; + Name_Tran : constant Name_Id := Name_First_Verilog + 65; + Name_Tranif0 : constant Name_Id := Name_First_Verilog + 66; + Name_Tranif1 : constant Name_Id := Name_First_Verilog + 67; + Name_Tri : constant Name_Id := Name_First_Verilog + 68; + Name_Tri0 : constant Name_Id := Name_First_Verilog + 69; + Name_Tri1 : constant Name_Id := Name_First_Verilog + 70; + Name_Triand : constant Name_Id := Name_First_Verilog + 71; + Name_Trior : constant Name_Id := Name_First_Verilog + 72; + Name_Trireg : constant Name_Id := Name_First_Verilog + 73; + Name_Vectored : constant Name_Id := Name_First_Verilog + 74; + Name_Wand : constant Name_Id := Name_First_Verilog + 75; + Name_Weak0 : constant Name_Id := Name_First_Verilog + 76; + Name_Weak1 : constant Name_Id := Name_First_Verilog + 77; + Name_Wire : constant Name_Id := Name_First_Verilog + 78; + Name_Wor : constant Name_Id := Name_First_Verilog + 79; + Name_Last_Verilog : constant Name_Id := Name_Wor; + + -- Verilog 2001 + Name_First_V2001 : constant Name_Id := Name_Last_Verilog + 1; + Name_Automatic : constant Name_Id := Name_First_V2001 + 0; + Name_Endgenerate : constant Name_Id := Name_First_V2001 + 1; + Name_Genvar : constant Name_Id := Name_First_V2001 + 2; + Name_Localparam : constant Name_Id := Name_First_V2001 + 3; + Name_Unsigned : constant Name_Id := Name_First_V2001 + 4; + Name_Signed : constant Name_Id := Name_First_V2001 + 5; + Name_Last_V2001 : constant Name_Id := Name_First_V2001 + 5; + + -- Verilog 2005 + Name_Uwire : constant Name_Id := Name_Last_V2001 + 1; + + -- SystemVerilog + Name_First_SV3_0 : constant Name_Id := Name_Last_V2001 + 2; + Name_Always_Comb : constant Name_Id := Name_First_SV3_0 + 0; + Name_Always_Ff : constant Name_Id := Name_First_SV3_0 + 1; + Name_Always_Latch : constant Name_Id := Name_First_SV3_0 + 2; + Name_Bit : constant Name_Id := Name_First_SV3_0 + 3; + Name_Byte : constant Name_Id := Name_First_SV3_0 + 4; + Name_Changed : constant Name_Id := Name_First_SV3_0 + 5; + Name_Char : constant Name_Id := Name_First_SV3_0 + 6; + Name_Const : constant Name_Id := Name_First_SV3_0 + 7; + Name_Continue : constant Name_Id := Name_First_SV3_0 + 8; + Name_Do : constant Name_Id := Name_First_SV3_0 + 9; + Name_Endinterface : constant Name_Id := Name_First_SV3_0 + 10; + Name_Endtransition : constant Name_Id := Name_First_SV3_0 + 11; + Name_Enum : constant Name_Id := Name_First_SV3_0 + 12; + Name_Export : constant Name_Id := Name_First_SV3_0 + 13; + Name_Extern : constant Name_Id := Name_First_SV3_0 + 14; + Name_Forkjoin : constant Name_Id := Name_First_SV3_0 + 15; + Name_Iff : constant Name_Id := Name_First_SV3_0 + 16; + Name_Import : constant Name_Id := Name_First_SV3_0 + 17; + Name_Int : constant Name_Id := Name_First_SV3_0 + 18; + Name_Interface : constant Name_Id := Name_First_SV3_0 + 19; + Name_Logic : constant Name_Id := Name_First_SV3_0 + 20; + Name_Longint : constant Name_Id := Name_First_SV3_0 + 21; + Name_Longreal : constant Name_Id := Name_First_SV3_0 + 22; + Name_Modport : constant Name_Id := Name_First_SV3_0 + 23; + Name_Packed : constant Name_Id := Name_First_SV3_0 + 24; + Name_Priority : constant Name_Id := Name_First_SV3_0 + 25; + Name_Shortint : constant Name_Id := Name_First_SV3_0 + 26; + Name_Shortreal : constant Name_Id := Name_First_SV3_0 + 27; + Name_Static : constant Name_Id := Name_First_SV3_0 + 28; + Name_Struct : constant Name_Id := Name_First_SV3_0 + 29; + Name_Timeprecision : constant Name_Id := Name_First_SV3_0 + 30; + Name_Timeunit : constant Name_Id := Name_First_SV3_0 + 31; + Name_Transition : constant Name_Id := Name_First_SV3_0 + 32; + Name_Typedef : constant Name_Id := Name_First_SV3_0 + 33; + Name_Union : constant Name_Id := Name_First_SV3_0 + 34; + Name_Unique : constant Name_Id := Name_First_SV3_0 + 35; + Name_Void : constant Name_Id := Name_First_SV3_0 + 36; + Name_Last_SV3_0 : constant Name_Id := Name_First_SV3_0 + 36; + + Name_First_SV3_1 : constant Name_Id := Name_Last_SV3_0 + 1; + Name_Chandle : constant Name_Id := Name_First_SV3_1 + 0; + Name_Class : constant Name_Id := Name_First_SV3_1 + 1; + Name_Clocking : constant Name_Id := Name_First_SV3_1 + 2; + Name_Constraint : constant Name_Id := Name_First_SV3_1 + 3; + Name_Cover : constant Name_Id := Name_First_SV3_1 + 4; + Name_Dist : constant Name_Id := Name_First_SV3_1 + 5; + Name_Endclass : constant Name_Id := Name_First_SV3_1 + 6; + Name_Endclocking : constant Name_Id := Name_First_SV3_1 + 7; + Name_Endprogram : constant Name_Id := Name_First_SV3_1 + 8; + Name_Endproperty : constant Name_Id := Name_First_SV3_1 + 9; + Name_Endsequence : constant Name_Id := Name_First_SV3_1 + 10; + Name_Extends : constant Name_Id := Name_First_SV3_1 + 11; + Name_Final : constant Name_Id := Name_First_SV3_1 + 12; + Name_First_Match : constant Name_Id := Name_First_SV3_1 + 13; + Name_Inside : constant Name_Id := Name_First_SV3_1 + 14; + Name_Intersect : constant Name_Id := Name_First_SV3_1 + 15; + Name_Join_Any : constant Name_Id := Name_First_SV3_1 + 16; + Name_Join_None : constant Name_Id := Name_First_SV3_1 + 17; + Name_Local : constant Name_Id := Name_First_SV3_1 + 18; + Name_Program : constant Name_Id := Name_First_SV3_1 + 19; + Name_Property : constant Name_Id := Name_First_SV3_1 + 20; + Name_Rand : constant Name_Id := Name_First_SV3_1 + 21; + Name_Randc : constant Name_Id := Name_First_SV3_1 + 22; + Name_Ref : constant Name_Id := Name_First_SV3_1 + 23; + Name_Sequence : constant Name_Id := Name_First_SV3_1 + 24; + Name_Solve : constant Name_Id := Name_First_SV3_1 + 25; + Name_String : constant Name_Id := Name_First_SV3_1 + 26; + Name_Super : constant Name_Id := Name_First_SV3_1 + 27; + Name_This : constant Name_Id := Name_First_SV3_1 + 28; + Name_Throughout : constant Name_Id := Name_First_SV3_1 + 29; + Name_Var : constant Name_Id := Name_First_SV3_1 + 30; + Name_Virtual : constant Name_Id := Name_First_SV3_1 + 31; + Name_Wait_Order : constant Name_Id := Name_First_SV3_1 + 32; + Name_Last_SV3_1 : constant Name_Id := Name_Wait_Order; + + Name_First_SV3_1a : constant Name_Id := Name_Last_SV3_1 + 1; + Name_Assume : constant Name_Id := Name_First_SV3_1a + 0; + Name_Covergroup : constant Name_Id := Name_First_SV3_1a + 1; + Name_Coverpoint : constant Name_Id := Name_First_SV3_1a + 2; + Name_Endgroup : constant Name_Id := Name_First_SV3_1a + 3; + Name_Endpackage : constant Name_Id := Name_First_SV3_1a + 4; + Name_Expect : constant Name_Id := Name_First_SV3_1a + 5; + Name_Foreach : constant Name_Id := Name_First_SV3_1a + 6; + Name_Ignore_Bins : constant Name_Id := Name_First_SV3_1a + 7; + Name_Illegal_Bins : constant Name_Id := Name_First_SV3_1a + 8; + Name_Matches : constant Name_Id := Name_First_SV3_1a + 9; + Name_Randcase : constant Name_Id := Name_First_SV3_1a + 10; + Name_Randsequence : constant Name_Id := Name_First_SV3_1a + 11; + Name_Tagged : constant Name_Id := Name_First_SV3_1a + 12; + Name_Wildcard : constant Name_Id := Name_First_SV3_1a + 13; + Name_Last_SV3_1a : constant Name_Id := Name_First_SV3_1a + 13; + + -- VHDL operators. Used as identifiers for declaration of overloaded + -- operators. + Name_First_Operator : constant Name_Id := Name_Last_SV3_1a + 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 + 005; + 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; @@ -234,36 +426,36 @@ package Std_Names is 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; + 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_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 @@ -306,75 +498,73 @@ package Std_Names is 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; + 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_Character : constant Name_Id := Name_First_Standard + 005; + Name_Severity_Level : constant Name_Id := Name_First_Standard + 006; + Name_Note : constant Name_Id := Name_First_Standard + 007; + Name_Warning : constant Name_Id := Name_First_Standard + 008; + Name_Error : constant Name_Id := Name_First_Standard + 009; + Name_Failure : constant Name_Id := Name_First_Standard + 010; + Name_Universal_Integer : constant Name_Id := Name_First_Standard + 011; + Name_Universal_Real : constant Name_Id := Name_First_Standard + 012; + Name_Convertible_Integer : constant Name_Id := Name_First_Standard + 013; + Name_Convertible_Real : constant Name_Id := Name_First_Standard + 014; + Name_Integer : constant Name_Id := Name_First_Standard + 015; + Name_Real : constant Name_Id := Name_First_Standard + 016; + Name_Time : constant Name_Id := Name_First_Standard + 017; + Name_Fs : constant Name_Id := Name_First_Standard + 018; + Name_Ps : constant Name_Id := Name_First_Standard + 019; + Name_Ns : constant Name_Id := Name_First_Standard + 020; + Name_Us : constant Name_Id := Name_First_Standard + 021; + Name_Ms : constant Name_Id := Name_First_Standard + 022; + Name_Sec : constant Name_Id := Name_First_Standard + 023; + Name_Min : constant Name_Id := Name_First_Standard + 024; + Name_Hr : constant Name_Id := Name_First_Standard + 025; + Name_Delay_Length : constant Name_Id := Name_First_Standard + 026; + Name_Now : constant Name_Id := Name_First_Standard + 027; + Name_Natural : constant Name_Id := Name_First_Standard + 028; + Name_Positive : constant Name_Id := Name_First_Standard + 029; + Name_Bit_Vector : constant Name_Id := Name_First_Standard + 030; + Name_File_Open_Kind : constant Name_Id := Name_First_Standard + 031; + Name_Read_Mode : constant Name_Id := Name_First_Standard + 032; + Name_Write_Mode : constant Name_Id := Name_First_Standard + 033; + Name_Append_Mode : constant Name_Id := Name_First_Standard + 034; + Name_File_Open_Status : constant Name_Id := Name_First_Standard + 035; + Name_Open_Ok : constant Name_Id := Name_First_Standard + 036; + Name_Status_Error : constant Name_Id := Name_First_Standard + 037; + Name_Name_Error : constant Name_Id := Name_First_Standard + 038; + Name_Mode_Error : constant Name_Id := Name_First_Standard + 039; + Name_Foreign : constant Name_Id := Name_First_Standard + 040; -- 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; + Name_Boolean_Vector : constant Name_Id := Name_First_Standard + 041; + Name_To_Bstring : constant Name_Id := Name_First_Standard + 042; + Name_To_Binary_String : constant Name_Id := Name_First_Standard + 043; + Name_To_Ostring : constant Name_Id := Name_First_Standard + 044; + Name_To_Octal_String : constant Name_Id := Name_First_Standard + 045; + Name_To_Hstring : constant Name_Id := Name_First_Standard + 046; + Name_To_Hex_String : constant Name_Id := Name_First_Standard + 047; + Name_Integer_Vector : constant Name_Id := Name_First_Standard + 048; + Name_Real_Vector : constant Name_Id := Name_First_Standard + 049; + Name_Time_Vector : constant Name_Id := Name_First_Standard + 050; + Name_Digits : constant Name_Id := Name_First_Standard + 051; + Name_Format : constant Name_Id := Name_First_Standard + 052; + Name_Unit : constant Name_Id := Name_First_Standard + 053; -- 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_Domain_Type : constant Name_Id := Name_First_Standard + 054; + Name_Quiescent_Domain : constant Name_Id := Name_First_Standard + 055; + Name_Time_Domain : constant Name_Id := Name_First_Standard + 056; + Name_Frequency_Domain : constant Name_Id := Name_First_Standard + 057; + Name_Domain : constant Name_Id := Name_First_Standard + 058; + Name_Frequency : constant Name_Id := Name_First_Standard + 059; - Name_Last_Standard : constant Name_Id := Name_Frequency; + 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; @@ -446,38 +636,44 @@ package Std_Names is 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_V : constant Name_Id := Name_First_Misc + 013; - Name_External_Name : constant Name_Id := Name_First_Misc + 014; - Name_Open_Kind : constant Name_Id := Name_First_Misc + 015; - Name_Status : constant Name_Id := Name_First_Misc + 016; - Name_First : constant Name_Id := Name_First_Misc + 017; - Name_Last : constant Name_Id := Name_First_Misc + 018; - Name_Textio : constant Name_Id := Name_First_Misc + 019; - Name_Work : constant Name_Id := Name_First_Misc + 020; - Name_Text : constant Name_Id := Name_First_Misc + 021; - Name_To_String : constant Name_Id := Name_First_Misc + 022; - Name_Minimum : constant Name_Id := Name_First_Misc + 023; - Name_Maximum : constant Name_Id := Name_First_Misc + 024; - Name_Untruncated_Text_Read : constant Name_Id := Name_First_Misc + 025; - Name_Textio_Read_Real : constant Name_Id := Name_First_Misc + 026; - Name_Textio_Write_Real : constant Name_Id := Name_First_Misc + 027; - Name_Get_Resolution_Limit : constant Name_Id := Name_First_Misc + 028; - Name_Control_Simulation : constant Name_Id := Name_First_Misc + 029; - Name_Last_Misc : constant Name_Id := Name_Control_Simulation; + 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_I : constant Name_Id := Name_First_Misc + 008; + Name_J : constant Name_Id := Name_First_Misc + 009; + Name_F : constant Name_Id := Name_First_Misc + 010; + Name_L : constant Name_Id := Name_First_Misc + 011; + Name_P : constant Name_Id := Name_First_Misc + 012; + Name_R : constant Name_Id := Name_First_Misc + 013; + Name_S : constant Name_Id := Name_First_Misc + 014; + Name_V : constant Name_Id := Name_First_Misc + 015; + Name_External_Name : constant Name_Id := Name_First_Misc + 016; + Name_Open_Kind : constant Name_Id := Name_First_Misc + 017; + Name_Status : constant Name_Id := Name_First_Misc + 018; + Name_First : constant Name_Id := Name_First_Misc + 019; + Name_Last : constant Name_Id := Name_First_Misc + 020; + Name_Textio : constant Name_Id := Name_First_Misc + 021; + Name_Work : constant Name_Id := Name_First_Misc + 022; + Name_Text : constant Name_Id := Name_First_Misc + 023; + Name_To_String : constant Name_Id := Name_First_Misc + 024; + Name_Minimum : constant Name_Id := Name_First_Misc + 025; + Name_Maximum : constant Name_Id := Name_First_Misc + 026; + Name_Untruncated_Text_Read : constant Name_Id := Name_First_Misc + 027; + Name_Textio_Read_Real : constant Name_Id := Name_First_Misc + 028; + Name_Textio_Write_Real : constant Name_Id := Name_First_Misc + 029; + Name_Get_Resolution_Limit : constant Name_Id := Name_First_Misc + 030; + Name_Control_Simulation : constant Name_Id := Name_First_Misc + 031; + Name_Step : constant Name_Id := Name_First_Misc + 032; + Name_Index : constant Name_Id := Name_First_Misc + 033; + Name_Uu_File_Uu : constant Name_Id := Name_First_Misc + 034; + Name_Uu_Line_Uu : constant Name_Id := Name_First_Misc + 035; + Name_Last_Misc : constant Name_Id := Name_Uu_Line_Uu; Name_First_Ieee : constant Name_Id := Name_Last_Misc + 1; Name_Ieee : constant Name_Id := Name_First_Ieee + 000; @@ -501,115 +697,47 @@ package Std_Names is Name_Std_Logic_Unsigned : constant Name_Id := Name_First_Ieee + 018; Name_Last_Ieee : constant Name_Id := Name_Std_Logic_Unsigned; - -- 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_Pmos : constant Name_Id := Name_First_Verilog + 34; - Name_Posedge : constant Name_Id := Name_First_Verilog + 35; - Name_Primitive : constant Name_Id := Name_First_Verilog + 36; - Name_Pull0 : constant Name_Id := Name_First_Verilog + 37; - Name_Pull1 : constant Name_Id := Name_First_Verilog + 38; - Name_Pulldown : constant Name_Id := Name_First_Verilog + 39; - Name_Pullup : constant Name_Id := Name_First_Verilog + 40; - Name_Reg : constant Name_Id := Name_First_Verilog + 41; - Name_Repeat : constant Name_Id := Name_First_Verilog + 42; - Name_Rcmos : constant Name_Id := Name_First_Verilog + 43; - Name_Rnmos : constant Name_Id := Name_First_Verilog + 44; - Name_Rpmos : constant Name_Id := Name_First_Verilog + 45; - Name_Rtran : constant Name_Id := Name_First_Verilog + 46; - Name_Rtranif0 : constant Name_Id := Name_First_Verilog + 47; - Name_Rtranif1 : constant Name_Id := Name_First_Verilog + 48; - Name_Small : constant Name_Id := Name_First_Verilog + 49; - Name_Specify : constant Name_Id := Name_First_Verilog + 50; - Name_Specparam : constant Name_Id := Name_First_Verilog + 51; - Name_Strong0 : constant Name_Id := Name_First_Verilog + 52; - Name_Strong1 : constant Name_Id := Name_First_Verilog + 53; - Name_Supply0 : constant Name_Id := Name_First_Verilog + 54; - Name_Supply1 : constant Name_Id := Name_First_Verilog + 55; - Name_Tablex : constant Name_Id := Name_First_Verilog + 56; - Name_Task : constant Name_Id := Name_First_Verilog + 57; - Name_Tran : constant Name_Id := Name_First_Verilog + 58; - Name_Tranif0 : constant Name_Id := Name_First_Verilog + 59; - Name_Tranif1 : constant Name_Id := Name_First_Verilog + 60; - Name_Tri : constant Name_Id := Name_First_Verilog + 61; - Name_Tri0 : constant Name_Id := Name_First_Verilog + 62; - Name_Tri1 : constant Name_Id := Name_First_Verilog + 63; - Name_Triand : constant Name_Id := Name_First_Verilog + 64; - Name_Trior : constant Name_Id := Name_First_Verilog + 65; - Name_Trireg : constant Name_Id := Name_First_Verilog + 66; - Name_Wand : constant Name_Id := Name_First_Verilog + 67; - Name_Weak0 : constant Name_Id := Name_First_Verilog + 68; - Name_Weak1 : constant Name_Id := Name_First_Verilog + 69; - Name_Wire : constant Name_Id := Name_First_Verilog + 70; - Name_Wor : constant Name_Id := Name_First_Verilog + 71; - Name_Last_Verilog : constant Name_Id := Name_Wor; - - -- Verilog 2001 - Name_First_V2001 : constant Name_Id := Name_Last_Verilog + 1; - Name_Automatic : constant Name_Id := Name_First_V2001 + 0; - Name_Endgenerate : constant Name_Id := Name_First_V2001 + 1; - Name_Genvar : constant Name_Id := Name_First_V2001 + 2; - Name_Localparam : constant Name_Id := Name_First_V2001 + 3; - Name_Unsigned : constant Name_Id := Name_First_V2001 + 4; - Name_Signed : constant Name_Id := Name_First_V2001 + 5; - Name_Last_V2001 : constant Name_Id := Name_First_V2001 + 5; - -- Verilog Directives. - Name_First_Directive : constant Name_Id := Name_Last_V2001 + 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_Protect : constant Name_Id := Name_First_Directive + 06; - Name_Begin_Protected : constant Name_Id := Name_First_Directive + 07; - Name_End_Protected : constant Name_Id := Name_First_Directive + 08; - Name_Key_Block : constant Name_Id := Name_First_Directive + 09; - Name_Data_Block : constant Name_Id := Name_First_Directive + 10; - Name_Last_Directive : constant Name_Id := Name_Data_Block; - - -- Verilog system tasks. + Name_First_Directive : constant Name_Id := Name_Last_Ieee + 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_Ifndef : constant Name_Id := Name_First_Directive + 03; + Name_Include : constant Name_Id := Name_First_Directive + 04; + Name_Timescale : constant Name_Id := Name_First_Directive + 05; + Name_Undef : constant Name_Id := Name_First_Directive + 06; + Name_Protect : constant Name_Id := Name_First_Directive + 07; + Name_Begin_Protected : constant Name_Id := Name_First_Directive + 08; + Name_End_Protected : constant Name_Id := Name_First_Directive + 09; + Name_Key_Block : constant Name_Id := Name_First_Directive + 10; + Name_Data_Block : constant Name_Id := Name_First_Directive + 11; + Name_Line : constant Name_Id := Name_First_Directive + 12; + Name_Last_Directive : constant Name_Id := Name_Line; + + -- Verilog system tasks/functions. 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; + Name_D_Bits : constant Name_Id := Name_First_Systask + 00; + Name_D_Root : constant Name_Id := Name_First_Systask + 01; + Name_D_Unit : constant Name_Id := Name_First_Systask + 02; + Name_Last_Systask : constant Name_Id := Name_D_Unit; + + -- Verilog methods + Name_First_SV_Method : constant Name_Id := Name_Last_Systask + 1; + Name_Size : constant Name_Id := Name_First_SV_Method + 0; + Name_Insert : constant Name_Id := Name_First_SV_Method + 1; + Name_Delete : constant Name_Id := Name_First_SV_Method + 2; + Name_Pop_Front : constant Name_Id := Name_First_SV_Method + 3; + Name_Pop_Back : constant Name_Id := Name_First_SV_Method + 4; + Name_Push_Front : constant Name_Id := Name_First_SV_Method + 5; + Name_Push_Back : constant Name_Id := Name_First_SV_Method + 6; + Name_Name : constant Name_Id := Name_First_SV_Method + 7; + Name_Len : constant Name_Id := Name_First_SV_Method + 8; + Name_Substr : constant Name_Id := Name_First_SV_Method + 9; + Name_Exists : constant Name_Id := Name_First_SV_Method + 10; + Name_Last_SV_Method : constant Name_Id := Name_Exists; -- BSV names - Name_First_BSV : constant Name_Id := Name_Last_Systask + 1; + Name_First_BSV : constant Name_Id := Name_Last_SV_Method + 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; @@ -628,73 +756,73 @@ package Std_Names is -- case -- endcase Name_Clocked_By : constant Name_Id := Name_First_BSV + 13; - Name_Continue : constant Name_Id := Name_First_BSV + 14; + -- continue -- 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; + Name_Default_Clock : constant Name_Id := Name_First_BSV + 14; + Name_Default_Reset : constant Name_Id := Name_First_BSV + 15; + Name_Dependencies : constant Name_Id := Name_First_BSV + 16; + Name_Deriving : constant Name_Id := Name_First_BSV + 17; + Name_Determines : constant Name_Id := Name_First_BSV + 18; -- e -- else - Name_Enable : constant Name_Id := Name_First_BSV + 20; + Name_Enable : constant Name_Id := Name_First_BSV + 19; -- end - Name_Enum : constant Name_Id := Name_First_BSV + 21; - Name_Export : constant Name_Id := Name_First_BSV + 22; + -- enum + -- export -- for -- function -- endfunction -- if - Name_Ifc_Inout : constant Name_Id := Name_First_BSV + 23; - Name_Import : constant Name_Id := Name_First_BSV + 24; + Name_Ifc_Inout : constant Name_Id := Name_First_BSV + 20; + -- import -- 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; + Name_Input_Clock : constant Name_Id := Name_First_BSV + 21; + Name_Input_Reset : constant Name_Id := Name_First_BSV + 22; + Name_Instance : constant Name_Id := Name_First_BSV + 23; + Name_Endinstance : constant Name_Id := Name_First_BSV + 24; + -- interface + -- endinterface + Name_Let : constant Name_Id := Name_First_BSV + 25; + Name_Match : constant Name_Id := Name_First_BSV + 26; + -- matches + Name_Method : constant Name_Id := Name_First_BSV + 27; + Name_Endmethod : constant Name_Id := Name_First_BSV + 28; -- 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; + Name_Numeric : constant Name_Id := Name_First_BSV + 29; + Name_Output_Clock : constant Name_Id := Name_First_BSV + 30; + Name_Output_Reset : constant Name_Id := Name_First_BSV + 31; -- package - Name_Endpackage : constant Name_Id := Name_First_BSV + 39; + -- endpackage -- 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; + Name_Par : constant Name_Id := Name_First_BSV + 32; + Name_Endpar : constant Name_Id := Name_First_BSV + 33; + Name_Path : constant Name_Id := Name_First_BSV + 34; -- 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; + Name_Provisos : constant Name_Id := Name_First_BSV + 35; + Name_Ready : constant Name_Id := Name_First_BSV + 36; + Name_Reset_By : constant Name_Id := Name_First_BSV + 37; -- 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; + Name_Rule : constant Name_Id := Name_First_BSV + 38; + Name_Endrule : constant Name_Id := Name_First_BSV + 39; + Name_Rules : constant Name_Id := Name_First_BSV + 40; + Name_Endrules : constant Name_Id := Name_First_BSV + 41; + Name_Same_Family : constant Name_Id := Name_First_BSV + 42; + Name_Schedule : constant Name_Id := Name_First_BSV + 43; + Name_Seq : constant Name_Id := Name_First_BSV + 44; + Name_Endseq : constant Name_Id := Name_First_BSV + 45; + -- struct + -- tagged -- 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; + Name_Typeclass : constant Name_Id := Name_First_BSV + 46; + Name_Endtypeclass : constant Name_Id := Name_First_BSV + 47; + -- typedef + -- union + Name_Valueof : constant Name_Id := Name_First_BSV + 48; + Name_uValueof : constant Name_Id := Name_First_BSV + 49; + -- void -- while - Name_Last_BSV : constant Name_Id := Name_First_BSV + 62; + Name_Last_BSV : constant Name_Id := Name_First_BSV + 49; -- VHDL special comments Name_First_Comment : constant Name_Id := Name_Last_BSV + 1; @@ -711,54 +839,54 @@ package Std_Names is 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_Assume + Name_Assume_Guarantee : constant Name_Id := Name_First_PSL + 05; + Name_Before : constant Name_Id := Name_First_PSL + 06; -- 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_Clock : constant Name_Id := Name_First_PSL + 07; + -- Name_Const + -- Name_Cover -- 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_E : constant Name_Id := Name_First_PSL + 08; + Name_Ef : constant Name_Id := Name_First_PSL + 09; + Name_Eg : constant Name_Id := Name_First_PSL + 10; + Name_Ex : constant Name_Id := Name_First_PSL + 11; + Name_Endpoint : constant Name_Id := Name_First_PSL + 12; + Name_Eventually : constant Name_Id := Name_First_PSL + 13; + Name_Fairness : constant Name_Id := Name_First_PSL + 14; + Name_Fell : constant Name_Id := Name_First_PSL + 15; + Name_Forall : constant Name_Id := Name_First_PSL + 16; + Name_G : constant Name_Id := Name_First_PSL + 17; -- Name_In - Name_Inf : constant Name_Id := Name_First_PSL + 21; - Name_Inherit : constant Name_Id := Name_First_PSL + 22; + Name_Inf : constant Name_Id := Name_First_PSL + 18; + Name_Inherit : constant Name_Id := Name_First_PSL + 19; -- Name_Is - Name_Never : constant Name_Id := Name_First_PSL + 23; + Name_Never : constant Name_Id := Name_First_PSL + 20; -- 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_Next_A : constant Name_Id := Name_First_PSL + 21; + Name_Next_E : constant Name_Id := Name_First_PSL + 22; + Name_Next_Event : constant Name_Id := Name_First_PSL + 23; + Name_Next_Event_A : constant Name_Id := Name_First_PSL + 24; + Name_Next_Event_E : constant Name_Id := Name_First_PSL + 25; -- 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_Property + Name_Prev : constant Name_Id := Name_First_PSL + 26; + Name_Restrict : constant Name_Id := Name_First_PSL + 27; + Name_Restrict_Guarantee : constant Name_Id := Name_First_PSL + 28; + Name_Rose : constant Name_Id := Name_First_PSL + 29; + -- sequence + Name_Strong : constant Name_Id := Name_First_PSL + 30; -- 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; + Name_Vmode : constant Name_Id := Name_First_PSL + 31; + Name_Vprop : constant Name_Id := Name_First_PSL + 32; + Name_Vunit : constant Name_Id := Name_First_PSL + 33; + Name_W : constant Name_Id := Name_First_PSL + 34; + Name_Whilenot : constant Name_Id := Name_First_PSL + 35; + Name_Within : constant Name_Id := Name_First_PSL + 36; + Name_X : constant Name_Id := Name_First_PSL + 37; + Name_Last_PSL : constant Name_Id := Name_First_PSL + 37; subtype Name_Id_PSL_Keywords is Name_Id range Name_First_PSL .. Name_Last_PSL; |