.. _Semantic Checks:

Semantic Checks
===============

.. list-table::

   * - **ID**
     - **Message**
   * - **Assignment patterns**
     - 
   * - ASSIGNMENT_PATTERN_VALUES
     - Expecting # value(s), found #
   * - INCOMPLETE_ASSIGNMENT_PATTERN
     - Assignment pattern for struct # is missing association(s) to member(s) #
   * - ASSIGNMENT_PATTERN_MULTIPLE_ASSOCIATIONS
     - Assignment pattern for struct # has multiple associations for member(s) #
   * - **Associated types (fields, variables, functions, etc.)**
     - 
   * - ILLEGAL_TYPE_REFERENCE
     - Unexpected type # of # (type is #)
   * - ILLEGAL_TYPE_REFERENCE
     - Unexpected type # of # (use virtual [interface] in front of #)
   * - ILLEGAL_NET_DATATYPE
     - Illegal net data type #
   * - ILLEGAL_NET_DATATYPE
     - Illegal net 2-state data type #
   * - ILLEGAL_BIT_VECTOR
     - Packed dimension cannot be used with [user-defined type # of] unpacked data type #
   * - ILLEGAL_CUNIT_REFERENCE
     - Reference to compilation unit identifier # not allowed in package
   * - NON_EXISTING_TYPE
     - Non existing type #
   * - USAGE_BEFORE_DECLARATION
     - Element # is used before being declared at line # in #
   * - **Blocks**
     - 
   * - DUPLICATE_CLOCKING
     - Duplicate clocking block #, already declared at line # file #
   * - DUPLICATE_NAMED_BLOCK
     - Duplicate named block #, already declared at line # file #
   * - **Checkers**
     - 
   * - DUPLICATE_CHECKER
     - Duplicate checker #, already declared at line # file #
   * - UNDECLARED_CHECKER
     - Checker # is not declared
   * - ILLEGAL_CHECKER_INSTANCE
     - Instance # of checker # not allowed in procedural code of a checker
   * - ILLEGAL_CHECKER_INSTANCE
     - Instance # of checker # not allowed in fork-join, fork-join_any or fork-join_none
   * - **Classes**
     - 
   * - CIRCULAR_INHERITANCE
     - Class # extends itself
   * - DUPLICATE_CLASS
     - Duplicate class #, already declared at line # file #
   * - DUPLICATE_CONSTRUCTOR
     - Duplicate constructor # already declared at line # file #
   * - EXTEND_CLASS
     - Extending non existing class #
   * - EXTERN_CONSTRAINT_UNDECLARED
     - Outer class constraint # was not declared extern inside class #
   * - EXTERN_FUNCTION_UNDECLARED
     - Outer class function # was not declared extern inside class #
   * - EXTERN_TASK_UNDECLARED
     - Outer class task # was not declared extern inside class #
   * - EXTEND_INTERFACE_CLASS
     - Extending interface class # by non-interface class not allowed
   * - IMPLEMENT_CLASS
     - Implementing non-interface class # by class not allowed
   * - IMPLEMENT_INTERFACE_CLASS
     - Implementing non existing interface class #
   * - ILLEGAL_SUPER_USE
     - Class # does not have a super class
   * - **Structures / Unions**
     -
   * - ILLEGAL_UNPACKED_TYPE_MEMBER
     - Cannot define member # of unpacked type [#] inside unpacked struct/union [#]
   * - **Configurations**
     - 
   * - INVALID_LIBLIST
     - Liblist is empty for #
   * - UNDECLARED_CELL
     - Cell # is not declared
   * - UNDECLARED_CONFIGURATION
     - Configuration # is not declared
   * - UNDECLARED_DESIGN
     - Top design # is not declared
   * - UNDECLARED_LIBRARY
     - Library # is not declared
   * - **Constraints**
     - 
   * - DUPLICATE_CONSTRAINT
     - Duplicate constraint #, already declared at line # file #
   * - DUPLICATE_CONSTRAINT_IMPL
     - Duplicate constraint implementation for #, already declared at line # file #
   * - EMPTY_IMPLICIT_CONSTRAINT_IMPLEMENTATION
     - Implicit external constraint # is not implemented
   * - INVALID_DISABLE_SOFT_CONSTRAINT_PARAMETER
     - The disable soft parameter # should be a variable
   * - UNIMPLEMENTED_EXPLICIT_EXTERNAL_CONSTRAINT
     - Explicit external constraint # is not implemented
   * - **Covergroups**
     - 
   * - DUPLICATE_COVER_CROSS
     - Duplicate cover cross #, already declared at line # file #
   * - DUPLICATE_COVERGROUP
     - Duplicate covergroup #, already declared at line # file #
   * - DUPLICATE_COVERPOINT
     - Duplicate coverpoint #, already declared at line # file #
   * - DUPLICATE_COVERBIN
     - Duplicate coverbin #, already declared at line # file #
   * - ILLEGAL_COVERPOINT_EXPRESSION
     - Coverpoint expression must be of an integral data type
   * - WITH_COVERPOINT_BINS_EXPRESSION
     - Coverpoint bins *with* expression should explicitly contain *item*
   * - **Design Elaboration**
     - 
   * - UNELABORATED_PACKAGE
     - Package #.# is not elaborated
   * - UNELABORATED_MODULE/INTERFACE/PROGRAM/CHECKER
     - Module/Interface/Program/Checker #.# is not elaborated
   * - UNSPECIFIED_TOP
     - Please specify a -top module/entity/configuration in the project build file
   * - INVALID_TOP_CONFIGURATION
     - Configuration # has no valid tops
   * - INVALID_TOP
     - Top # cannot be instantiated
   * - CYCLICAL_ORDER
     - Cycle discovered when elaborating parameters
   * - DUPLICATE_TOP_NAME
     - Another top with the same name # has been elaborated
   * - RECURRENCE_DETECTED
     - Recurrence detected for instance type #
   * - NON_CHECKER_INSTANCE_INSIDE_PROGRAM
     - Module/Interface/Program/UDP instance # not allowed inside program
   * - UNRESTRICTED_LOOP_GENERATE
     - Loop generate # does not end
   * - MISSING_LOOP_GENERATE_STEP
     - No loop step found for generate #
   * - UNINITIALIZED_LOOP_GENERATE
     - Cannot initialize loop generate #
   * - UNRESOLVED_LOOP_GENERATE_CONDITION
     - Cannot resolve loop generate # condition
   * - UNRESOLVED_LOOP_GENERATE_STEP
     - Cannot resolve loop generate # step assignment
   * - MAX_COUNT_LOOP_GENERATE
     - Max count # exceeded for loop generate #
   * - UNRESOLVED_GENERATE_CONDITION
     - Cannot resolve generate # condition #
   * - MISSING_GENERATE_CONDITION
     - No condition found for generate #
   * - BLACK_BOXED_INSTANCE
     - Instance # is black boxed
   * - BLACK_BOXED_GENERATE_BLOCK
     - Generate block # is black boxed
   * - SKIPPED_INSTANCE
     - Instance # is skipped
   * - SKIPPED_GENERATE_BLOCK
     - Generate block # is skipped
   * - **Events**
     - 
   * - DUPLICATE_EVENT
     - Duplicate event #, already declared at line # file #
   * - ILLEGAL_EVENT
     - The following events must be of a singular data type:#
   * - **Enumerations**
     -
   * - DUPLICATE_ENUM_LITERAL
     - Duplicate enumeration literal #, already declared at line # file #
   * - IMPLICIT_ENUM_CAST
     - Auto-cast from enum type # to enum type #
   * - **Extern methods**
     - 
   * - EXTERN_METHOD_SIGNATURE
     - Return data type # for extern method # does not match prototype
   * - EXTERN_METHOD_SIGNATURE
     - Scope resolution operator shall be used to indicate the internal return type # for extern method #
   * - EXTERN_METHOD_SIGNATURE
     - Number of arguments # for extern method # does not match prototype
   * - EXTERN_METHOD_SIGNATURE
     - Name of argument # for extern method # does not match prototype
   * - EXTERN_METHOD_SIGNATURE
     - Type of argument # for extern method # does not match prototype
   * - EXTERN_METHOD_SIGNATURE
     - Direction of argument # for extern method # does not match prototype
   * - EXTERN_METHOD_SIGNATURE
     - Default value of argument # for extern method # does not match prototype; the prototype declaration is used
   * - EXTERN_METHOD_KIND
     - Function / Task # was declared as a task / function inside class #
   * - **Instances**
     - 
   * - DUPLICATE_INSTANCE
     - Duplicate instance #, already declared at line # file #
   * - DUPLICATE_BOUND_INSTANCE
     - Duplicate bound instance # added from both instance # and instance #
   * - DUPLICATE_BOUND_INSTANCE
     - Duplicate bound instance # added from instance #
   * - DUPLICATE_BOUND_INSTANCE
     - Name collision in target scope of bound instance # with element declared at line # file #
   * - IMPLICIT_PORT_CONNECTION
     - Cannot infer implicit connection for port(s) #
   * - INVALID_BINDS
     - Failed to resolve all the bind directives in # tries
   * - INVALID_BIND_TARGET_SCOPE
     - Bind target scope # and module # of bind target instance # must match
   * - INVALID_BIND_UNDERNEATH_BIND_INSTANCE
     - Cannot bind instance # underneath bind instance #
   * - MISSING_PORT_CONNECTION
     - Missing port connection to # port(s) #
   * - MULTIPLE_PORT_CONNECTIONS
     - Multiple connections to port #
   * - NOT_IN_LIST_OF_PORTS
     - # not in the list of # ports
   * - NOF_PORT_CONNECTIONS
     - Expected # port connections, found #
   * - NON_EXISTING_PORT
     - Non existing port # of module #
   * - ILLEGAL_GENERIC_INTERFACE_PORT
     - Generic interface port # not allowed for top module #
   * - NOT_A_CHECKER_INSTANCE
     - Instance # is not a checker instance
   * - UNDECLARED_MODULE
     - Module # is not declared
   * - UNDECLARED_MODULE
     - Module # is not declared for instance #
   * - UNDECLARED_BIND_TARGET
     - Bind target # is not declared
   * - UNKNOWN_ARRAY_OF_INSTANCES_RANGE
     - Could not determine range of array of instances #
   * - UNELABORATED_BIND_TARGET
     - Hierarchical name # is not elaborated
   * - UNRESOLVED_BIND_TARGET_INSTANCE
     - Module # of bind target instance # is not declared
   * - UDP_PORT_CONNECTION
     - Named port connection to # not allowed for UDP instance #
   * - UDP_PORT_CONNECTION
     - Dot star connection not allowed for UDP instance #
   * - **Illegal class members access (local, protected, static)**
     - 
   * - ILLEGAL_HIERARCHICAL_ACCESS
     - Illegal hierarchical reference detected on #.# (illegal hierarchical name containing type name #)
   * - ILLEGAL_NON_STATIC_ACCESS
     - Non-static member # of class # cannot be accessed from static function/task
   * - ILLEGAL_NON_STATIC_ACCESS
     - Non-static member # of class # cannot be accessed outside its class scope.
   * - ILLEGAL_NON_STATIC_ACCESS
     - Non-static member # of class # cannot be accessed via class scope resolution operator \:\:
   * - ILLEGAL_STATIC_ACCESS
     - Element # cannot be accessed statically from design #
   * - ILLEGAL_STATIC_ACCESS
     - Enum name # cannot be accessed statically from enum type #
   * - ILLEGAL_STATIC_ACCESS
     - Element # cannot be accessed statically from struct type #
   * - ILLEGAL_STATIC_ACCESS
     - Element # cannot be accessed statically from union type #
   * - ILLEGAL_PRIVATE_ACCESS
     - Private member # of class # is not visible in this scope
   * - ILLEGAL_PROTECTED_ACCESS
     - Protected member # of class # is not visible in this scope
   * - **Implicit declarations (port mapping, assigns)**
     - 
   * - ILLEGAL_IMPLICIT
     - Illegal implicit declaration of # when \`default_nettype set to none
   * - **Interfaces**
     - 
   * - DUPLICATE_INTERFACE
     - Duplicate interface #, already declared at line # file #
   * - **Hierarchical identifiers**
     - 
   * - UNDECLARED_IDENTIFIER
     - Identifier # is not declared
   * - UNDECLARED_IDENTIFIER
     - Identifier # is not a member of # (type # is undeclared)
   * - UNDECLARED_IDENTIFIER
     - Identifier # is not a member of #
   * - UNEXPECTED_IDENTIFIER
     - Expecting function # but actual target is not a function
   * - UNEXPECTED_IDENTIFIER
     - Identifier # is not a member of generic interface # (actual interface is #)
   * - UNRESOLVED_HIERARCHICAL_NAME
     - Segment # of hierarchical name # is not resolved
   * - **Method calls**
     - 
   * - NON_EXISTING_METHOD_ARGUMENT
     - Non existing argument # of function/task #
   * - METHOD_CALL_ARGUMENTS
     - Expecting maximum # argument(s) when calling #, found #
   * - METHOD_CALL_ARGUMENTS
     - Method call # is missing argument value to # #
   * - MULTIPLE_ARGUMENT_VALUES
     - Multiple values for argument #
   * - MISSING_ARG_FORMAT_SPEC
     - Missing argument for # when calling #
   * - INVALID_FORMAT_SPEC
     - Invalid %# when calling #
   * - EXTRA_ARG_FORMAT_SPEC
     - Extra argument # when calling #
   * - ILLEGAL_FORMAT_SPEC
     - Illegal format specifier %# for argument # when calling
   * - ILLEGAL_WITH_CLAUSE
     - # does not support a *with* clause
   * - ILLEGAL_WITH_CLAUSE
     - Array method # does not support a *with* clause
   * - ILLEGAL_WITH_CLAUSE_EXPRESSION
     - Illegal type # of *with* clause expression for method #
   * - MISSING_WITH_CLAUSE
     - Method # requires a *with* clause
   * - UNSUPPORTED_METHOD
     - Method # is undefined for associative arrays
   * - UNSUPPORTED_METHOD
     - Method # is undefined for associative arrays with wildcard index type
   * - UNSUPPORTED_METHOD
     - Method # is undefined for arrays of non-numeric type (use # clause)
   * - UNDECLARED_SYSTEM_METHOD
     - System task or function # is not declared
   * - ILLEGAL_SYSTEM_TIMING_CHECK_ARGUMENT
     - # passed to notifier argument must be of 1-bit type
   * - **Methods, DPI**
     - 
   * - DUPLICATE_ARGUMENT
     - Duplicate argument #, already declared at line # file #
   * - DUPLICATE_FUNCTION
     - Duplicate function #, already declared at line # file #
   * - DUPLICATE_FUNCTION_IMPL
     - Duplicate function implementation for #, already implemented at line # file #
   * - DUPLICATE_NAME
     - Duplicate name #, already built-in method
   * - DUPLICATE_METHOD_IMPLEMENTATION
     - Duplicate method implementation for #, already defined at line # file #
   * - DUPLICATE_PRODUCTION
     - Duplicate production #, already declared at line # in #
   * - DUPLICATE_TASK
     - Duplicate task # already declared at line # file #
   * - DUPLICATE_TASK_IMPL
     - Duplicate task implementation for #, already implemented at line # file #
   * - DUPLICATE_VARIABLE
     - Duplicate variable # already declared at line # file #
   * - EXPORT_DPI_FUNCTION_IMPL
     - Export DPI function # was not implemented
   * - EXPORT_DPI_TASK_IMPL
     - Export DPI task # was not implemented
   * - DPI_FUNCTION_RETURN_TYPE
     - Return type # of DPI function # not allowed
   * - ILLEGAL_OVERRIDE
     - Illegal override of built-in method #
   * - ILLEGAL_PURE_VIRTUAL
     - Pure virtual method prototype # cannot be declared in non-virtual class
   * - INVALID_STATIC_OVERRIDE
     - Virtual method # cannot be overridden by static method
   * - NOT_IMPLEMENTED_PURE_VIRTUAL
     - Sub-class # does not implement pure virtual method(s) from super-classes: #
   * - OVERRIDE_VIRTUAL_METHOD
     - Function # overrides task #
   * - OVERRIDE_VIRTUAL_METHOD
     - Task # overrides #
   * - OVERRIDE_VIRTUAL_METHOD
     - Return data type # for method # does not match # of overridden #
   * - OVERRIDE_VIRTUAL_METHOD
     - Number of arguments # for method # does not match # of overridden #
   * - OVERRIDE_VIRTUAL_METHOD
     - Type # of argument # for method # does not match # of overridden #
   * - OVERRIDE_VIRTUAL_METHOD
     - Direction # of argument # for method # does not match # of overridden #
   * - OVERRIDE_VIRTUAL_METHOD
     - Missing default value of argument # for method # (overridden # provides a default value)
   * - OVERRIDE_VIRTUAL_METHOD
     - Unexpected default value of argument # for method # (overridden # does not provide a default value)
   * - OVERRIDE_VIRTUAL_METHOD
     - Implementation of interface class method # must have *virtual* qualifier
   * - VIRTUAL_CLASS_INSTANTIATION
     - Object # cannot be instantiated because # is a virtual class
   * - VIRTUAL_CLASS_INSTANTIATION
     - Illegal call of virtual class typed constructor #::new
   * - UNDECLARED_ARGUMENT
     - Expected argument, found local variable #
   * - ILLEGAL_DEFAULT_VALUE
     - Illegal default value # for # formal port #
   * - UNUSED_RETURN_VALUE
     - The return value of function # is not used
   * - ILLEGAL_EXPRESSION
     - Void function/Task # cannot be used as an expression
   * - **Modports and Clocking Blocks**
     -
   * - DIRECTION_MISMATCH
     - Port # was specified as # in #
   * - **Modules**
     - 
   * - DUPLICATE_MODULE
     - Duplicate module #, already declared at line # file #
   * - **Nets, Variables, Fields, Properties**
     - 
   * - DUPLICATE_FIELD
     - Duplicate field #, already declared at line # file #
   * - DUPLICATE_PORT
     - Duplicate port #, already declared at line # in #
   * - STATIC_INITIALIZATION
     - Explicit static or automatic is required when implicit static variable is initialized
   * - UNDECLARED_PORT
     - Port # direction declaration is missing
   * - **Packages**
     - 
   * - DUPLICATE_PACKAGE
     - Duplicate package #, already declared at line # file #
   * - IMPORT_IN_CLASS
     - Import statement not allowed within class scope
   * - IMPORT_PACKAGE
     - Package # importing itself not allowed
   * - NON_EXISTING_PACKAGE
     - Non existing package #
   * - MISSING_IMPORT_ELEMENT
     - Explicit export element ignored (element not imported)
   * - MISSING_IMPORT_PACKAGE
     - Wild-card export package ignored (package not imported)
   * - MULTIPLE_PACKAGES
     - Name # exists in multiple imported packages (#, #, and possibly others)
   * - **Parameters**
     -
   * - DUPLICATE_PARAMETER
     - Duplicate parameter #, already declared at line # file #
   * - ILLEGAL_PARAMETER_OVERRIDE
     - Expecting a type when overriding parameter #, found value #
   * - MISSING_DEFAULT_VALUE
     - Parameter # must have a default value
   * - NOF_PARAM_OVERRIDES
     - Expected # parameter overrides, found #
   * - MISSING_PARAMETER_OVERRIDE
     - Expected override or default value for parameter #
   * - NON_EXISTING_PARAMETER
     - Non existing parameter # of type #
   * - UNRESOLVED_FORMAL_PARAMETER
     - Cannot determine formal parameter # of #
   * - NON_EXISTING_PARAMETER
     - Non existing parameter # of type #
   * - UNRESOLVED_PARAMETER_VALUE
     - Cannot determine # value of parameter # from expression: #
   * - UNRESOLVED_ENUM_NAME_VALUE
     - Cannot determine value of enum name # from expression: #
   * - UNCONNECTED_PARAMETER
     - Parameter # of module/interface # is not connected
   * - NON_OVERRIDABLE_PARAMETER
     - Localparam # cannot be overridden
   * - NON_OVERRIDABLE_PARAMETER
     - Parameter # cannot be overridden (is outside design parameter port list)
   * - **Preprocessing**
     -
   * - CYCLIC_INCLUDE
     - Cyclic include detected
   * - CYCLIC_MACRO
     - Cyclic define detected
   * - FAILED_TO_OPEN_INCLUDE_FILE
     - Cannot open \`include file #
   * - NON_EXISTING_INCLUDE_FILE
     - No such file #
   * - MISMATCHED_ENDIF
     - Expecting \`endif label # found #
   * - REDEFINED_MACRO
     - Redefinition of macro name #
   * - UNDEFINED_MACRO
     - Undefined macro name: #
   * - WRONG_NUMBER_OF_MACRO_ARGUMENTS
     - Number of macro instance parameters # not equal to macro define parameters #
   * - **Primitives**
     - 
   * - DUPLICATE_PRIMITIVE
     - Duplicate primitive #, already declared at line # file #
   * - **Programs**
     - 
   * - DUPLICATE_PROGRAM
     - Duplicate program #, already declared at line # file #
   * - **Type Checking**
     - 
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment to type # from type # (cannot assign a(n) packed / unpacked type to a(n) unpacked / packed type)
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment to type # from type # (arrays have incompatible dimensions / packed dimensions / unpacked dimensions / element types / element type signing / 2-state/4-state element types)
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment to type # from type # (class types are not assignment compatible)
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment of # to parameter / argument / port # of type #
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment of # to parameter / [ref] port / [ref] argument # of type # (cannot assign a(n) packed / unpacked type to a(n) unpacked / packed type)
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment of # 'parameter / [ref] port / [ref] argument # of type # (arrays have incompatible dimensions / packed dimensions / unpacked dimensions / element types / element type signing / 2-state/4-state element types)
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment of # [ref] port / argument # of type # (class types are not assignment compatible)
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment of expression # to ref port / argument #
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment of constant # to ref port / argument #
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment of constant # to non-constant ref argument #
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment of #-bit type to ref port / argument # of #-bit type
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment of dynamic array # to object #
   * - ILLEGAL_ASSIGNMENT
     - Illegal use of assignment pattern to type #
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment to type # from key # of type #
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment to type # from key # of type # (cannot assign a(n) packed / unpacked type to a(n) unpacked / packed type)
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment to type # from key # of type # (arrays have incompatible dimensions / packed dimensions / unpacked dimensions / element types / element type signing / 2-state/4-state element types)
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment to type # from key # of type # (class types are not assignment compatible)
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment to type # from value # of type #
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment to type # from value # of type # (cannot assign a(n) packed / unpacked type to a(n) unpacked / packed type)
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment to type # from value # of type # (arrays have incompatible dimensions / packed dimensions / unpacked dimensions / element types / element type signing / 2-state/4-state element types)
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment to type # from value # of type # (class types are not assignment compatible)
   * - ILLEGAL_ASSIGNMENT
     - Illegal use of ordered assignment pattern to associative array
   * - ILLEGAL_ASSIGNMENT
     - Illegal use of concatenation to associative array
   * - ILLEGAL_ASSIGNMENT
     - Illegal assignment of concatenation member # of type # to array element of type #
   * - ILLEGAL_NET_ASSIGNMENT
     - Cannot use net # as left hand side in procedural assignment
   * - ILLEGAL_NON_BLOCKING_ASSIGNMENT
     - Cannot use automatic variable # as left hand side in non-blocking assignment
   * - ILLEGAL_CAST_OPERATION
     - Cannot cast # of type # to #
   * - ILLEGAL_VOID_CAST
     - Void cast of task # not allowed
   * - ILLEGAL_CONSTANT_ASSIGN
     - Constant # cannot be assigned
   * - ILLEGAL_CONSTANT_ASSIGN
     - Constant ref # cannot be assigned
   * - ILLEGAL_FOREACH_LOOP
     - Number of dimensions specified in FOREACH_LOOP is bigger than # dimensions
   * - ILLEGAL_OPERAND
     - Unexpected # as first operand
   * - ILLEGAL_PARAMETER_OVERRIDE
     - Expecting type name for parameter #.# but found variable name #
   * - ILLEGAL_REPEAT_LOOP
     - Reference to the entire array # is not permitted in this context
   * - ILLEGAL_REPEAT_LOOP
     - Using string # without index is not supported in the given context
   * - ILLEGAL_REPEAT_LOOP
     - Reference to the entire unpacked struct / union # is not permitted in this context
   * - ILLEGAL_TYPE_REFERENCE
     - # cannot be resolved to a variable
   * - ILLEGAL_VARIABLE_REFERENCE
     - # cannot be resolved to a type
   * - ILLEGAL_NON_INTERFACE_VIRTUAL_FIELD
     - 'virtual' keyword not allowed with non-interface type #
   * - UNDEFINED_OPERATOR
     - Operator # is undefined for argument type #
   * - UNDEFINED_OPERATOR
     - Operator # is undefined for argument types #, #
   * - UNDEFINED_OPERATOR
     - Operator # is undefined for argument types #, # (arrays have incompatible dimensions / packed dimensions / unpacked dimensions / element types / element type signing / 2-state/4-state element types)
   * - UNDEFINED_OPERATOR
     - Concatenation operator is undefined for argument # of type #
   * - UNDEFINED_OPERATOR
     - The type of target # is # while the type of the source is #
   * - UNDEFINED_OPERATOR
     - Set member # of type # is incompatible with left-hand side expression type #
   * - UNDEFINED_OPERATOR
     - Set member of type # is incompatible with left-hand side expression type #
   * - ILLEGAL_CONSTANT_PRIMARY
     - Expecting a constant primary, but found #
   * - ILLEGAL_BINS_ASSIGNMENT
     - Set covergroup expression # is not an array of values
   * - **Typedefs**
     - 
   * - DUPLICATE_TYPEDEF
     - Duplicate typedef #, already declared at line # file #
   * - MISSING_TYPE_IMPLEMENTATION
     - # type is not implemented
   * - **Jump statements**
     -
   * - ILLEGAL_CONTINUE_OUTSIDE_LOOP
     - Continue statement not allowed outside loop
   * - ILLEGAL_BREAK_OUTSIDE_LOOP
     - Break statement not allowed outside loop
   * - ILLEGAL_EMPTY_RETURN
     - Empty return not allowed in non-void function, expecting #
   * - ILLEGAL_RETURN_VALUE_TYPE
     - Illegal return value of type # for function of type #
   * - ILLEGAL_RETURN_VALUE_TYPE
     - Illegal return value of type # for function of type # (cannot assign a(n) packed / unpacked type to a(n) unpacked / packed type)
   * - ILLEGAL_RETURN_VALUE_TYPE
     - Illegal return value of type # for function of type # (arrays have incompatible dimensions / packed dimensions / unpacked dimensions / element types / element type signing / 2-state/4-state element types)
   * - ILLEGAL_RETURN_VALUE_TYPE
     - Illegal return value of type # for function of type # (class types are not assignment compatible)
   * - ILLEGAL_VALUE_RETURN
     - Value return not allowed in task
   * - ILLEGAL_VALUE_RETURN
     - Value return not allowed in void function
   * - ILLEGAL_VALUE_RETURN
     - Value return not allowed in constructor
   * - ILLEGAL_VALUE_RETURN
     -  Value return not allowed in randsequence production
   * - **Miscellaneous**
     -
   * - SELECT_NOT_ALLOWED
     - Select expression for variable # not allowed
