Table of Contents

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 ")";}