diff options
Diffstat (limited to 'src/std_names.adb')
-rw-r--r-- | src/std_names.adb | 482 |
1 files changed, 482 insertions, 0 deletions
diff --git a/src/std_names.adb b/src/std_names.adb new file mode 100644 index 0000000..98b4f06 --- /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; |