====== Language plugins : Implementation ======
===== Simple query functions =====
==== ~LANGUAGE() ====
C++ rules require a virtual destructor when there are virtual functions. You need to define one as a tracing aid. It can be an empty function.
~LANG_VERILOG() {itested();}
==== std::string name()const ====
Return the name to use as a key to enable this language.
std::string name()const {return "verilog";}
==== bool case_insensitive()const ====
Return false if the language is case sensitive, true if case insensitive.
bool case_insensitive()const {return false;}
==== UNITS units()const ====
This function determines how numeric strings with multiplier suffixes such as "10m" are parsed. It should return ''uSI'' for standard SI units. (M = meg = 10^6, m = milli = 10^-3) or ''uSPICE'' for SPICE syntax (M = milli = 10^-3, Meg = meg = 10^6).
UNITS units()const {return uSI;}
===== Used by obsolete_callback =====
These functions describe the syntax for parameter assignment statements.
For example, the most common syntax is ''x=value'', but Verilog uses ''.x(value)''.
You need to specify the front, mid, and back strings.
For ''x=value''
the code is:
std::string arg_front()const {return " ";}
std::string arg_mid()const {return "=";}
std::string arg_back()const {return "";}
For ''.x(value)''
the code is:
std::string arg_front()const {return ".";}
std::string arg_mid()const {return "(";}
std::string arg_back()const {return ")";}