aboutsummaryrefslogtreecommitdiffstats
path: root/src/std_names.adb
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.adb
parent184a123f91e07c927292d67462561dc84f3a920d (diff)
downloadghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.tar.gz
ghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.tar.bz2
ghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.zip
Move sources to src/ subdirectory.
Diffstat (limited to 'src/std_names.adb')
-rw-r--r--src/std_names.adb482
1 files changed, 482 insertions, 0 deletions
diff --git a/src/std_names.adb b/src/std_names.adb
new file mode 100644
index 000000000..98b4f062c
--- /dev/null
+++ b/src/std_names.adb
@@ -0,0 +1,482 @@
+-- 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 Name_Table;
+with Tokens; use Tokens;
+with Ada.Exceptions;
+
+package body Std_Names is
+ procedure Std_Names_Initialize is
+ procedure Def (S : String; Id : Name_Id) is
+ begin
+ if Name_Table.Get_Identifier (S) /= Id then
+ Ada.Exceptions.Raise_Exception
+ (Program_Error'Identity, "wrong name_id for " & S);
+ end if;
+ end Def;
+ begin
+ Name_Table.Initialize;
+
+ -- Create reserved words.
+ for I in Tok_Mod .. Tok_Tolerance loop
+ Def (Image (I),
+ Name_First_Keyword +
+ Token_Type'Pos (I) - Token_Type'Pos (Tok_First_Keyword));
+ end loop;
+
+ -- Create operators.
+ Def ("=", Name_Op_Equality);
+ Def ("/=", Name_Op_Inequality);
+ Def ("<", Name_Op_Less);
+ Def ("<=", Name_Op_Less_Equal);
+ Def (">", Name_Op_Greater);
+ Def (">=", Name_Op_Greater_Equal);
+ Def ("+", Name_Op_Plus);
+ Def ("-", Name_Op_Minus);
+ Def ("*", Name_Op_Mul);
+ Def ("/", Name_Op_Div);
+ Def ("**", Name_Op_Exp);
+ Def ("&", Name_Op_Concatenation);
+ Def ("??", Name_Op_Condition);
+ Def ("?=", Name_Op_Match_Equality);
+ Def ("?/=", Name_Op_Match_Inequality);
+ Def ("?<", Name_Op_Match_Less);
+ Def ("?<=", Name_Op_Match_Less_Equal);
+ Def ("?>", Name_Op_Match_Greater);
+ Def ("?>=", Name_Op_Match_Greater_Equal);
+
+ -- Create Attributes.
+ Def ("base", Name_Base);
+ Def ("left", Name_Left);
+ Def ("right", Name_Right);
+ Def ("high", Name_High);
+ Def ("low", Name_Low);
+ Def ("pos", Name_Pos);
+ Def ("val", Name_Val);
+ Def ("succ", Name_Succ);
+ Def ("pred", Name_Pred);
+ Def ("leftof", Name_Leftof);
+ Def ("rightof", Name_Rightof);
+ Def ("reverse_range", Name_Reverse_Range);
+ Def ("length", Name_Length);
+ Def ("delayed", Name_Delayed);
+ Def ("stable", Name_Stable);
+ Def ("quiet", Name_Quiet);
+ Def ("transaction", Name_Transaction);
+ Def ("event", Name_Event);
+ Def ("active", Name_Active);
+ Def ("last_event", Name_Last_Event);
+ Def ("last_active", Name_Last_Active);
+ Def ("last_value", Name_Last_Value);
+
+ Def ("behavior", Name_Behavior);
+ Def ("structure", Name_Structure);
+
+ Def ("ascending", Name_Ascending);
+ Def ("image", Name_Image);
+ Def ("value", Name_Value);
+ Def ("driving", Name_Driving);
+ Def ("driving_value", Name_Driving_Value);
+ Def ("simple_name", Name_Simple_Name);
+ Def ("instance_name", Name_Instance_Name);
+ Def ("path_name", Name_Path_Name);
+
+ Def ("contribution", Name_Contribution);
+ Def ("dot", Name_Dot);
+ Def ("integ", Name_Integ);
+ Def ("above", Name_Above);
+ Def ("zoh", Name_ZOH);
+ Def ("ltf", Name_LTF);
+ Def ("ztf", Name_ZTF);
+ Def ("ramp", Name_Ramp);
+ Def ("slew", Name_Slew);
+
+ -- Create standard.
+ Def ("std", Name_Std);
+ Def ("standard", Name_Standard);
+ Def ("boolean", Name_Boolean);
+ Def ("false", Name_False);
+ Def ("true", Name_True);
+ Def ("bit", Name_Bit);
+ Def ("character", Name_Character);
+ Def ("severity_level", Name_Severity_Level);
+ Def ("note", Name_Note);
+ Def ("warning", Name_Warning);
+ Def ("error", Name_Error);
+ Def ("failure", Name_Failure);
+ Def ("UNIVERSAL_INTEGER", Name_Universal_Integer);
+ Def ("UNIVERSAL_REAL", Name_Universal_Real);
+ Def ("CONVERTIBLE_INTEGER", Name_Convertible_Integer);
+ Def ("CONVERTIBLE_REAL", Name_Convertible_Real);
+ Def ("integer", Name_Integer);
+ Def ("real", Name_Real);
+ Def ("time", Name_Time);
+ Def ("fs", Name_Fs);
+ Def ("ps", Name_Ps);
+ Def ("ns", Name_Ns);
+ Def ("us", Name_Us);
+ Def ("ms", Name_Ms);
+ Def ("sec", Name_Sec);
+ Def ("min", Name_Min);
+ Def ("hr", Name_Hr);
+ Def ("delay_length", Name_Delay_Length);
+ Def ("now", Name_Now);
+ Def ("natural", Name_Natural);
+ Def ("positive", Name_Positive);
+ Def ("string", Name_String);
+ Def ("bit_vector", Name_Bit_Vector);
+ Def ("file_open_kind", Name_File_Open_Kind);
+ Def ("read_mode", Name_Read_Mode);
+ Def ("write_mode", Name_Write_Mode);
+ Def ("append_mode", Name_Append_Mode);
+ Def ("file_open_status", Name_File_Open_Status);
+ Def ("open_ok", Name_Open_Ok);
+ Def ("status_error", Name_Status_Error);
+ Def ("name_error", Name_Name_Error);
+ Def ("mode_error", Name_Mode_Error);
+ Def ("foreign", Name_Foreign);
+
+ Def ("boolean_vector", Name_Boolean_Vector);
+ Def ("to_bstring", Name_To_Bstring);
+ Def ("to_binary_string", Name_To_Binary_String);
+ Def ("to_ostring", Name_To_Ostring);
+ Def ("to_octal_string", Name_To_Octal_String);
+ Def ("to_hstring", Name_To_Hstring);
+ Def ("to_hex_string", Name_To_Hex_String);
+ Def ("integer_vector", Name_Integer_Vector);
+ Def ("real_vector", Name_Real_Vector);
+ Def ("time_vector", Name_Time_Vector);
+ Def ("digits", Name_Digits);
+ Def ("format", Name_Format);
+ Def ("unit", Name_Unit);
+
+ Def ("domain_type", Name_Domain_Type);
+ Def ("quiescent_domain", Name_Quiescent_Domain);
+ Def ("time_domain", Name_Time_Domain);
+ Def ("frequency_domain", Name_Frequency_Domain);
+ Def ("domain", Name_Domain);
+ Def ("frequency", Name_Frequency);
+ Def ("real_vector", Name_Real_Vector);
+
+ Def ("nul", Name_Nul);
+ Def ("soh", Name_Soh);
+ Def ("stx", Name_Stx);
+ Def ("etx", Name_Etx);
+ Def ("eot", Name_Eot);
+ Def ("enq", Name_Enq);
+ Def ("ack", Name_Ack);
+ Def ("bel", Name_Bel);
+ Def ("bs", Name_Bs);
+ Def ("ht", Name_Ht);
+ Def ("lf", Name_Lf);
+ Def ("vt", Name_Vt);
+ Def ("ff", Name_Ff);
+ Def ("cr", Name_Cr);
+ Def ("so", Name_So);
+ Def ("si", Name_Si);
+ Def ("dle", Name_Dle);
+ Def ("dc1", Name_Dc1);
+ Def ("dc2", Name_Dc2);
+ Def ("dc3", Name_Dc3);
+ Def ("dc4", Name_Dc4);
+ Def ("nak", Name_Nak);
+ Def ("syn", Name_Syn);
+ Def ("etb", Name_Etb);
+ Def ("can", Name_Can);
+ Def ("em", Name_Em);
+ Def ("sub", Name_Sub);
+ Def ("esc", Name_Esc);
+ Def ("fsp", Name_Fsp);
+ Def ("gsp", Name_Gsp);
+ Def ("rsp", Name_Rsp);
+ Def ("usp", Name_Usp);
+ Def ("del", Name_Del);
+
+ Def ("c128", Name_C128);
+ Def ("c129", Name_C129);
+ Def ("c130", Name_C130);
+ Def ("c131", Name_C131);
+ Def ("c132", Name_C132);
+ Def ("c133", Name_C133);
+ Def ("c134", Name_C134);
+ Def ("c135", Name_C135);
+ Def ("c136", Name_C136);
+ Def ("c137", Name_C137);
+ Def ("c138", Name_C138);
+ Def ("c139", Name_C139);
+ Def ("c140", Name_C140);
+ Def ("c141", Name_C141);
+ Def ("c142", Name_C142);
+ Def ("c143", Name_C143);
+ Def ("c144", Name_C144);
+ Def ("c145", Name_C145);
+ Def ("c146", Name_C146);
+ Def ("c147", Name_C147);
+ Def ("c148", Name_C148);
+ Def ("c149", Name_C149);
+ Def ("c150", Name_C150);
+ Def ("c151", Name_C151);
+ Def ("c152", Name_C152);
+ Def ("c153", Name_C153);
+ Def ("c154", Name_C154);
+ Def ("c155", Name_C155);
+ Def ("c156", Name_C156);
+ Def ("c157", Name_C157);
+ Def ("c158", Name_C158);
+ Def ("c159", Name_C159);
+
+ -- Create misc.
+ Def ("guard", Name_Guard);
+ Def ("deallocate", Name_Deallocate);
+ Def ("file_open", Name_File_Open);
+ Def ("file_close", Name_File_Close);
+ Def ("read", Name_Read);
+ Def ("write", Name_Write);
+ Def ("flush", Name_Flush);
+ Def ("endfile", Name_Endfile);
+ Def ("p", Name_P);
+ Def ("f", Name_F);
+ Def ("l", Name_L);
+ Def ("r", Name_R);
+ Def ("s", Name_S);
+ Def ("external_name", Name_External_Name);
+ Def ("open_kind", Name_Open_Kind);
+ Def ("status", Name_Status);
+ Def ("first", Name_First);
+ Def ("last", Name_Last);
+ Def ("textio", Name_Textio);
+ Def ("work", Name_Work);
+ Def ("text", Name_Text);
+ Def ("to_string", Name_To_String);
+ Def ("minimum", Name_Minimum);
+ Def ("maximum", Name_Maximum);
+ Def ("untruncated_text_read", Name_Untruncated_Text_Read);
+ Def ("get_resolution_limit", Name_Get_Resolution_Limit);
+ Def ("control_simulation", Name_Control_Simulation);
+
+ Def ("ieee", Name_Ieee);
+ Def ("std_logic_1164", Name_Std_Logic_1164);
+ Def ("std_ulogic", Name_Std_Ulogic);
+ Def ("std_ulogic_vector", Name_Std_Ulogic_Vector);
+ Def ("std_logic", Name_Std_Logic);
+ Def ("std_logic_vector", Name_Std_Logic_Vector);
+ Def ("rising_edge", Name_Rising_Edge);
+ Def ("falling_edge", Name_Falling_Edge);
+ Def ("vital_timing", Name_VITAL_Timing);
+ Def ("vital_level0", Name_VITAL_Level0);
+ Def ("vital_level1", Name_VITAL_Level1);
+
+ -- 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 ("parameter", Name_Parameter);
+ 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 ("trireg", Name_Trireg);
+ Def ("wand", Name_Wand);
+ Def ("weak0", Name_Weak0);
+ Def ("weak1", Name_Weak1);
+ Def ("wire", Name_Wire);
+ Def ("wor", Name_Wor);
+
+ Def ("define", Name_Define);
+ Def ("endif", Name_Endif);
+ Def ("ifdef", Name_Ifdef);
+ Def ("include", Name_Include);
+ Def ("timescale", Name_Timescale);
+ Def ("undef", Name_Undef);
+
+ -- Verilog system tasks
+ Def ("display", Name_Display);
+ Def ("finish", Name_Finish);
+
+ -- BSV keywords
+ Def ("Action", Name_uAction);
+ Def ("ActionValue", Name_uActionValue);
+ Def ("BVI", Name_BVI);
+ Def ("C", Name_uC);
+ Def ("CF", Name_uCF);
+ Def ("E", Name_uE);
+ Def ("SB", Name_uSB);
+ Def ("SBR", Name_uSBR);
+ Def ("action", Name_Action);
+ Def ("endaction", Name_Endaction);
+ Def ("actionvalue", Name_Actionvalue);
+ 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);
+ Def ("provisos", Name_Provisos);
+ Def ("ready", Name_Ready);
+ Def ("reset_by", Name_Reset_By);
+ Def ("rule", Name_Rule);
+ Def ("endrule", Name_Endrule);
+ Def ("rules", Name_Rules);
+ Def ("endrules", Name_Endrules);
+ Def ("same_family", Name_Same_Family);
+ 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);
+ Def ("pragma", Name_Pragma);
+
+ -- PSL keywords
+ Def ("a", Name_A);
+ Def ("af", Name_Af);
+ Def ("ag", Name_Ag);
+ Def ("ax", Name_Ax);
+ Def ("abort", Name_Abort);
+ Def ("assume", Name_Assume);
+ Def ("assume_guarantee", Name_Assume_Guarantee);
+ Def ("before", Name_Before);
+ Def ("clock", Name_Clock);
+ Def ("const", Name_Const);
+ Def ("cover", Name_Cover);
+ Def ("e", Name_E);
+ Def ("ef", Name_Ef);
+ Def ("eg", Name_Eg);
+ Def ("ex", Name_Ex);
+ Def ("endpoint", Name_Endpoint);
+ Def ("eventually", Name_Eventually);
+ Def ("fairness", Name_Fairness);
+ Def ("fell ", Name_Fell);
+ Def ("forall", Name_Forall);
+ Def ("g", Name_G);
+ Def ("inf", Name_Inf);
+ Def ("inherit", Name_Inherit);
+ Def ("never", Name_Never);
+ Def ("next_a", Name_Next_A);
+ Def ("next_e", Name_Next_E);
+ Def ("next_event", Name_Next_Event);
+ Def ("next_event_a", Name_Next_Event_A);
+ Def ("next_event_e", Name_Next_Event_E);
+ Def ("property", Name_Property);
+ Def ("prev", Name_Prev);
+ Def ("restrict", Name_Restrict);
+ Def ("restrict_guarantee", Name_Restrict_Guarantee);
+ Def ("rose", Name_Rose);
+ Def ("sequence", Name_Sequence);
+ Def ("strong", Name_Strong);
+ Def ("union", Name_Union);
+ Def ("vmode", Name_Vmode);
+ Def ("vprop", Name_Vprop);
+ Def ("vunit", Name_Vunit);
+ Def ("w", Name_W);
+ Def ("whilenot", Name_Whilenot);
+ Def ("within", Name_Within);
+ Def ("x", Name_X);
+ end Std_Names_Initialize;
+end Std_Names;