cmake rule for parser regeneration

Signed-off-by: Alain Dargelas <alainmarcel@yahoo.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b9ec867..1fdef28 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -93,14 +93,18 @@
 
 add_custom_target(GenerateParser DEPENDS ${PROJECT_SOURCE_DIR}/src/SourceCompile/VObjectTypes.cpp)
 add_custom_command(OUTPUT ${PROJECT_SOURCE_DIR}/src/SourceCompile/VObjectTypes.cpp
+  COMMAND echo "       Parser Generation..."
   COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/src/parser/
-  COMMAND java -jar ${ANTLR_JAR_LOCATION} -Werror -Dlanguage=Cpp -listener -visitor -o ${PROJECT_SOURCE_DIR}/src/parser/  ${PROJECT_SOURCE_DIR}/grammar/SV3_1aPpLexer.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aSplitterLexer.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aPpParser.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aSplitterParser.g4
+  COMMAND java -jar ${ANTLR_JAR_LOCATION} -Werror -Dlanguage=Cpp -listener -visitor -o ${PROJECT_SOURCE_DIR}/src/parser/  ${PROJECT_SOURCE_DIR}/grammar/SV3_1aPpLexer.g4  ${PROJECT_SOURCE_DIR}/grammar/SV3_1aLexer.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aSplitterLexer.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aPpParser.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aParser.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aSplitterParser.g4
+  COMMAND echo "       Serializer, Parser Listener, code generation..."
   COMMAND SourceCompile/generate_parser_listener.tcl ;
   COMMAND API/generate_python_listener_api.tcl ;
+  COMMAND echo "       Python API Generation..."
   COMMAND ${SWIG_EXECUTABLE}  -c++ -python -o API/slapi_wrap.cxx API/slapi.i ;
   COMMAND API/embed_python_api.tcl
   WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/src/"
-  DEPENDS ${PROJECT_SOURCE_DIR}/grammar/SV3_1aPpLexer.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aSplitterLexer.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aPpParser.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aSplitterParser.g4 ${PROJECT_SOURCE_DIR}/src/API/slapi.i
+  COMMAND echo "       Code Generation completed"
+  DEPENDS ${PROJECT_SOURCE_DIR}/grammar/SV3_1aPpLexer.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aLexer.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aSplitterLexer.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aPpParser.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aParser.g4 ${PROJECT_SOURCE_DIR}/grammar/SV3_1aSplitterParser.g4 ${PROJECT_SOURCE_DIR}/src/API/slapi.i
  )
 
 include_directories(${PROJECT_SOURCE_DIR}/src)
diff --git a/src/API/slapi.py b/src/API/slapi.py
index 055221f..9f8524a 100644
--- a/src/API/slapi.py
+++ b/src/API/slapi.py
@@ -1,15 +1,22 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 3.0.8
+# Version 3.0.12
 #
 # Do not make changes to this file unless you know what you are doing--modify
 # the SWIG interface file instead.
 
-
-
-
-
-from sys import version_info
-if version_info >= (2, 6, 0):
+from sys import version_info as _swig_python_version_info
+if _swig_python_version_info >= (2, 7, 0):
+    def swig_import_helper():
+        import importlib
+        pkg = __name__.rpartition('.')[0]
+        mname = '.'.join((pkg, '_slapi')).lstrip('.')
+        try:
+            return importlib.import_module(mname)
+        except ImportError:
+            return importlib.import_module('_slapi')
+    _slapi = swig_import_helper()
+    del swig_import_helper
+elif _swig_python_version_info >= (2, 6, 0):
     def swig_import_helper():
         from os.path import dirname
         import imp
@@ -19,22 +26,27 @@
         except ImportError:
             import _slapi
             return _slapi
-        if fp is not None:
-            try:
-                _mod = imp.load_module('_slapi', fp, pathname, description)
-            finally:
+        try:
+            _mod = imp.load_module('_slapi', fp, pathname, description)
+        finally:
+            if fp is not None:
                 fp.close()
-            return _mod
+        return _mod
     _slapi = swig_import_helper()
     del swig_import_helper
 else:
     import _slapi
-del version_info
+del _swig_python_version_info
+
 try:
     _swig_property = property
 except NameError:
     pass  # Python < 2.2 doesn't have 'property'.
 
+try:
+    import builtins as __builtin__
+except ImportError:
+    import __builtin__
 
 def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
     if (name == "thisown"):
@@ -59,37 +71,30 @@
     return _swig_setattr_nondynamic(self, class_type, name, value, 0)
 
 
-def _swig_getattr_nondynamic(self, class_type, name, static=1):
+def _swig_getattr(self, class_type, name):
     if (name == "thisown"):
         return self.this.own()
     method = class_type.__swig_getmethods__.get(name, None)
     if method:
         return method(self)
-    if (not static):
-        return object.__getattr__(self, name)
-    else:
-        raise AttributeError(name)
-
-def _swig_getattr(self, class_type, name):
-    return _swig_getattr_nondynamic(self, class_type, name, 0)
+    raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))
 
 
 def _swig_repr(self):
     try:
         strthis = "proxy of " + self.this.__repr__()
-    except Exception:
+    except __builtin__.Exception:
         strthis = ""
     return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
 
 try:
     _object = object
     _newclass = 1
-except AttributeError:
+except __builtin__.Exception:
     class _object:
         pass
     _newclass = 0
 
-
 class SwigPyIterator(_object):
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, SwigPyIterator, name, value)
@@ -236,7 +241,7 @@
         this = _slapi.new_UIntVector(*args)
         try:
             self.this.append(this)
-        except Exception:
+        except __builtin__.Exception:
             self.this = this
 
     def push_back(self, x):
diff --git a/src/API/slapi_wrap.cxx b/src/API/slapi_wrap.cxx
index a9f81cb..6b260e3 100644
--- a/src/API/slapi_wrap.cxx
+++ b/src/API/slapi_wrap.cxx
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 3.0.8
+ * Version 3.0.12
  *
  * This file is not intended to be easily readable and contains a number of
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -106,9 +106,11 @@
 #endif
 
 /* exporting methods */
-#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-#  ifndef GCC_HASCLASSVISIBILITY
-#    define GCC_HASCLASSVISIBILITY
+#if defined(__GNUC__)
+#  if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#    ifndef GCC_HASCLASSVISIBILITY
+#      define GCC_HASCLASSVISIBILITY
+#    endif
 #  endif
 #endif
 
@@ -668,16 +670,16 @@
     char d = *(c++);
     unsigned char uu;
     if ((d >= '0') && (d <= '9'))
-      uu = ((d - '0') << 4);
+      uu = (unsigned char)((d - '0') << 4);
     else if ((d >= 'a') && (d <= 'f'))
-      uu = ((d - ('a'-10)) << 4);
+      uu = (unsigned char)((d - ('a'-10)) << 4);
     else
       return (char *) 0;
     d = *(c++);
     if ((d >= '0') && (d <= '9'))
-      uu |= (d - '0');
+      uu |= (unsigned char)(d - '0');
     else if ((d >= 'a') && (d <= 'f'))
-      uu |= (d - ('a'-10));
+      uu |= (unsigned char)(d - ('a'-10));
     else
       return (char *) 0;
     *u = uu;
@@ -860,10 +862,6 @@
 }
 #endif
 
-/* Add PyObject_Del for old Pythons */
-#if PY_VERSION_HEX < 0x01060000
-# define PyObject_Del(op) PyMem_DEL((op))
-#endif
 #ifndef PyObject_DEL
 # define PyObject_DEL PyObject_Del
 #endif
@@ -978,6 +976,7 @@
 #if PY_VERSION_HEX < 0x03020000
 #define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type)
 #define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name)
+#define Py_hash_t long
 #endif
 
 /* -----------------------------------------------------------------------------
@@ -1926,7 +1925,6 @@
   static int type_init = 0;
   if (!type_init) {
     const PyTypeObject tmp = {
-      /* PyObject header changed in Python 3 */
 #if PY_VERSION_HEX >= 0x03000000
       PyVarObject_HEAD_INIT(NULL, 0)
 #else
@@ -1937,7 +1935,7 @@
       sizeof(SwigPyObject),                 /* tp_basicsize */
       0,                                    /* tp_itemsize */
       (destructor)SwigPyObject_dealloc,     /* tp_dealloc */
-      0,				    /* tp_print */
+      0,                                    /* tp_print */
 #if PY_VERSION_HEX < 0x02020000
       (getattrfunc)SwigPyObject_getattr,    /* tp_getattr */
 #else
@@ -1945,7 +1943,7 @@
 #endif
       (setattrfunc)0,                       /* tp_setattr */
 #if PY_VERSION_HEX >= 0x03000000
-    0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */
+      0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */
 #else
       (cmpfunc)SwigPyObject_compare,        /* tp_compare */
 #endif
@@ -1955,7 +1953,7 @@
       0,                                    /* tp_as_mapping */
       (hashfunc)0,                          /* tp_hash */
       (ternaryfunc)0,                       /* tp_call */
-      0,				    /* tp_str */
+      0,                                    /* tp_str */
       PyObject_GenericGetAttr,              /* tp_getattro */
       0,                                    /* tp_setattro */
       0,                                    /* tp_as_buffer */
@@ -2118,7 +2116,6 @@
   static int type_init = 0;
   if (!type_init) {
     const PyTypeObject tmp = {
-      /* PyObject header changed in Python 3 */
 #if PY_VERSION_HEX>=0x03000000
       PyVarObject_HEAD_INIT(NULL, 0)
 #else
@@ -3059,7 +3056,7 @@
 #endif
 #define SWIG_name    "_slapi"
 
-#define SWIGVERSION 0x030008 
+#define SWIGVERSION 0x030012 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -3152,6 +3149,7 @@
 #endif
 
 
+#include <typeinfo>
 #include <stdexcept>
 
 
@@ -3301,7 +3299,7 @@
     return SWIG_OK;
 #if PY_VERSION_HEX < 0x03000000
   } else if (PyInt_Check(obj)) {
-    if (val) *val = PyInt_AsLong(obj);
+    if (val) *val = (double) PyInt_AsLong(obj);
     return SWIG_OK;
 #endif
   } else if (PyLong_Check(obj)) {
@@ -3422,23 +3420,109 @@
 }
 
 
+#include <limits.h>
+#if !defined(SWIG_NO_LLONG_MAX)
+# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
+#   define LLONG_MAX __LONG_LONG_MAX__
+#   define LLONG_MIN (-LLONG_MAX - 1LL)
+#   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
+# endif
+#endif
+
+
+#if defined(LLONG_MAX) && !defined(SWIG_LONG_LONG_AVAILABLE)
+#  define SWIG_LONG_LONG_AVAILABLE
+#endif
+
+
+#ifdef SWIG_LONG_LONG_AVAILABLE
+SWIGINTERN int
+SWIG_AsVal_unsigned_SS_long_SS_long (PyObject *obj, unsigned long long *val)
+{
+  int res = SWIG_TypeError;
+  if (PyLong_Check(obj)) {
+    unsigned long long v = PyLong_AsUnsignedLongLong(obj);
+    if (!PyErr_Occurred()) {
+      if (val) *val = v;
+      return SWIG_OK;
+    } else {
+      PyErr_Clear();
+      res = SWIG_OverflowError;
+    }
+  } else {
+    unsigned long v;
+    res = SWIG_AsVal_unsigned_SS_long (obj,&v);
+    if (SWIG_IsOK(res)) {
+      if (val) *val = v;
+      return res;
+    }
+  }
+#ifdef SWIG_PYTHON_CAST_MODE
+  {
+    const double mant_max = 1LL << DBL_MANT_DIG;
+    double d;
+    res = SWIG_AsVal_double (obj,&d);
+    if (SWIG_IsOK(res) && !SWIG_CanCastAsInteger(&d, 0, mant_max))
+      return SWIG_OverflowError;
+    if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) {
+      if (val) *val = (unsigned long long)(d);
+      return SWIG_AddCast(res);
+    }
+    res = SWIG_TypeError;
+  }
+#endif
+  return res;
+}
+#endif
+
+
 SWIGINTERNINLINE int
 SWIG_AsVal_size_t (PyObject * obj, size_t *val)
 {
-  unsigned long v;
-  int res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0);
-  if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v);
+  int res = SWIG_TypeError;
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  if (sizeof(size_t) <= sizeof(unsigned long)) {
+#endif
+    unsigned long v;
+    res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0);
+    if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v);
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  } else if (sizeof(size_t) <= sizeof(unsigned long long)) {
+    unsigned long long v;
+    res = SWIG_AsVal_unsigned_SS_long_SS_long (obj, val ? &v : 0);
+    if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v);
+  }
+#endif
   return res;
 }
 
 
-  #define SWIG_From_long   PyLong_FromLong 
+  #define SWIG_From_long   PyInt_FromLong 
+
+
+#ifdef SWIG_LONG_LONG_AVAILABLE
+SWIGINTERNINLINE PyObject* 
+SWIG_From_long_SS_long  (long long value)
+{
+  return ((value < LONG_MIN) || (value > LONG_MAX)) ?
+    PyLong_FromLongLong(value) : PyInt_FromLong(static_cast< long >(value));
+}
+#endif
 
 
 SWIGINTERNINLINE PyObject *
 SWIG_From_ptrdiff_t  (ptrdiff_t value)
 {    
-  return SWIG_From_long  (static_cast< long >(value));
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  if (sizeof(ptrdiff_t) <= sizeof(long)) {
+#endif
+    return SWIG_From_long  (static_cast< long >(value));
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  } else {
+    /* assume sizeof(ptrdiff_t) <= sizeof(long long) */
+    return SWIG_From_long_SS_long  (static_cast< long long >(value));
+  }
+#endif
 }
 
 
@@ -3492,12 +3576,65 @@
 }
 
 
+#ifdef SWIG_LONG_LONG_AVAILABLE
+SWIGINTERN int
+SWIG_AsVal_long_SS_long (PyObject *obj, long long *val)
+{
+  int res = SWIG_TypeError;
+  if (PyLong_Check(obj)) {
+    long long v = PyLong_AsLongLong(obj);
+    if (!PyErr_Occurred()) {
+      if (val) *val = v;
+      return SWIG_OK;
+    } else {
+      PyErr_Clear();
+      res = SWIG_OverflowError;
+    }
+  } else {
+    long v;
+    res = SWIG_AsVal_long (obj,&v);
+    if (SWIG_IsOK(res)) {
+      if (val) *val = v;
+      return res;
+    }
+  }
+#ifdef SWIG_PYTHON_CAST_MODE
+  {
+    const double mant_max = 1LL << DBL_MANT_DIG;
+    const double mant_min = -mant_max;
+    double d;
+    res = SWIG_AsVal_double (obj,&d);
+    if (SWIG_IsOK(res) && !SWIG_CanCastAsInteger(&d, mant_min, mant_max))
+      return SWIG_OverflowError;
+    if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, mant_min, mant_max)) {
+      if (val) *val = (long long)(d);
+      return SWIG_AddCast(res);
+    }
+    res = SWIG_TypeError;
+  }
+#endif
+  return res;
+}
+#endif
+
+
 SWIGINTERNINLINE int
 SWIG_AsVal_ptrdiff_t (PyObject * obj, ptrdiff_t *val)
 {
-  long v;
-  int res = SWIG_AsVal_long (obj, val ? &v : 0);
-  if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v);
+  int res = SWIG_TypeError;
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  if (sizeof(ptrdiff_t) <= sizeof(long)) {
+#endif
+    long v;
+    res = SWIG_AsVal_long (obj, val ? &v : 0);
+    if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v);
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  } else if (sizeof(ptrdiff_t) <= sizeof(long long)) {
+    long long v;
+    res = SWIG_AsVal_long_SS_long (obj, val ? &v : 0);
+    if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v);
+  }
+#endif
   return res;
 }
 
@@ -3535,8 +3672,21 @@
     return traits<typename noconst_traits<Type >::noconst_type >::type_name();
   }
 
-  template <class Type>
-  struct traits_info {
+  template <class Type> struct traits_info {
+    static swig_type_info *type_query(std::string name) {
+      name += " *";
+      return SWIG_TypeQuery(name.c_str());
+    }
+    static swig_type_info *type_info() {
+      static swig_type_info *info = type_query(type_name<Type>());
+      return info;
+    }
+  };
+
+  /*
+    Partial specialization for pointers (traits_info)
+  */
+  template <class Type> struct traits_info<Type *> {
     static swig_type_info *type_query(std::string name) {
       name += " *";
       return SWIG_TypeQuery(name.c_str());
@@ -3553,7 +3703,7 @@
   }
 
   /*
-    Partial specialization for pointers
+    Partial specialization for pointers (traits)
   */
   template <class Type> struct traits <Type *> {
     typedef pointer_category category;
@@ -3623,7 +3773,8 @@
   struct traits_asptr {   
     static int asptr(PyObject *obj, Type **val) {
       Type *p;
-      int res = SWIG_ConvertPtr(obj, (void**)&p, type_info<Type>(), 0);
+      swig_type_info *descriptor = type_info<Type>();
+      int res = descriptor ? SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0) : SWIG_ERROR;
       if (SWIG_IsOK(res)) {
 	if (val) *val = p;
       }
@@ -3771,7 +3922,7 @@
 
 namespace std {
   template <>
-  struct less <PyObject *>: public binary_function<PyObject *, PyObject *, bool>
+  struct less <PyObject *>
   {
     bool
     operator()(PyObject * v, PyObject *w) const
@@ -3796,7 +3947,7 @@
   };
 
   template <>
-  struct less <swig::SwigPtr_PyObject>: public binary_function<swig::SwigPtr_PyObject, swig::SwigPtr_PyObject, bool>
+  struct less <swig::SwigPtr_PyObject>
   {
     bool
     operator()(const swig::SwigPtr_PyObject& v, const swig::SwigPtr_PyObject& w) const
@@ -3806,7 +3957,7 @@
   };
 
   template <>
-  struct less <swig::SwigVar_PyObject>: public binary_function<swig::SwigVar_PyObject, swig::SwigVar_PyObject, bool>
+  struct less <swig::SwigVar_PyObject>
   {
     bool
     operator()(const swig::SwigVar_PyObject& v, const swig::SwigVar_PyObject& w) const
@@ -3869,7 +4020,7 @@
     if (step == 0) {
       throw std::invalid_argument("slice step cannot be zero");
     } else if (step > 0) {
-      // Required range: 0 <= i < size, 0 <= j < size
+      // Required range: 0 <= i < size, 0 <= j < size, i <= j
       if (i < 0) {
         ii = 0;
       } else if (i < (Difference)size) {
@@ -3877,13 +4028,15 @@
       } else if (insert && (i >= (Difference)size)) {
         ii = (Difference)size;
       }
-      if ( j < 0 ) {
+      if (j < 0) {
         jj = 0;
       } else {
         jj = (j < (Difference)size) ? j : (Difference)size;
       }
+      if (jj < ii)
+        jj = ii;
     } else {
-      // Required range: -1 <= i < size-1, -1 <= j < size-1
+      // Required range: -1 <= i < size-1, -1 <= j < size-1, i >= j
       if (i < -1) {
         ii = -1;
       } else if (i < (Difference) size) {
@@ -3896,6 +4049,8 @@
       } else {
         jj = (j < (Difference)size ) ? j : (Difference)(size-1);
       }
+      if (ii < jj)
+        ii = jj;
     }
   }
 
@@ -3921,6 +4076,13 @@
     seq->erase(position);
   }
 
+  template <class Sequence>
+  struct traits_reserve {
+    static void reserve(Sequence & /*seq*/, typename Sequence::size_type /*n*/) {
+      // This should be specialized for types that support reserve
+    }
+  };
+
   template <class Sequence, class Difference>
   inline Sequence*
   getslice(const Sequence* self, Difference i, Difference j, Py_ssize_t step) {
@@ -3938,6 +4100,7 @@
         return new Sequence(sb, se);
       } else {
         Sequence *sequence = new Sequence();
+        swig::traits_reserve<Sequence>::reserve(*sequence, (jj - ii + step - 1) / step);
         typename Sequence::const_iterator it = sb;
         while (it!=se) {
           sequence->push_back(*it);
@@ -3948,17 +4111,16 @@
       } 
     } else {
       Sequence *sequence = new Sequence();
-      if (ii > jj) {
-        typename Sequence::const_reverse_iterator sb = self->rbegin();
-        typename Sequence::const_reverse_iterator se = self->rbegin();
-        std::advance(sb,size-ii-1);
-        std::advance(se,size-jj-1);
-        typename Sequence::const_reverse_iterator it = sb;
-        while (it!=se) {
-          sequence->push_back(*it);
-          for (Py_ssize_t c=0; c<-step && it!=se; ++c)
-            it++;
-        }
+      swig::traits_reserve<Sequence>::reserve(*sequence, (ii - jj - step - 1) / -step);
+      typename Sequence::const_reverse_iterator sb = self->rbegin();
+      typename Sequence::const_reverse_iterator se = self->rbegin();
+      std::advance(sb,size-ii-1);
+      std::advance(se,size-jj-1);
+      typename Sequence::const_reverse_iterator it = sb;
+      while (it!=se) {
+        sequence->push_back(*it);
+        for (Py_ssize_t c=0; c<-step && it!=se; ++c)
+          it++;
       }
       return sequence;
     }
@@ -3972,12 +4134,11 @@
     Difference jj = 0;
     swig::slice_adjust(i, j, step, size, ii, jj, true);
     if (step > 0) {
-      if (jj < ii)
-        jj = ii;
       if (step == 1) {
         size_t ssize = jj - ii;
         if (ssize <= is.size()) {
           // expanding/staying the same size
+          swig::traits_reserve<Sequence>::reserve(*self, self->size() - ssize + is.size());
           typename Sequence::iterator sb = self->begin();
           typename InputSeq::const_iterator isit = is.begin();
           std::advance(sb,ii);
@@ -4011,8 +4172,6 @@
         }
       }
     } else {
-      if (jj > ii)
-        jj = ii;
       size_t replacecount = (ii - jj - step - 1) / -step;
       if (is.size() != replacecount) {
         char msg[1024];
@@ -4038,37 +4197,33 @@
     Difference jj = 0;
     swig::slice_adjust(i, j, step, size, ii, jj, true);
     if (step > 0) {
-      if (jj > ii) {
-        typename Sequence::iterator sb = self->begin();
-        std::advance(sb,ii);
-        if (step == 1) {
-          typename Sequence::iterator se = self->begin();
-          std::advance(se,jj);
-          self->erase(sb,se);
-        } else {
-          typename Sequence::iterator it = sb;
-          size_t delcount = (jj - ii + step - 1) / step;
-          while (delcount) {
-            it = self->erase(it);
-            for (Py_ssize_t c=0; c<(step-1) && it != self->end(); ++c)
-              it++;
-            delcount--;
-          }
-        }
-      }
-    } else {
-      if (ii > jj) {
-        typename Sequence::reverse_iterator sb = self->rbegin();
-        std::advance(sb,size-ii-1);
-        typename Sequence::reverse_iterator it = sb;
-        size_t delcount = (ii - jj - step - 1) / -step;
+      typename Sequence::iterator sb = self->begin();
+      std::advance(sb,ii);
+      if (step == 1) {
+        typename Sequence::iterator se = self->begin();
+        std::advance(se,jj);
+        self->erase(sb,se);
+      } else {
+        typename Sequence::iterator it = sb;
+        size_t delcount = (jj - ii + step - 1) / step;
         while (delcount) {
-          it = typename Sequence::reverse_iterator(self->erase((++it).base()));
-          for (Py_ssize_t c=0; c<(-step-1) && it != self->rend(); ++c)
+          it = self->erase(it);
+          for (Py_ssize_t c=0; c<(step-1) && it != self->end(); ++c)
             it++;
           delcount--;
         }
       }
+    } else {
+      typename Sequence::reverse_iterator sb = self->rbegin();
+      std::advance(sb,size-ii-1);
+      typename Sequence::reverse_iterator it = sb;
+      size_t delcount = (ii - jj - step - 1) / -step;
+      while (delcount) {
+        it = typename Sequence::reverse_iterator(self->erase((++it).base()));
+        for (Py_ssize_t c=0; c<(-step-1) && it != self->rend(); ++c)
+          it++;
+        delcount--;
+      }
     }
   }
 }
@@ -4524,16 +4679,6 @@
 }
 
 
-#include <limits.h>
-#if !defined(SWIG_NO_LLONG_MAX)
-# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
-#   define LLONG_MAX __LONG_LONG_MAX__
-#   define LLONG_MIN (-LLONG_MAX - 1LL)
-#   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
-# endif
-#endif
-
-
 SWIGINTERN int
 SWIG_AsVal_unsigned_SS_int (PyObject * obj, unsigned int *val)
 {
@@ -4597,8 +4742,8 @@
     static int asptr(PyObject *obj, sequence **seq) {
       if (obj == Py_None || SWIG_Python_GetSwigThis(obj)) {
 	sequence *p;
-	if (::SWIG_ConvertPtr(obj,(void**)&p,
-			      swig::type_info<sequence>(),0) == SWIG_OK) {
+	swig_type_info *descriptor = swig::type_info<sequence>();
+	if (descriptor && SWIG_IsOK(::SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0))) {
 	  if (seq) *seq = p;
 	  return SWIG_OLDOBJ;
 	}
@@ -4637,7 +4782,7 @@
 #ifdef SWIG_PYTHON_EXTRA_NATIVE_CONTAINERS
       swig_type_info *desc = swig::type_info<sequence>();
       if (desc && desc->clientdata) {
-	return SWIG_NewPointerObj(new sequence(seq), desc, SWIG_POINTER_OWN);
+	return SWIG_InternalNewPointerObj(new sequence(seq), desc, SWIG_POINTER_OWN);
       }
 #endif
       size_type size = seq.size();
@@ -4659,6 +4804,13 @@
 
   namespace swig {
     template <class T>
+    struct traits_reserve<std::vector<T> > {
+      static void reserve(std::vector<T> &seq, typename std::vector<T>::size_type n) {
+        seq.reserve(n);
+      }
+    };
+
+    template <class T>
     struct traits_asptr<std::vector<T> >  {
       static int asptr(PyObject *obj, std::vector<T> **vec) {
 	return traits_asptr_stdseq<std::vector<T> >::asptr(obj, vec);
@@ -4700,14 +4852,33 @@
 SWIG_From_unsigned_SS_long  (unsigned long value)
 {
   return (value > LONG_MAX) ?
-    PyLong_FromUnsignedLong(value) : PyLong_FromLong(static_cast< long >(value)); 
+    PyLong_FromUnsignedLong(value) : PyInt_FromLong(static_cast< long >(value));
 }
 
 
+#ifdef SWIG_LONG_LONG_AVAILABLE
+SWIGINTERNINLINE PyObject* 
+SWIG_From_unsigned_SS_long_SS_long  (unsigned long long value)
+{
+  return (value > LONG_MAX) ?
+    PyLong_FromUnsignedLongLong(value) : PyInt_FromLong(static_cast< long >(value));
+}
+#endif
+
+
 SWIGINTERNINLINE PyObject *
 SWIG_From_size_t  (size_t value)
 {    
-  return SWIG_From_unsigned_SS_long  (static_cast< unsigned long >(value));
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  if (sizeof(size_t) <= sizeof(unsigned long)) {
+#endif
+    return SWIG_From_unsigned_SS_long  (static_cast< unsigned long >(value));
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  } else {
+    /* assume sizeof(size_t) <= sizeof(unsigned long long) */
+    return SWIG_From_unsigned_SS_long_SS_long  (static_cast< unsigned long long >(value));
+  }
+#endif
 }
 
 SWIGINTERN std::vector< unsigned int,std::allocator< unsigned int > > *std_vector_Sl_unsigned_SS_int_Sg____getslice__(std::vector< unsigned int > *self,std::vector< unsigned int >::difference_type i,std::vector< unsigned int >::difference_type j){
@@ -4807,13 +4978,18 @@
 SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
 {
 #if PY_VERSION_HEX>=0x03000000
+#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
+  if (PyBytes_Check(obj))
+#else
   if (PyUnicode_Check(obj))
+#endif
 #else  
   if (PyString_Check(obj))
 #endif
   {
     char *cstr; Py_ssize_t len;
 #if PY_VERSION_HEX>=0x03000000
+#if !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
     if (!alloc && cptr) {
         /* We can't allow converting without allocation, since the internal
            representation of string in Python 3 is UCS-2/UCS-4 but we require
@@ -4822,8 +4998,9 @@
         return SWIG_RuntimeError;
     }
     obj = PyUnicode_AsUTF8String(obj);
-    PyBytes_AsStringAndSize(obj, &cstr, &len);
     if(alloc) *alloc = SWIG_NEWOBJ;
+#endif
+    PyBytes_AsStringAndSize(obj, &cstr, &len);
 #else
     PyString_AsStringAndSize(obj, &cstr, &len);
 #endif
@@ -4844,26 +5021,34 @@
 	if (*alloc == SWIG_NEWOBJ) 
 #endif
 	{
-	  *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1)));
+	  *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1)));
 	  *alloc = SWIG_NEWOBJ;
 	} else {
 	  *cptr = cstr;
 	  *alloc = SWIG_OLDOBJ;
 	}
       } else {
-	#if PY_VERSION_HEX>=0x03000000
-	assert(0); /* Should never reach here in Python 3 */
-	#endif
+#if PY_VERSION_HEX>=0x03000000
+#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
+	*cptr = PyBytes_AsString(obj);
+#else
+	assert(0); /* Should never reach here with Unicode strings in Python 3 */
+#endif
+#else
 	*cptr = SWIG_Python_str_AsChar(obj);
+#endif
       }
     }
     if (psize) *psize = len + 1;
-#if PY_VERSION_HEX>=0x03000000
+#if PY_VERSION_HEX>=0x03000000 && !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
     Py_XDECREF(obj);
 #endif
     return SWIG_OK;
   } else {
 #if defined(SWIG_PYTHON_2_UNICODE)
+#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
+#error "Cannot use both SWIG_PYTHON_2_UNICODE and SWIG_PYTHON_STRICT_BYTE_CHAR at once"
+#endif
 #if PY_VERSION_HEX<0x03000000
     if (PyUnicode_Check(obj)) {
       char *cstr; Py_ssize_t len;
@@ -4874,7 +5059,7 @@
       if (PyString_AsStringAndSize(obj, &cstr, &len) != -1) {
         if (cptr) {
           if (alloc) *alloc = SWIG_NEWOBJ;
-          *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1)));
+          *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1)));
         }
         if (psize) *psize = len + 1;
 
@@ -4929,11 +5114,15 @@
 	SWIG_InternalNewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void();
     } else {
 #if PY_VERSION_HEX >= 0x03000000
+#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
+      return PyBytes_FromStringAndSize(carray, static_cast< Py_ssize_t >(size));
+#else
 #if PY_VERSION_HEX >= 0x03010000
       return PyUnicode_DecodeUTF8(carray, static_cast< Py_ssize_t >(size), "surrogateescape");
 #else
       return PyUnicode_FromStringAndSize(carray, static_cast< Py_ssize_t >(size));
 #endif
+#endif
 #else
       return PyString_FromStringAndSize(carray, static_cast< Py_ssize_t >(size));
 #endif
@@ -5805,7 +5994,7 @@
 
 SWIGINTERN PyObject *SwigPyIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_swig__SwigPyIterator, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -7723,7 +7912,7 @@
 
 SWIGINTERN PyObject *UIntVector_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -11595,7 +11784,6 @@
     static int type_init = 0;
     if (!type_init) {
       const PyTypeObject tmp = {
-        /* PyObject header changed in Python 3 */
 #if PY_VERSION_HEX >= 0x03000000
         PyVarObject_HEAD_INIT(NULL, 0)
 #else
@@ -11827,13 +12015,13 @@
   static PyGetSetDef thisown_getset_def = {
     (char *)"thisown", SwigPyBuiltin_GetterClosure, SwigPyBuiltin_SetterClosure, NULL, &thisown_getset_closure
   };
-  PyObject *metatype_args;
   PyTypeObject *builtin_pytype;
   int builtin_base_count;
   swig_type_info *builtin_basetype;
   PyObject *tuple;
   PyGetSetDescrObject *static_getset;
   PyTypeObject *metatype;
+  PyTypeObject *swigpyobject;
   SwigPyClientData *cd;
   PyObject *public_interface, *public_symbol;
   PyObject *this_descr;
@@ -11848,14 +12036,9 @@
   (void)static_getset;
   (void)self;
   
-  /* metatype is used to implement static member variables. */
-  metatype_args = Py_BuildValue("(s(O){})", "SwigPyObjectType", &PyType_Type);
-  assert(metatype_args);
-  metatype = (PyTypeObject *) PyType_Type.tp_call((PyObject *) &PyType_Type, metatype_args, NULL);
+  /* Metaclass is used to implement static member variables */
+  metatype = SwigPyObjectType();
   assert(metatype);
-  Py_DECREF(metatype_args);
-  metatype->tp_setattro = (setattrofunc) &SwigPyObjectType_setattro;
-  assert(PyType_Ready(metatype) >= 0);
 #endif
   
   /* Fix SwigMethods to carry the callback ptrs when needed */
@@ -11873,13 +12056,15 @@
   SWIG_InitializeModule(0);
   
 #ifdef SWIGPYTHON_BUILTIN
+  swigpyobject = SwigPyObject_TypeOnce();
+  
   SwigPyObject_stype = SWIG_MangledTypeQuery("_p_SwigPyObject");
   assert(SwigPyObject_stype);
   cd = (SwigPyClientData*) SwigPyObject_stype->clientdata;
   if (!cd) {
     SwigPyObject_stype->clientdata = &SwigPyObject_clientdata;
-    SwigPyObject_clientdata.pytype = SwigPyObject_TypeOnce();
-  } else if (SwigPyObject_TypeOnce()->tp_basicsize != cd->pytype->tp_basicsize) {
+    SwigPyObject_clientdata.pytype = swigpyobject;
+  } else if (swigpyobject->tp_basicsize != cd->pytype->tp_basicsize) {
     PyErr_SetString(PyExc_RuntimeError, "Import error: attempted to load two incompatible swig-generated modules.");
 # if PY_VERSION_HEX >= 0x03000000
     return NULL;
diff --git a/src/SourceCompile/SV3_1aTreeShapeListener.h b/src/SourceCompile/SV3_1aTreeShapeListener.h
index ae281c3..a5fa546 100644
--- a/src/SourceCompile/SV3_1aTreeShapeListener.h
+++ b/src/SourceCompile/SV3_1aTreeShapeListener.h
@@ -30,11 +30,11 @@
 #include <stack>
 #include <map>
 #include <unordered_map>
-#include "Utils/ParseUtils.h"
-#include "SourceCompile/SymbolTable.h"
-#include "Design/TimeInfo.h"
-#include "Design/DesignElement.h"
-#include "Design/FileContent.h"
+#include "../Utils/ParseUtils.h"
+#include "../SourceCompile/SymbolTable.h"
+#include "../Design/TimeInfo.h"
+#include "../Design/DesignElement.h"
+#include "../Design/FileContent.h"
 #include "ParseFile.h"
 #include "CompilationUnit.h"
 #include "CompileSourceFile.h"
diff --git a/src/SourceCompile/VObjectTypes.cpp b/src/SourceCompile/VObjectTypes.cpp
index 97180f4..50ded84 100644
--- a/src/SourceCompile/VObjectTypes.cpp
+++ b/src/SourceCompile/VObjectTypes.cpp
@@ -1,6 +1,6 @@
 
 #include <string>
-#include "Design/VObject.h"
+#include "../Design/VObject.h"
 // This file is automatically generated by generate_parser_listener.tcl
 // DO NOT EDIT
 
diff --git a/src/parser/SV3_1aLexer.cpp b/src/parser/SV3_1aLexer.cpp
index 3ef52cd..9cae3af 100644
--- a/src/parser/SV3_1aLexer.cpp
+++ b/src/parser/SV3_1aLexer.cpp
@@ -1,5 +1,5 @@
 
-// Generated from SV3_1aLexer.g4 by ANTLR 4.7.1
+// Generated from /home/alain/Surelog/grammar/SV3_1aLexer.g4 by ANTLR 4.7.2
 
 
 #include "SV3_1aLexer.h"
diff --git a/src/parser/SV3_1aLexer.h b/src/parser/SV3_1aLexer.h
index 7abe61a..0752d25 100644
--- a/src/parser/SV3_1aLexer.h
+++ b/src/parser/SV3_1aLexer.h
@@ -1,5 +1,5 @@
 
-// Generated from SV3_1aLexer.g4 by ANTLR 4.7.1
+// Generated from /home/alain/Surelog/grammar/SV3_1aLexer.g4 by ANTLR 4.7.2
 
 #pragma once
 
diff --git a/src/parser/SV3_1aParser.cpp b/src/parser/SV3_1aParser.cpp
index 8dd9419..50b4b74 100644
--- a/src/parser/SV3_1aParser.cpp
+++ b/src/parser/SV3_1aParser.cpp
@@ -1,8 +1,9 @@
 
-// Generated from SV3_1aParser.g4 by ANTLR 4.7.1
+// Generated from /home/alain/Surelog/grammar/SV3_1aParser.g4 by ANTLR 4.7.2
 
 
 #include "SV3_1aParserListener.h"
+#include "SV3_1aParserVisitor.h"
 
 #include "SV3_1aParser.h"
 
@@ -66,6 +67,14 @@
     parserListener->exitTop_level_rule(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Top_level_ruleContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTop_level_rule(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Top_level_ruleContext* SV3_1aParser::top_level_rule() {
   Top_level_ruleContext *_localctx = _tracker.createInstance<Top_level_ruleContext>(_ctx, getState());
   enterRule(_localctx, 0, SV3_1aParser::RuleTop_level_rule);
@@ -127,6 +136,14 @@
     parserListener->exitTop_level_library_rule(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Top_level_library_ruleContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTop_level_library_rule(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Top_level_library_ruleContext* SV3_1aParser::top_level_library_rule() {
   Top_level_library_ruleContext *_localctx = _tracker.createInstance<Top_level_library_ruleContext>(_ctx, getState());
   enterRule(_localctx, 2, SV3_1aParser::RuleTop_level_library_rule);
@@ -184,6 +201,14 @@
     parserListener->exitLibrary_text(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Library_textContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLibrary_text(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Library_textContext* SV3_1aParser::library_text() {
   Library_textContext *_localctx = _tracker.createInstance<Library_textContext>(_ctx, getState());
   enterRule(_localctx, 4, SV3_1aParser::RuleLibrary_text);
@@ -258,6 +283,14 @@
     parserListener->exitLibrary_descriptions(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Library_descriptionsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLibrary_descriptions(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Library_descriptionsContext* SV3_1aParser::library_descriptions() {
   Library_descriptionsContext *_localctx = _tracker.createInstance<Library_descriptionsContext>(_ctx, getState());
   enterRule(_localctx, 6, SV3_1aParser::RuleLibrary_descriptions);
@@ -366,6 +399,14 @@
     parserListener->exitLibrary_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Library_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLibrary_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Library_declarationContext* SV3_1aParser::library_declaration() {
   Library_declarationContext *_localctx = _tracker.createInstance<Library_declarationContext>(_ctx, getState());
   enterRule(_localctx, 8, SV3_1aParser::RuleLibrary_declaration);
@@ -500,6 +541,14 @@
     parserListener->exitFile_path_spec(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::File_path_specContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFile_path_spec(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::File_path_specContext* SV3_1aParser::file_path_spec() {
   File_path_specContext *_localctx = _tracker.createInstance<File_path_specContext>(_ctx, getState());
   enterRule(_localctx, 10, SV3_1aParser::RuleFile_path_spec);
@@ -579,6 +628,14 @@
     parserListener->exitInclude_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Include_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInclude_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Include_statementContext* SV3_1aParser::include_statement() {
   Include_statementContext *_localctx = _tracker.createInstance<Include_statementContext>(_ctx, getState());
   enterRule(_localctx, 12, SV3_1aParser::RuleInclude_statement);
@@ -640,6 +697,14 @@
     parserListener->exitSource_text(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Source_textContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSource_text(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Source_textContext* SV3_1aParser::source_text() {
   Source_textContext *_localctx = _tracker.createInstance<Source_textContext>(_ctx, getState());
   enterRule(_localctx, 14, SV3_1aParser::RuleSource_text);
@@ -824,6 +889,14 @@
     parserListener->exitNull_rule(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Null_ruleContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNull_rule(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Null_ruleContext* SV3_1aParser::null_rule() {
   Null_ruleContext *_localctx = _tracker.createInstance<Null_ruleContext>(_ctx, getState());
   enterRule(_localctx, 16, SV3_1aParser::RuleNull_rule);
@@ -916,6 +989,14 @@
     parserListener->exitDescription(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::DescriptionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDescription(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::DescriptionContext* SV3_1aParser::description() {
   DescriptionContext *_localctx = _tracker.createInstance<DescriptionContext>(_ctx, getState());
   enterRule(_localctx, 18, SV3_1aParser::RuleDescription);
@@ -1090,6 +1171,14 @@
     parserListener->exitModule_nonansi_header(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Module_nonansi_headerContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_nonansi_header(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Module_nonansi_headerContext* SV3_1aParser::module_nonansi_header() {
   Module_nonansi_headerContext *_localctx = _tracker.createInstance<Module_nonansi_headerContext>(_ctx, getState());
   enterRule(_localctx, 20, SV3_1aParser::RuleModule_nonansi_header);
@@ -1220,6 +1309,14 @@
     parserListener->exitModule_ansi_header(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Module_ansi_headerContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_ansi_header(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Module_ansi_headerContext* SV3_1aParser::module_ansi_header() {
   Module_ansi_headerContext *_localctx = _tracker.createInstance<Module_ansi_headerContext>(_ctx, getState());
   enterRule(_localctx, 22, SV3_1aParser::RuleModule_ansi_header);
@@ -1400,6 +1497,14 @@
     parserListener->exitModule_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Module_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Module_declarationContext* SV3_1aParser::module_declaration() {
   Module_declarationContext *_localctx = _tracker.createInstance<Module_declarationContext>(_ctx, getState());
   enterRule(_localctx, 24, SV3_1aParser::RuleModule_declaration);
@@ -2019,6 +2124,14 @@
     parserListener->exitEndmodule(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndmoduleContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndmodule(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndmoduleContext* SV3_1aParser::endmodule() {
   EndmoduleContext *_localctx = _tracker.createInstance<EndmoduleContext>(_ctx, getState());
   enterRule(_localctx, 26, SV3_1aParser::RuleEndmodule);
@@ -2072,6 +2185,14 @@
     parserListener->exitModule_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Module_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Module_keywordContext* SV3_1aParser::module_keyword() {
   Module_keywordContext *_localctx = _tracker.createInstance<Module_keywordContext>(_ctx, getState());
   enterRule(_localctx, 28, SV3_1aParser::RuleModule_keyword);
@@ -2159,6 +2280,14 @@
     parserListener->exitInterface_nonansi_header(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_nonansi_headerContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_nonansi_header(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_nonansi_headerContext* SV3_1aParser::interface_nonansi_header() {
   Interface_nonansi_headerContext *_localctx = _tracker.createInstance<Interface_nonansi_headerContext>(_ctx, getState());
   enterRule(_localctx, 30, SV3_1aParser::RuleInterface_nonansi_header);
@@ -2271,6 +2400,14 @@
     parserListener->exitInterface_ansi_header(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_ansi_headerContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_ansi_header(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_ansi_headerContext* SV3_1aParser::interface_ansi_header() {
   Interface_ansi_headerContext *_localctx = _tracker.createInstance<Interface_ansi_headerContext>(_ctx, getState());
   enterRule(_localctx, 32, SV3_1aParser::RuleInterface_ansi_header);
@@ -2433,6 +2570,14 @@
     parserListener->exitInterface_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_declarationContext* SV3_1aParser::interface_declaration() {
   Interface_declarationContext *_localctx = _tracker.createInstance<Interface_declarationContext>(_ctx, getState());
   enterRule(_localctx, 34, SV3_1aParser::RuleInterface_declaration);
@@ -2947,6 +3092,14 @@
     parserListener->exitEndinterface(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndinterfaceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndinterface(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndinterfaceContext* SV3_1aParser::endinterface() {
   EndinterfaceContext *_localctx = _tracker.createInstance<EndinterfaceContext>(_ctx, getState());
   enterRule(_localctx, 36, SV3_1aParser::RuleEndinterface);
@@ -3020,6 +3173,14 @@
     parserListener->exitProgram_nonansi_header(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Program_nonansi_headerContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProgram_nonansi_header(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Program_nonansi_headerContext* SV3_1aParser::program_nonansi_header() {
   Program_nonansi_headerContext *_localctx = _tracker.createInstance<Program_nonansi_headerContext>(_ctx, getState());
   enterRule(_localctx, 38, SV3_1aParser::RuleProgram_nonansi_header);
@@ -3124,6 +3285,14 @@
     parserListener->exitProgram_ansi_header(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Program_ansi_headerContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProgram_ansi_header(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Program_ansi_headerContext* SV3_1aParser::program_ansi_header() {
   Program_ansi_headerContext *_localctx = _tracker.createInstance<Program_ansi_headerContext>(_ctx, getState());
   enterRule(_localctx, 40, SV3_1aParser::RuleProgram_ansi_header);
@@ -3214,6 +3383,14 @@
     parserListener->exitEndchecker(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndcheckerContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndchecker(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndcheckerContext* SV3_1aParser::endchecker() {
   EndcheckerContext *_localctx = _tracker.createInstance<EndcheckerContext>(_ctx, getState());
   enterRule(_localctx, 42, SV3_1aParser::RuleEndchecker);
@@ -3311,6 +3488,14 @@
     parserListener->exitChecker_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Checker_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitChecker_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Checker_declarationContext* SV3_1aParser::checker_declaration() {
   Checker_declarationContext *_localctx = _tracker.createInstance<Checker_declarationContext>(_ctx, getState());
   enterRule(_localctx, 44, SV3_1aParser::RuleChecker_declaration);
@@ -3605,6 +3790,14 @@
     parserListener->exitProgram_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Program_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProgram_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Program_declarationContext* SV3_1aParser::program_declaration() {
   Program_declarationContext *_localctx = _tracker.createInstance<Program_declarationContext>(_ctx, getState());
   enterRule(_localctx, 46, SV3_1aParser::RuleProgram_declaration);
@@ -4096,6 +4289,14 @@
     parserListener->exitEndprogram(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndprogramContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndprogram(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndprogramContext* SV3_1aParser::endprogram() {
   EndprogramContext *_localctx = _tracker.createInstance<EndprogramContext>(_ctx, getState());
   enterRule(_localctx, 48, SV3_1aParser::RuleEndprogram);
@@ -4225,6 +4426,14 @@
     parserListener->exitClass_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Class_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClass_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Class_declarationContext* SV3_1aParser::class_declaration() {
   Class_declarationContext *_localctx = _tracker.createInstance<Class_declarationContext>(_ctx, getState());
   enterRule(_localctx, 50, SV3_1aParser::RuleClass_declaration);
@@ -4429,6 +4638,14 @@
     parserListener->exitEndclass(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndclassContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndclass(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndclassContext* SV3_1aParser::endclass() {
   EndclassContext *_localctx = _tracker.createInstance<EndclassContext>(_ctx, getState());
   enterRule(_localctx, 52, SV3_1aParser::RuleEndclass);
@@ -4482,6 +4699,14 @@
     parserListener->exitInterface_class_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_class_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_class_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_class_typeContext* SV3_1aParser::interface_class_type() {
   Interface_class_typeContext *_localctx = _tracker.createInstance<Interface_class_typeContext>(_ctx, getState());
   enterRule(_localctx, 54, SV3_1aParser::RuleInterface_class_type);
@@ -4596,6 +4821,14 @@
     parserListener->exitInterface_class_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_class_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_class_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_class_declarationContext* SV3_1aParser::interface_class_declaration() {
   Interface_class_declarationContext *_localctx = _tracker.createInstance<Interface_class_declarationContext>(_ctx, getState());
   enterRule(_localctx, 56, SV3_1aParser::RuleInterface_class_declaration);
@@ -4733,6 +4966,14 @@
     parserListener->exitInterface_class_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_class_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_class_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_class_itemContext* SV3_1aParser::interface_class_item() {
   Interface_class_itemContext *_localctx = _tracker.createInstance<Interface_class_itemContext>(_ctx, getState());
   enterRule(_localctx, 58, SV3_1aParser::RuleInterface_class_item);
@@ -4846,6 +5087,14 @@
     parserListener->exitInterface_class_method(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_class_methodContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_class_method(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_class_methodContext* SV3_1aParser::interface_class_method() {
   Interface_class_methodContext *_localctx = _tracker.createInstance<Interface_class_methodContext>(_ctx, getState());
   enterRule(_localctx, 60, SV3_1aParser::RuleInterface_class_method);
@@ -4899,6 +5148,14 @@
     parserListener->exitEndpackage(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndpackageContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndpackage(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndpackageContext* SV3_1aParser::endpackage() {
   EndpackageContext *_localctx = _tracker.createInstance<EndpackageContext>(_ctx, getState());
   enterRule(_localctx, 62, SV3_1aParser::RuleEndpackage);
@@ -4988,6 +5245,14 @@
     parserListener->exitPackage_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Package_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPackage_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Package_declarationContext* SV3_1aParser::package_declaration() {
   Package_declarationContext *_localctx = _tracker.createInstance<Package_declarationContext>(_ctx, getState());
   enterRule(_localctx, 64, SV3_1aParser::RulePackage_declaration);
@@ -5193,6 +5458,13 @@
   if (parserListener != nullptr)
     parserListener->exitTimeUnitsDecl_TimeUnitDiv(this);
 }
+
+antlrcpp::Any SV3_1aParser::TimeUnitsDecl_TimeUnitDivContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTimeUnitsDecl_TimeUnitDiv(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- TimeUnitsDecl_TimePrecisionTimeUnitContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::TimeUnitsDecl_TimePrecisionTimeUnitContext::TIMEPRECISION() {
@@ -5231,6 +5503,13 @@
   if (parserListener != nullptr)
     parserListener->exitTimeUnitsDecl_TimePrecisionTimeUnit(this);
 }
+
+antlrcpp::Any SV3_1aParser::TimeUnitsDecl_TimePrecisionTimeUnitContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTimeUnitsDecl_TimePrecisionTimeUnit(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- TimeUnitsDecl_TimeUnitTimePrecisionContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::TimeUnitsDecl_TimeUnitTimePrecisionContext::TIMEUNIT() {
@@ -5269,6 +5548,13 @@
   if (parserListener != nullptr)
     parserListener->exitTimeUnitsDecl_TimeUnitTimePrecision(this);
 }
+
+antlrcpp::Any SV3_1aParser::TimeUnitsDecl_TimeUnitTimePrecisionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTimeUnitsDecl_TimeUnitTimePrecision(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- TimeUnitsDecl_TimeUnitContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::TimeUnitsDecl_TimeUnitContext::TIMEUNIT() {
@@ -5295,6 +5581,13 @@
   if (parserListener != nullptr)
     parserListener->exitTimeUnitsDecl_TimeUnit(this);
 }
+
+antlrcpp::Any SV3_1aParser::TimeUnitsDecl_TimeUnitContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTimeUnitsDecl_TimeUnit(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- TimeUnitsDecl_TimePrecisionContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::TimeUnitsDecl_TimePrecisionContext::TIMEPRECISION() {
@@ -5321,6 +5614,13 @@
   if (parserListener != nullptr)
     parserListener->exitTimeUnitsDecl_TimePrecision(this);
 }
+
+antlrcpp::Any SV3_1aParser::TimeUnitsDecl_TimePrecisionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTimeUnitsDecl_TimePrecision(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Timeunits_declarationContext* SV3_1aParser::timeunits_declaration() {
   Timeunits_declarationContext *_localctx = _tracker.createInstance<Timeunits_declarationContext>(_ctx, getState());
   enterRule(_localctx, 66, SV3_1aParser::RuleTimeunits_declaration);
@@ -5475,6 +5775,14 @@
     parserListener->exitParameter_port_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Parameter_port_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitParameter_port_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Parameter_port_listContext* SV3_1aParser::parameter_port_list() {
   Parameter_port_listContext *_localctx = _tracker.createInstance<Parameter_port_listContext>(_ctx, getState());
   enterRule(_localctx, 68, SV3_1aParser::RuleParameter_port_list);
@@ -5607,6 +5915,14 @@
     parserListener->exitParameter_port_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Parameter_port_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitParameter_port_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Parameter_port_declarationContext* SV3_1aParser::parameter_port_declaration() {
   Parameter_port_declarationContext *_localctx = _tracker.createInstance<Parameter_port_declarationContext>(_ctx, getState());
   enterRule(_localctx, 70, SV3_1aParser::RuleParameter_port_declaration);
@@ -5709,6 +6025,14 @@
     parserListener->exitList_of_ports(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_portsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_ports(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_portsContext* SV3_1aParser::list_of_ports() {
   List_of_portsContext *_localctx = _tracker.createInstance<List_of_portsContext>(_ctx, getState());
   enterRule(_localctx, 72, SV3_1aParser::RuleList_of_ports);
@@ -5803,6 +6127,14 @@
     parserListener->exitList_of_port_declarations(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_port_declarationsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_port_declarations(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_port_declarationsContext* SV3_1aParser::list_of_port_declarations() {
   List_of_port_declarationsContext *_localctx = _tracker.createInstance<List_of_port_declarationsContext>(_ctx, getState());
   enterRule(_localctx, 74, SV3_1aParser::RuleList_of_port_declarations);
@@ -5977,6 +6309,14 @@
     parserListener->exitPort_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Port_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPort_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Port_declarationContext* SV3_1aParser::port_declaration() {
   Port_declarationContext *_localctx = _tracker.createInstance<Port_declarationContext>(_ctx, getState());
   enterRule(_localctx, 76, SV3_1aParser::RulePort_declaration);
@@ -6105,6 +6445,14 @@
     parserListener->exitPort(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::PortContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPort(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::PortContext* SV3_1aParser::port() {
   PortContext *_localctx = _tracker.createInstance<PortContext>(_ctx, getState());
   enterRule(_localctx, 78, SV3_1aParser::RulePort);
@@ -6210,6 +6558,14 @@
     parserListener->exitPort_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Port_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPort_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Port_expressionContext* SV3_1aParser::port_expression() {
   Port_expressionContext *_localctx = _tracker.createInstance<Port_expressionContext>(_ctx, getState());
   enterRule(_localctx, 80, SV3_1aParser::RulePort_expression);
@@ -6320,6 +6676,14 @@
     parserListener->exitPort_reference(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Port_referenceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPort_reference(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Port_referenceContext* SV3_1aParser::port_reference() {
   Port_referenceContext *_localctx = _tracker.createInstance<Port_referenceContext>(_ctx, getState());
   enterRule(_localctx, 82, SV3_1aParser::RulePort_reference);
@@ -6377,6 +6741,13 @@
   if (parserListener != nullptr)
     parserListener->exitPortDir_Inp(this);
 }
+
+antlrcpp::Any SV3_1aParser::PortDir_InpContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPortDir_Inp(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- PortDir_OutContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::PortDir_OutContext::OUTPUT() {
@@ -6395,6 +6766,13 @@
   if (parserListener != nullptr)
     parserListener->exitPortDir_Out(this);
 }
+
+antlrcpp::Any SV3_1aParser::PortDir_OutContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPortDir_Out(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- PortDir_RefContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::PortDir_RefContext::REF() {
@@ -6413,6 +6791,13 @@
   if (parserListener != nullptr)
     parserListener->exitPortDir_Ref(this);
 }
+
+antlrcpp::Any SV3_1aParser::PortDir_RefContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPortDir_Ref(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- PortDir_InoutContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::PortDir_InoutContext::INOUT() {
@@ -6431,6 +6816,13 @@
   if (parserListener != nullptr)
     parserListener->exitPortDir_Inout(this);
 }
+
+antlrcpp::Any SV3_1aParser::PortDir_InoutContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPortDir_Inout(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Port_directionContext* SV3_1aParser::port_direction() {
   Port_directionContext *_localctx = _tracker.createInstance<Port_directionContext>(_ctx, getState());
   enterRule(_localctx, 84, SV3_1aParser::RulePort_direction);
@@ -6519,6 +6911,14 @@
     parserListener->exitNet_port_header(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Net_port_headerContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNet_port_header(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Net_port_headerContext* SV3_1aParser::net_port_header() {
   Net_port_headerContext *_localctx = _tracker.createInstance<Net_port_headerContext>(_ctx, getState());
   enterRule(_localctx, 86, SV3_1aParser::RuleNet_port_header);
@@ -6585,6 +6985,14 @@
     parserListener->exitVariable_port_header(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Variable_port_headerContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitVariable_port_header(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Variable_port_headerContext* SV3_1aParser::variable_port_header() {
   Variable_port_headerContext *_localctx = _tracker.createInstance<Variable_port_headerContext>(_ctx, getState());
   enterRule(_localctx, 88, SV3_1aParser::RuleVariable_port_header);
@@ -6659,6 +7067,14 @@
     parserListener->exitInterface_port_header(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_port_headerContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_port_header(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_port_headerContext* SV3_1aParser::interface_port_header() {
   Interface_port_headerContext *_localctx = _tracker.createInstance<Interface_port_headerContext>(_ctx, getState());
   enterRule(_localctx, 90, SV3_1aParser::RuleInterface_port_header);
@@ -6816,6 +7232,14 @@
     parserListener->exitAnsi_port_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Ansi_port_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAnsi_port_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Ansi_port_declarationContext* SV3_1aParser::ansi_port_declaration() {
   Ansi_port_declarationContext *_localctx = _tracker.createInstance<Ansi_port_declarationContext>(_ctx, getState());
   enterRule(_localctx, 92, SV3_1aParser::RuleAnsi_port_declaration);
@@ -7083,6 +7507,14 @@
     parserListener->exitElaboration_system_task(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Elaboration_system_taskContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitElaboration_system_task(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Elaboration_system_taskContext* SV3_1aParser::elaboration_system_task() {
   Elaboration_system_taskContext *_localctx = _tracker.createInstance<Elaboration_system_taskContext>(_ctx, getState());
   enterRule(_localctx, 94, SV3_1aParser::RuleElaboration_system_task);
@@ -7288,6 +7720,14 @@
     parserListener->exitModule_common_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Module_common_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_common_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Module_common_itemContext* SV3_1aParser::module_common_item() {
   Module_common_itemContext *_localctx = _tracker.createInstance<Module_common_itemContext>(_ctx, getState());
   enterRule(_localctx, 96, SV3_1aParser::RuleModule_common_item);
@@ -7444,6 +7884,14 @@
     parserListener->exitModule_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Module_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Module_itemContext* SV3_1aParser::module_item() {
   Module_itemContext *_localctx = _tracker.createInstance<Module_itemContext>(_ctx, getState());
   enterRule(_localctx, 98, SV3_1aParser::RuleModule_item);
@@ -7534,6 +7982,14 @@
     parserListener->exitModule_or_generate_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Module_or_generate_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_or_generate_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Module_or_generate_itemContext* SV3_1aParser::module_or_generate_item() {
   Module_or_generate_itemContext *_localctx = _tracker.createInstance<Module_or_generate_itemContext>(_ctx, getState());
   enterRule(_localctx, 100, SV3_1aParser::RuleModule_or_generate_item);
@@ -7662,6 +8118,14 @@
     parserListener->exitModule_or_generate_item_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Module_or_generate_item_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_or_generate_item_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Module_or_generate_item_declarationContext* SV3_1aParser::module_or_generate_item_declaration() {
   Module_or_generate_item_declarationContext *_localctx = _tracker.createInstance<Module_or_generate_item_declarationContext>(_ctx, getState());
   enterRule(_localctx, 102, SV3_1aParser::RuleModule_or_generate_item_declaration);
@@ -7805,6 +8269,14 @@
     parserListener->exitNon_port_module_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Non_port_module_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNon_port_module_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Non_port_module_itemContext* SV3_1aParser::non_port_module_item() {
   Non_port_module_itemContext *_localctx = _tracker.createInstance<Non_port_module_itemContext>(_ctx, getState());
   enterRule(_localctx, 104, SV3_1aParser::RuleNon_port_module_item);
@@ -7944,6 +8416,14 @@
     parserListener->exitParameter_override(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Parameter_overrideContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitParameter_override(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Parameter_overrideContext* SV3_1aParser::parameter_override() {
   Parameter_overrideContext *_localctx = _tracker.createInstance<Parameter_overrideContext>(_ctx, getState());
   enterRule(_localctx, 106, SV3_1aParser::RuleParameter_override);
@@ -8049,6 +8529,14 @@
     parserListener->exitBind_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Bind_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBind_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Bind_directiveContext* SV3_1aParser::bind_directive() {
   Bind_directiveContext *_localctx = _tracker.createInstance<Bind_directiveContext>(_ctx, getState());
   enterRule(_localctx, 108, SV3_1aParser::RuleBind_directive);
@@ -8154,6 +8642,14 @@
     parserListener->exitBind_instantiation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Bind_instantiationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBind_instantiation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Bind_instantiationContext* SV3_1aParser::bind_instantiation() {
   Bind_instantiationContext *_localctx = _tracker.createInstance<Bind_instantiationContext>(_ctx, getState());
   enterRule(_localctx, 110, SV3_1aParser::RuleBind_instantiation);
@@ -8268,6 +8764,14 @@
     parserListener->exitInterface_or_generate_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_or_generate_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_or_generate_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_or_generate_itemContext* SV3_1aParser::interface_or_generate_item() {
   Interface_or_generate_itemContext *_localctx = _tracker.createInstance<Interface_or_generate_itemContext>(_ctx, getState());
   enterRule(_localctx, 112, SV3_1aParser::RuleInterface_or_generate_item);
@@ -8472,6 +8976,14 @@
     parserListener->exitExtern_tf_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Extern_tf_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitExtern_tf_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Extern_tf_declarationContext* SV3_1aParser::extern_tf_declaration() {
   Extern_tf_declarationContext *_localctx = _tracker.createInstance<Extern_tf_declarationContext>(_ctx, getState());
   enterRule(_localctx, 114, SV3_1aParser::RuleExtern_tf_declaration);
@@ -8554,6 +9066,14 @@
     parserListener->exitInterface_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_itemContext* SV3_1aParser::interface_item() {
   Interface_itemContext *_localctx = _tracker.createInstance<Interface_itemContext>(_ctx, getState());
   enterRule(_localctx, 116, SV3_1aParser::RuleInterface_item);
@@ -8652,6 +9172,14 @@
     parserListener->exitNon_port_interface_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Non_port_interface_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNon_port_interface_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Non_port_interface_itemContext* SV3_1aParser::non_port_interface_item() {
   Non_port_interface_itemContext *_localctx = _tracker.createInstance<Non_port_interface_itemContext>(_ctx, getState());
   enterRule(_localctx, 118, SV3_1aParser::RuleNon_port_interface_item);
@@ -8770,6 +9298,14 @@
     parserListener->exitProgram_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Program_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProgram_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Program_itemContext* SV3_1aParser::program_item() {
   Program_itemContext *_localctx = _tracker.createInstance<Program_itemContext>(_ctx, getState());
   enterRule(_localctx, 120, SV3_1aParser::RuleProgram_item);
@@ -8876,6 +9412,14 @@
     parserListener->exitNon_port_program_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Non_port_program_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNon_port_program_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Non_port_program_itemContext* SV3_1aParser::non_port_program_item() {
   Non_port_program_itemContext *_localctx = _tracker.createInstance<Non_port_program_itemContext>(_ctx, getState());
   enterRule(_localctx, 122, SV3_1aParser::RuleNon_port_program_item);
@@ -9062,6 +9606,14 @@
     parserListener->exitProgram_generate_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Program_generate_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProgram_generate_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Program_generate_itemContext* SV3_1aParser::program_generate_item() {
   Program_generate_itemContext *_localctx = _tracker.createInstance<Program_generate_itemContext>(_ctx, getState());
   enterRule(_localctx, 124, SV3_1aParser::RuleProgram_generate_item);
@@ -9151,6 +9703,14 @@
     parserListener->exitChecker_port_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Checker_port_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitChecker_port_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Checker_port_listContext* SV3_1aParser::checker_port_list() {
   Checker_port_listContext *_localctx = _tracker.createInstance<Checker_port_listContext>(_ctx, getState());
   enterRule(_localctx, 126, SV3_1aParser::RuleChecker_port_list);
@@ -9247,6 +9807,14 @@
     parserListener->exitChecker_port_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Checker_port_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitChecker_port_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Checker_port_itemContext* SV3_1aParser::checker_port_item() {
   Checker_port_itemContext *_localctx = _tracker.createInstance<Checker_port_itemContext>(_ctx, getState());
   enterRule(_localctx, 128, SV3_1aParser::RuleChecker_port_item);
@@ -9372,6 +9940,14 @@
     parserListener->exitChecker_or_generate_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Checker_or_generate_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitChecker_or_generate_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Checker_or_generate_itemContext* SV3_1aParser::checker_or_generate_item() {
   Checker_or_generate_itemContext *_localctx = _tracker.createInstance<Checker_or_generate_itemContext>(_ctx, getState());
   enterRule(_localctx, 130, SV3_1aParser::RuleChecker_or_generate_item);
@@ -9539,6 +10115,14 @@
     parserListener->exitChecker_or_generate_item_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Checker_or_generate_item_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitChecker_or_generate_item_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Checker_or_generate_item_declarationContext* SV3_1aParser::checker_or_generate_item_declaration() {
   Checker_or_generate_item_declarationContext *_localctx = _tracker.createInstance<Checker_or_generate_item_declarationContext>(_ctx, getState());
   enterRule(_localctx, 132, SV3_1aParser::RuleChecker_or_generate_item_declaration);
@@ -9710,6 +10294,14 @@
     parserListener->exitChecker_generate_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Checker_generate_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitChecker_generate_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Checker_generate_itemContext* SV3_1aParser::checker_generate_item() {
   Checker_generate_itemContext *_localctx = _tracker.createInstance<Checker_generate_itemContext>(_ctx, getState());
   enterRule(_localctx, 134, SV3_1aParser::RuleChecker_generate_item);
@@ -9835,6 +10427,14 @@
     parserListener->exitClass_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Class_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClass_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Class_itemContext* SV3_1aParser::class_item() {
   Class_itemContext *_localctx = _tracker.createInstance<Class_itemContext>(_ctx, getState());
   enterRule(_localctx, 136, SV3_1aParser::RuleClass_item);
@@ -10069,6 +10669,14 @@
     parserListener->exitClass_property(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Class_propertyContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClass_property(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Class_propertyContext* SV3_1aParser::class_property() {
   Class_propertyContext *_localctx = _tracker.createInstance<Class_propertyContext>(_ctx, getState());
   enterRule(_localctx, 138, SV3_1aParser::RuleClass_property);
@@ -10180,6 +10788,14 @@
     parserListener->exitPure_virtual_qualifier(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Pure_virtual_qualifierContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPure_virtual_qualifier(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Pure_virtual_qualifierContext* SV3_1aParser::pure_virtual_qualifier() {
   Pure_virtual_qualifierContext *_localctx = _tracker.createInstance<Pure_virtual_qualifierContext>(_ctx, getState());
   enterRule(_localctx, 140, SV3_1aParser::RulePure_virtual_qualifier);
@@ -10231,6 +10847,14 @@
     parserListener->exitExtern_qualifier(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Extern_qualifierContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitExtern_qualifier(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Extern_qualifierContext* SV3_1aParser::extern_qualifier() {
   Extern_qualifierContext *_localctx = _tracker.createInstance<Extern_qualifierContext>(_ctx, getState());
   enterRule(_localctx, 142, SV3_1aParser::RuleExtern_qualifier);
@@ -10324,6 +10948,14 @@
     parserListener->exitClass_method(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Class_methodContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClass_method(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Class_methodContext* SV3_1aParser::class_method() {
   Class_methodContext *_localctx = _tracker.createInstance<Class_methodContext>(_ctx, getState());
   enterRule(_localctx, 144, SV3_1aParser::RuleClass_method);
@@ -10502,6 +11134,14 @@
     parserListener->exitClass_constructor_prototype(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Class_constructor_prototypeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClass_constructor_prototype(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Class_constructor_prototypeContext* SV3_1aParser::class_constructor_prototype() {
   Class_constructor_prototypeContext *_localctx = _tracker.createInstance<Class_constructor_prototypeContext>(_ctx, getState());
   enterRule(_localctx, 146, SV3_1aParser::RuleClass_constructor_prototype);
@@ -10618,6 +11258,14 @@
     parserListener->exitClass_constraint(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Class_constraintContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClass_constraint(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Class_constraintContext* SV3_1aParser::class_constraint() {
   Class_constraintContext *_localctx = _tracker.createInstance<Class_constraintContext>(_ctx, getState());
   enterRule(_localctx, 148, SV3_1aParser::RuleClass_constraint);
@@ -10688,6 +11336,13 @@
   if (parserListener != nullptr)
     parserListener->exitClassItemQualifier_Static(this);
 }
+
+antlrcpp::Any SV3_1aParser::ClassItemQualifier_StaticContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClassItemQualifier_Static(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- ClassItemQualifier_LocalContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::ClassItemQualifier_LocalContext::LOCAL() {
@@ -10706,6 +11361,13 @@
   if (parserListener != nullptr)
     parserListener->exitClassItemQualifier_Local(this);
 }
+
+antlrcpp::Any SV3_1aParser::ClassItemQualifier_LocalContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClassItemQualifier_Local(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- ClassItemQualifier_ProtectedContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::ClassItemQualifier_ProtectedContext::PROTECTED() {
@@ -10724,6 +11386,13 @@
   if (parserListener != nullptr)
     parserListener->exitClassItemQualifier_Protected(this);
 }
+
+antlrcpp::Any SV3_1aParser::ClassItemQualifier_ProtectedContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClassItemQualifier_Protected(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Class_item_qualifierContext* SV3_1aParser::class_item_qualifier() {
   Class_item_qualifierContext *_localctx = _tracker.createInstance<Class_item_qualifierContext>(_ctx, getState());
   enterRule(_localctx, 150, SV3_1aParser::RuleClass_item_qualifier);
@@ -10806,6 +11475,13 @@
   if (parserListener != nullptr)
     parserListener->exitPropQualifier_ClassItem(this);
 }
+
+antlrcpp::Any SV3_1aParser::PropQualifier_ClassItemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPropQualifier_ClassItem(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- PropQualifier_RandContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::PropQualifier_RandContext::RAND() {
@@ -10824,6 +11500,13 @@
   if (parserListener != nullptr)
     parserListener->exitPropQualifier_Rand(this);
 }
+
+antlrcpp::Any SV3_1aParser::PropQualifier_RandContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPropQualifier_Rand(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- PropQualifier_RandcContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::PropQualifier_RandcContext::RANDC() {
@@ -10842,6 +11525,13 @@
   if (parserListener != nullptr)
     parserListener->exitPropQualifier_Randc(this);
 }
+
+antlrcpp::Any SV3_1aParser::PropQualifier_RandcContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPropQualifier_Randc(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Property_qualifierContext* SV3_1aParser::property_qualifier() {
   Property_qualifierContext *_localctx = _tracker.createInstance<Property_qualifierContext>(_ctx, getState());
   enterRule(_localctx, 152, SV3_1aParser::RuleProperty_qualifier);
@@ -10926,6 +11616,13 @@
   if (parserListener != nullptr)
     parserListener->exitMethodQualifier_Virtual(this);
 }
+
+antlrcpp::Any SV3_1aParser::MethodQualifier_VirtualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitMethodQualifier_Virtual(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- MethodQualifier_ClassItemContext ------------------------------------------------------------------
 
 SV3_1aParser::Class_item_qualifierContext* SV3_1aParser::MethodQualifier_ClassItemContext::class_item_qualifier() {
@@ -10944,6 +11641,13 @@
   if (parserListener != nullptr)
     parserListener->exitMethodQualifier_ClassItem(this);
 }
+
+antlrcpp::Any SV3_1aParser::MethodQualifier_ClassItemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitMethodQualifier_ClassItem(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Method_qualifierContext* SV3_1aParser::method_qualifier() {
   Method_qualifierContext *_localctx = _tracker.createInstance<Method_qualifierContext>(_ctx, getState());
   enterRule(_localctx, 154, SV3_1aParser::RuleMethod_qualifier);
@@ -11018,6 +11722,14 @@
     parserListener->exitMethod_prototype(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Method_prototypeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitMethod_prototype(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Method_prototypeContext* SV3_1aParser::method_prototype() {
   Method_prototypeContext *_localctx = _tracker.createInstance<Method_prototypeContext>(_ctx, getState());
   enterRule(_localctx, 156, SV3_1aParser::RuleMethod_prototype);
@@ -11092,6 +11804,14 @@
     parserListener->exitSuper_dot_new(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Super_dot_newContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSuper_dot_new(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Super_dot_newContext* SV3_1aParser::super_dot_new() {
   Super_dot_newContext *_localctx = _tracker.createInstance<Super_dot_newContext>(_ctx, getState());
   enterRule(_localctx, 158, SV3_1aParser::RuleSuper_dot_new);
@@ -11217,6 +11937,14 @@
     parserListener->exitClass_constructor_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Class_constructor_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClass_constructor_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Class_constructor_declarationContext* SV3_1aParser::class_constructor_declaration() {
   Class_constructor_declarationContext *_localctx = _tracker.createInstance<Class_constructor_declarationContext>(_ctx, getState());
   enterRule(_localctx, 160, SV3_1aParser::RuleClass_constructor_declaration);
@@ -11491,6 +12219,14 @@
     parserListener->exitConstraint_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constraint_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstraint_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constraint_declarationContext* SV3_1aParser::constraint_declaration() {
   Constraint_declarationContext *_localctx = _tracker.createInstance<Constraint_declarationContext>(_ctx, getState());
   enterRule(_localctx, 162, SV3_1aParser::RuleConstraint_declaration);
@@ -11565,6 +12301,14 @@
     parserListener->exitConstraint_block(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constraint_blockContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstraint_block(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constraint_blockContext* SV3_1aParser::constraint_block() {
   Constraint_blockContext *_localctx = _tracker.createInstance<Constraint_blockContext>(_ctx, getState());
   enterRule(_localctx, 164, SV3_1aParser::RuleConstraint_block);
@@ -11722,6 +12466,14 @@
     parserListener->exitConstraint_block_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constraint_block_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstraint_block_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constraint_block_itemContext* SV3_1aParser::constraint_block_item() {
   Constraint_block_itemContext *_localctx = _tracker.createInstance<Constraint_block_itemContext>(_ctx, getState());
   enterRule(_localctx, 166, SV3_1aParser::RuleConstraint_block_item);
@@ -11881,6 +12633,14 @@
     parserListener->exitSolve_before_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Solve_before_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSolve_before_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Solve_before_listContext* SV3_1aParser::solve_before_list() {
   Solve_before_listContext *_localctx = _tracker.createInstance<Solve_before_listContext>(_ctx, getState());
   enterRule(_localctx, 168, SV3_1aParser::RuleSolve_before_list);
@@ -11995,6 +12755,14 @@
     parserListener->exitConstraint_primary(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constraint_primaryContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstraint_primary(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constraint_primaryContext* SV3_1aParser::constraint_primary() {
   Constraint_primaryContext *_localctx = _tracker.createInstance<Constraint_primaryContext>(_ctx, getState());
   enterRule(_localctx, 170, SV3_1aParser::RuleConstraint_primary);
@@ -12175,6 +12943,14 @@
     parserListener->exitConstraint_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constraint_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstraint_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constraint_expressionContext* SV3_1aParser::constraint_expression() {
   Constraint_expressionContext *_localctx = _tracker.createInstance<Constraint_expressionContext>(_ctx, getState());
   enterRule(_localctx, 172, SV3_1aParser::RuleConstraint_expression);
@@ -12339,6 +13115,14 @@
     parserListener->exitUniqueness_constraint(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Uniqueness_constraintContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUniqueness_constraint(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Uniqueness_constraintContext* SV3_1aParser::uniqueness_constraint() {
   Uniqueness_constraintContext *_localctx = _tracker.createInstance<Uniqueness_constraintContext>(_ctx, getState());
   enterRule(_localctx, 174, SV3_1aParser::RuleUniqueness_constraint);
@@ -12406,6 +13190,14 @@
     parserListener->exitConstraint_set(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constraint_setContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstraint_set(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constraint_setContext* SV3_1aParser::constraint_set() {
   Constraint_setContext *_localctx = _tracker.createInstance<Constraint_setContext>(_ctx, getState());
   enterRule(_localctx, 176, SV3_1aParser::RuleConstraint_set);
@@ -12569,6 +13361,14 @@
     parserListener->exitDist_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dist_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDist_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dist_listContext* SV3_1aParser::dist_list() {
   Dist_listContext *_localctx = _tracker.createInstance<Dist_listContext>(_ctx, getState());
   enterRule(_localctx, 178, SV3_1aParser::RuleDist_list);
@@ -12635,6 +13435,14 @@
     parserListener->exitDist_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dist_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDist_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dist_itemContext* SV3_1aParser::dist_item() {
   Dist_itemContext *_localctx = _tracker.createInstance<Dist_itemContext>(_ctx, getState());
   enterRule(_localctx, 180, SV3_1aParser::RuleDist_item);
@@ -12705,6 +13513,13 @@
   if (parserListener != nullptr)
     parserListener->exitDistWeight_AssignValue(this);
 }
+
+antlrcpp::Any SV3_1aParser::DistWeight_AssignValueContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDistWeight_AssignValue(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- DistWeight_AssignRangeContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::DistWeight_AssignRangeContext::COLUMN() {
@@ -12731,6 +13546,13 @@
   if (parserListener != nullptr)
     parserListener->exitDistWeight_AssignRange(this);
 }
+
+antlrcpp::Any SV3_1aParser::DistWeight_AssignRangeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDistWeight_AssignRange(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Dist_weightContext* SV3_1aParser::dist_weight() {
   Dist_weightContext *_localctx = _tracker.createInstance<Dist_weightContext>(_ctx, getState());
   enterRule(_localctx, 182, SV3_1aParser::RuleDist_weight);
@@ -12825,6 +13647,14 @@
     parserListener->exitConstraint_prototype(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constraint_prototypeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstraint_prototype(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constraint_prototypeContext* SV3_1aParser::constraint_prototype() {
   Constraint_prototypeContext *_localctx = _tracker.createInstance<Constraint_prototypeContext>(_ctx, getState());
   enterRule(_localctx, 184, SV3_1aParser::RuleConstraint_prototype);
@@ -12926,6 +13756,14 @@
     parserListener->exitExtern_constraint_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Extern_constraint_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitExtern_constraint_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Extern_constraint_declarationContext* SV3_1aParser::extern_constraint_declaration() {
   Extern_constraint_declarationContext *_localctx = _tracker.createInstance<Extern_constraint_declarationContext>(_ctx, getState());
   enterRule(_localctx, 186, SV3_1aParser::RuleExtern_constraint_declaration);
@@ -13002,6 +13840,14 @@
     parserListener->exitIdentifier_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Identifier_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIdentifier_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Identifier_listContext* SV3_1aParser::identifier_list() {
   Identifier_listContext *_localctx = _tracker.createInstance<Identifier_listContext>(_ctx, getState());
   enterRule(_localctx, 188, SV3_1aParser::RuleIdentifier_list);
@@ -13082,6 +13928,14 @@
     parserListener->exitPackage_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Package_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPackage_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Package_itemContext* SV3_1aParser::package_item() {
   Package_itemContext *_localctx = _tracker.createInstance<Package_itemContext>(_ctx, getState());
   enterRule(_localctx, 190, SV3_1aParser::RulePackage_item);
@@ -13227,6 +14081,14 @@
     parserListener->exitPackage_or_generate_item_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Package_or_generate_item_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPackage_or_generate_item_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Package_or_generate_item_declarationContext* SV3_1aParser::package_or_generate_item_declaration() {
   Package_or_generate_item_declarationContext *_localctx = _tracker.createInstance<Package_or_generate_item_declarationContext>(_ctx, getState());
   enterRule(_localctx, 192, SV3_1aParser::RulePackage_or_generate_item_declaration);
@@ -13409,6 +14271,14 @@
     parserListener->exitAnonymous_program(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Anonymous_programContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAnonymous_program(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Anonymous_programContext* SV3_1aParser::anonymous_program() {
   Anonymous_programContext *_localctx = _tracker.createInstance<Anonymous_programContext>(_ctx, getState());
   enterRule(_localctx, 194, SV3_1aParser::RuleAnonymous_program);
@@ -13501,6 +14371,14 @@
     parserListener->exitAnonymous_program_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Anonymous_program_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAnonymous_program_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Anonymous_program_itemContext* SV3_1aParser::anonymous_program_item() {
   Anonymous_program_itemContext *_localctx = _tracker.createInstance<Anonymous_program_itemContext>(_ctx, getState());
   enterRule(_localctx, 196, SV3_1aParser::RuleAnonymous_program_item);
@@ -13612,6 +14490,14 @@
     parserListener->exitLocal_parameter_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Local_parameter_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLocal_parameter_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Local_parameter_declarationContext* SV3_1aParser::local_parameter_declaration() {
   Local_parameter_declarationContext *_localctx = _tracker.createInstance<Local_parameter_declarationContext>(_ctx, getState());
   enterRule(_localctx, 198, SV3_1aParser::RuleLocal_parameter_declaration);
@@ -13700,6 +14586,14 @@
     parserListener->exitParameter_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Parameter_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitParameter_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Parameter_declarationContext* SV3_1aParser::parameter_declaration() {
   Parameter_declarationContext *_localctx = _tracker.createInstance<Parameter_declarationContext>(_ctx, getState());
   enterRule(_localctx, 200, SV3_1aParser::RuleParameter_declaration);
@@ -13784,6 +14678,14 @@
     parserListener->exitSpecparam_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Specparam_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSpecparam_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Specparam_declarationContext* SV3_1aParser::specparam_declaration() {
   Specparam_declarationContext *_localctx = _tracker.createInstance<Specparam_declarationContext>(_ctx, getState());
   enterRule(_localctx, 202, SV3_1aParser::RuleSpecparam_declaration);
@@ -13854,6 +14756,14 @@
     parserListener->exitInout_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Inout_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInout_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Inout_declarationContext* SV3_1aParser::inout_declaration() {
   Inout_declarationContext *_localctx = _tracker.createInstance<Inout_declarationContext>(_ctx, getState());
   enterRule(_localctx, 204, SV3_1aParser::RuleInout_declaration);
@@ -13923,6 +14833,14 @@
     parserListener->exitInput_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Input_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInput_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Input_declarationContext* SV3_1aParser::input_declaration() {
   Input_declarationContext *_localctx = _tracker.createInstance<Input_declarationContext>(_ctx, getState());
   enterRule(_localctx, 206, SV3_1aParser::RuleInput_declaration);
@@ -14020,6 +14938,14 @@
     parserListener->exitOutput_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Output_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOutput_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Output_declarationContext* SV3_1aParser::output_declaration() {
   Output_declarationContext *_localctx = _tracker.createInstance<Output_declarationContext>(_ctx, getState());
   enterRule(_localctx, 208, SV3_1aParser::RuleOutput_declaration);
@@ -14113,6 +15039,14 @@
     parserListener->exitInterface_port_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_port_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_port_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_port_declarationContext* SV3_1aParser::interface_port_declaration() {
   Interface_port_declarationContext *_localctx = _tracker.createInstance<Interface_port_declarationContext>(_ctx, getState());
   enterRule(_localctx, 210, SV3_1aParser::RuleInterface_port_declaration);
@@ -14193,6 +15127,14 @@
     parserListener->exitRef_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Ref_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRef_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Ref_declarationContext* SV3_1aParser::ref_declaration() {
   Ref_declarationContext *_localctx = _tracker.createInstance<Ref_declarationContext>(_ctx, getState());
   enterRule(_localctx, 212, SV3_1aParser::RuleRef_declaration);
@@ -14270,6 +15212,14 @@
     parserListener->exitData_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Data_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitData_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Data_declarationContext* SV3_1aParser::data_declaration() {
   Data_declarationContext *_localctx = _tracker.createInstance<Data_declarationContext>(_ctx, getState());
   enterRule(_localctx, 214, SV3_1aParser::RuleData_declaration);
@@ -14439,6 +15389,14 @@
     parserListener->exitVariable_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Variable_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitVariable_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Variable_declarationContext* SV3_1aParser::variable_declaration() {
   Variable_declarationContext *_localctx = _tracker.createInstance<Variable_declarationContext>(_ctx, getState());
   enterRule(_localctx, 216, SV3_1aParser::RuleVariable_declaration);
@@ -14551,6 +15509,14 @@
     parserListener->exitPackage_import_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Package_import_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPackage_import_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Package_import_declarationContext* SV3_1aParser::package_import_declaration() {
   Package_import_declarationContext *_localctx = _tracker.createInstance<Package_import_declarationContext>(_ctx, getState());
   enterRule(_localctx, 218, SV3_1aParser::RulePackage_import_declaration);
@@ -14629,6 +15595,14 @@
     parserListener->exitPackage_import_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Package_import_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPackage_import_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Package_import_itemContext* SV3_1aParser::package_import_item() {
   Package_import_itemContext *_localctx = _tracker.createInstance<Package_import_itemContext>(_ctx, getState());
   enterRule(_localctx, 220, SV3_1aParser::RulePackage_import_item);
@@ -14721,6 +15695,14 @@
     parserListener->exitPackage_export_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Package_export_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPackage_export_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Package_export_declarationContext* SV3_1aParser::package_export_declaration() {
   Package_export_declarationContext *_localctx = _tracker.createInstance<Package_export_declarationContext>(_ctx, getState());
   enterRule(_localctx, 222, SV3_1aParser::RulePackage_export_declaration);
@@ -14812,6 +15794,14 @@
     parserListener->exitGenvar_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Genvar_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenvar_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Genvar_declarationContext* SV3_1aParser::genvar_declaration() {
   Genvar_declarationContext *_localctx = _tracker.createInstance<Genvar_declarationContext>(_ctx, getState());
   enterRule(_localctx, 224, SV3_1aParser::RuleGenvar_declaration);
@@ -14933,6 +15923,14 @@
     parserListener->exitNet_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Net_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNet_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Net_declarationContext* SV3_1aParser::net_declaration() {
   Net_declarationContext *_localctx = _tracker.createInstance<Net_declarationContext>(_ctx, getState());
   enterRule(_localctx, 226, SV3_1aParser::RuleNet_declaration);
@@ -15244,6 +16242,14 @@
     parserListener->exitType_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Type_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitType_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Type_declarationContext* SV3_1aParser::type_declaration() {
   Type_declarationContext *_localctx = _tracker.createInstance<Type_declarationContext>(_ctx, getState());
   enterRule(_localctx, 228, SV3_1aParser::RuleType_declaration);
@@ -15457,6 +16463,14 @@
     parserListener->exitEnum_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Enum_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEnum_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Enum_keywordContext* SV3_1aParser::enum_keyword() {
   Enum_keywordContext *_localctx = _tracker.createInstance<Enum_keywordContext>(_ctx, getState());
   enterRule(_localctx, 230, SV3_1aParser::RuleEnum_keyword);
@@ -15506,6 +16520,14 @@
     parserListener->exitStruct_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Struct_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStruct_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Struct_keywordContext* SV3_1aParser::struct_keyword() {
   Struct_keywordContext *_localctx = _tracker.createInstance<Struct_keywordContext>(_ctx, getState());
   enterRule(_localctx, 232, SV3_1aParser::RuleStruct_keyword);
@@ -15555,6 +16577,14 @@
     parserListener->exitUnion_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Union_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnion_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Union_keywordContext* SV3_1aParser::union_keyword() {
   Union_keywordContext *_localctx = _tracker.createInstance<Union_keywordContext>(_ctx, getState());
   enterRule(_localctx, 234, SV3_1aParser::RuleUnion_keyword);
@@ -15604,6 +16634,14 @@
     parserListener->exitClass_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Class_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClass_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Class_keywordContext* SV3_1aParser::class_keyword() {
   Class_keywordContext *_localctx = _tracker.createInstance<Class_keywordContext>(_ctx, getState());
   enterRule(_localctx, 236, SV3_1aParser::RuleClass_keyword);
@@ -15657,6 +16695,14 @@
     parserListener->exitInterface_class_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_class_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_class_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_class_keywordContext* SV3_1aParser::interface_class_keyword() {
   Interface_class_keywordContext *_localctx = _tracker.createInstance<Interface_class_keywordContext>(_ctx, getState());
   enterRule(_localctx, 238, SV3_1aParser::RuleInterface_class_keyword);
@@ -15736,6 +16782,14 @@
     parserListener->exitNet_type_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Net_type_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNet_type_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Net_type_declarationContext* SV3_1aParser::net_type_declaration() {
   Net_type_declarationContext *_localctx = _tracker.createInstance<Net_type_declarationContext>(_ctx, getState());
   enterRule(_localctx, 240, SV3_1aParser::RuleNet_type_declaration);
@@ -15858,6 +16912,13 @@
   if (parserListener != nullptr)
     parserListener->exitLifetime_Static(this);
 }
+
+antlrcpp::Any SV3_1aParser::Lifetime_StaticContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLifetime_Static(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Lifetime_AutomaticContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Lifetime_AutomaticContext::AUTOMATIC() {
@@ -15876,6 +16937,13 @@
   if (parserListener != nullptr)
     parserListener->exitLifetime_Automatic(this);
 }
+
+antlrcpp::Any SV3_1aParser::Lifetime_AutomaticContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLifetime_Automatic(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::LifetimeContext* SV3_1aParser::lifetime() {
   LifetimeContext *_localctx = _tracker.createInstance<LifetimeContext>(_ctx, getState());
   enterRule(_localctx, 242, SV3_1aParser::RuleLifetime);
@@ -15976,6 +17044,14 @@
     parserListener->exitCasting_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Casting_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCasting_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Casting_typeContext* SV3_1aParser::casting_type() {
   Casting_typeContext *_localctx = _tracker.createInstance<Casting_typeContext>(_ctx, getState());
   enterRule(_localctx, 244, SV3_1aParser::RuleCasting_type);
@@ -16211,6 +17287,14 @@
     parserListener->exitData_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Data_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitData_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Data_typeContext* SV3_1aParser::data_type() {
   Data_typeContext *_localctx = _tracker.createInstance<Data_typeContext>(_ctx, getState());
   enterRule(_localctx, 246, SV3_1aParser::RuleData_type);
@@ -16624,6 +17708,14 @@
     parserListener->exitPacked_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Packed_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPacked_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Packed_keywordContext* SV3_1aParser::packed_keyword() {
   Packed_keywordContext *_localctx = _tracker.createInstance<Packed_keywordContext>(_ctx, getState());
   enterRule(_localctx, 248, SV3_1aParser::RulePacked_keyword);
@@ -16673,6 +17765,14 @@
     parserListener->exitString_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::String_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitString_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::String_typeContext* SV3_1aParser::string_type() {
   String_typeContext *_localctx = _tracker.createInstance<String_typeContext>(_ctx, getState());
   enterRule(_localctx, 250, SV3_1aParser::RuleString_type);
@@ -16722,6 +17822,14 @@
     parserListener->exitString_value(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::String_valueContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitString_value(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::String_valueContext* SV3_1aParser::string_value() {
   String_valueContext *_localctx = _tracker.createInstance<String_valueContext>(_ctx, getState());
   enterRule(_localctx, 252, SV3_1aParser::RuleString_value);
@@ -16771,6 +17879,14 @@
     parserListener->exitChandle_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Chandle_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitChandle_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Chandle_typeContext* SV3_1aParser::chandle_type() {
   Chandle_typeContext *_localctx = _tracker.createInstance<Chandle_typeContext>(_ctx, getState());
   enterRule(_localctx, 254, SV3_1aParser::RuleChandle_type);
@@ -16820,6 +17936,14 @@
     parserListener->exitEvent_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Event_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEvent_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Event_typeContext* SV3_1aParser::event_type() {
   Event_typeContext *_localctx = _tracker.createInstance<Event_typeContext>(_ctx, getState());
   enterRule(_localctx, 256, SV3_1aParser::RuleEvent_type);
@@ -16869,6 +17993,14 @@
     parserListener->exitConst_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Const_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConst_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Const_typeContext* SV3_1aParser::const_type() {
   Const_typeContext *_localctx = _tracker.createInstance<Const_typeContext>(_ctx, getState());
   enterRule(_localctx, 258, SV3_1aParser::RuleConst_type);
@@ -16930,6 +18062,14 @@
     parserListener->exitData_type_or_implicit(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Data_type_or_implicitContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitData_type_or_implicit(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Data_type_or_implicitContext* SV3_1aParser::data_type_or_implicit() {
   Data_type_or_implicitContext *_localctx = _tracker.createInstance<Data_type_or_implicitContext>(_ctx, getState());
   enterRule(_localctx, 260, SV3_1aParser::RuleData_type_or_implicit);
@@ -17022,6 +18162,14 @@
     parserListener->exitImplicit_data_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Implicit_data_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitImplicit_data_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Implicit_data_typeContext* SV3_1aParser::implicit_data_type() {
   Implicit_data_typeContext *_localctx = _tracker.createInstance<Implicit_data_typeContext>(_ctx, getState());
   enterRule(_localctx, 262, SV3_1aParser::RuleImplicit_data_type);
@@ -17107,6 +18255,14 @@
     parserListener->exitEnum_base_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Enum_base_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEnum_base_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Enum_base_typeContext* SV3_1aParser::enum_base_type() {
   Enum_base_typeContext *_localctx = _tracker.createInstance<Enum_base_typeContext>(_ctx, getState());
   enterRule(_localctx, 264, SV3_1aParser::RuleEnum_base_type);
@@ -17243,6 +18399,14 @@
     parserListener->exitEnum_name_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Enum_name_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEnum_name_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Enum_name_declarationContext* SV3_1aParser::enum_name_declaration() {
   Enum_name_declarationContext *_localctx = _tracker.createInstance<Enum_name_declarationContext>(_ctx, getState());
   enterRule(_localctx, 266, SV3_1aParser::RuleEnum_name_declaration);
@@ -17329,6 +18493,14 @@
     parserListener->exitClass_scope(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Class_scopeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClass_scope(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Class_scopeContext* SV3_1aParser::class_scope() {
   Class_scopeContext *_localctx = _tracker.createInstance<Class_scopeContext>(_ctx, getState());
   enterRule(_localctx, 268, SV3_1aParser::RuleClass_scope);
@@ -17424,6 +18596,14 @@
     parserListener->exitClass_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Class_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClass_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Class_typeContext* SV3_1aParser::class_type() {
   Class_typeContext *_localctx = _tracker.createInstance<Class_typeContext>(_ctx, getState());
   enterRule(_localctx, 270, SV3_1aParser::RuleClass_type);
@@ -17521,6 +18701,14 @@
     parserListener->exitInteger_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Integer_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInteger_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Integer_typeContext* SV3_1aParser::integer_type() {
   Integer_typeContext *_localctx = _tracker.createInstance<Integer_typeContext>(_ctx, getState());
   enterRule(_localctx, 272, SV3_1aParser::RuleInteger_type);
@@ -17600,6 +18788,13 @@
   if (parserListener != nullptr)
     parserListener->exitIntegerAtomType_Shortint(this);
 }
+
+antlrcpp::Any SV3_1aParser::IntegerAtomType_ShortintContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIntegerAtomType_Shortint(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- IntegerAtomType_IntContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::IntegerAtomType_IntContext::INT() {
@@ -17622,6 +18817,13 @@
   if (parserListener != nullptr)
     parserListener->exitIntegerAtomType_Int(this);
 }
+
+antlrcpp::Any SV3_1aParser::IntegerAtomType_IntContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIntegerAtomType_Int(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- IntegerAtomType_TimeContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::IntegerAtomType_TimeContext::TIME() {
@@ -17640,6 +18842,13 @@
   if (parserListener != nullptr)
     parserListener->exitIntegerAtomType_Time(this);
 }
+
+antlrcpp::Any SV3_1aParser::IntegerAtomType_TimeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIntegerAtomType_Time(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- IntegerAtomType_ByteContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::IntegerAtomType_ByteContext::BYTE() {
@@ -17658,6 +18867,13 @@
   if (parserListener != nullptr)
     parserListener->exitIntegerAtomType_Byte(this);
 }
+
+antlrcpp::Any SV3_1aParser::IntegerAtomType_ByteContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIntegerAtomType_Byte(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- IntegerAtomType_LongIntContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::IntegerAtomType_LongIntContext::LONGINT() {
@@ -17676,6 +18892,13 @@
   if (parserListener != nullptr)
     parserListener->exitIntegerAtomType_LongInt(this);
 }
+
+antlrcpp::Any SV3_1aParser::IntegerAtomType_LongIntContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIntegerAtomType_LongInt(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Integer_atom_typeContext* SV3_1aParser::integer_atom_type() {
   Integer_atom_typeContext *_localctx = _tracker.createInstance<Integer_atom_typeContext>(_ctx, getState());
   enterRule(_localctx, 274, SV3_1aParser::RuleInteger_atom_type);
@@ -17782,6 +19005,13 @@
   if (parserListener != nullptr)
     parserListener->exitIntVec_TypeBit(this);
 }
+
+antlrcpp::Any SV3_1aParser::IntVec_TypeBitContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIntVec_TypeBit(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- IntVec_TypeRegContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::IntVec_TypeRegContext::REG() {
@@ -17800,6 +19030,13 @@
   if (parserListener != nullptr)
     parserListener->exitIntVec_TypeReg(this);
 }
+
+antlrcpp::Any SV3_1aParser::IntVec_TypeRegContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIntVec_TypeReg(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- IntVec_TypeLogicContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::IntVec_TypeLogicContext::LOGIC() {
@@ -17818,6 +19055,13 @@
   if (parserListener != nullptr)
     parserListener->exitIntVec_TypeLogic(this);
 }
+
+antlrcpp::Any SV3_1aParser::IntVec_TypeLogicContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIntVec_TypeLogic(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Integer_vector_typeContext* SV3_1aParser::integer_vector_type() {
   Integer_vector_typeContext *_localctx = _tracker.createInstance<Integer_vector_typeContext>(_ctx, getState());
   enterRule(_localctx, 276, SV3_1aParser::RuleInteger_vector_type);
@@ -17900,6 +19144,13 @@
   if (parserListener != nullptr)
     parserListener->exitNonIntType_RealTime(this);
 }
+
+antlrcpp::Any SV3_1aParser::NonIntType_RealTimeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNonIntType_RealTime(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NonIntType_ShortRealContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NonIntType_ShortRealContext::SHORTREAL() {
@@ -17918,6 +19169,13 @@
   if (parserListener != nullptr)
     parserListener->exitNonIntType_ShortReal(this);
 }
+
+antlrcpp::Any SV3_1aParser::NonIntType_ShortRealContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNonIntType_ShortReal(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NonIntType_RealContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NonIntType_RealContext::REAL() {
@@ -17936,6 +19194,13 @@
   if (parserListener != nullptr)
     parserListener->exitNonIntType_Real(this);
 }
+
+antlrcpp::Any SV3_1aParser::NonIntType_RealContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNonIntType_Real(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Non_integer_typeContext* SV3_1aParser::non_integer_type() {
   Non_integer_typeContext *_localctx = _tracker.createInstance<Non_integer_typeContext>(_ctx, getState());
   enterRule(_localctx, 278, SV3_1aParser::RuleNon_integer_type);
@@ -18018,6 +19283,13 @@
   if (parserListener != nullptr)
     parserListener->exitNetType_Supply0(this);
 }
+
+antlrcpp::Any SV3_1aParser::NetType_Supply0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNetType_Supply0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NetType_WireContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NetType_WireContext::WIRE() {
@@ -18036,6 +19308,13 @@
   if (parserListener != nullptr)
     parserListener->exitNetType_Wire(this);
 }
+
+antlrcpp::Any SV3_1aParser::NetType_WireContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNetType_Wire(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NetType_Supply1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NetType_Supply1Context::SUPPLY1() {
@@ -18054,6 +19333,13 @@
   if (parserListener != nullptr)
     parserListener->exitNetType_Supply1(this);
 }
+
+antlrcpp::Any SV3_1aParser::NetType_Supply1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNetType_Supply1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NetType_WandContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NetType_WandContext::WAND() {
@@ -18072,6 +19358,13 @@
   if (parserListener != nullptr)
     parserListener->exitNetType_Wand(this);
 }
+
+antlrcpp::Any SV3_1aParser::NetType_WandContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNetType_Wand(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NetType_Tri1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NetType_Tri1Context::TRI1() {
@@ -18090,6 +19383,13 @@
   if (parserListener != nullptr)
     parserListener->exitNetType_Tri1(this);
 }
+
+antlrcpp::Any SV3_1aParser::NetType_Tri1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNetType_Tri1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NetType_Tri0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NetType_Tri0Context::TRI0() {
@@ -18108,6 +19408,13 @@
   if (parserListener != nullptr)
     parserListener->exitNetType_Tri0(this);
 }
+
+antlrcpp::Any SV3_1aParser::NetType_Tri0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNetType_Tri0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NetType_TriOrContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NetType_TriOrContext::TRIOR() {
@@ -18126,6 +19433,13 @@
   if (parserListener != nullptr)
     parserListener->exitNetType_TriOr(this);
 }
+
+antlrcpp::Any SV3_1aParser::NetType_TriOrContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNetType_TriOr(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NetType_TriContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NetType_TriContext::TRI() {
@@ -18144,6 +19458,13 @@
   if (parserListener != nullptr)
     parserListener->exitNetType_Tri(this);
 }
+
+antlrcpp::Any SV3_1aParser::NetType_TriContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNetType_Tri(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NetType_TriRegContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NetType_TriRegContext::TRIREG() {
@@ -18162,6 +19483,13 @@
   if (parserListener != nullptr)
     parserListener->exitNetType_TriReg(this);
 }
+
+antlrcpp::Any SV3_1aParser::NetType_TriRegContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNetType_TriReg(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NetType_WorContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NetType_WorContext::WOR() {
@@ -18180,6 +19508,13 @@
   if (parserListener != nullptr)
     parserListener->exitNetType_Wor(this);
 }
+
+antlrcpp::Any SV3_1aParser::NetType_WorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNetType_Wor(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NetType_UwireContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NetType_UwireContext::UWIRE() {
@@ -18198,6 +19533,13 @@
   if (parserListener != nullptr)
     parserListener->exitNetType_Uwire(this);
 }
+
+antlrcpp::Any SV3_1aParser::NetType_UwireContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNetType_Uwire(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NetType_TriAndContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NetType_TriAndContext::TRIAND() {
@@ -18216,6 +19558,13 @@
   if (parserListener != nullptr)
     parserListener->exitNetType_TriAnd(this);
 }
+
+antlrcpp::Any SV3_1aParser::NetType_TriAndContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNetType_TriAnd(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Net_typeContext* SV3_1aParser::net_type() {
   Net_typeContext *_localctx = _tracker.createInstance<Net_typeContext>(_ctx, getState());
   enterRule(_localctx, 280, SV3_1aParser::RuleNet_type);
@@ -18380,6 +19729,14 @@
     parserListener->exitNet_port_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Net_port_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNet_port_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Net_port_typeContext* SV3_1aParser::net_port_type() {
   Net_port_typeContext *_localctx = _tracker.createInstance<Net_port_typeContext>(_ctx, getState());
   enterRule(_localctx, 282, SV3_1aParser::RuleNet_port_type);
@@ -18486,6 +19843,14 @@
     parserListener->exitVariable_port_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Variable_port_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitVariable_port_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Variable_port_typeContext* SV3_1aParser::variable_port_type() {
   Variable_port_typeContext *_localctx = _tracker.createInstance<Variable_port_typeContext>(_ctx, getState());
   enterRule(_localctx, 284, SV3_1aParser::RuleVariable_port_type);
@@ -18599,6 +19964,14 @@
     parserListener->exitVar_data_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Var_data_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitVar_data_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Var_data_typeContext* SV3_1aParser::var_data_type() {
   Var_data_typeContext *_localctx = _tracker.createInstance<Var_data_typeContext>(_ctx, getState());
   enterRule(_localctx, 286, SV3_1aParser::RuleVar_data_type);
@@ -18671,6 +20044,13 @@
   if (parserListener != nullptr)
     parserListener->exitSigning_Unsigned(this);
 }
+
+antlrcpp::Any SV3_1aParser::Signing_UnsignedContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSigning_Unsigned(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Signing_SignedContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Signing_SignedContext::SIGNED() {
@@ -18689,6 +20069,13 @@
   if (parserListener != nullptr)
     parserListener->exitSigning_Signed(this);
 }
+
+antlrcpp::Any SV3_1aParser::Signing_SignedContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSigning_Signed(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::SigningContext* SV3_1aParser::signing() {
   SigningContext *_localctx = _tracker.createInstance<SigningContext>(_ctx, getState());
   enterRule(_localctx, 288, SV3_1aParser::RuleSigning);
@@ -18765,6 +20152,14 @@
     parserListener->exitSimple_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Simple_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSimple_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Simple_typeContext* SV3_1aParser::simple_type() {
   Simple_typeContext *_localctx = _tracker.createInstance<Simple_typeContext>(_ctx, getState());
   enterRule(_localctx, 290, SV3_1aParser::RuleSimple_type);
@@ -18842,6 +20237,13 @@
   if (parserListener != nullptr)
     parserListener->exitRandomQualifier_RandC(this);
 }
+
+antlrcpp::Any SV3_1aParser::RandomQualifier_RandCContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRandomQualifier_RandC(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- RandomQualifier_RandContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::RandomQualifier_RandContext::RAND() {
@@ -18860,6 +20262,13 @@
   if (parserListener != nullptr)
     parserListener->exitRandomQualifier_Rand(this);
 }
+
+antlrcpp::Any SV3_1aParser::RandomQualifier_RandContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRandomQualifier_Rand(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Random_qualifierContext* SV3_1aParser::random_qualifier() {
   Random_qualifierContext *_localctx = _tracker.createInstance<Random_qualifierContext>(_ctx, getState());
   enterRule(_localctx, 292, SV3_1aParser::RuleRandom_qualifier);
@@ -18948,6 +20357,14 @@
     parserListener->exitStruct_union_member(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Struct_union_memberContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStruct_union_member(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Struct_union_memberContext* SV3_1aParser::struct_union_member() {
   Struct_union_memberContext *_localctx = _tracker.createInstance<Struct_union_memberContext>(_ctx, getState());
   enterRule(_localctx, 294, SV3_1aParser::RuleStruct_union_member);
@@ -19026,6 +20443,14 @@
     parserListener->exitData_type_or_void(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Data_type_or_voidContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitData_type_or_void(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Data_type_or_voidContext* SV3_1aParser::data_type_or_void() {
   Data_type_or_voidContext *_localctx = _tracker.createInstance<Data_type_or_voidContext>(_ctx, getState());
   enterRule(_localctx, 296, SV3_1aParser::RuleData_type_or_void);
@@ -19135,6 +20560,14 @@
     parserListener->exitStruct_union(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Struct_unionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStruct_union(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Struct_unionContext* SV3_1aParser::struct_union() {
   Struct_unionContext *_localctx = _tracker.createInstance<Struct_unionContext>(_ctx, getState());
   enterRule(_localctx, 298, SV3_1aParser::RuleStruct_union);
@@ -19210,6 +20643,14 @@
     parserListener->exitTagged_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Tagged_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTagged_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Tagged_keywordContext* SV3_1aParser::tagged_keyword() {
   Tagged_keywordContext *_localctx = _tracker.createInstance<Tagged_keywordContext>(_ctx, getState());
   enterRule(_localctx, 300, SV3_1aParser::RuleTagged_keyword);
@@ -19275,6 +20716,14 @@
     parserListener->exitType_reference(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Type_referenceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitType_reference(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Type_referenceContext* SV3_1aParser::type_reference() {
   Type_referenceContext *_localctx = _tracker.createInstance<Type_referenceContext>(_ctx, getState());
   enterRule(_localctx, 302, SV3_1aParser::RuleType_reference);
@@ -19375,6 +20824,14 @@
     parserListener->exitDrive_strength(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Drive_strengthContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDrive_strength(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Drive_strengthContext* SV3_1aParser::drive_strength() {
   Drive_strengthContext *_localctx = _tracker.createInstance<Drive_strengthContext>(_ctx, getState());
   enterRule(_localctx, 304, SV3_1aParser::RuleDrive_strength);
@@ -19521,6 +20978,13 @@
   if (parserListener != nullptr)
     parserListener->exitStrength0_Weak0(this);
 }
+
+antlrcpp::Any SV3_1aParser::Strength0_Weak0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStrength0_Weak0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Strength0_Strong0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Strength0_Strong0Context::STRONG0() {
@@ -19539,6 +21003,13 @@
   if (parserListener != nullptr)
     parserListener->exitStrength0_Strong0(this);
 }
+
+antlrcpp::Any SV3_1aParser::Strength0_Strong0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStrength0_Strong0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Strength0_Pull0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Strength0_Pull0Context::PULL0() {
@@ -19557,6 +21028,13 @@
   if (parserListener != nullptr)
     parserListener->exitStrength0_Pull0(this);
 }
+
+antlrcpp::Any SV3_1aParser::Strength0_Pull0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStrength0_Pull0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Strength0_Supply0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Strength0_Supply0Context::SUPPLY0() {
@@ -19575,6 +21053,13 @@
   if (parserListener != nullptr)
     parserListener->exitStrength0_Supply0(this);
 }
+
+antlrcpp::Any SV3_1aParser::Strength0_Supply0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStrength0_Supply0(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Strength0Context* SV3_1aParser::strength0() {
   Strength0Context *_localctx = _tracker.createInstance<Strength0Context>(_ctx, getState());
   enterRule(_localctx, 306, SV3_1aParser::RuleStrength0);
@@ -19665,6 +21150,13 @@
   if (parserListener != nullptr)
     parserListener->exitStrength1_Supply1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Strength1_Supply1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStrength1_Supply1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Strength1_Strong1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Strength1_Strong1Context::STRONG1() {
@@ -19683,6 +21175,13 @@
   if (parserListener != nullptr)
     parserListener->exitStrength1_Strong1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Strength1_Strong1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStrength1_Strong1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Strength1_Pull1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Strength1_Pull1Context::PULL1() {
@@ -19701,6 +21200,13 @@
   if (parserListener != nullptr)
     parserListener->exitStrength1_Pull1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Strength1_Pull1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStrength1_Pull1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Strength1_Weak1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Strength1_Weak1Context::WEAK1() {
@@ -19719,6 +21225,13 @@
   if (parserListener != nullptr)
     parserListener->exitStrength1_Weak1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Strength1_Weak1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStrength1_Weak1(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Strength1Context* SV3_1aParser::strength1() {
   Strength1Context *_localctx = _tracker.createInstance<Strength1Context>(_ctx, getState());
   enterRule(_localctx, 308, SV3_1aParser::RuleStrength1);
@@ -19809,6 +21322,13 @@
   if (parserListener != nullptr)
     parserListener->exitChargeStrength_Small(this);
 }
+
+antlrcpp::Any SV3_1aParser::ChargeStrength_SmallContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitChargeStrength_Small(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- ChargeStrength_MediumContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::ChargeStrength_MediumContext::MEDIUM() {
@@ -19827,6 +21347,13 @@
   if (parserListener != nullptr)
     parserListener->exitChargeStrength_Medium(this);
 }
+
+antlrcpp::Any SV3_1aParser::ChargeStrength_MediumContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitChargeStrength_Medium(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- ChargeStrength_LargeContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::ChargeStrength_LargeContext::LARGE() {
@@ -19845,6 +21372,13 @@
   if (parserListener != nullptr)
     parserListener->exitChargeStrength_Large(this);
 }
+
+antlrcpp::Any SV3_1aParser::ChargeStrength_LargeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitChargeStrength_Large(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Charge_strengthContext* SV3_1aParser::charge_strength() {
   Charge_strengthContext *_localctx = _tracker.createInstance<Charge_strengthContext>(_ctx, getState());
   enterRule(_localctx, 310, SV3_1aParser::RuleCharge_strength);
@@ -19949,6 +21483,14 @@
     parserListener->exitDelay3(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Delay3Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDelay3(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Delay3Context* SV3_1aParser::delay3() {
   Delay3Context *_localctx = _tracker.createInstance<Delay3Context>(_ctx, getState());
   enterRule(_localctx, 312, SV3_1aParser::RuleDelay3);
@@ -20064,6 +21606,14 @@
     parserListener->exitDelay2(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Delay2Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDelay2(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Delay2Context* SV3_1aParser::delay2() {
   Delay2Context *_localctx = _tracker.createInstance<Delay2Context>(_ctx, getState());
   enterRule(_localctx, 314, SV3_1aParser::RuleDelay2);
@@ -20157,6 +21707,14 @@
     parserListener->exitPound_delay_value(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Pound_delay_valueContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPound_delay_value(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Pound_delay_valueContext* SV3_1aParser::pound_delay_value() {
   Pound_delay_valueContext *_localctx = _tracker.createInstance<Pound_delay_valueContext>(_ctx, getState());
   enterRule(_localctx, 316, SV3_1aParser::RulePound_delay_value);
@@ -20256,6 +21814,14 @@
     parserListener->exitDelay_value(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Delay_valueContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDelay_value(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Delay_valueContext* SV3_1aParser::delay_value() {
   Delay_valueContext *_localctx = _tracker.createInstance<Delay_valueContext>(_ctx, getState());
   enterRule(_localctx, 318, SV3_1aParser::RuleDelay_value);
@@ -20360,6 +21926,14 @@
     parserListener->exitList_of_defparam_assignments(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_defparam_assignmentsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_defparam_assignments(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_defparam_assignmentsContext* SV3_1aParser::list_of_defparam_assignments() {
   List_of_defparam_assignmentsContext *_localctx = _tracker.createInstance<List_of_defparam_assignmentsContext>(_ctx, getState());
   enterRule(_localctx, 320, SV3_1aParser::RuleList_of_defparam_assignments);
@@ -20442,6 +22016,14 @@
     parserListener->exitList_of_interface_identifiers(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_interface_identifiersContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_interface_identifiers(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_interface_identifiersContext* SV3_1aParser::list_of_interface_identifiers() {
   List_of_interface_identifiersContext *_localctx = _tracker.createInstance<List_of_interface_identifiersContext>(_ctx, getState());
   enterRule(_localctx, 322, SV3_1aParser::RuleList_of_interface_identifiers);
@@ -20536,6 +22118,14 @@
     parserListener->exitList_of_net_decl_assignments(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_net_decl_assignmentsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_net_decl_assignments(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_net_decl_assignmentsContext* SV3_1aParser::list_of_net_decl_assignments() {
   List_of_net_decl_assignmentsContext *_localctx = _tracker.createInstance<List_of_net_decl_assignmentsContext>(_ctx, getState());
   enterRule(_localctx, 324, SV3_1aParser::RuleList_of_net_decl_assignments);
@@ -20610,6 +22200,14 @@
     parserListener->exitList_of_param_assignments(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_param_assignmentsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_param_assignments(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_param_assignmentsContext* SV3_1aParser::list_of_param_assignments() {
   List_of_param_assignmentsContext *_localctx = _tracker.createInstance<List_of_param_assignmentsContext>(_ctx, getState());
   enterRule(_localctx, 326, SV3_1aParser::RuleList_of_param_assignments);
@@ -20694,6 +22292,14 @@
     parserListener->exitList_of_port_identifiers(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_port_identifiersContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_port_identifiers(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_port_identifiersContext* SV3_1aParser::list_of_port_identifiers() {
   List_of_port_identifiersContext *_localctx = _tracker.createInstance<List_of_port_identifiersContext>(_ctx, getState());
   enterRule(_localctx, 328, SV3_1aParser::RuleList_of_port_identifiers);
@@ -20788,6 +22394,14 @@
     parserListener->exitList_of_specparam_assignments(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_specparam_assignmentsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_specparam_assignments(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_specparam_assignmentsContext* SV3_1aParser::list_of_specparam_assignments() {
   List_of_specparam_assignmentsContext *_localctx = _tracker.createInstance<List_of_specparam_assignmentsContext>(_ctx, getState());
   enterRule(_localctx, 330, SV3_1aParser::RuleList_of_specparam_assignments);
@@ -20886,6 +22500,14 @@
     parserListener->exitList_of_tf_variable_identifiers(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_tf_variable_identifiersContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_tf_variable_identifiers(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_tf_variable_identifiersContext* SV3_1aParser::list_of_tf_variable_identifiers() {
   List_of_tf_variable_identifiersContext *_localctx = _tracker.createInstance<List_of_tf_variable_identifiersContext>(_ctx, getState());
   enterRule(_localctx, 332, SV3_1aParser::RuleList_of_tf_variable_identifiers);
@@ -21016,6 +22638,14 @@
     parserListener->exitList_of_type_assignments(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_type_assignmentsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_type_assignments(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_type_assignmentsContext* SV3_1aParser::list_of_type_assignments() {
   List_of_type_assignmentsContext *_localctx = _tracker.createInstance<List_of_type_assignmentsContext>(_ctx, getState());
   enterRule(_localctx, 334, SV3_1aParser::RuleList_of_type_assignments);
@@ -21114,6 +22744,14 @@
     parserListener->exitList_of_variable_decl_assignments(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_variable_decl_assignmentsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_variable_decl_assignments(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_variable_decl_assignmentsContext* SV3_1aParser::list_of_variable_decl_assignments() {
   List_of_variable_decl_assignmentsContext *_localctx = _tracker.createInstance<List_of_variable_decl_assignmentsContext>(_ctx, getState());
   enterRule(_localctx, 336, SV3_1aParser::RuleList_of_variable_decl_assignments);
@@ -21196,6 +22834,14 @@
     parserListener->exitList_of_variable_identifiers(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_variable_identifiersContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_variable_identifiers(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_variable_identifiersContext* SV3_1aParser::list_of_variable_identifiers() {
   List_of_variable_identifiersContext *_localctx = _tracker.createInstance<List_of_variable_identifiersContext>(_ctx, getState());
   enterRule(_localctx, 338, SV3_1aParser::RuleList_of_variable_identifiers);
@@ -21314,6 +22960,14 @@
     parserListener->exitList_of_variable_port_identifiers(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_variable_port_identifiersContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_variable_port_identifiers(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_variable_port_identifiersContext* SV3_1aParser::list_of_variable_port_identifiers() {
   List_of_variable_port_identifiersContext *_localctx = _tracker.createInstance<List_of_variable_port_identifiersContext>(_ctx, getState());
   enterRule(_localctx, 340, SV3_1aParser::RuleList_of_variable_port_identifiers);
@@ -21436,6 +23090,14 @@
     parserListener->exitList_of_virtual_interface_decl(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_virtual_interface_declContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_virtual_interface_decl(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_virtual_interface_declContext* SV3_1aParser::list_of_virtual_interface_decl() {
   List_of_virtual_interface_declContext *_localctx = _tracker.createInstance<List_of_virtual_interface_declContext>(_ctx, getState());
   enterRule(_localctx, 342, SV3_1aParser::RuleList_of_virtual_interface_decl);
@@ -21526,6 +23188,14 @@
     parserListener->exitDefparam_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Defparam_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDefparam_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Defparam_assignmentContext* SV3_1aParser::defparam_assignment() {
   Defparam_assignmentContext *_localctx = _tracker.createInstance<Defparam_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 344, SV3_1aParser::RuleDefparam_assignment);
@@ -21595,6 +23265,14 @@
     parserListener->exitNet_decl_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Net_decl_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNet_decl_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Net_decl_assignmentContext* SV3_1aParser::net_decl_assignment() {
   Net_decl_assignmentContext *_localctx = _tracker.createInstance<Net_decl_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 346, SV3_1aParser::RuleNet_decl_assignment);
@@ -21681,6 +23359,14 @@
     parserListener->exitParam_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Param_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitParam_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Param_assignmentContext* SV3_1aParser::param_assignment() {
   Param_assignmentContext *_localctx = _tracker.createInstance<Param_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 348, SV3_1aParser::RuleParam_assignment);
@@ -21766,6 +23452,14 @@
     parserListener->exitSpecparam_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Specparam_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSpecparam_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Specparam_assignmentContext* SV3_1aParser::specparam_assignment() {
   Specparam_assignmentContext *_localctx = _tracker.createInstance<Specparam_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 350, SV3_1aParser::RuleSpecparam_assignment);
@@ -21897,6 +23591,14 @@
     parserListener->exitPulse_control_specparam(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Pulse_control_specparamContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPulse_control_specparam(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Pulse_control_specparamContext* SV3_1aParser::pulse_control_specparam() {
   Pulse_control_specparamContext *_localctx = _tracker.createInstance<Pulse_control_specparamContext>(_ctx, getState());
   enterRule(_localctx, 352, SV3_1aParser::RulePulse_control_specparam);
@@ -22056,6 +23758,14 @@
     parserListener->exitVariable_decl_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Variable_decl_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitVariable_decl_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Variable_decl_assignmentContext* SV3_1aParser::variable_decl_assignment() {
   Variable_decl_assignmentContext *_localctx = _tracker.createInstance<Variable_decl_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 354, SV3_1aParser::RuleVariable_decl_assignment);
@@ -22208,6 +23918,14 @@
     parserListener->exitClass_new(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Class_newContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClass_new(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Class_newContext* SV3_1aParser::class_new() {
   Class_newContext *_localctx = _tracker.createInstance<Class_newContext>(_ctx, getState());
   enterRule(_localctx, 356, SV3_1aParser::RuleClass_new);
@@ -22316,6 +24034,14 @@
     parserListener->exitDynamic_array_new(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dynamic_array_newContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDynamic_array_new(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dynamic_array_newContext* SV3_1aParser::dynamic_array_new() {
   Dynamic_array_newContext *_localctx = _tracker.createInstance<Dynamic_array_newContext>(_ctx, getState());
   enterRule(_localctx, 358, SV3_1aParser::RuleDynamic_array_new);
@@ -22396,6 +24122,14 @@
     parserListener->exitUnpacked_dimension(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Unpacked_dimensionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnpacked_dimension(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Unpacked_dimensionContext* SV3_1aParser::unpacked_dimension() {
   Unpacked_dimensionContext *_localctx = _tracker.createInstance<Unpacked_dimensionContext>(_ctx, getState());
   enterRule(_localctx, 360, SV3_1aParser::RuleUnpacked_dimension);
@@ -22480,6 +24214,14 @@
     parserListener->exitPacked_dimension(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Packed_dimensionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPacked_dimension(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Packed_dimensionContext* SV3_1aParser::packed_dimension() {
   Packed_dimensionContext *_localctx = _tracker.createInstance<Packed_dimensionContext>(_ctx, getState());
   enterRule(_localctx, 362, SV3_1aParser::RulePacked_dimension);
@@ -22560,6 +24302,14 @@
     parserListener->exitAssociative_dimension(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Associative_dimensionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssociative_dimension(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Associative_dimensionContext* SV3_1aParser::associative_dimension() {
   Associative_dimensionContext *_localctx = _tracker.createInstance<Associative_dimensionContext>(_ctx, getState());
   enterRule(_localctx, 364, SV3_1aParser::RuleAssociative_dimension);
@@ -22642,6 +24392,14 @@
     parserListener->exitVariable_dimension(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Variable_dimensionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitVariable_dimension(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Variable_dimensionContext* SV3_1aParser::variable_dimension() {
   Variable_dimensionContext *_localctx = _tracker.createInstance<Variable_dimensionContext>(_ctx, getState());
   enterRule(_localctx, 366, SV3_1aParser::RuleVariable_dimension);
@@ -22736,6 +24494,14 @@
     parserListener->exitQueue_dimension(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Queue_dimensionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitQueue_dimension(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Queue_dimensionContext* SV3_1aParser::queue_dimension() {
   Queue_dimensionContext *_localctx = _tracker.createInstance<Queue_dimensionContext>(_ctx, getState());
   enterRule(_localctx, 368, SV3_1aParser::RuleQueue_dimension);
@@ -22804,6 +24570,14 @@
     parserListener->exitUnsized_dimension(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Unsized_dimensionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnsized_dimension(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Unsized_dimensionContext* SV3_1aParser::unsized_dimension() {
   Unsized_dimensionContext *_localctx = _tracker.createInstance<Unsized_dimensionContext>(_ctx, getState());
   enterRule(_localctx, 370, SV3_1aParser::RuleUnsized_dimension);
@@ -22859,6 +24633,14 @@
     parserListener->exitFunction_data_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Function_data_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFunction_data_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Function_data_typeContext* SV3_1aParser::function_data_type() {
   Function_data_typeContext *_localctx = _tracker.createInstance<Function_data_typeContext>(_ctx, getState());
   enterRule(_localctx, 372, SV3_1aParser::RuleFunction_data_type);
@@ -22972,6 +24754,14 @@
     parserListener->exitFunction_data_type_or_implicit(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Function_data_type_or_implicitContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFunction_data_type_or_implicit(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Function_data_type_or_implicitContext* SV3_1aParser::function_data_type_or_implicit() {
   Function_data_type_or_implicitContext *_localctx = _tracker.createInstance<Function_data_type_or_implicitContext>(_ctx, getState());
   enterRule(_localctx, 374, SV3_1aParser::RuleFunction_data_type_or_implicit);
@@ -23064,6 +24854,14 @@
     parserListener->exitFunction_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Function_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFunction_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Function_declarationContext* SV3_1aParser::function_declaration() {
   Function_declarationContext *_localctx = _tracker.createInstance<Function_declarationContext>(_ctx, getState());
   enterRule(_localctx, 376, SV3_1aParser::RuleFunction_declaration);
@@ -23126,6 +24924,14 @@
     parserListener->exitEndfunction(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndfunctionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndfunction(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndfunctionContext* SV3_1aParser::endfunction() {
   EndfunctionContext *_localctx = _tracker.createInstance<EndfunctionContext>(_ctx, getState());
   enterRule(_localctx, 378, SV3_1aParser::RuleEndfunction);
@@ -23243,6 +25049,14 @@
     parserListener->exitFunction_body_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Function_body_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFunction_body_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Function_body_declarationContext* SV3_1aParser::function_body_declaration() {
   Function_body_declarationContext *_localctx = _tracker.createInstance<Function_body_declarationContext>(_ctx, getState());
   enterRule(_localctx, 380, SV3_1aParser::RuleFunction_body_declaration);
@@ -23647,6 +25461,14 @@
     parserListener->exitFunction_prototype(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Function_prototypeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFunction_prototype(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Function_prototypeContext* SV3_1aParser::function_prototype() {
   Function_prototypeContext *_localctx = _tracker.createInstance<Function_prototypeContext>(_ctx, getState());
   enterRule(_localctx, 382, SV3_1aParser::RuleFunction_prototype);
@@ -23805,6 +25627,14 @@
     parserListener->exitDpi_import_export(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dpi_import_exportContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDpi_import_export(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dpi_import_exportContext* SV3_1aParser::dpi_import_export() {
   Dpi_import_exportContext *_localctx = _tracker.createInstance<Dpi_import_exportContext>(_ctx, getState());
   enterRule(_localctx, 384, SV3_1aParser::RuleDpi_import_export);
@@ -23972,6 +25802,14 @@
     parserListener->exitContext_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Context_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitContext_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Context_keywordContext* SV3_1aParser::context_keyword() {
   Context_keywordContext *_localctx = _tracker.createInstance<Context_keywordContext>(_ctx, getState());
   enterRule(_localctx, 386, SV3_1aParser::RuleContext_keyword);
@@ -24025,6 +25863,14 @@
     parserListener->exitFunction_name_decl(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Function_name_declContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFunction_name_decl(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Function_name_declContext* SV3_1aParser::function_name_decl() {
   Function_name_declContext *_localctx = _tracker.createInstance<Function_name_declContext>(_ctx, getState());
   enterRule(_localctx, 388, SV3_1aParser::RuleFunction_name_decl);
@@ -24080,6 +25926,14 @@
     parserListener->exitTask_name_decl(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Task_name_declContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTask_name_decl(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Task_name_declContext* SV3_1aParser::task_name_decl() {
   Task_name_declContext *_localctx = _tracker.createInstance<Task_name_declContext>(_ctx, getState());
   enterRule(_localctx, 390, SV3_1aParser::RuleTask_name_decl);
@@ -24131,6 +25985,14 @@
     parserListener->exitPure_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Pure_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPure_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Pure_keywordContext* SV3_1aParser::pure_keyword() {
   Pure_keywordContext *_localctx = _tracker.createInstance<Pure_keywordContext>(_ctx, getState());
   enterRule(_localctx, 392, SV3_1aParser::RulePure_keyword);
@@ -24188,6 +26050,14 @@
     parserListener->exitTask_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Task_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTask_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Task_declarationContext* SV3_1aParser::task_declaration() {
   Task_declarationContext *_localctx = _tracker.createInstance<Task_declarationContext>(_ctx, getState());
   enterRule(_localctx, 394, SV3_1aParser::RuleTask_declaration);
@@ -24250,6 +26120,14 @@
     parserListener->exitEndtask(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndtaskContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndtask(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndtaskContext* SV3_1aParser::endtask() {
   EndtaskContext *_localctx = _tracker.createInstance<EndtaskContext>(_ctx, getState());
   enterRule(_localctx, 396, SV3_1aParser::RuleEndtask);
@@ -24363,6 +26241,14 @@
     parserListener->exitTask_body_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Task_body_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTask_body_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Task_body_declarationContext* SV3_1aParser::task_body_declaration() {
   Task_body_declarationContext *_localctx = _tracker.createInstance<Task_body_declarationContext>(_ctx, getState());
   enterRule(_localctx, 398, SV3_1aParser::RuleTask_body_declaration);
@@ -24747,6 +26633,14 @@
     parserListener->exitTf_item_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Tf_item_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTf_item_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Tf_item_declarationContext* SV3_1aParser::tf_item_declaration() {
   Tf_item_declarationContext *_localctx = _tracker.createInstance<Tf_item_declarationContext>(_ctx, getState());
   enterRule(_localctx, 400, SV3_1aParser::RuleTf_item_declaration);
@@ -24823,6 +26717,14 @@
     parserListener->exitTf_port_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Tf_port_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTf_port_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Tf_port_listContext* SV3_1aParser::tf_port_list() {
   Tf_port_listContext *_localctx = _tracker.createInstance<Tf_port_listContext>(_ctx, getState());
   enterRule(_localctx, 402, SV3_1aParser::RuleTf_port_list);
@@ -24921,6 +26823,14 @@
     parserListener->exitTf_port_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Tf_port_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTf_port_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Tf_port_itemContext* SV3_1aParser::tf_port_item() {
   Tf_port_itemContext *_localctx = _tracker.createInstance<Tf_port_itemContext>(_ctx, getState());
   enterRule(_localctx, 404, SV3_1aParser::RuleTf_port_item);
@@ -25033,6 +26943,13 @@
   if (parserListener != nullptr)
     parserListener->exitTfPortDir_Ref(this);
 }
+
+antlrcpp::Any SV3_1aParser::TfPortDir_RefContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTfPortDir_Ref(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- TfPortDir_ConstRefContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::TfPortDir_ConstRefContext::CONST() {
@@ -25055,6 +26972,13 @@
   if (parserListener != nullptr)
     parserListener->exitTfPortDir_ConstRef(this);
 }
+
+antlrcpp::Any SV3_1aParser::TfPortDir_ConstRefContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTfPortDir_ConstRef(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- TfPortDir_OutContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::TfPortDir_OutContext::OUTPUT() {
@@ -25073,6 +26997,13 @@
   if (parserListener != nullptr)
     parserListener->exitTfPortDir_Out(this);
 }
+
+antlrcpp::Any SV3_1aParser::TfPortDir_OutContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTfPortDir_Out(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- TfPortDir_InpContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::TfPortDir_InpContext::INPUT() {
@@ -25091,6 +27022,13 @@
   if (parserListener != nullptr)
     parserListener->exitTfPortDir_Inp(this);
 }
+
+antlrcpp::Any SV3_1aParser::TfPortDir_InpContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTfPortDir_Inp(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- TfPortDir_InoutContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::TfPortDir_InoutContext::INOUT() {
@@ -25109,6 +27047,13 @@
   if (parserListener != nullptr)
     parserListener->exitTfPortDir_Inout(this);
 }
+
+antlrcpp::Any SV3_1aParser::TfPortDir_InoutContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTfPortDir_Inout(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Tf_port_directionContext* SV3_1aParser::tf_port_direction() {
   Tf_port_directionContext *_localctx = _tracker.createInstance<Tf_port_directionContext>(_ctx, getState());
   enterRule(_localctx, 406, SV3_1aParser::RuleTf_port_direction);
@@ -25227,6 +27172,14 @@
     parserListener->exitTf_port_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Tf_port_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTf_port_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Tf_port_declarationContext* SV3_1aParser::tf_port_declaration() {
   Tf_port_declarationContext *_localctx = _tracker.createInstance<Tf_port_declarationContext>(_ctx, getState());
   enterRule(_localctx, 408, SV3_1aParser::RuleTf_port_declaration);
@@ -25320,6 +27273,14 @@
     parserListener->exitTask_prototype(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Task_prototypeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTask_prototype(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Task_prototypeContext* SV3_1aParser::task_prototype() {
   Task_prototypeContext *_localctx = _tracker.createInstance<Task_prototypeContext>(_ctx, getState());
   enterRule(_localctx, 410, SV3_1aParser::RuleTask_prototype);
@@ -25456,6 +27417,14 @@
     parserListener->exitBlock_item_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Block_item_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBlock_item_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Block_item_declarationContext* SV3_1aParser::block_item_declaration() {
   Block_item_declarationContext *_localctx = _tracker.createInstance<Block_item_declarationContext>(_ctx, getState());
   enterRule(_localctx, 412, SV3_1aParser::RuleBlock_item_declaration);
@@ -25620,6 +27589,14 @@
     parserListener->exitOverload_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Overload_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverload_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Overload_declarationContext* SV3_1aParser::overload_declaration() {
   Overload_declarationContext *_localctx = _tracker.createInstance<Overload_declarationContext>(_ctx, getState());
   enterRule(_localctx, 414, SV3_1aParser::RuleOverload_declaration);
@@ -25691,6 +27668,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_Minus(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_MinusContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_Minus(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_GreaterEqualContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_GreaterEqualContext::GREATER_EQUAL() {
@@ -25709,6 +27693,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_GreaterEqual(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_GreaterEqualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_GreaterEqual(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_LessContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_LessContext::LESS() {
@@ -25727,6 +27718,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_Less(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_LessContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_Less(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_PercentContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_PercentContext::PERCENT() {
@@ -25745,6 +27743,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_Percent(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_PercentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_Percent(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_NotEqualContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_NotEqualContext::NOTEQUAL() {
@@ -25763,6 +27768,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_NotEqual(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_NotEqualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_NotEqual(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_MultContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_MultContext::STAR() {
@@ -25781,6 +27793,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_Mult(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_MultContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_Mult(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_EquivContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_EquivContext::EQUIV() {
@@ -25799,6 +27818,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_Equiv(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_EquivContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_Equiv(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_EqualContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_EqualContext::ASSIGN_OP() {
@@ -25817,6 +27843,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_Equal(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_EqualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_Equal(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_LessEqualContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_LessEqualContext::LESS_EQUAL() {
@@ -25835,6 +27868,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_LessEqual(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_LessEqualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_LessEqual(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_PlusPlusContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_PlusPlusContext::PLUSPLUS() {
@@ -25853,6 +27893,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_PlusPlus(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_PlusPlusContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_PlusPlus(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_GreaterContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_GreaterContext::GREATER() {
@@ -25871,6 +27918,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_Greater(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_GreaterContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_Greater(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_MinusMinusContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_MinusMinusContext::MINUSMINUS() {
@@ -25889,6 +27943,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_MinusMinus(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_MinusMinusContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_MinusMinus(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_StarStarContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_StarStarContext::STARSTAR() {
@@ -25907,6 +27968,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_StarStar(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_StarStarContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_StarStar(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_PlusContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_PlusContext::PLUS() {
@@ -25925,6 +27993,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_Plus(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_PlusContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_Plus(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- OverloadOp_DivContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::OverloadOp_DivContext::DIV() {
@@ -25943,6 +28018,13 @@
   if (parserListener != nullptr)
     parserListener->exitOverloadOp_Div(this);
 }
+
+antlrcpp::Any SV3_1aParser::OverloadOp_DivContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverloadOp_Div(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Overload_operatorContext* SV3_1aParser::overload_operator() {
   Overload_operatorContext *_localctx = _tracker.createInstance<Overload_operatorContext>(_ctx, getState());
   enterRule(_localctx, 416, SV3_1aParser::RuleOverload_operator);
@@ -26127,6 +28209,14 @@
     parserListener->exitOverload_proto_formals(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Overload_proto_formalsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOverload_proto_formals(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Overload_proto_formalsContext* SV3_1aParser::overload_proto_formals() {
   Overload_proto_formalsContext *_localctx = _tracker.createInstance<Overload_proto_formalsContext>(_ctx, getState());
   enterRule(_localctx, 418, SV3_1aParser::RuleOverload_proto_formals);
@@ -26205,6 +28295,14 @@
     parserListener->exitVirtual_interface_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Virtual_interface_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitVirtual_interface_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Virtual_interface_declarationContext* SV3_1aParser::virtual_interface_declaration() {
   Virtual_interface_declarationContext *_localctx = _tracker.createInstance<Virtual_interface_declarationContext>(_ctx, getState());
   enterRule(_localctx, 420, SV3_1aParser::RuleVirtual_interface_declaration);
@@ -26293,6 +28391,14 @@
     parserListener->exitModport_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Modport_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModport_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Modport_itemContext* SV3_1aParser::modport_item() {
   Modport_itemContext *_localctx = _tracker.createInstance<Modport_itemContext>(_ctx, getState());
   enterRule(_localctx, 422, SV3_1aParser::RuleModport_item);
@@ -26385,6 +28491,14 @@
     parserListener->exitModport_ports_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Modport_ports_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModport_ports_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Modport_ports_declarationContext* SV3_1aParser::modport_ports_declaration() {
   Modport_ports_declarationContext *_localctx = _tracker.createInstance<Modport_ports_declarationContext>(_ctx, getState());
   enterRule(_localctx, 424, SV3_1aParser::RuleModport_ports_declaration);
@@ -26512,6 +28626,14 @@
     parserListener->exitModport_simple_ports_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Modport_simple_ports_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModport_simple_ports_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Modport_simple_ports_declarationContext* SV3_1aParser::modport_simple_ports_declaration() {
   Modport_simple_ports_declarationContext *_localctx = _tracker.createInstance<Modport_simple_ports_declarationContext>(_ctx, getState());
   enterRule(_localctx, 426, SV3_1aParser::RuleModport_simple_ports_declaration);
@@ -26598,6 +28720,14 @@
     parserListener->exitModport_simple_port(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Modport_simple_portContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModport_simple_port(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Modport_simple_portContext* SV3_1aParser::modport_simple_port() {
   Modport_simple_portContext *_localctx = _tracker.createInstance<Modport_simple_portContext>(_ctx, getState());
   enterRule(_localctx, 428, SV3_1aParser::RuleModport_simple_port);
@@ -26788,6 +28918,14 @@
     parserListener->exitModport_hierarchical_ports_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Modport_hierarchical_ports_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModport_hierarchical_ports_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Modport_hierarchical_ports_declarationContext* SV3_1aParser::modport_hierarchical_ports_declaration() {
   Modport_hierarchical_ports_declarationContext *_localctx = _tracker.createInstance<Modport_hierarchical_ports_declarationContext>(_ctx, getState());
   enterRule(_localctx, 430, SV3_1aParser::RuleModport_hierarchical_ports_declaration);
@@ -26874,6 +29012,14 @@
     parserListener->exitModport_tf_ports_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Modport_tf_ports_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModport_tf_ports_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Modport_tf_ports_declarationContext* SV3_1aParser::modport_tf_ports_declaration() {
   Modport_tf_ports_declarationContext *_localctx = _tracker.createInstance<Modport_tf_ports_declarationContext>(_ctx, getState());
   enterRule(_localctx, 432, SV3_1aParser::RuleModport_tf_ports_declaration);
@@ -26952,6 +29098,14 @@
     parserListener->exitModport_tf_port(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Modport_tf_portContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModport_tf_port(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Modport_tf_portContext* SV3_1aParser::modport_tf_port() {
   Modport_tf_portContext *_localctx = _tracker.createInstance<Modport_tf_portContext>(_ctx, getState());
   enterRule(_localctx, 434, SV3_1aParser::RuleModport_tf_port);
@@ -27048,6 +29202,14 @@
     parserListener->exitConcurrent_assertion_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Concurrent_assertion_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConcurrent_assertion_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Concurrent_assertion_itemContext* SV3_1aParser::concurrent_assertion_item() {
   Concurrent_assertion_itemContext *_localctx = _tracker.createInstance<Concurrent_assertion_itemContext>(_ctx, getState());
   enterRule(_localctx, 436, SV3_1aParser::RuleConcurrent_assertion_item);
@@ -27157,6 +29319,14 @@
     parserListener->exitConcurrent_assertion_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Concurrent_assertion_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConcurrent_assertion_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Concurrent_assertion_statementContext* SV3_1aParser::concurrent_assertion_statement() {
   Concurrent_assertion_statementContext *_localctx = _tracker.createInstance<Concurrent_assertion_statementContext>(_ctx, getState());
   enterRule(_localctx, 438, SV3_1aParser::RuleConcurrent_assertion_statement);
@@ -27262,6 +29432,14 @@
     parserListener->exitAssert_property_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Assert_property_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssert_property_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Assert_property_statementContext* SV3_1aParser::assert_property_statement() {
   Assert_property_statementContext *_localctx = _tracker.createInstance<Assert_property_statementContext>(_ctx, getState());
   enterRule(_localctx, 440, SV3_1aParser::RuleAssert_property_statement);
@@ -27341,6 +29519,14 @@
     parserListener->exitAssume_property_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Assume_property_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssume_property_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Assume_property_statementContext* SV3_1aParser::assume_property_statement() {
   Assume_property_statementContext *_localctx = _tracker.createInstance<Assume_property_statementContext>(_ctx, getState());
   enterRule(_localctx, 442, SV3_1aParser::RuleAssume_property_statement);
@@ -27420,6 +29606,14 @@
     parserListener->exitCover_property_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Cover_property_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCover_property_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Cover_property_statementContext* SV3_1aParser::cover_property_statement() {
   Cover_property_statementContext *_localctx = _tracker.createInstance<Cover_property_statementContext>(_ctx, getState());
   enterRule(_localctx, 444, SV3_1aParser::RuleCover_property_statement);
@@ -27495,6 +29689,14 @@
     parserListener->exitExpect_property_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Expect_property_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitExpect_property_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Expect_property_statementContext* SV3_1aParser::expect_property_statement() {
   Expect_property_statementContext *_localctx = _tracker.createInstance<Expect_property_statementContext>(_ctx, getState());
   enterRule(_localctx, 446, SV3_1aParser::RuleExpect_property_statement);
@@ -27596,6 +29798,14 @@
     parserListener->exitCover_sequence_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Cover_sequence_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCover_sequence_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Cover_sequence_statementContext* SV3_1aParser::cover_sequence_statement() {
   Cover_sequence_statementContext *_localctx = _tracker.createInstance<Cover_sequence_statementContext>(_ctx, getState());
   enterRule(_localctx, 448, SV3_1aParser::RuleCover_sequence_statement);
@@ -27703,6 +29913,14 @@
     parserListener->exitRestrict_property_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Restrict_property_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRestrict_property_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Restrict_property_statementContext* SV3_1aParser::restrict_property_statement() {
   Restrict_property_statementContext *_localctx = _tracker.createInstance<Restrict_property_statementContext>(_ctx, getState());
   enterRule(_localctx, 450, SV3_1aParser::RuleRestrict_property_statement);
@@ -27774,6 +29992,14 @@
     parserListener->exitProperty_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Property_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProperty_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Property_instanceContext* SV3_1aParser::property_instance() {
   Property_instanceContext *_localctx = _tracker.createInstance<Property_instanceContext>(_ctx, getState());
   enterRule(_localctx, 452, SV3_1aParser::RuleProperty_instance);
@@ -27923,6 +30149,14 @@
     parserListener->exitProperty_actual_arg(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Property_actual_argContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProperty_actual_arg(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Property_actual_argContext* SV3_1aParser::property_actual_arg() {
   Property_actual_argContext *_localctx = _tracker.createInstance<Property_actual_argContext>(_ctx, getState());
   enterRule(_localctx, 454, SV3_1aParser::RuleProperty_actual_arg);
@@ -27991,6 +30225,14 @@
     parserListener->exitConcurrent_assertion_item_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Concurrent_assertion_item_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConcurrent_assertion_item_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Concurrent_assertion_item_declarationContext* SV3_1aParser::concurrent_assertion_item_declaration() {
   Concurrent_assertion_item_declarationContext *_localctx = _tracker.createInstance<Concurrent_assertion_item_declarationContext>(_ctx, getState());
   enterRule(_localctx, 456, SV3_1aParser::RuleConcurrent_assertion_item_declaration);
@@ -28065,6 +30307,14 @@
     parserListener->exitAssertion_item_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Assertion_item_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssertion_item_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Assertion_item_declarationContext* SV3_1aParser::assertion_item_declaration() {
   Assertion_item_declarationContext *_localctx = _tracker.createInstance<Assertion_item_declarationContext>(_ctx, getState());
   enterRule(_localctx, 458, SV3_1aParser::RuleAssertion_item_declaration);
@@ -28138,6 +30388,14 @@
     parserListener->exitEndproperty(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndpropertyContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndproperty(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndpropertyContext* SV3_1aParser::endproperty() {
   EndpropertyContext *_localctx = _tracker.createInstance<EndpropertyContext>(_ctx, getState());
   enterRule(_localctx, 460, SV3_1aParser::RuleEndproperty);
@@ -28235,6 +30493,14 @@
     parserListener->exitProperty_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Property_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProperty_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Property_declarationContext* SV3_1aParser::property_declaration() {
   Property_declarationContext *_localctx = _tracker.createInstance<Property_declarationContext>(_ctx, getState());
   enterRule(_localctx, 462, SV3_1aParser::RuleProperty_declaration);
@@ -28364,6 +30630,14 @@
     parserListener->exitProperty_formal_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Property_formal_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProperty_formal_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Property_formal_typeContext* SV3_1aParser::property_formal_type() {
   Property_formal_typeContext *_localctx = _tracker.createInstance<Property_formal_typeContext>(_ctx, getState());
   enterRule(_localctx, 464, SV3_1aParser::RuleProperty_formal_type);
@@ -28492,6 +30766,14 @@
     parserListener->exitProperty_spec(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Property_specContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProperty_spec(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Property_specContext* SV3_1aParser::property_spec() {
   Property_specContext *_localctx = _tracker.createInstance<Property_specContext>(_ctx, getState());
   enterRule(_localctx, 466, SV3_1aParser::RuleProperty_spec);
@@ -28569,6 +30851,14 @@
     parserListener->exitEndcase(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndcaseContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndcase(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndcaseContext* SV3_1aParser::endcase() {
   EndcaseContext *_localctx = _tracker.createInstance<EndcaseContext>(_ctx, getState());
   enterRule(_localctx, 468, SV3_1aParser::RuleEndcase);
@@ -28791,6 +31081,14 @@
 }
 
 
+antlrcpp::Any SV3_1aParser::Property_exprContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProperty_expr(this);
+  else
+    return visitor->visitChildren(this);
+}
+
+
 SV3_1aParser::Property_exprContext* SV3_1aParser::property_expr() {
    return property_expr(0);
 }
@@ -28800,6 +31098,7 @@
   size_t parentState = getState();
   SV3_1aParser::Property_exprContext *_localctx = _tracker.createInstance<Property_exprContext>(_ctx, parentState);
   SV3_1aParser::Property_exprContext *previousContext = _localctx;
+  (void)previousContext; // Silence compiler, in case the context is not used by generated code.
   size_t startState = 470;
   enterRecursionRule(_localctx, 470, SV3_1aParser::RuleProperty_expr, precedence);
 
@@ -29399,6 +31698,14 @@
     parserListener->exitProperty_case_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Property_case_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProperty_case_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Property_case_itemContext* SV3_1aParser::property_case_item() {
   Property_case_itemContext *_localctx = _tracker.createInstance<Property_case_itemContext>(_ctx, getState());
   enterRule(_localctx, 472, SV3_1aParser::RuleProperty_case_item);
@@ -29577,6 +31884,14 @@
     parserListener->exitEndsequence(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndsequenceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndsequence(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndsequenceContext* SV3_1aParser::endsequence() {
   EndsequenceContext *_localctx = _tracker.createInstance<EndsequenceContext>(_ctx, getState());
   enterRule(_localctx, 474, SV3_1aParser::RuleEndsequence);
@@ -29674,6 +31989,14 @@
     parserListener->exitSequence_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Sequence_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSequence_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Sequence_declarationContext* SV3_1aParser::sequence_declaration() {
   Sequence_declarationContext *_localctx = _tracker.createInstance<Sequence_declarationContext>(_ctx, getState());
   enterRule(_localctx, 476, SV3_1aParser::RuleSequence_declaration);
@@ -29880,6 +32203,14 @@
 }
 
 
+antlrcpp::Any SV3_1aParser::Sequence_exprContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSequence_expr(this);
+  else
+    return visitor->visitChildren(this);
+}
+
+
 SV3_1aParser::Sequence_exprContext* SV3_1aParser::sequence_expr() {
    return sequence_expr(0);
 }
@@ -29889,6 +32220,7 @@
   size_t parentState = getState();
   SV3_1aParser::Sequence_exprContext *_localctx = _tracker.createInstance<Sequence_exprContext>(_ctx, parentState);
   SV3_1aParser::Sequence_exprContext *previousContext = _localctx;
+  (void)previousContext; // Silence compiler, in case the context is not used by generated code.
   size_t startState = 478;
   enterRecursionRule(_localctx, 478, SV3_1aParser::RuleSequence_expr, precedence);
 
@@ -30225,6 +32557,14 @@
     parserListener->exitCycle_delay_range(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Cycle_delay_rangeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCycle_delay_range(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Cycle_delay_rangeContext* SV3_1aParser::cycle_delay_range() {
   Cycle_delay_rangeContext *_localctx = _tracker.createInstance<Cycle_delay_rangeContext>(_ctx, getState());
   enterRule(_localctx, 480, SV3_1aParser::RuleCycle_delay_range);
@@ -30327,6 +32667,14 @@
     parserListener->exitSequence_method_call(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Sequence_method_callContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSequence_method_call(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Sequence_method_callContext* SV3_1aParser::sequence_method_call() {
   Sequence_method_callContext *_localctx = _tracker.createInstance<Sequence_method_callContext>(_ctx, getState());
   enterRule(_localctx, 482, SV3_1aParser::RuleSequence_method_call);
@@ -30388,6 +32736,14 @@
     parserListener->exitSequence_match_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Sequence_match_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSequence_match_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Sequence_match_itemContext* SV3_1aParser::sequence_match_item() {
   Sequence_match_itemContext *_localctx = _tracker.createInstance<Sequence_match_itemContext>(_ctx, getState());
   enterRule(_localctx, 484, SV3_1aParser::RuleSequence_match_item);
@@ -30465,6 +32821,13 @@
   if (parserListener != nullptr)
     parserListener->exitSeqFormatType_Data(this);
 }
+
+antlrcpp::Any SV3_1aParser::SeqFormatType_DataContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSeqFormatType_Data(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- SeqFormatType_UntypedContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::SeqFormatType_UntypedContext::UNTYPED() {
@@ -30483,6 +32846,13 @@
   if (parserListener != nullptr)
     parserListener->exitSeqFormatType_Untyped(this);
 }
+
+antlrcpp::Any SV3_1aParser::SeqFormatType_UntypedContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSeqFormatType_Untyped(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- SeqFormatType_SequenceContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::SeqFormatType_SequenceContext::SEQUENCE() {
@@ -30501,6 +32871,13 @@
   if (parserListener != nullptr)
     parserListener->exitSeqFormatType_Sequence(this);
 }
+
+antlrcpp::Any SV3_1aParser::SeqFormatType_SequenceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSeqFormatType_Sequence(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Sequence_formal_typeContext* SV3_1aParser::sequence_formal_type() {
   Sequence_formal_typeContext *_localctx = _tracker.createInstance<Sequence_formal_typeContext>(_ctx, getState());
   enterRule(_localctx, 486, SV3_1aParser::RuleSequence_formal_type);
@@ -30625,6 +33002,14 @@
     parserListener->exitSequence_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Sequence_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSequence_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Sequence_instanceContext* SV3_1aParser::sequence_instance() {
   Sequence_instanceContext *_localctx = _tracker.createInstance<Sequence_instanceContext>(_ctx, getState());
   enterRule(_localctx, 488, SV3_1aParser::RuleSequence_instance);
@@ -30733,6 +33118,14 @@
     parserListener->exitSequence_list_of_arguments(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Sequence_list_of_argumentsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSequence_list_of_arguments(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Sequence_list_of_argumentsContext* SV3_1aParser::sequence_list_of_arguments() {
   Sequence_list_of_argumentsContext *_localctx = _tracker.createInstance<Sequence_list_of_argumentsContext>(_ctx, getState());
   enterRule(_localctx, 490, SV3_1aParser::RuleSequence_list_of_arguments);
@@ -31354,6 +33747,14 @@
     parserListener->exitSequence_actual_arg(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Sequence_actual_argContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSequence_actual_arg(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Sequence_actual_argContext* SV3_1aParser::sequence_actual_arg() {
   Sequence_actual_argContext *_localctx = _tracker.createInstance<Sequence_actual_argContext>(_ctx, getState());
   enterRule(_localctx, 492, SV3_1aParser::RuleSequence_actual_arg);
@@ -31426,6 +33827,14 @@
     parserListener->exitFormal_list_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Formal_list_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFormal_list_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Formal_list_itemContext* SV3_1aParser::formal_list_item() {
   Formal_list_itemContext *_localctx = _tracker.createInstance<Formal_list_itemContext>(_ctx, getState());
   enterRule(_localctx, 494, SV3_1aParser::RuleFormal_list_item);
@@ -31498,6 +33907,14 @@
     parserListener->exitList_of_formals(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_formalsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_formals(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_formalsContext* SV3_1aParser::list_of_formals() {
   List_of_formalsContext *_localctx = _tracker.createInstance<List_of_formalsContext>(_ctx, getState());
   enterRule(_localctx, 496, SV3_1aParser::RuleList_of_formals);
@@ -31604,6 +34021,14 @@
     parserListener->exitActual_arg_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Actual_arg_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitActual_arg_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Actual_arg_listContext* SV3_1aParser::actual_arg_list() {
   Actual_arg_listContext *_localctx = _tracker.createInstance<Actual_arg_listContext>(_ctx, getState());
   enterRule(_localctx, 498, SV3_1aParser::RuleActual_arg_list);
@@ -31787,6 +34212,14 @@
     parserListener->exitActual_arg_expr(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Actual_arg_exprContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitActual_arg_expr(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Actual_arg_exprContext* SV3_1aParser::actual_arg_expr() {
   Actual_arg_exprContext *_localctx = _tracker.createInstance<Actual_arg_exprContext>(_ctx, getState());
   enterRule(_localctx, 500, SV3_1aParser::RuleActual_arg_expr);
@@ -31859,6 +34292,14 @@
     parserListener->exitBoolean_abbrev(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Boolean_abbrevContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBoolean_abbrev(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Boolean_abbrevContext* SV3_1aParser::boolean_abbrev() {
   Boolean_abbrevContext *_localctx = _tracker.createInstance<Boolean_abbrevContext>(_ctx, getState());
   enterRule(_localctx, 502, SV3_1aParser::RuleBoolean_abbrev);
@@ -31940,6 +34381,14 @@
     parserListener->exitConsecutive_repetition(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Consecutive_repetitionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConsecutive_repetition(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Consecutive_repetitionContext* SV3_1aParser::consecutive_repetition() {
   Consecutive_repetitionContext *_localctx = _tracker.createInstance<Consecutive_repetitionContext>(_ctx, getState());
   enterRule(_localctx, 504, SV3_1aParser::RuleConsecutive_repetition);
@@ -32001,6 +34450,14 @@
     parserListener->exitNon_consecutive_repetition(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Non_consecutive_repetitionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNon_consecutive_repetition(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Non_consecutive_repetitionContext* SV3_1aParser::non_consecutive_repetition() {
   Non_consecutive_repetitionContext *_localctx = _tracker.createInstance<Non_consecutive_repetitionContext>(_ctx, getState());
   enterRule(_localctx, 506, SV3_1aParser::RuleNon_consecutive_repetition);
@@ -32062,6 +34519,14 @@
     parserListener->exitGoto_repetition(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Goto_repetitionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGoto_repetition(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Goto_repetitionContext* SV3_1aParser::goto_repetition() {
   Goto_repetitionContext *_localctx = _tracker.createInstance<Goto_repetitionContext>(_ctx, getState());
   enterRule(_localctx, 508, SV3_1aParser::RuleGoto_repetition);
@@ -32119,6 +34584,14 @@
     parserListener->exitConst_or_range_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Const_or_range_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConst_or_range_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Const_or_range_expressionContext* SV3_1aParser::const_or_range_expression() {
   Const_or_range_expressionContext *_localctx = _tracker.createInstance<Const_or_range_expressionContext>(_ctx, getState());
   enterRule(_localctx, 510, SV3_1aParser::RuleConst_or_range_expression);
@@ -32195,6 +34668,14 @@
     parserListener->exitCycle_delay_const_range_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Cycle_delay_const_range_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCycle_delay_const_range_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Cycle_delay_const_range_expressionContext* SV3_1aParser::cycle_delay_const_range_expression() {
   Cycle_delay_const_range_expressionContext *_localctx = _tracker.createInstance<Cycle_delay_const_range_expressionContext>(_ctx, getState());
   enterRule(_localctx, 512, SV3_1aParser::RuleCycle_delay_const_range_expression);
@@ -32283,6 +34764,14 @@
     parserListener->exitExpression_or_dist(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Expression_or_distContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitExpression_or_dist(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Expression_or_distContext* SV3_1aParser::expression_or_dist() {
   Expression_or_distContext *_localctx = _tracker.createInstance<Expression_or_distContext>(_ctx, getState());
   enterRule(_localctx, 514, SV3_1aParser::RuleExpression_or_dist);
@@ -32357,6 +34846,14 @@
     parserListener->exitAssertion_variable_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Assertion_variable_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssertion_variable_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Assertion_variable_declarationContext* SV3_1aParser::assertion_variable_declaration() {
   Assertion_variable_declarationContext *_localctx = _tracker.createInstance<Assertion_variable_declarationContext>(_ctx, getState());
   enterRule(_localctx, 516, SV3_1aParser::RuleAssertion_variable_declaration);
@@ -32438,6 +34935,14 @@
     parserListener->exitLet_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Let_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLet_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Let_declarationContext* SV3_1aParser::let_declaration() {
   Let_declarationContext *_localctx = _tracker.createInstance<Let_declarationContext>(_ctx, getState());
   enterRule(_localctx, 518, SV3_1aParser::RuleLet_declaration);
@@ -32564,6 +35069,14 @@
     parserListener->exitLet_port_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Let_port_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLet_port_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Let_port_listContext* SV3_1aParser::let_port_list() {
   Let_port_listContext *_localctx = _tracker.createInstance<Let_port_listContext>(_ctx, getState());
   enterRule(_localctx, 520, SV3_1aParser::RuleLet_port_list);
@@ -32654,6 +35167,14 @@
     parserListener->exitLet_port_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Let_port_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLet_port_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Let_port_itemContext* SV3_1aParser::let_port_item() {
   Let_port_itemContext *_localctx = _tracker.createInstance<Let_port_itemContext>(_ctx, getState());
   enterRule(_localctx, 522, SV3_1aParser::RuleLet_port_item);
@@ -32740,6 +35261,14 @@
     parserListener->exitLet_formal_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Let_formal_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLet_formal_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Let_formal_typeContext* SV3_1aParser::let_formal_type() {
   Let_formal_typeContext *_localctx = _tracker.createInstance<Let_formal_typeContext>(_ctx, getState());
   enterRule(_localctx, 524, SV3_1aParser::RuleLet_formal_type);
@@ -32842,6 +35371,14 @@
     parserListener->exitEndgroup(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndgroupContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndgroup(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndgroupContext* SV3_1aParser::endgroup() {
   EndgroupContext *_localctx = _tracker.createInstance<EndgroupContext>(_ctx, getState());
   enterRule(_localctx, 526, SV3_1aParser::RuleEndgroup);
@@ -32935,6 +35472,14 @@
     parserListener->exitCovergroup_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Covergroup_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCovergroup_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Covergroup_declarationContext* SV3_1aParser::covergroup_declaration() {
   Covergroup_declarationContext *_localctx = _tracker.createInstance<Covergroup_declarationContext>(_ctx, getState());
   enterRule(_localctx, 528, SV3_1aParser::RuleCovergroup_declaration);
@@ -33120,6 +35665,14 @@
     parserListener->exitCoverage_spec_or_option(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Coverage_spec_or_optionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCoverage_spec_or_option(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Coverage_spec_or_optionContext* SV3_1aParser::coverage_spec_or_option() {
   Coverage_spec_or_optionContext *_localctx = _tracker.createInstance<Coverage_spec_or_optionContext>(_ctx, getState());
   enterRule(_localctx, 530, SV3_1aParser::RuleCoverage_spec_or_option);
@@ -33234,6 +35787,14 @@
     parserListener->exitCoverage_option(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Coverage_optionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCoverage_option(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Coverage_optionContext* SV3_1aParser::coverage_option() {
   Coverage_optionContext *_localctx = _tracker.createInstance<Coverage_optionContext>(_ctx, getState());
   enterRule(_localctx, 532, SV3_1aParser::RuleCoverage_option);
@@ -33316,6 +35877,14 @@
     parserListener->exitCoverage_spec(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Coverage_specContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCoverage_spec(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Coverage_specContext* SV3_1aParser::coverage_spec() {
   Coverage_specContext *_localctx = _tracker.createInstance<Coverage_specContext>(_ctx, getState());
   enterRule(_localctx, 534, SV3_1aParser::RuleCoverage_spec);
@@ -33412,6 +35981,14 @@
     parserListener->exitCoverage_event(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Coverage_eventContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCoverage_event(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Coverage_eventContext* SV3_1aParser::coverage_event() {
   Coverage_eventContext *_localctx = _tracker.createInstance<Coverage_eventContext>(_ctx, getState());
   enterRule(_localctx, 536, SV3_1aParser::RuleCoverage_event);
@@ -33550,6 +36127,14 @@
     parserListener->exitEnd(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEnd(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndContext* SV3_1aParser::end() {
   EndContext *_localctx = _tracker.createInstance<EndContext>(_ctx, getState());
   enterRule(_localctx, 538, SV3_1aParser::RuleEnd);
@@ -33620,6 +36205,14 @@
 }
 
 
+antlrcpp::Any SV3_1aParser::Block_event_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBlock_event_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
+
 SV3_1aParser::Block_event_expressionContext* SV3_1aParser::block_event_expression() {
    return block_event_expression(0);
 }
@@ -33629,6 +36222,7 @@
   size_t parentState = getState();
   SV3_1aParser::Block_event_expressionContext *_localctx = _tracker.createInstance<Block_event_expressionContext>(_ctx, parentState);
   SV3_1aParser::Block_event_expressionContext *previousContext = _localctx;
+  (void)previousContext; // Silence compiler, in case the context is not used by generated code.
   size_t startState = 540;
   enterRecursionRule(_localctx, 540, SV3_1aParser::RuleBlock_event_expression, precedence);
 
@@ -33769,6 +36363,14 @@
     parserListener->exitHierarchical_btf_identifier(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Hierarchical_btf_identifierContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitHierarchical_btf_identifier(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Hierarchical_btf_identifierContext* SV3_1aParser::hierarchical_btf_identifier() {
   Hierarchical_btf_identifierContext *_localctx = _tracker.createInstance<Hierarchical_btf_identifierContext>(_ctx, getState());
   enterRule(_localctx, 542, SV3_1aParser::RuleHierarchical_btf_identifier);
@@ -33913,6 +36515,14 @@
     parserListener->exitCover_point(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Cover_pointContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCover_point(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Cover_pointContext* SV3_1aParser::cover_point() {
   Cover_pointContext *_localctx = _tracker.createInstance<Cover_pointContext>(_ctx, getState());
   enterRule(_localctx, 544, SV3_1aParser::RuleCover_point);
@@ -34037,6 +36647,14 @@
     parserListener->exitBins_or_empty(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Bins_or_emptyContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBins_or_empty(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Bins_or_emptyContext* SV3_1aParser::bins_or_empty() {
   Bins_or_emptyContext *_localctx = _tracker.createInstance<Bins_or_emptyContext>(_ctx, getState());
   enterRule(_localctx, 546, SV3_1aParser::RuleBins_or_empty);
@@ -34222,6 +36840,14 @@
     parserListener->exitBins_or_options(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Bins_or_optionsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBins_or_options(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Bins_or_optionsContext* SV3_1aParser::bins_or_options() {
   Bins_or_optionsContext *_localctx = _tracker.createInstance<Bins_or_optionsContext>(_ctx, getState());
   enterRule(_localctx, 548, SV3_1aParser::RuleBins_or_options);
@@ -34874,6 +37500,13 @@
   if (parserListener != nullptr)
     parserListener->exitBins_Ignore(this);
 }
+
+antlrcpp::Any SV3_1aParser::Bins_IgnoreContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBins_Ignore(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Bins_BinsContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Bins_BinsContext::BINS() {
@@ -34892,6 +37525,13 @@
   if (parserListener != nullptr)
     parserListener->exitBins_Bins(this);
 }
+
+antlrcpp::Any SV3_1aParser::Bins_BinsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBins_Bins(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Bins_IllegalContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Bins_IllegalContext::ILLEGAL_BINS() {
@@ -34910,6 +37550,13 @@
   if (parserListener != nullptr)
     parserListener->exitBins_Illegal(this);
 }
+
+antlrcpp::Any SV3_1aParser::Bins_IllegalContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBins_Illegal(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Bins_keywordContext* SV3_1aParser::bins_keyword() {
   Bins_keywordContext *_localctx = _tracker.createInstance<Bins_keywordContext>(_ctx, getState());
   enterRule(_localctx, 550, SV3_1aParser::RuleBins_keyword);
@@ -34998,6 +37645,14 @@
     parserListener->exitRange_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Range_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRange_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Range_listContext* SV3_1aParser::range_list() {
   Range_listContext *_localctx = _tracker.createInstance<Range_listContext>(_ctx, getState());
   enterRule(_localctx, 552, SV3_1aParser::RuleRange_list);
@@ -35088,6 +37743,14 @@
     parserListener->exitTrans_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Trans_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTrans_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Trans_listContext* SV3_1aParser::trans_list() {
   Trans_listContext *_localctx = _tracker.createInstance<Trans_listContext>(_ctx, getState());
   enterRule(_localctx, 554, SV3_1aParser::RuleTrans_list);
@@ -35170,6 +37833,14 @@
     parserListener->exitTrans_set(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Trans_setContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTrans_set(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Trans_setContext* SV3_1aParser::trans_set() {
   Trans_setContext *_localctx = _tracker.createInstance<Trans_setContext>(_ctx, getState());
   enterRule(_localctx, 556, SV3_1aParser::RuleTrans_set);
@@ -35252,6 +37923,14 @@
     parserListener->exitTrans_range_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Trans_range_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTrans_range_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Trans_range_listContext* SV3_1aParser::trans_range_list() {
   Trans_range_listContext *_localctx = _tracker.createInstance<Trans_range_listContext>(_ctx, getState());
   enterRule(_localctx, 558, SV3_1aParser::RuleTrans_range_list);
@@ -35356,6 +38035,14 @@
     parserListener->exitRepeat_range(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Repeat_rangeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRepeat_range(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Repeat_rangeContext* SV3_1aParser::repeat_range() {
   Repeat_rangeContext *_localctx = _tracker.createInstance<Repeat_rangeContext>(_ctx, getState());
   enterRule(_localctx, 560, SV3_1aParser::RuleRepeat_range);
@@ -35456,6 +38143,14 @@
     parserListener->exitCover_cross(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Cover_crossContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCover_cross(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Cover_crossContext* SV3_1aParser::cover_cross() {
   Cover_crossContext *_localctx = _tracker.createInstance<Cover_crossContext>(_ctx, getState());
   enterRule(_localctx, 562, SV3_1aParser::RuleCover_cross);
@@ -35564,6 +38259,14 @@
     parserListener->exitList_of_cross_items(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_cross_itemsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_cross_items(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_cross_itemsContext* SV3_1aParser::list_of_cross_items() {
   List_of_cross_itemsContext *_localctx = _tracker.createInstance<List_of_cross_itemsContext>(_ctx, getState());
   enterRule(_localctx, 564, SV3_1aParser::RuleList_of_cross_items);
@@ -35630,6 +38333,14 @@
     parserListener->exitCross_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Cross_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCross_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Cross_itemContext* SV3_1aParser::cross_item() {
   Cross_itemContext *_localctx = _tracker.createInstance<Cross_itemContext>(_ctx, getState());
   enterRule(_localctx, 566, SV3_1aParser::RuleCross_item);
@@ -35706,6 +38417,14 @@
     parserListener->exitCross_body(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Cross_bodyContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCross_body(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Cross_bodyContext* SV3_1aParser::cross_body() {
   Cross_bodyContext *_localctx = _tracker.createInstance<Cross_bodyContext>(_ctx, getState());
   enterRule(_localctx, 568, SV3_1aParser::RuleCross_body);
@@ -35799,6 +38518,14 @@
     parserListener->exitCross_body_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Cross_body_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCross_body_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Cross_body_itemContext* SV3_1aParser::cross_body_item() {
   Cross_body_itemContext *_localctx = _tracker.createInstance<Cross_body_itemContext>(_ctx, getState());
   enterRule(_localctx, 570, SV3_1aParser::RuleCross_body_item);
@@ -35884,6 +38611,14 @@
     parserListener->exitBins_selection_or_option(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Bins_selection_or_optionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBins_selection_or_option(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Bins_selection_or_optionContext* SV3_1aParser::bins_selection_or_option() {
   Bins_selection_or_optionContext *_localctx = _tracker.createInstance<Bins_selection_or_optionContext>(_ctx, getState());
   enterRule(_localctx, 572, SV3_1aParser::RuleBins_selection_or_option);
@@ -35991,6 +38726,14 @@
     parserListener->exitBins_selection(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Bins_selectionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBins_selection(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Bins_selectionContext* SV3_1aParser::bins_selection() {
   Bins_selectionContext *_localctx = _tracker.createInstance<Bins_selectionContext>(_ctx, getState());
   enterRule(_localctx, 574, SV3_1aParser::RuleBins_selection);
@@ -36110,6 +38853,14 @@
 }
 
 
+antlrcpp::Any SV3_1aParser::Select_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSelect_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
+
 SV3_1aParser::Select_expressionContext* SV3_1aParser::select_expression() {
    return select_expression(0);
 }
@@ -36119,6 +38870,7 @@
   size_t parentState = getState();
   SV3_1aParser::Select_expressionContext *_localctx = _tracker.createInstance<Select_expressionContext>(_ctx, parentState);
   SV3_1aParser::Select_expressionContext *previousContext = _localctx;
+  (void)previousContext; // Silence compiler, in case the context is not used by generated code.
   size_t startState = 576;
   enterRecursionRule(_localctx, 576, SV3_1aParser::RuleSelect_expression, precedence);
 
@@ -36321,6 +39073,14 @@
     parserListener->exitSelect_condition(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Select_conditionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSelect_condition(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Select_conditionContext* SV3_1aParser::select_condition() {
   Select_conditionContext *_localctx = _tracker.createInstance<Select_conditionContext>(_ctx, getState());
   enterRule(_localctx, 578, SV3_1aParser::RuleSelect_condition);
@@ -36401,6 +39161,14 @@
     parserListener->exitBins_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Bins_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBins_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Bins_expressionContext* SV3_1aParser::bins_expression() {
   Bins_expressionContext *_localctx = _tracker.createInstance<Bins_expressionContext>(_ctx, getState());
   enterRule(_localctx, 580, SV3_1aParser::RuleBins_expression);
@@ -36473,6 +39241,14 @@
     parserListener->exitOpen_range_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Open_range_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOpen_range_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Open_range_listContext* SV3_1aParser::open_range_list() {
   Open_range_listContext *_localctx = _tracker.createInstance<Open_range_listContext>(_ctx, getState());
   enterRule(_localctx, 582, SV3_1aParser::RuleOpen_range_list);
@@ -36663,6 +39439,14 @@
     parserListener->exitGate_instantiation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Gate_instantiationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGate_instantiation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Gate_instantiationContext* SV3_1aParser::gate_instantiation() {
   Gate_instantiationContext *_localctx = _tracker.createInstance<Gate_instantiationContext>(_ctx, getState());
   enterRule(_localctx, 584, SV3_1aParser::RuleGate_instantiation);
@@ -37071,6 +39855,14 @@
     parserListener->exitCmos_switch_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Cmos_switch_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCmos_switch_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Cmos_switch_instanceContext* SV3_1aParser::cmos_switch_instance() {
   Cmos_switch_instanceContext *_localctx = _tracker.createInstance<Cmos_switch_instanceContext>(_ctx, getState());
   enterRule(_localctx, 586, SV3_1aParser::RuleCmos_switch_instance);
@@ -37191,6 +39983,14 @@
     parserListener->exitEnable_gate_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Enable_gate_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEnable_gate_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Enable_gate_instanceContext* SV3_1aParser::enable_gate_instance() {
   Enable_gate_instanceContext *_localctx = _tracker.createInstance<Enable_gate_instanceContext>(_ctx, getState());
   enterRule(_localctx, 588, SV3_1aParser::RuleEnable_gate_instance);
@@ -37307,6 +40107,14 @@
     parserListener->exitMos_switch_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Mos_switch_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitMos_switch_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Mos_switch_instanceContext* SV3_1aParser::mos_switch_instance() {
   Mos_switch_instanceContext *_localctx = _tracker.createInstance<Mos_switch_instanceContext>(_ctx, getState());
   enterRule(_localctx, 590, SV3_1aParser::RuleMos_switch_instance);
@@ -37423,6 +40231,14 @@
     parserListener->exitN_input_gate_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::N_input_gate_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitN_input_gate_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::N_input_gate_instanceContext* SV3_1aParser::n_input_gate_instance() {
   N_input_gate_instanceContext *_localctx = _tracker.createInstance<N_input_gate_instanceContext>(_ctx, getState());
   enterRule(_localctx, 592, SV3_1aParser::RuleN_input_gate_instance);
@@ -37547,6 +40363,14 @@
     parserListener->exitN_output_gate_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::N_output_gate_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitN_output_gate_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::N_output_gate_instanceContext* SV3_1aParser::n_output_gate_instance() {
   N_output_gate_instanceContext *_localctx = _tracker.createInstance<N_output_gate_instanceContext>(_ctx, getState());
   enterRule(_localctx, 594, SV3_1aParser::RuleN_output_gate_instance);
@@ -37666,6 +40490,14 @@
     parserListener->exitPass_switch_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Pass_switch_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPass_switch_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Pass_switch_instanceContext* SV3_1aParser::pass_switch_instance() {
   Pass_switch_instanceContext *_localctx = _tracker.createInstance<Pass_switch_instanceContext>(_ctx, getState());
   enterRule(_localctx, 596, SV3_1aParser::RulePass_switch_instance);
@@ -37778,6 +40610,14 @@
     parserListener->exitPass_enable_switch_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Pass_enable_switch_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPass_enable_switch_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Pass_enable_switch_instanceContext* SV3_1aParser::pass_enable_switch_instance() {
   Pass_enable_switch_instanceContext *_localctx = _tracker.createInstance<Pass_enable_switch_instanceContext>(_ctx, getState());
   enterRule(_localctx, 598, SV3_1aParser::RulePass_enable_switch_instance);
@@ -37878,6 +40718,14 @@
     parserListener->exitPull_gate_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Pull_gate_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPull_gate_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Pull_gate_instanceContext* SV3_1aParser::pull_gate_instance() {
   Pull_gate_instanceContext *_localctx = _tracker.createInstance<Pull_gate_instanceContext>(_ctx, getState());
   enterRule(_localctx, 600, SV3_1aParser::RulePull_gate_instance);
@@ -37980,6 +40828,13 @@
   if (parserListener != nullptr)
     parserListener->exitPulldownStrength_01(this);
 }
+
+antlrcpp::Any SV3_1aParser::PulldownStrength_01Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPulldownStrength_01(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- PulldownStrength_10Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::PulldownStrength_10Context::OPEN_PARENS() {
@@ -38014,6 +40869,13 @@
   if (parserListener != nullptr)
     parserListener->exitPulldownStrength_10(this);
 }
+
+antlrcpp::Any SV3_1aParser::PulldownStrength_10Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPulldownStrength_10(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- PulldownStrength_0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::PulldownStrength_0Context::OPEN_PARENS() {
@@ -38040,6 +40902,13 @@
   if (parserListener != nullptr)
     parserListener->exitPulldownStrength_0(this);
 }
+
+antlrcpp::Any SV3_1aParser::PulldownStrength_0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPulldownStrength_0(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Pulldown_strengthContext* SV3_1aParser::pulldown_strength() {
   Pulldown_strengthContext *_localctx = _tracker.createInstance<Pulldown_strengthContext>(_ctx, getState());
   enterRule(_localctx, 602, SV3_1aParser::RulePulldown_strength);
@@ -38156,6 +41025,13 @@
   if (parserListener != nullptr)
     parserListener->exitPullupStrength_10(this);
 }
+
+antlrcpp::Any SV3_1aParser::PullupStrength_10Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPullupStrength_10(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- PullupStrength_01Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::PullupStrength_01Context::OPEN_PARENS() {
@@ -38190,6 +41066,13 @@
   if (parserListener != nullptr)
     parserListener->exitPullupStrength_01(this);
 }
+
+antlrcpp::Any SV3_1aParser::PullupStrength_01Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPullupStrength_01(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- PullupStrength_1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::PullupStrength_1Context::OPEN_PARENS() {
@@ -38216,6 +41099,13 @@
   if (parserListener != nullptr)
     parserListener->exitPullupStrength_1(this);
 }
+
+antlrcpp::Any SV3_1aParser::PullupStrength_1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPullupStrength_1(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Pullup_strengthContext* SV3_1aParser::pullup_strength() {
   Pullup_strengthContext *_localctx = _tracker.createInstance<Pullup_strengthContext>(_ctx, getState());
   enterRule(_localctx, 604, SV3_1aParser::RulePullup_strength);
@@ -38316,6 +41206,13 @@
   if (parserListener != nullptr)
     parserListener->exitCmosSwitchType_RCmos(this);
 }
+
+antlrcpp::Any SV3_1aParser::CmosSwitchType_RCmosContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCmosSwitchType_RCmos(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- CmosSwitchType_CmosContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::CmosSwitchType_CmosContext::CMOS() {
@@ -38334,6 +41231,13 @@
   if (parserListener != nullptr)
     parserListener->exitCmosSwitchType_Cmos(this);
 }
+
+antlrcpp::Any SV3_1aParser::CmosSwitchType_CmosContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCmosSwitchType_Cmos(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Cmos_switchtypeContext* SV3_1aParser::cmos_switchtype() {
   Cmos_switchtypeContext *_localctx = _tracker.createInstance<Cmos_switchtypeContext>(_ctx, getState());
   enterRule(_localctx, 606, SV3_1aParser::RuleCmos_switchtype);
@@ -38408,6 +41312,13 @@
   if (parserListener != nullptr)
     parserListener->exitEnableGateType_Bufif0(this);
 }
+
+antlrcpp::Any SV3_1aParser::EnableGateType_Bufif0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEnableGateType_Bufif0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- EnableGateType_Notif0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::EnableGateType_Notif0Context::NOTIF0() {
@@ -38426,6 +41337,13 @@
   if (parserListener != nullptr)
     parserListener->exitEnableGateType_Notif0(this);
 }
+
+antlrcpp::Any SV3_1aParser::EnableGateType_Notif0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEnableGateType_Notif0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- EnableGateType_Notif1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::EnableGateType_Notif1Context::NOTIF1() {
@@ -38444,6 +41362,13 @@
   if (parserListener != nullptr)
     parserListener->exitEnableGateType_Notif1(this);
 }
+
+antlrcpp::Any SV3_1aParser::EnableGateType_Notif1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEnableGateType_Notif1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- EnableGateType_Bufif1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::EnableGateType_Bufif1Context::BUFIF1() {
@@ -38462,6 +41387,13 @@
   if (parserListener != nullptr)
     parserListener->exitEnableGateType_Bufif1(this);
 }
+
+antlrcpp::Any SV3_1aParser::EnableGateType_Bufif1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEnableGateType_Bufif1(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Enable_gatetypeContext* SV3_1aParser::enable_gatetype() {
   Enable_gatetypeContext *_localctx = _tracker.createInstance<Enable_gatetypeContext>(_ctx, getState());
   enterRule(_localctx, 608, SV3_1aParser::RuleEnable_gatetype);
@@ -38552,6 +41484,13 @@
   if (parserListener != nullptr)
     parserListener->exitMosSwitchType_PMos(this);
 }
+
+antlrcpp::Any SV3_1aParser::MosSwitchType_PMosContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitMosSwitchType_PMos(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- MosSwitchType_NMosContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::MosSwitchType_NMosContext::NMOS() {
@@ -38570,6 +41509,13 @@
   if (parserListener != nullptr)
     parserListener->exitMosSwitchType_NMos(this);
 }
+
+antlrcpp::Any SV3_1aParser::MosSwitchType_NMosContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitMosSwitchType_NMos(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- MosSwitchType_RPMosContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::MosSwitchType_RPMosContext::RPMOS() {
@@ -38588,6 +41534,13 @@
   if (parserListener != nullptr)
     parserListener->exitMosSwitchType_RPMos(this);
 }
+
+antlrcpp::Any SV3_1aParser::MosSwitchType_RPMosContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitMosSwitchType_RPMos(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- MosSwitchType_RNMosContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::MosSwitchType_RNMosContext::RNMOS() {
@@ -38606,6 +41559,13 @@
   if (parserListener != nullptr)
     parserListener->exitMosSwitchType_RNMos(this);
 }
+
+antlrcpp::Any SV3_1aParser::MosSwitchType_RNMosContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitMosSwitchType_RNMos(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Mos_switchtypeContext* SV3_1aParser::mos_switchtype() {
   Mos_switchtypeContext *_localctx = _tracker.createInstance<Mos_switchtypeContext>(_ctx, getState());
   enterRule(_localctx, 610, SV3_1aParser::RuleMos_switchtype);
@@ -38696,6 +41656,13 @@
   if (parserListener != nullptr)
     parserListener->exitNInpGate_Xor(this);
 }
+
+antlrcpp::Any SV3_1aParser::NInpGate_XorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNInpGate_Xor(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NInpGate_NandContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NInpGate_NandContext::NAND() {
@@ -38714,6 +41681,13 @@
   if (parserListener != nullptr)
     parserListener->exitNInpGate_Nand(this);
 }
+
+antlrcpp::Any SV3_1aParser::NInpGate_NandContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNInpGate_Nand(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NInpGate_AndContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NInpGate_AndContext::AND() {
@@ -38732,6 +41706,13 @@
   if (parserListener != nullptr)
     parserListener->exitNInpGate_And(this);
 }
+
+antlrcpp::Any SV3_1aParser::NInpGate_AndContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNInpGate_And(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NInpGate_OrContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NInpGate_OrContext::OR() {
@@ -38750,6 +41731,13 @@
   if (parserListener != nullptr)
     parserListener->exitNInpGate_Or(this);
 }
+
+antlrcpp::Any SV3_1aParser::NInpGate_OrContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNInpGate_Or(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NInpGate_XnorContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NInpGate_XnorContext::XNOR() {
@@ -38768,6 +41756,13 @@
   if (parserListener != nullptr)
     parserListener->exitNInpGate_Xnor(this);
 }
+
+antlrcpp::Any SV3_1aParser::NInpGate_XnorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNInpGate_Xnor(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NInpGate_NorContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NInpGate_NorContext::NOR() {
@@ -38786,6 +41781,13 @@
   if (parserListener != nullptr)
     parserListener->exitNInpGate_Nor(this);
 }
+
+antlrcpp::Any SV3_1aParser::NInpGate_NorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNInpGate_Nor(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::N_input_gatetypeContext* SV3_1aParser::n_input_gatetype() {
   N_input_gatetypeContext *_localctx = _tracker.createInstance<N_input_gatetypeContext>(_ctx, getState());
   enterRule(_localctx, 612, SV3_1aParser::RuleN_input_gatetype);
@@ -38892,6 +41894,13 @@
   if (parserListener != nullptr)
     parserListener->exitNOutGate_Buf(this);
 }
+
+antlrcpp::Any SV3_1aParser::NOutGate_BufContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNOutGate_Buf(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- NOutGate_NotContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::NOutGate_NotContext::NOT() {
@@ -38910,6 +41919,13 @@
   if (parserListener != nullptr)
     parserListener->exitNOutGate_Not(this);
 }
+
+antlrcpp::Any SV3_1aParser::NOutGate_NotContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNOutGate_Not(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::N_output_gatetypeContext* SV3_1aParser::n_output_gatetype() {
   N_output_gatetypeContext *_localctx = _tracker.createInstance<N_output_gatetypeContext>(_ctx, getState());
   enterRule(_localctx, 614, SV3_1aParser::RuleN_output_gatetype);
@@ -38984,6 +42000,13 @@
   if (parserListener != nullptr)
     parserListener->exitPassEnSwitch_RTranif1(this);
 }
+
+antlrcpp::Any SV3_1aParser::PassEnSwitch_RTranif1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPassEnSwitch_RTranif1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- PassEnSwitch_Tranif0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::PassEnSwitch_Tranif0Context::TRANIF0() {
@@ -39002,6 +42025,13 @@
   if (parserListener != nullptr)
     parserListener->exitPassEnSwitch_Tranif0(this);
 }
+
+antlrcpp::Any SV3_1aParser::PassEnSwitch_Tranif0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPassEnSwitch_Tranif0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- PassEnSwitch_Tranif1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::PassEnSwitch_Tranif1Context::TRANIF1() {
@@ -39020,6 +42050,13 @@
   if (parserListener != nullptr)
     parserListener->exitPassEnSwitch_Tranif1(this);
 }
+
+antlrcpp::Any SV3_1aParser::PassEnSwitch_Tranif1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPassEnSwitch_Tranif1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- PassEnSwitch_RTranif0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::PassEnSwitch_RTranif0Context::RTRANIF0() {
@@ -39038,6 +42075,13 @@
   if (parserListener != nullptr)
     parserListener->exitPassEnSwitch_RTranif0(this);
 }
+
+antlrcpp::Any SV3_1aParser::PassEnSwitch_RTranif0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPassEnSwitch_RTranif0(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Pass_en_switchtypeContext* SV3_1aParser::pass_en_switchtype() {
   Pass_en_switchtypeContext *_localctx = _tracker.createInstance<Pass_en_switchtypeContext>(_ctx, getState());
   enterRule(_localctx, 616, SV3_1aParser::RulePass_en_switchtype);
@@ -39128,6 +42172,13 @@
   if (parserListener != nullptr)
     parserListener->exitPassSwitch_RTran(this);
 }
+
+antlrcpp::Any SV3_1aParser::PassSwitch_RTranContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPassSwitch_RTran(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- PassSwitch_TranContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::PassSwitch_TranContext::TRAN() {
@@ -39146,6 +42197,13 @@
   if (parserListener != nullptr)
     parserListener->exitPassSwitch_Tran(this);
 }
+
+antlrcpp::Any SV3_1aParser::PassSwitch_TranContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPassSwitch_Tran(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Pass_switchtypeContext* SV3_1aParser::pass_switchtype() {
   Pass_switchtypeContext *_localctx = _tracker.createInstance<Pass_switchtypeContext>(_ctx, getState());
   enterRule(_localctx, 618, SV3_1aParser::RulePass_switchtype);
@@ -39238,6 +42296,14 @@
     parserListener->exitModule_instantiation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Module_instantiationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_instantiation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Module_instantiationContext* SV3_1aParser::module_instantiation() {
   Module_instantiationContext *_localctx = _tracker.createInstance<Module_instantiationContext>(_ctx, getState());
   enterRule(_localctx, 620, SV3_1aParser::RuleModule_instantiation);
@@ -39332,6 +42398,14 @@
     parserListener->exitParameter_value_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Parameter_value_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitParameter_value_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Parameter_value_assignmentContext* SV3_1aParser::parameter_value_assignment() {
   Parameter_value_assignmentContext *_localctx = _tracker.createInstance<Parameter_value_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 622, SV3_1aParser::RuleParameter_value_assignment);
@@ -39516,6 +42590,14 @@
     parserListener->exitList_of_parameter_assignments(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_parameter_assignmentsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_parameter_assignments(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_parameter_assignmentsContext* SV3_1aParser::list_of_parameter_assignments() {
   List_of_parameter_assignmentsContext *_localctx = _tracker.createInstance<List_of_parameter_assignmentsContext>(_ctx, getState());
   enterRule(_localctx, 624, SV3_1aParser::RuleList_of_parameter_assignments);
@@ -39682,6 +42764,14 @@
     parserListener->exitOrdered_parameter_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Ordered_parameter_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOrdered_parameter_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Ordered_parameter_assignmentContext* SV3_1aParser::ordered_parameter_assignment() {
   Ordered_parameter_assignmentContext *_localctx = _tracker.createInstance<Ordered_parameter_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 626, SV3_1aParser::RuleOrdered_parameter_assignment);
@@ -39747,6 +42837,14 @@
     parserListener->exitNamed_parameter_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Named_parameter_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNamed_parameter_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Named_parameter_assignmentContext* SV3_1aParser::named_parameter_assignment() {
   Named_parameter_assignmentContext *_localctx = _tracker.createInstance<Named_parameter_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 628, SV3_1aParser::RuleNamed_parameter_assignment);
@@ -39899,6 +42997,14 @@
     parserListener->exitHierarchical_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Hierarchical_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitHierarchical_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Hierarchical_instanceContext* SV3_1aParser::hierarchical_instance() {
   Hierarchical_instanceContext *_localctx = _tracker.createInstance<Hierarchical_instanceContext>(_ctx, getState());
   enterRule(_localctx, 630, SV3_1aParser::RuleHierarchical_instance);
@@ -39962,6 +43068,14 @@
     parserListener->exitName_of_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Name_of_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitName_of_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Name_of_instanceContext* SV3_1aParser::name_of_instance() {
   Name_of_instanceContext *_localctx = _tracker.createInstance<Name_of_instanceContext>(_ctx, getState());
   enterRule(_localctx, 632, SV3_1aParser::RuleName_of_instance);
@@ -40042,6 +43156,14 @@
     parserListener->exitList_of_port_connections(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_port_connectionsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_port_connections(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_port_connectionsContext* SV3_1aParser::list_of_port_connections() {
   List_of_port_connectionsContext *_localctx = _tracker.createInstance<List_of_port_connectionsContext>(_ctx, getState());
   enterRule(_localctx, 634, SV3_1aParser::RuleList_of_port_connections);
@@ -40139,6 +43261,14 @@
     parserListener->exitOrdered_port_connection(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Ordered_port_connectionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOrdered_port_connection(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Ordered_port_connectionContext* SV3_1aParser::ordered_port_connection() {
   Ordered_port_connectionContext *_localctx = _tracker.createInstance<Ordered_port_connectionContext>(_ctx, getState());
   enterRule(_localctx, 636, SV3_1aParser::RuleOrdered_port_connection);
@@ -40303,6 +43433,14 @@
     parserListener->exitNamed_port_connection(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Named_port_connectionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNamed_port_connection(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Named_port_connectionContext* SV3_1aParser::named_port_connection() {
   Named_port_connectionContext *_localctx = _tracker.createInstance<Named_port_connectionContext>(_ctx, getState());
   enterRule(_localctx, 638, SV3_1aParser::RuleNamed_port_connection);
@@ -40493,6 +43631,14 @@
     parserListener->exitInterface_instantiation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_instantiationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_instantiation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_instantiationContext* SV3_1aParser::interface_instantiation() {
   Interface_instantiationContext *_localctx = _tracker.createInstance<Interface_instantiationContext>(_ctx, getState());
   enterRule(_localctx, 640, SV3_1aParser::RuleInterface_instantiation);
@@ -40591,6 +43737,14 @@
     parserListener->exitProgram_instantiation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Program_instantiationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProgram_instantiation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Program_instantiationContext* SV3_1aParser::program_instantiation() {
   Program_instantiationContext *_localctx = _tracker.createInstance<Program_instantiationContext>(_ctx, getState());
   enterRule(_localctx, 642, SV3_1aParser::RuleProgram_instantiation);
@@ -40681,6 +43835,14 @@
     parserListener->exitChecker_instantiation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Checker_instantiationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitChecker_instantiation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Checker_instantiationContext* SV3_1aParser::checker_instantiation() {
   Checker_instantiationContext *_localctx = _tracker.createInstance<Checker_instantiationContext>(_ctx, getState());
   enterRule(_localctx, 644, SV3_1aParser::RuleChecker_instantiation);
@@ -40754,6 +43916,14 @@
     parserListener->exitList_of_checker_port_connections(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_checker_port_connectionsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_checker_port_connections(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_checker_port_connectionsContext* SV3_1aParser::list_of_checker_port_connections() {
   List_of_checker_port_connectionsContext *_localctx = _tracker.createInstance<List_of_checker_port_connectionsContext>(_ctx, getState());
   enterRule(_localctx, 646, SV3_1aParser::RuleList_of_checker_port_connections);
@@ -40847,6 +44017,14 @@
     parserListener->exitOrdered_checker_port_connection(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Ordered_checker_port_connectionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOrdered_checker_port_connection(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Ordered_checker_port_connectionContext* SV3_1aParser::ordered_checker_port_connection() {
   Ordered_checker_port_connectionContext *_localctx = _tracker.createInstance<Ordered_checker_port_connectionContext>(_ctx, getState());
   enterRule(_localctx, 648, SV3_1aParser::RuleOrdered_checker_port_connection);
@@ -41032,6 +44210,14 @@
     parserListener->exitNamed_checker_port_connection(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Named_checker_port_connectionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNamed_checker_port_connection(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Named_checker_port_connectionContext* SV3_1aParser::named_checker_port_connection() {
   Named_checker_port_connectionContext *_localctx = _tracker.createInstance<Named_checker_port_connectionContext>(_ctx, getState());
   enterRule(_localctx, 650, SV3_1aParser::RuleNamed_checker_port_connection);
@@ -41219,6 +44405,14 @@
     parserListener->exitEndgenerate(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndgenerateContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndgenerate(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndgenerateContext* SV3_1aParser::endgenerate() {
   EndgenerateContext *_localctx = _tracker.createInstance<EndgenerateContext>(_ctx, getState());
   enterRule(_localctx, 652, SV3_1aParser::RuleEndgenerate);
@@ -41280,6 +44474,14 @@
     parserListener->exitGenerated_module_instantiation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generated_module_instantiationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerated_module_instantiation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generated_module_instantiationContext* SV3_1aParser::generated_module_instantiation() {
   Generated_module_instantiationContext *_localctx = _tracker.createInstance<Generated_module_instantiationContext>(_ctx, getState());
   enterRule(_localctx, 654, SV3_1aParser::RuleGenerated_module_instantiation);
@@ -41486,6 +44688,14 @@
     parserListener->exitGenerate_module_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_module_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_module_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_module_itemContext* SV3_1aParser::generate_module_item() {
   Generate_module_itemContext *_localctx = _tracker.createInstance<Generate_module_itemContext>(_ctx, getState());
   enterRule(_localctx, 656, SV3_1aParser::RuleGenerate_module_item);
@@ -41624,6 +44834,14 @@
     parserListener->exitGenerate_module_conditional_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_module_conditional_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_module_conditional_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_module_conditional_statementContext* SV3_1aParser::generate_module_conditional_statement() {
   Generate_module_conditional_statementContext *_localctx = _tracker.createInstance<Generate_module_conditional_statementContext>(_ctx, getState());
   enterRule(_localctx, 658, SV3_1aParser::RuleGenerate_module_conditional_statement);
@@ -41718,6 +44936,14 @@
     parserListener->exitGenerate_module_case_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_module_case_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_module_case_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_module_case_statementContext* SV3_1aParser::generate_module_case_statement() {
   Generate_module_case_statementContext *_localctx = _tracker.createInstance<Generate_module_case_statementContext>(_ctx, getState());
   enterRule(_localctx, 660, SV3_1aParser::RuleGenerate_module_case_statement);
@@ -41879,6 +45105,14 @@
     parserListener->exitGenvar_module_case_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Genvar_module_case_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenvar_module_case_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Genvar_module_case_itemContext* SV3_1aParser::genvar_module_case_item() {
   Genvar_module_case_itemContext *_localctx = _tracker.createInstance<Genvar_module_case_itemContext>(_ctx, getState());
   enterRule(_localctx, 662, SV3_1aParser::RuleGenvar_module_case_item);
@@ -42069,6 +45303,14 @@
     parserListener->exitGenerate_module_loop_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_module_loop_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_module_loop_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_module_loop_statementContext* SV3_1aParser::generate_module_loop_statement() {
   Generate_module_loop_statementContext *_localctx = _tracker.createInstance<Generate_module_loop_statementContext>(_ctx, getState());
   enterRule(_localctx, 664, SV3_1aParser::RuleGenerate_module_loop_statement);
@@ -42146,6 +45388,14 @@
     parserListener->exitGenvar_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Genvar_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenvar_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Genvar_assignmentContext* SV3_1aParser::genvar_assignment() {
   Genvar_assignmentContext *_localctx = _tracker.createInstance<Genvar_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 666, SV3_1aParser::RuleGenvar_assignment);
@@ -42237,6 +45487,14 @@
     parserListener->exitGenvar_decl_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Genvar_decl_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenvar_decl_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Genvar_decl_assignmentContext* SV3_1aParser::genvar_decl_assignment() {
   Genvar_decl_assignmentContext *_localctx = _tracker.createInstance<Genvar_decl_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 668, SV3_1aParser::RuleGenvar_decl_assignment);
@@ -42331,6 +45589,14 @@
     parserListener->exitGenerate_module_named_block(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_module_named_blockContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_module_named_block(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_module_named_blockContext* SV3_1aParser::generate_module_named_block() {
   Generate_module_named_blockContext *_localctx = _tracker.createInstance<Generate_module_named_blockContext>(_ctx, getState());
   enterRule(_localctx, 670, SV3_1aParser::RuleGenerate_module_named_block);
@@ -42593,6 +45859,14 @@
     parserListener->exitGenerate_module_block(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_module_blockContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_module_block(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_module_blockContext* SV3_1aParser::generate_module_block() {
   Generate_module_blockContext *_localctx = _tracker.createInstance<Generate_module_blockContext>(_ctx, getState());
   enterRule(_localctx, 672, SV3_1aParser::RuleGenerate_module_block);
@@ -42807,6 +46081,14 @@
     parserListener->exitGenerated_interface_instantiation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generated_interface_instantiationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerated_interface_instantiation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generated_interface_instantiationContext* SV3_1aParser::generated_interface_instantiation() {
   Generated_interface_instantiationContext *_localctx = _tracker.createInstance<Generated_interface_instantiationContext>(_ctx, getState());
   enterRule(_localctx, 674, SV3_1aParser::RuleGenerated_interface_instantiation);
@@ -42987,6 +46269,14 @@
     parserListener->exitGenerate_interface_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_interface_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_interface_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_interface_itemContext* SV3_1aParser::generate_interface_item() {
   Generate_interface_itemContext *_localctx = _tracker.createInstance<Generate_interface_itemContext>(_ctx, getState());
   enterRule(_localctx, 676, SV3_1aParser::RuleGenerate_interface_item);
@@ -43100,6 +46390,14 @@
     parserListener->exitGenerate_interface_conditional_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_interface_conditional_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_interface_conditional_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_interface_conditional_statementContext* SV3_1aParser::generate_interface_conditional_statement() {
   Generate_interface_conditional_statementContext *_localctx = _tracker.createInstance<Generate_interface_conditional_statementContext>(_ctx, getState());
   enterRule(_localctx, 678, SV3_1aParser::RuleGenerate_interface_conditional_statement);
@@ -43194,6 +46492,14 @@
     parserListener->exitGenerate_interface_case_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_interface_case_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_interface_case_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_interface_case_statementContext* SV3_1aParser::generate_interface_case_statement() {
   Generate_interface_case_statementContext *_localctx = _tracker.createInstance<Generate_interface_case_statementContext>(_ctx, getState());
   enterRule(_localctx, 680, SV3_1aParser::RuleGenerate_interface_case_statement);
@@ -43355,6 +46661,14 @@
     parserListener->exitGenvar_interface_case_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Genvar_interface_case_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenvar_interface_case_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Genvar_interface_case_itemContext* SV3_1aParser::genvar_interface_case_item() {
   Genvar_interface_case_itemContext *_localctx = _tracker.createInstance<Genvar_interface_case_itemContext>(_ctx, getState());
   enterRule(_localctx, 682, SV3_1aParser::RuleGenvar_interface_case_item);
@@ -43545,6 +46859,14 @@
     parserListener->exitGenerate_interface_loop_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_interface_loop_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_interface_loop_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_interface_loop_statementContext* SV3_1aParser::generate_interface_loop_statement() {
   Generate_interface_loop_statementContext *_localctx = _tracker.createInstance<Generate_interface_loop_statementContext>(_ctx, getState());
   enterRule(_localctx, 684, SV3_1aParser::RuleGenerate_interface_loop_statement);
@@ -43642,6 +46964,14 @@
     parserListener->exitGenerate_interface_named_block(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_interface_named_blockContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_interface_named_block(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_interface_named_blockContext* SV3_1aParser::generate_interface_named_block() {
   Generate_interface_named_blockContext *_localctx = _tracker.createInstance<Generate_interface_named_blockContext>(_ctx, getState());
   enterRule(_localctx, 686, SV3_1aParser::RuleGenerate_interface_named_block);
@@ -43878,6 +47208,14 @@
     parserListener->exitGenerate_interface_block(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_interface_blockContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_interface_block(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_interface_blockContext* SV3_1aParser::generate_interface_block() {
   Generate_interface_blockContext *_localctx = _tracker.createInstance<Generate_interface_blockContext>(_ctx, getState());
   enterRule(_localctx, 688, SV3_1aParser::RuleGenerate_interface_block);
@@ -44066,6 +47404,14 @@
     parserListener->exitGenerate_region(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_regionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_region(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_regionContext* SV3_1aParser::generate_region() {
   Generate_regionContext *_localctx = _tracker.createInstance<Generate_regionContext>(_ctx, getState());
   enterRule(_localctx, 690, SV3_1aParser::RuleGenerate_region);
@@ -44283,6 +47629,14 @@
     parserListener->exitLoop_generate_construct(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Loop_generate_constructContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLoop_generate_construct(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Loop_generate_constructContext* SV3_1aParser::loop_generate_construct() {
   Loop_generate_constructContext *_localctx = _tracker.createInstance<Loop_generate_constructContext>(_ctx, getState());
   enterRule(_localctx, 692, SV3_1aParser::RuleLoop_generate_construct);
@@ -44360,6 +47714,14 @@
     parserListener->exitGenvar_initialization(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Genvar_initializationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenvar_initialization(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Genvar_initializationContext* SV3_1aParser::genvar_initialization() {
   Genvar_initializationContext *_localctx = _tracker.createInstance<Genvar_initializationContext>(_ctx, getState());
   enterRule(_localctx, 694, SV3_1aParser::RuleGenvar_initialization);
@@ -44434,6 +47796,14 @@
     parserListener->exitGenvar_iteration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Genvar_iterationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenvar_iteration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Genvar_iterationContext* SV3_1aParser::genvar_iteration() {
   Genvar_iterationContext *_localctx = _tracker.createInstance<Genvar_iterationContext>(_ctx, getState());
   enterRule(_localctx, 696, SV3_1aParser::RuleGenvar_iteration);
@@ -44517,6 +47887,14 @@
     parserListener->exitConditional_generate_construct(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Conditional_generate_constructContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConditional_generate_construct(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Conditional_generate_constructContext* SV3_1aParser::conditional_generate_construct() {
   Conditional_generate_constructContext *_localctx = _tracker.createInstance<Conditional_generate_constructContext>(_ctx, getState());
   enterRule(_localctx, 698, SV3_1aParser::RuleConditional_generate_construct);
@@ -44607,6 +47985,14 @@
     parserListener->exitIf_generate_construct(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::If_generate_constructContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIf_generate_construct(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::If_generate_constructContext* SV3_1aParser::if_generate_construct() {
   If_generate_constructContext *_localctx = _tracker.createInstance<If_generate_constructContext>(_ctx, getState());
   enterRule(_localctx, 700, SV3_1aParser::RuleIf_generate_construct);
@@ -44701,6 +48087,14 @@
     parserListener->exitCase_generate_construct(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Case_generate_constructContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCase_generate_construct(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Case_generate_constructContext* SV3_1aParser::case_generate_construct() {
   Case_generate_constructContext *_localctx = _tracker.createInstance<Case_generate_constructContext>(_ctx, getState());
   enterRule(_localctx, 702, SV3_1aParser::RuleCase_generate_construct);
@@ -44862,6 +48256,14 @@
     parserListener->exitCase_generate_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Case_generate_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCase_generate_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Case_generate_itemContext* SV3_1aParser::case_generate_item() {
   Case_generate_itemContext *_localctx = _tracker.createInstance<Case_generate_itemContext>(_ctx, getState());
   enterRule(_localctx, 704, SV3_1aParser::RuleCase_generate_item);
@@ -45048,6 +48450,14 @@
     parserListener->exitGenerate_block(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_blockContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_block(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_blockContext* SV3_1aParser::generate_block() {
   Generate_blockContext *_localctx = _tracker.createInstance<Generate_blockContext>(_ctx, getState());
   enterRule(_localctx, 706, SV3_1aParser::RuleGenerate_block);
@@ -45304,6 +48714,14 @@
     parserListener->exitGenerate_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Generate_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitGenerate_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Generate_itemContext* SV3_1aParser::generate_item() {
   Generate_itemContext *_localctx = _tracker.createInstance<Generate_itemContext>(_ctx, getState());
   enterRule(_localctx, 708, SV3_1aParser::RuleGenerate_item);
@@ -45403,6 +48821,14 @@
     parserListener->exitUdp_nonansi_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Udp_nonansi_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUdp_nonansi_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Udp_nonansi_declarationContext* SV3_1aParser::udp_nonansi_declaration() {
   Udp_nonansi_declarationContext *_localctx = _tracker.createInstance<Udp_nonansi_declarationContext>(_ctx, getState());
   enterRule(_localctx, 710, SV3_1aParser::RuleUdp_nonansi_declaration);
@@ -45501,6 +48927,14 @@
     parserListener->exitUdp_ansi_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Udp_ansi_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUdp_ansi_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Udp_ansi_declarationContext* SV3_1aParser::udp_ansi_declaration() {
   Udp_ansi_declarationContext *_localctx = _tracker.createInstance<Udp_ansi_declarationContext>(_ctx, getState());
   enterRule(_localctx, 712, SV3_1aParser::RuleUdp_ansi_declaration);
@@ -45571,6 +49005,14 @@
     parserListener->exitEndprimitive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndprimitiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndprimitive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndprimitiveContext* SV3_1aParser::endprimitive() {
   EndprimitiveContext *_localctx = _tracker.createInstance<EndprimitiveContext>(_ctx, getState());
   enterRule(_localctx, 714, SV3_1aParser::RuleEndprimitive);
@@ -45684,6 +49126,14 @@
     parserListener->exitUdp_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Udp_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUdp_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Udp_declarationContext* SV3_1aParser::udp_declaration() {
   Udp_declarationContext *_localctx = _tracker.createInstance<Udp_declarationContext>(_ctx, getState());
   enterRule(_localctx, 716, SV3_1aParser::RuleUdp_declaration);
@@ -45876,6 +49326,14 @@
     parserListener->exitUdp_port_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Udp_port_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUdp_port_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Udp_port_listContext* SV3_1aParser::udp_port_list() {
   Udp_port_listContext *_localctx = _tracker.createInstance<Udp_port_listContext>(_ctx, getState());
   enterRule(_localctx, 718, SV3_1aParser::RuleUdp_port_list);
@@ -45958,6 +49416,14 @@
     parserListener->exitUdp_declaration_port_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Udp_declaration_port_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUdp_declaration_port_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Udp_declaration_port_listContext* SV3_1aParser::udp_declaration_port_list() {
   Udp_declaration_port_listContext *_localctx = _tracker.createInstance<Udp_declaration_port_listContext>(_ctx, getState());
   enterRule(_localctx, 720, SV3_1aParser::RuleUdp_declaration_port_list);
@@ -46036,6 +49502,14 @@
     parserListener->exitUdp_port_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Udp_port_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUdp_port_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Udp_port_declarationContext* SV3_1aParser::udp_port_declaration() {
   Udp_port_declarationContext *_localctx = _tracker.createInstance<Udp_port_declarationContext>(_ctx, getState());
   enterRule(_localctx, 722, SV3_1aParser::RuleUdp_port_declaration);
@@ -46137,6 +49611,14 @@
     parserListener->exitUdp_output_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Udp_output_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUdp_output_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Udp_output_declarationContext* SV3_1aParser::udp_output_declaration() {
   Udp_output_declarationContext *_localctx = _tracker.createInstance<Udp_output_declarationContext>(_ctx, getState());
   enterRule(_localctx, 724, SV3_1aParser::RuleUdp_output_declaration);
@@ -46239,6 +49721,14 @@
     parserListener->exitUdp_input_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Udp_input_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUdp_input_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Udp_input_declarationContext* SV3_1aParser::udp_input_declaration() {
   Udp_input_declarationContext *_localctx = _tracker.createInstance<Udp_input_declarationContext>(_ctx, getState());
   enterRule(_localctx, 726, SV3_1aParser::RuleUdp_input_declaration);
@@ -46313,6 +49803,14 @@
     parserListener->exitUdp_reg_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Udp_reg_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUdp_reg_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Udp_reg_declarationContext* SV3_1aParser::udp_reg_declaration() {
   Udp_reg_declarationContext *_localctx = _tracker.createInstance<Udp_reg_declarationContext>(_ctx, getState());
   enterRule(_localctx, 728, SV3_1aParser::RuleUdp_reg_declaration);
@@ -46379,6 +49877,14 @@
     parserListener->exitUdp_body(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Udp_bodyContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUdp_body(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Udp_bodyContext* SV3_1aParser::udp_body() {
   Udp_bodyContext *_localctx = _tracker.createInstance<Udp_bodyContext>(_ctx, getState());
   enterRule(_localctx, 730, SV3_1aParser::RuleUdp_body);
@@ -46443,6 +49949,14 @@
     parserListener->exitEndtable(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndtableContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndtable(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndtableContext* SV3_1aParser::endtable() {
   EndtableContext *_localctx = _tracker.createInstance<EndtableContext>(_ctx, getState());
   enterRule(_localctx, 732, SV3_1aParser::RuleEndtable);
@@ -46504,6 +50018,14 @@
     parserListener->exitCombinational_body(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Combinational_bodyContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCombinational_body(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Combinational_bodyContext* SV3_1aParser::combinational_body() {
   Combinational_bodyContext *_localctx = _tracker.createInstance<Combinational_bodyContext>(_ctx, getState());
   enterRule(_localctx, 734, SV3_1aParser::RuleCombinational_body);
@@ -46582,6 +50104,14 @@
     parserListener->exitCombinational_entry(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Combinational_entryContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCombinational_entry(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Combinational_entryContext* SV3_1aParser::combinational_entry() {
   Combinational_entryContext *_localctx = _tracker.createInstance<Combinational_entryContext>(_ctx, getState());
   enterRule(_localctx, 736, SV3_1aParser::RuleCombinational_entry);
@@ -46653,6 +50183,14 @@
     parserListener->exitSequential_body(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Sequential_bodyContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSequential_body(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Sequential_bodyContext* SV3_1aParser::sequential_body() {
   Sequential_bodyContext *_localctx = _tracker.createInstance<Sequential_bodyContext>(_ctx, getState());
   enterRule(_localctx, 738, SV3_1aParser::RuleSequential_body);
@@ -46745,6 +50283,14 @@
     parserListener->exitUdp_initial_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Udp_initial_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUdp_initial_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Udp_initial_statementContext* SV3_1aParser::udp_initial_statement() {
   Udp_initial_statementContext *_localctx = _tracker.createInstance<Udp_initial_statementContext>(_ctx, getState());
   enterRule(_localctx, 740, SV3_1aParser::RuleUdp_initial_statement);
@@ -46808,6 +50354,13 @@
   if (parserListener != nullptr)
     parserListener->exitInitVal_1Tickb1(this);
 }
+
+antlrcpp::Any SV3_1aParser::InitVal_1Tickb1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInitVal_1Tickb1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- InitVal_1TickB1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::InitVal_1TickB1Context::ONE_TICK_B1() {
@@ -46826,6 +50379,13 @@
   if (parserListener != nullptr)
     parserListener->exitInitVal_1TickB1(this);
 }
+
+antlrcpp::Any SV3_1aParser::InitVal_1TickB1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInitVal_1TickB1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- InitVal_1Tickb0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::InitVal_1Tickb0Context::ONE_TICK_b0() {
@@ -46844,6 +50404,13 @@
   if (parserListener != nullptr)
     parserListener->exitInitVal_1Tickb0(this);
 }
+
+antlrcpp::Any SV3_1aParser::InitVal_1Tickb0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInitVal_1Tickb0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- InitVal_1TickB0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::InitVal_1TickB0Context::ONE_TICK_B0() {
@@ -46862,6 +50429,13 @@
   if (parserListener != nullptr)
     parserListener->exitInitVal_1TickB0(this);
 }
+
+antlrcpp::Any SV3_1aParser::InitVal_1TickB0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInitVal_1TickB0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- InitVal_1TickbxContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::InitVal_1TickbxContext::ONE_TICK_bx() {
@@ -46880,6 +50454,13 @@
   if (parserListener != nullptr)
     parserListener->exitInitVal_1Tickbx(this);
 }
+
+antlrcpp::Any SV3_1aParser::InitVal_1TickbxContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInitVal_1Tickbx(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- InitVal_1TickbXContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::InitVal_1TickbXContext::ONE_TICK_bX() {
@@ -46898,6 +50479,13 @@
   if (parserListener != nullptr)
     parserListener->exitInitVal_1TickbX(this);
 }
+
+antlrcpp::Any SV3_1aParser::InitVal_1TickbXContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInitVal_1TickbX(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- InitVal_1TickBxContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::InitVal_1TickBxContext::ONE_TICK_Bx() {
@@ -46916,6 +50504,13 @@
   if (parserListener != nullptr)
     parserListener->exitInitVal_1TickBx(this);
 }
+
+antlrcpp::Any SV3_1aParser::InitVal_1TickBxContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInitVal_1TickBx(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- InitVal_1TickBXContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::InitVal_1TickBXContext::ONE_TICK_BX() {
@@ -46934,6 +50529,13 @@
   if (parserListener != nullptr)
     parserListener->exitInitVal_1TickBX(this);
 }
+
+antlrcpp::Any SV3_1aParser::InitVal_1TickBXContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInitVal_1TickBX(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- InitVal_IntegralContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::InitVal_IntegralContext::Integral_number() {
@@ -46952,6 +50554,13 @@
   if (parserListener != nullptr)
     parserListener->exitInitVal_Integral(this);
 }
+
+antlrcpp::Any SV3_1aParser::InitVal_IntegralContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInitVal_Integral(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Init_valContext* SV3_1aParser::init_val() {
   Init_valContext *_localctx = _tracker.createInstance<Init_valContext>(_ctx, getState());
   enterRule(_localctx, 742, SV3_1aParser::RuleInit_val);
@@ -47096,6 +50705,14 @@
     parserListener->exitSequential_entry(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Sequential_entryContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSequential_entry(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Sequential_entryContext* SV3_1aParser::sequential_entry() {
   Sequential_entryContext *_localctx = _tracker.createInstance<Sequential_entryContext>(_ctx, getState());
   enterRule(_localctx, 744, SV3_1aParser::RuleSequential_entry);
@@ -47159,6 +50776,14 @@
     parserListener->exitSeq_input_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Seq_input_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSeq_input_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Seq_input_listContext* SV3_1aParser::seq_input_list() {
   Seq_input_listContext *_localctx = _tracker.createInstance<Seq_input_listContext>(_ctx, getState());
   enterRule(_localctx, 746, SV3_1aParser::RuleSeq_input_list);
@@ -47227,6 +50852,14 @@
     parserListener->exitLevel_input_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Level_input_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLevel_input_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Level_input_listContext* SV3_1aParser::level_input_list() {
   Level_input_listContext *_localctx = _tracker.createInstance<Level_input_listContext>(_ctx, getState());
   enterRule(_localctx, 748, SV3_1aParser::RuleLevel_input_list);
@@ -47297,6 +50930,14 @@
     parserListener->exitEdge_input_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Edge_input_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEdge_input_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Edge_input_listContext* SV3_1aParser::edge_input_list() {
   Edge_input_listContext *_localctx = _tracker.createInstance<Edge_input_listContext>(_ctx, getState());
   enterRule(_localctx, 750, SV3_1aParser::RuleEdge_input_list);
@@ -47388,6 +51029,14 @@
     parserListener->exitEdge_indicator(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Edge_indicatorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEdge_indicator(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Edge_indicatorContext* SV3_1aParser::edge_indicator() {
   Edge_indicatorContext *_localctx = _tracker.createInstance<Edge_indicatorContext>(_ctx, getState());
   enterRule(_localctx, 752, SV3_1aParser::RuleEdge_indicator);
@@ -47474,6 +51123,14 @@
     parserListener->exitNext_state(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Next_stateContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNext_state(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Next_stateContext* SV3_1aParser::next_state() {
   Next_stateContext *_localctx = _tracker.createInstance<Next_stateContext>(_ctx, getState());
   enterRule(_localctx, 754, SV3_1aParser::RuleNext_state);
@@ -47545,6 +51202,14 @@
     parserListener->exitOutput_symbol(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Output_symbolContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOutput_symbol(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Output_symbolContext* SV3_1aParser::output_symbol() {
   Output_symbolContext *_localctx = _tracker.createInstance<Output_symbolContext>(_ctx, getState());
   enterRule(_localctx, 756, SV3_1aParser::RuleOutput_symbol);
@@ -47610,6 +51275,14 @@
     parserListener->exitLevel_symbol(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Level_symbolContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLevel_symbol(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Level_symbolContext* SV3_1aParser::level_symbol() {
   Level_symbolContext *_localctx = _tracker.createInstance<Level_symbolContext>(_ctx, getState());
   enterRule(_localctx, 758, SV3_1aParser::RuleLevel_symbol);
@@ -47673,6 +51346,14 @@
     parserListener->exitEdge_symbol(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Edge_symbolContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEdge_symbol(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Edge_symbolContext* SV3_1aParser::edge_symbol() {
   Edge_symbolContext *_localctx = _tracker.createInstance<Edge_symbolContext>(_ctx, getState());
   enterRule(_localctx, 760, SV3_1aParser::RuleEdge_symbol);
@@ -47758,6 +51439,14 @@
     parserListener->exitUdp_instantiation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Udp_instantiationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUdp_instantiation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Udp_instantiationContext* SV3_1aParser::udp_instantiation() {
   Udp_instantiationContext *_localctx = _tracker.createInstance<Udp_instantiationContext>(_ctx, getState());
   enterRule(_localctx, 762, SV3_1aParser::RuleUdp_instantiation);
@@ -47871,6 +51560,14 @@
     parserListener->exitUdp_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Udp_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUdp_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Udp_instanceContext* SV3_1aParser::udp_instance() {
   Udp_instanceContext *_localctx = _tracker.createInstance<Udp_instanceContext>(_ctx, getState());
   enterRule(_localctx, 764, SV3_1aParser::RuleUdp_instance);
@@ -47995,6 +51692,14 @@
     parserListener->exitContinuous_assign(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Continuous_assignContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitContinuous_assign(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Continuous_assignContext* SV3_1aParser::continuous_assign() {
   Continuous_assignContext *_localctx = _tracker.createInstance<Continuous_assignContext>(_ctx, getState());
   enterRule(_localctx, 766, SV3_1aParser::RuleContinuous_assign);
@@ -48106,6 +51811,14 @@
     parserListener->exitList_of_net_assignments(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_net_assignmentsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_net_assignments(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_net_assignmentsContext* SV3_1aParser::list_of_net_assignments() {
   List_of_net_assignmentsContext *_localctx = _tracker.createInstance<List_of_net_assignmentsContext>(_ctx, getState());
   enterRule(_localctx, 768, SV3_1aParser::RuleList_of_net_assignments);
@@ -48180,6 +51893,14 @@
     parserListener->exitList_of_variable_assignments(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_variable_assignmentsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_variable_assignments(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_variable_assignmentsContext* SV3_1aParser::list_of_variable_assignments() {
   List_of_variable_assignmentsContext *_localctx = _tracker.createInstance<List_of_variable_assignmentsContext>(_ctx, getState());
   enterRule(_localctx, 770, SV3_1aParser::RuleList_of_variable_assignments);
@@ -48262,6 +51983,14 @@
     parserListener->exitNet_alias(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Net_aliasContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNet_alias(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Net_aliasContext* SV3_1aParser::net_alias() {
   Net_aliasContext *_localctx = _tracker.createInstance<Net_aliasContext>(_ctx, getState());
   enterRule(_localctx, 772, SV3_1aParser::RuleNet_alias);
@@ -48336,6 +52065,14 @@
     parserListener->exitNet_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Net_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNet_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Net_assignmentContext* SV3_1aParser::net_assignment() {
   Net_assignmentContext *_localctx = _tracker.createInstance<Net_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 774, SV3_1aParser::RuleNet_assignment);
@@ -48393,6 +52130,14 @@
     parserListener->exitInitial_construct(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Initial_constructContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInitial_construct(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Initial_constructContext* SV3_1aParser::initial_construct() {
   Initial_constructContext *_localctx = _tracker.createInstance<Initial_constructContext>(_ctx, getState());
   enterRule(_localctx, 776, SV3_1aParser::RuleInitial_construct);
@@ -48448,6 +52193,14 @@
     parserListener->exitAlways_construct(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Always_constructContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAlways_construct(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Always_constructContext* SV3_1aParser::always_construct() {
   Always_constructContext *_localctx = _tracker.createInstance<Always_constructContext>(_ctx, getState());
   enterRule(_localctx, 778, SV3_1aParser::RuleAlways_construct);
@@ -48505,6 +52258,13 @@
   if (parserListener != nullptr)
     parserListener->exitAlwaysKeywd_Comb(this);
 }
+
+antlrcpp::Any SV3_1aParser::AlwaysKeywd_CombContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAlwaysKeywd_Comb(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AlwaysKeywd_LatchContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AlwaysKeywd_LatchContext::ALWAYS_LATCH() {
@@ -48523,6 +52283,13 @@
   if (parserListener != nullptr)
     parserListener->exitAlwaysKeywd_Latch(this);
 }
+
+antlrcpp::Any SV3_1aParser::AlwaysKeywd_LatchContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAlwaysKeywd_Latch(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AlwaysKeywd_FFContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AlwaysKeywd_FFContext::ALWAYS_FF() {
@@ -48541,6 +52308,13 @@
   if (parserListener != nullptr)
     parserListener->exitAlwaysKeywd_FF(this);
 }
+
+antlrcpp::Any SV3_1aParser::AlwaysKeywd_FFContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAlwaysKeywd_FF(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AlwaysKeywd_AlwaysContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AlwaysKeywd_AlwaysContext::ALWAYS() {
@@ -48559,6 +52333,13 @@
   if (parserListener != nullptr)
     parserListener->exitAlwaysKeywd_Always(this);
 }
+
+antlrcpp::Any SV3_1aParser::AlwaysKeywd_AlwaysContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAlwaysKeywd_Always(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Always_keywordContext* SV3_1aParser::always_keyword() {
   Always_keywordContext *_localctx = _tracker.createInstance<Always_keywordContext>(_ctx, getState());
   enterRule(_localctx, 780, SV3_1aParser::RuleAlways_keyword);
@@ -48695,6 +52476,14 @@
     parserListener->exitBlocking_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Blocking_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBlocking_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Blocking_assignmentContext* SV3_1aParser::blocking_assignment() {
   Blocking_assignmentContext *_localctx = _tracker.createInstance<Blocking_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 782, SV3_1aParser::RuleBlocking_assignment);
@@ -48822,6 +52611,14 @@
     parserListener->exitOperator_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Operator_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOperator_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Operator_assignmentContext* SV3_1aParser::operator_assignment() {
   Operator_assignmentContext *_localctx = _tracker.createInstance<Operator_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 784, SV3_1aParser::RuleOperator_assignment);
@@ -48881,6 +52678,13 @@
   if (parserListener != nullptr)
     parserListener->exitAssignOp_Add(this);
 }
+
+antlrcpp::Any SV3_1aParser::AssignOp_AddContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignOp_Add(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AssignOp_ModuloContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AssignOp_ModuloContext::MODULO_ASSIGN() {
@@ -48899,6 +52703,13 @@
   if (parserListener != nullptr)
     parserListener->exitAssignOp_Modulo(this);
 }
+
+antlrcpp::Any SV3_1aParser::AssignOp_ModuloContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignOp_Modulo(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AssignOp_BitwXorContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AssignOp_BitwXorContext::BITW_XOR_ASSIGN() {
@@ -48917,6 +52728,13 @@
   if (parserListener != nullptr)
     parserListener->exitAssignOp_BitwXor(this);
 }
+
+antlrcpp::Any SV3_1aParser::AssignOp_BitwXorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignOp_BitwXor(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AssignOp_BitwLeftShiftContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AssignOp_BitwLeftShiftContext::BITW_LEFT_SHIFT_ASSIGN() {
@@ -48935,6 +52753,13 @@
   if (parserListener != nullptr)
     parserListener->exitAssignOp_BitwLeftShift(this);
 }
+
+antlrcpp::Any SV3_1aParser::AssignOp_BitwLeftShiftContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignOp_BitwLeftShift(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AssignOp_SubContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AssignOp_SubContext::SUB_ASSIGN() {
@@ -48953,6 +52778,13 @@
   if (parserListener != nullptr)
     parserListener->exitAssignOp_Sub(this);
 }
+
+antlrcpp::Any SV3_1aParser::AssignOp_SubContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignOp_Sub(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AssignOp_BitwOrContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AssignOp_BitwOrContext::BITW_OR_ASSIGN() {
@@ -48971,6 +52803,13 @@
   if (parserListener != nullptr)
     parserListener->exitAssignOp_BitwOr(this);
 }
+
+antlrcpp::Any SV3_1aParser::AssignOp_BitwOrContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignOp_BitwOr(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AssignOp_DivContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AssignOp_DivContext::DIV_ASSIGN() {
@@ -48989,6 +52828,13 @@
   if (parserListener != nullptr)
     parserListener->exitAssignOp_Div(this);
 }
+
+antlrcpp::Any SV3_1aParser::AssignOp_DivContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignOp_Div(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AssignOp_BitwRightShiftContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AssignOp_BitwRightShiftContext::BITW_RIGHT_SHIFT_ASSIGN() {
@@ -49007,6 +52853,13 @@
   if (parserListener != nullptr)
     parserListener->exitAssignOp_BitwRightShift(this);
 }
+
+antlrcpp::Any SV3_1aParser::AssignOp_BitwRightShiftContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignOp_BitwRightShift(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AssignOp_AssignContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AssignOp_AssignContext::ASSIGN_OP() {
@@ -49025,6 +52878,13 @@
   if (parserListener != nullptr)
     parserListener->exitAssignOp_Assign(this);
 }
+
+antlrcpp::Any SV3_1aParser::AssignOp_AssignContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignOp_Assign(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AssignOp_ArithShiftRightContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AssignOp_ArithShiftRightContext::ARITH_SHIFT_RIGHT_ASSIGN() {
@@ -49043,6 +52903,13 @@
   if (parserListener != nullptr)
     parserListener->exitAssignOp_ArithShiftRight(this);
 }
+
+antlrcpp::Any SV3_1aParser::AssignOp_ArithShiftRightContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignOp_ArithShiftRight(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AssignOp_MultContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AssignOp_MultContext::MULT_ASSIGN() {
@@ -49061,6 +52928,13 @@
   if (parserListener != nullptr)
     parserListener->exitAssignOp_Mult(this);
 }
+
+antlrcpp::Any SV3_1aParser::AssignOp_MultContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignOp_Mult(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AssignOp_BitwAndContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AssignOp_BitwAndContext::BITW_AND_ASSIGN() {
@@ -49079,6 +52953,13 @@
   if (parserListener != nullptr)
     parserListener->exitAssignOp_BitwAnd(this);
 }
+
+antlrcpp::Any SV3_1aParser::AssignOp_BitwAndContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignOp_BitwAnd(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- AssignOp_ArithShiftLeftContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::AssignOp_ArithShiftLeftContext::ARITH_SHIFT_LEFT_ASSIGN() {
@@ -49097,6 +52978,13 @@
   if (parserListener != nullptr)
     parserListener->exitAssignOp_ArithShiftLeft(this);
 }
+
+antlrcpp::Any SV3_1aParser::AssignOp_ArithShiftLeftContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignOp_ArithShiftLeft(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Assignment_operatorContext* SV3_1aParser::assignment_operator() {
   Assignment_operatorContext *_localctx = _tracker.createInstance<Assignment_operatorContext>(_ctx, getState());
   enterRule(_localctx, 786, SV3_1aParser::RuleAssignment_operator);
@@ -49265,6 +53153,14 @@
     parserListener->exitNonblocking_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Nonblocking_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNonblocking_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Nonblocking_assignmentContext* SV3_1aParser::nonblocking_assignment() {
   Nonblocking_assignmentContext *_localctx = _tracker.createInstance<Nonblocking_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 788, SV3_1aParser::RuleNonblocking_assignment);
@@ -49360,6 +53256,14 @@
     parserListener->exitProcedural_continuous_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Procedural_continuous_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProcedural_continuous_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Procedural_continuous_assignmentContext* SV3_1aParser::procedural_continuous_assignment() {
   Procedural_continuous_assignmentContext *_localctx = _tracker.createInstance<Procedural_continuous_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 790, SV3_1aParser::RuleProcedural_continuous_assignment);
@@ -49472,6 +53376,14 @@
     parserListener->exitVariable_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Variable_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitVariable_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Variable_assignmentContext* SV3_1aParser::variable_assignment() {
   Variable_assignmentContext *_localctx = _tracker.createInstance<Variable_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 792, SV3_1aParser::RuleVariable_assignment);
@@ -49533,6 +53445,14 @@
     parserListener->exitAction_block(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Action_blockContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAction_block(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Action_blockContext* SV3_1aParser::action_block() {
   Action_blockContext *_localctx = _tracker.createInstance<Action_blockContext>(_ctx, getState());
   enterRule(_localctx, 794, SV3_1aParser::RuleAction_block);
@@ -49718,6 +53638,14 @@
     parserListener->exitSeq_block(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Seq_blockContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSeq_block(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Seq_blockContext* SV3_1aParser::seq_block() {
   Seq_blockContext *_localctx = _tracker.createInstance<Seq_blockContext>(_ctx, getState());
   enterRule(_localctx, 796, SV3_1aParser::RuleSeq_block);
@@ -49932,6 +53860,14 @@
     parserListener->exitPar_block(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Par_blockContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPar_block(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Par_blockContext* SV3_1aParser::par_block() {
   Par_blockContext *_localctx = _tracker.createInstance<Par_blockContext>(_ctx, getState());
   enterRule(_localctx, 798, SV3_1aParser::RulePar_block);
@@ -50124,6 +54060,14 @@
     parserListener->exitJoin_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Join_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitJoin_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Join_keywordContext* SV3_1aParser::join_keyword() {
   Join_keywordContext *_localctx = _tracker.createInstance<Join_keywordContext>(_ctx, getState());
   enterRule(_localctx, 800, SV3_1aParser::RuleJoin_keyword);
@@ -50173,6 +54117,14 @@
     parserListener->exitJoin_any_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Join_any_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitJoin_any_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Join_any_keywordContext* SV3_1aParser::join_any_keyword() {
   Join_any_keywordContext *_localctx = _tracker.createInstance<Join_any_keywordContext>(_ctx, getState());
   enterRule(_localctx, 802, SV3_1aParser::RuleJoin_any_keyword);
@@ -50222,6 +54174,14 @@
     parserListener->exitJoin_none_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Join_none_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitJoin_none_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Join_none_keywordContext* SV3_1aParser::join_none_keyword() {
   Join_none_keywordContext *_localctx = _tracker.createInstance<Join_none_keywordContext>(_ctx, getState());
   enterRule(_localctx, 804, SV3_1aParser::RuleJoin_none_keyword);
@@ -50283,6 +54243,14 @@
     parserListener->exitStatement_or_null(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Statement_or_nullContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStatement_or_null(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Statement_or_nullContext* SV3_1aParser::statement_or_null() {
   Statement_or_nullContext *_localctx = _tracker.createInstance<Statement_or_nullContext>(_ctx, getState());
   enterRule(_localctx, 806, SV3_1aParser::RuleStatement_or_null);
@@ -50374,6 +54342,14 @@
     parserListener->exitStatement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::StatementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStatement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::StatementContext* SV3_1aParser::statement() {
   StatementContext *_localctx = _tracker.createInstance<StatementContext>(_ctx, getState());
   enterRule(_localctx, 808, SV3_1aParser::RuleStatement);
@@ -50535,6 +54511,14 @@
     parserListener->exitStatement_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Statement_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStatement_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Statement_itemContext* SV3_1aParser::statement_item() {
   Statement_itemContext *_localctx = _tracker.createInstance<Statement_itemContext>(_ctx, getState());
   enterRule(_localctx, 810, SV3_1aParser::RuleStatement_item);
@@ -50761,6 +54745,14 @@
     parserListener->exitFunction_statement_or_null(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Function_statement_or_nullContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFunction_statement_or_null(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Function_statement_or_nullContext* SV3_1aParser::function_statement_or_null() {
   Function_statement_or_nullContext *_localctx = _tracker.createInstance<Function_statement_or_nullContext>(_ctx, getState());
   enterRule(_localctx, 812, SV3_1aParser::RuleFunction_statement_or_null);
@@ -50840,6 +54832,14 @@
     parserListener->exitProcedural_timing_control_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Procedural_timing_control_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProcedural_timing_control_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Procedural_timing_control_statementContext* SV3_1aParser::procedural_timing_control_statement() {
   Procedural_timing_control_statementContext *_localctx = _tracker.createInstance<Procedural_timing_control_statementContext>(_ctx, getState());
   enterRule(_localctx, 814, SV3_1aParser::RuleProcedural_timing_control_statement);
@@ -50911,6 +54911,14 @@
     parserListener->exitDelay_or_event_control(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Delay_or_event_controlContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDelay_or_event_control(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Delay_or_event_controlContext* SV3_1aParser::delay_or_event_control() {
   Delay_or_event_controlContext *_localctx = _tracker.createInstance<Delay_or_event_controlContext>(_ctx, getState());
   enterRule(_localctx, 816, SV3_1aParser::RuleDelay_or_event_control);
@@ -51011,6 +55019,14 @@
     parserListener->exitDelay_control(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Delay_controlContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDelay_control(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Delay_controlContext* SV3_1aParser::delay_control() {
   Delay_controlContext *_localctx = _tracker.createInstance<Delay_controlContext>(_ctx, getState());
   enterRule(_localctx, 818, SV3_1aParser::RuleDelay_control);
@@ -51109,6 +55125,14 @@
     parserListener->exitEvent_control(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Event_controlContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEvent_control(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Event_controlContext* SV3_1aParser::event_control() {
   Event_controlContext *_localctx = _tracker.createInstance<Event_controlContext>(_ctx, getState());
   enterRule(_localctx, 820, SV3_1aParser::RuleEvent_control);
@@ -51245,6 +55269,14 @@
 }
 
 
+antlrcpp::Any SV3_1aParser::Event_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEvent_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
+
 SV3_1aParser::Event_expressionContext* SV3_1aParser::event_expression() {
    return event_expression(0);
 }
@@ -51254,6 +55286,7 @@
   size_t parentState = getState();
   SV3_1aParser::Event_expressionContext *_localctx = _tracker.createInstance<Event_expressionContext>(_ctx, parentState);
   SV3_1aParser::Event_expressionContext *previousContext = _localctx;
+  (void)previousContext; // Silence compiler, in case the context is not used by generated code.
   size_t startState = 822;
   enterRecursionRule(_localctx, 822, SV3_1aParser::RuleEvent_expression, precedence);
 
@@ -51416,6 +55449,14 @@
     parserListener->exitProcedural_timing_control(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Procedural_timing_controlContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProcedural_timing_control(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Procedural_timing_controlContext* SV3_1aParser::procedural_timing_control() {
   Procedural_timing_controlContext *_localctx = _tracker.createInstance<Procedural_timing_controlContext>(_ctx, getState());
   enterRule(_localctx, 824, SV3_1aParser::RuleProcedural_timing_control);
@@ -51508,6 +55549,14 @@
     parserListener->exitJump_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Jump_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitJump_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Jump_statementContext* SV3_1aParser::jump_statement() {
   Jump_statementContext *_localctx = _tracker.createInstance<Jump_statementContext>(_ctx, getState());
   enterRule(_localctx, 826, SV3_1aParser::RuleJump_statement);
@@ -51670,6 +55719,14 @@
     parserListener->exitFinal_construct(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Final_constructContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFinal_construct(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Final_constructContext* SV3_1aParser::final_construct() {
   Final_constructContext *_localctx = _tracker.createInstance<Final_constructContext>(_ctx, getState());
   enterRule(_localctx, 828, SV3_1aParser::RuleFinal_construct);
@@ -51805,6 +55862,14 @@
     parserListener->exitWait_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Wait_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitWait_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Wait_statementContext* SV3_1aParser::wait_statement() {
   Wait_statementContext *_localctx = _tracker.createInstance<Wait_statementContext>(_ctx, getState());
   enterRule(_localctx, 830, SV3_1aParser::RuleWait_statement);
@@ -51991,6 +56056,14 @@
     parserListener->exitEvent_trigger(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Event_triggerContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEvent_trigger(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Event_triggerContext* SV3_1aParser::event_trigger() {
   Event_triggerContext *_localctx = _tracker.createInstance<Event_triggerContext>(_ctx, getState());
   enterRule(_localctx, 832, SV3_1aParser::RuleEvent_trigger);
@@ -52091,6 +56164,14 @@
     parserListener->exitDisable_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Disable_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDisable_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Disable_statementContext* SV3_1aParser::disable_statement() {
   Disable_statementContext *_localctx = _tracker.createInstance<Disable_statementContext>(_ctx, getState());
   enterRule(_localctx, 834, SV3_1aParser::RuleDisable_statement);
@@ -52211,6 +56292,14 @@
     parserListener->exitConditional_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Conditional_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConditional_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Conditional_statementContext* SV3_1aParser::conditional_statement() {
   Conditional_statementContext *_localctx = _tracker.createInstance<Conditional_statementContext>(_ctx, getState());
   enterRule(_localctx, 836, SV3_1aParser::RuleConditional_statement);
@@ -52325,6 +56414,14 @@
     parserListener->exitUnique_priority(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Unique_priorityContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnique_priority(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Unique_priorityContext* SV3_1aParser::unique_priority() {
   Unique_priorityContext *_localctx = _tracker.createInstance<Unique_priorityContext>(_ctx, getState());
   enterRule(_localctx, 838, SV3_1aParser::RuleUnique_priority);
@@ -52397,6 +56494,14 @@
     parserListener->exitCond_predicate(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Cond_predicateContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCond_predicate(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Cond_predicateContext* SV3_1aParser::cond_predicate() {
   Cond_predicateContext *_localctx = _tracker.createInstance<Cond_predicateContext>(_ctx, getState());
   enterRule(_localctx, 840, SV3_1aParser::RuleCond_predicate);
@@ -52467,6 +56572,14 @@
     parserListener->exitExpression_or_cond_pattern(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Expression_or_cond_patternContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitExpression_or_cond_pattern(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Expression_or_cond_patternContext* SV3_1aParser::expression_or_cond_pattern() {
   Expression_or_cond_patternContext *_localctx = _tracker.createInstance<Expression_or_cond_patternContext>(_ctx, getState());
   enterRule(_localctx, 842, SV3_1aParser::RuleExpression_or_cond_pattern);
@@ -52587,6 +56700,14 @@
     parserListener->exitCase_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Case_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCase_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Case_statementContext* SV3_1aParser::case_statement() {
   Case_statementContext *_localctx = _tracker.createInstance<Case_statementContext>(_ctx, getState());
   enterRule(_localctx, 844, SV3_1aParser::RuleCase_statement);
@@ -52975,6 +57096,13 @@
   if (parserListener != nullptr)
     parserListener->exitCaseKeyword_Case(this);
 }
+
+antlrcpp::Any SV3_1aParser::CaseKeyword_CaseContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCaseKeyword_Case(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- CaseKeyword_CaseZContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::CaseKeyword_CaseZContext::CASEZ() {
@@ -52993,6 +57121,13 @@
   if (parserListener != nullptr)
     parserListener->exitCaseKeyword_CaseZ(this);
 }
+
+antlrcpp::Any SV3_1aParser::CaseKeyword_CaseZContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCaseKeyword_CaseZ(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- CaseKeyword_CaseXContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::CaseKeyword_CaseXContext::CASEX() {
@@ -53011,6 +57146,13 @@
   if (parserListener != nullptr)
     parserListener->exitCaseKeyword_CaseX(this);
 }
+
+antlrcpp::Any SV3_1aParser::CaseKeyword_CaseXContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCaseKeyword_CaseX(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Case_keywordContext* SV3_1aParser::case_keyword() {
   Case_keywordContext *_localctx = _tracker.createInstance<Case_keywordContext>(_ctx, getState());
   enterRule(_localctx, 846, SV3_1aParser::RuleCase_keyword);
@@ -53111,6 +57253,14 @@
     parserListener->exitCase_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Case_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCase_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Case_itemContext* SV3_1aParser::case_item() {
   Case_itemContext *_localctx = _tracker.createInstance<Case_itemContext>(_ctx, getState());
   enterRule(_localctx, 848, SV3_1aParser::RuleCase_item);
@@ -53293,6 +57443,14 @@
     parserListener->exitCase_pattern_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Case_pattern_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCase_pattern_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Case_pattern_itemContext* SV3_1aParser::case_pattern_item() {
   Case_pattern_itemContext *_localctx = _tracker.createInstance<Case_pattern_itemContext>(_ctx, getState());
   enterRule(_localctx, 850, SV3_1aParser::RuleCase_pattern_item);
@@ -53464,6 +57622,14 @@
     parserListener->exitCase_inside_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Case_inside_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCase_inside_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Case_inside_itemContext* SV3_1aParser::case_inside_item() {
   Case_inside_itemContext *_localctx = _tracker.createInstance<Case_inside_itemContext>(_ctx, getState());
   enterRule(_localctx, 852, SV3_1aParser::RuleCase_inside_item);
@@ -53627,6 +57793,14 @@
     parserListener->exitRandcase_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Randcase_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRandcase_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Randcase_statementContext* SV3_1aParser::randcase_statement() {
   Randcase_statementContext *_localctx = _tracker.createInstance<Randcase_statementContext>(_ctx, getState());
   enterRule(_localctx, 854, SV3_1aParser::RuleRandcase_statement);
@@ -53769,6 +57943,14 @@
     parserListener->exitRandcase_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Randcase_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRandcase_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Randcase_itemContext* SV3_1aParser::randcase_item() {
   Randcase_itemContext *_localctx = _tracker.createInstance<Randcase_itemContext>(_ctx, getState());
   enterRule(_localctx, 856, SV3_1aParser::RuleRandcase_item);
@@ -53878,6 +58060,14 @@
     parserListener->exitPattern(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::PatternContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPattern(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::PatternContext* SV3_1aParser::pattern() {
   PatternContext *_localctx = _tracker.createInstance<PatternContext>(_ctx, getState());
   enterRule(_localctx, 858, SV3_1aParser::RulePattern);
@@ -54156,6 +58346,14 @@
     parserListener->exitAssignment_pattern(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Assignment_patternContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignment_pattern(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Assignment_patternContext* SV3_1aParser::assignment_pattern() {
   Assignment_patternContext *_localctx = _tracker.createInstance<Assignment_patternContext>(_ctx, getState());
   enterRule(_localctx, 860, SV3_1aParser::RuleAssignment_pattern);
@@ -54370,6 +58568,14 @@
     parserListener->exitStructure_pattern_key(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Structure_pattern_keyContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStructure_pattern_key(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Structure_pattern_keyContext* SV3_1aParser::structure_pattern_key() {
   Structure_pattern_keyContext *_localctx = _tracker.createInstance<Structure_pattern_keyContext>(_ctx, getState());
   enterRule(_localctx, 862, SV3_1aParser::RuleStructure_pattern_key);
@@ -54438,6 +58644,14 @@
     parserListener->exitArray_pattern_key(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Array_pattern_keyContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitArray_pattern_key(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Array_pattern_keyContext* SV3_1aParser::array_pattern_key() {
   Array_pattern_keyContext *_localctx = _tracker.createInstance<Array_pattern_keyContext>(_ctx, getState());
   enterRule(_localctx, 864, SV3_1aParser::RuleArray_pattern_key);
@@ -54506,6 +58720,14 @@
     parserListener->exitAssignment_pattern_key(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Assignment_pattern_keyContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignment_pattern_key(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Assignment_pattern_keyContext* SV3_1aParser::assignment_pattern_key() {
   Assignment_pattern_keyContext *_localctx = _tracker.createInstance<Assignment_pattern_keyContext>(_ctx, getState());
   enterRule(_localctx, 866, SV3_1aParser::RuleAssignment_pattern_key);
@@ -54604,6 +58826,14 @@
     parserListener->exitAssignment_pattern_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Assignment_pattern_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignment_pattern_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Assignment_pattern_expressionContext* SV3_1aParser::assignment_pattern_expression() {
   Assignment_pattern_expressionContext *_localctx = _tracker.createInstance<Assignment_pattern_expressionContext>(_ctx, getState());
   enterRule(_localctx, 868, SV3_1aParser::RuleAssignment_pattern_expression);
@@ -54700,6 +58930,14 @@
     parserListener->exitAssignment_pattern_expression_type(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Assignment_pattern_expression_typeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignment_pattern_expression_type(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Assignment_pattern_expression_typeContext* SV3_1aParser::assignment_pattern_expression_type() {
   Assignment_pattern_expression_typeContext *_localctx = _tracker.createInstance<Assignment_pattern_expression_typeContext>(_ctx, getState());
   enterRule(_localctx, 870, SV3_1aParser::RuleAssignment_pattern_expression_type);
@@ -54778,6 +59016,14 @@
     parserListener->exitConstant_assignment_pattern_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constant_assignment_pattern_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_assignment_pattern_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constant_assignment_pattern_expressionContext* SV3_1aParser::constant_assignment_pattern_expression() {
   Constant_assignment_pattern_expressionContext *_localctx = _tracker.createInstance<Constant_assignment_pattern_expressionContext>(_ctx, getState());
   enterRule(_localctx, 872, SV3_1aParser::RuleConstant_assignment_pattern_expression);
@@ -54851,6 +59097,14 @@
     parserListener->exitAssignment_pattern_net_lvalue(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Assignment_pattern_net_lvalueContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignment_pattern_net_lvalue(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Assignment_pattern_net_lvalueContext* SV3_1aParser::assignment_pattern_net_lvalue() {
   Assignment_pattern_net_lvalueContext *_localctx = _tracker.createInstance<Assignment_pattern_net_lvalueContext>(_ctx, getState());
   enterRule(_localctx, 874, SV3_1aParser::RuleAssignment_pattern_net_lvalue);
@@ -54943,6 +59197,14 @@
     parserListener->exitAssignment_pattern_variable_lvalue(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Assignment_pattern_variable_lvalueContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssignment_pattern_variable_lvalue(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Assignment_pattern_variable_lvalueContext* SV3_1aParser::assignment_pattern_variable_lvalue() {
   Assignment_pattern_variable_lvalueContext *_localctx = _tracker.createInstance<Assignment_pattern_variable_lvalueContext>(_ctx, getState());
   enterRule(_localctx, 876, SV3_1aParser::RuleAssignment_pattern_variable_lvalue);
@@ -55011,6 +59273,14 @@
     parserListener->exitForever_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Forever_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitForever_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Forever_keywordContext* SV3_1aParser::forever_keyword() {
   Forever_keywordContext *_localctx = _tracker.createInstance<Forever_keywordContext>(_ctx, getState());
   enterRule(_localctx, 878, SV3_1aParser::RuleForever_keyword);
@@ -55060,6 +59330,14 @@
     parserListener->exitRepeat_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Repeat_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRepeat_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Repeat_keywordContext* SV3_1aParser::repeat_keyword() {
   Repeat_keywordContext *_localctx = _tracker.createInstance<Repeat_keywordContext>(_ctx, getState());
   enterRule(_localctx, 880, SV3_1aParser::RuleRepeat_keyword);
@@ -55109,6 +59387,14 @@
     parserListener->exitWhile_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::While_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitWhile_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::While_keywordContext* SV3_1aParser::while_keyword() {
   While_keywordContext *_localctx = _tracker.createInstance<While_keywordContext>(_ctx, getState());
   enterRule(_localctx, 882, SV3_1aParser::RuleWhile_keyword);
@@ -55234,6 +59520,14 @@
     parserListener->exitLoop_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Loop_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLoop_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Loop_statementContext* SV3_1aParser::loop_statement() {
   Loop_statementContext *_localctx = _tracker.createInstance<Loop_statementContext>(_ctx, getState());
   enterRule(_localctx, 884, SV3_1aParser::RuleLoop_statement);
@@ -55568,6 +59862,14 @@
     parserListener->exitFor_initialization(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::For_initializationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFor_initialization(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::For_initializationContext* SV3_1aParser::for_initialization() {
   For_initializationContext *_localctx = _tracker.createInstance<For_initializationContext>(_ctx, getState());
   enterRule(_localctx, 886, SV3_1aParser::RuleFor_initialization);
@@ -55681,6 +59983,14 @@
     parserListener->exitFor_variable_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::For_variable_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFor_variable_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::For_variable_declarationContext* SV3_1aParser::for_variable_declaration() {
   For_variable_declarationContext *_localctx = _tracker.createInstance<For_variable_declarationContext>(_ctx, getState());
   enterRule(_localctx, 888, SV3_1aParser::RuleFor_variable_declaration);
@@ -55778,6 +60088,14 @@
     parserListener->exitFor_step(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::For_stepContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFor_step(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::For_stepContext* SV3_1aParser::for_step() {
   For_stepContext *_localctx = _tracker.createInstance<For_stepContext>(_ctx, getState());
   enterRule(_localctx, 890, SV3_1aParser::RuleFor_step);
@@ -55848,6 +60166,14 @@
     parserListener->exitFor_step_assignment(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::For_step_assignmentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFor_step_assignment(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::For_step_assignmentContext* SV3_1aParser::for_step_assignment() {
   For_step_assignmentContext *_localctx = _tracker.createInstance<For_step_assignmentContext>(_ctx, getState());
   enterRule(_localctx, 892, SV3_1aParser::RuleFor_step_assignment);
@@ -55931,6 +60257,14 @@
     parserListener->exitLoop_variables(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Loop_variablesContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLoop_variables(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Loop_variablesContext* SV3_1aParser::loop_variables() {
   Loop_variablesContext *_localctx = _tracker.createInstance<Loop_variablesContext>(_ctx, getState());
   enterRule(_localctx, 894, SV3_1aParser::RuleLoop_variables);
@@ -56061,6 +60395,14 @@
     parserListener->exitSubroutine_call_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Subroutine_call_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSubroutine_call_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Subroutine_call_statementContext* SV3_1aParser::subroutine_call_statement() {
   Subroutine_call_statementContext *_localctx = _tracker.createInstance<Subroutine_call_statementContext>(_ctx, getState());
   enterRule(_localctx, 896, SV3_1aParser::RuleSubroutine_call_statement);
@@ -56164,6 +60506,14 @@
     parserListener->exitAssertion_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Assertion_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAssertion_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Assertion_itemContext* SV3_1aParser::assertion_item() {
   Assertion_itemContext *_localctx = _tracker.createInstance<Assertion_itemContext>(_ctx, getState());
   enterRule(_localctx, 898, SV3_1aParser::RuleAssertion_item);
@@ -56236,6 +60586,14 @@
     parserListener->exitDeferred_immediate_assertion_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Deferred_immediate_assertion_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDeferred_immediate_assertion_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Deferred_immediate_assertion_itemContext* SV3_1aParser::deferred_immediate_assertion_item() {
   Deferred_immediate_assertion_itemContext *_localctx = _tracker.createInstance<Deferred_immediate_assertion_itemContext>(_ctx, getState());
   enterRule(_localctx, 900, SV3_1aParser::RuleDeferred_immediate_assertion_item);
@@ -56322,6 +60680,14 @@
     parserListener->exitProcedural_assertion_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Procedural_assertion_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProcedural_assertion_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Procedural_assertion_statementContext* SV3_1aParser::procedural_assertion_statement() {
   Procedural_assertion_statementContext *_localctx = _tracker.createInstance<Procedural_assertion_statementContext>(_ctx, getState());
   enterRule(_localctx, 902, SV3_1aParser::RuleProcedural_assertion_statement);
@@ -56397,6 +60763,14 @@
     parserListener->exitImmediate_assertion_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Immediate_assertion_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitImmediate_assertion_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Immediate_assertion_statementContext* SV3_1aParser::immediate_assertion_statement() {
   Immediate_assertion_statementContext *_localctx = _tracker.createInstance<Immediate_assertion_statementContext>(_ctx, getState());
   enterRule(_localctx, 904, SV3_1aParser::RuleImmediate_assertion_statement);
@@ -56469,6 +60843,14 @@
     parserListener->exitSimple_immediate_assertion_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Simple_immediate_assertion_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSimple_immediate_assertion_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Simple_immediate_assertion_statementContext* SV3_1aParser::simple_immediate_assertion_statement() {
   Simple_immediate_assertion_statementContext *_localctx = _tracker.createInstance<Simple_immediate_assertion_statementContext>(_ctx, getState());
   enterRule(_localctx, 906, SV3_1aParser::RuleSimple_immediate_assertion_statement);
@@ -56558,6 +60940,14 @@
     parserListener->exitSimple_immediate_assert_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Simple_immediate_assert_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSimple_immediate_assert_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Simple_immediate_assert_statementContext* SV3_1aParser::simple_immediate_assert_statement() {
   Simple_immediate_assert_statementContext *_localctx = _tracker.createInstance<Simple_immediate_assert_statementContext>(_ctx, getState());
   enterRule(_localctx, 908, SV3_1aParser::RuleSimple_immediate_assert_statement);
@@ -56631,6 +61021,14 @@
     parserListener->exitSimple_immediate_assume_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Simple_immediate_assume_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSimple_immediate_assume_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Simple_immediate_assume_statementContext* SV3_1aParser::simple_immediate_assume_statement() {
   Simple_immediate_assume_statementContext *_localctx = _tracker.createInstance<Simple_immediate_assume_statementContext>(_ctx, getState());
   enterRule(_localctx, 910, SV3_1aParser::RuleSimple_immediate_assume_statement);
@@ -56704,6 +61102,14 @@
     parserListener->exitSimple_immediate_cover_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Simple_immediate_cover_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSimple_immediate_cover_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Simple_immediate_cover_statementContext* SV3_1aParser::simple_immediate_cover_statement() {
   Simple_immediate_cover_statementContext *_localctx = _tracker.createInstance<Simple_immediate_cover_statementContext>(_ctx, getState());
   enterRule(_localctx, 912, SV3_1aParser::RuleSimple_immediate_cover_statement);
@@ -56769,6 +61175,14 @@
     parserListener->exitDeferred_immediate_assertion_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Deferred_immediate_assertion_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDeferred_immediate_assertion_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Deferred_immediate_assertion_statementContext* SV3_1aParser::deferred_immediate_assertion_statement() {
   Deferred_immediate_assertion_statementContext *_localctx = _tracker.createInstance<Deferred_immediate_assertion_statementContext>(_ctx, getState());
   enterRule(_localctx, 914, SV3_1aParser::RuleDeferred_immediate_assertion_statement);
@@ -56866,6 +61280,14 @@
     parserListener->exitDeferred_immediate_assert_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Deferred_immediate_assert_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDeferred_immediate_assert_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Deferred_immediate_assert_statementContext* SV3_1aParser::deferred_immediate_assert_statement() {
   Deferred_immediate_assert_statementContext *_localctx = _tracker.createInstance<Deferred_immediate_assert_statementContext>(_ctx, getState());
   enterRule(_localctx, 916, SV3_1aParser::RuleDeferred_immediate_assert_statement);
@@ -56971,6 +61393,14 @@
     parserListener->exitDeferred_immediate_assume_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Deferred_immediate_assume_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDeferred_immediate_assume_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Deferred_immediate_assume_statementContext* SV3_1aParser::deferred_immediate_assume_statement() {
   Deferred_immediate_assume_statementContext *_localctx = _tracker.createInstance<Deferred_immediate_assume_statementContext>(_ctx, getState());
   enterRule(_localctx, 918, SV3_1aParser::RuleDeferred_immediate_assume_statement);
@@ -57079,6 +61509,14 @@
     parserListener->exitDeferred_immediate_cover_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Deferred_immediate_cover_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDeferred_immediate_cover_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Deferred_immediate_cover_statementContext* SV3_1aParser::deferred_immediate_cover_statement() {
   Deferred_immediate_cover_statementContext *_localctx = _tracker.createInstance<Deferred_immediate_cover_statementContext>(_ctx, getState());
   enterRule(_localctx, 920, SV3_1aParser::RuleDeferred_immediate_cover_statement);
@@ -57163,6 +61601,14 @@
     parserListener->exitEndclocking(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndclockingContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndclocking(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndclockingContext* SV3_1aParser::endclocking() {
   EndclockingContext *_localctx = _tracker.createInstance<EndclockingContext>(_ctx, getState());
   enterRule(_localctx, 922, SV3_1aParser::RuleEndclocking);
@@ -57252,6 +61698,14 @@
     parserListener->exitClocking_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Clocking_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClocking_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Clocking_declarationContext* SV3_1aParser::clocking_declaration() {
   Clocking_declarationContext *_localctx = _tracker.createInstance<Clocking_declarationContext>(_ctx, getState());
   enterRule(_localctx, 924, SV3_1aParser::RuleClocking_declaration);
@@ -57447,6 +61901,14 @@
     parserListener->exitClocking_event(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Clocking_eventContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClocking_event(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Clocking_eventContext* SV3_1aParser::clocking_event() {
   Clocking_eventContext *_localctx = _tracker.createInstance<Clocking_eventContext>(_ctx, getState());
   enterRule(_localctx, 926, SV3_1aParser::RuleClocking_event);
@@ -57547,6 +62009,14 @@
     parserListener->exitClocking_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Clocking_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClocking_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Clocking_itemContext* SV3_1aParser::clocking_item() {
   Clocking_itemContext *_localctx = _tracker.createInstance<Clocking_itemContext>(_ctx, getState());
   enterRule(_localctx, 928, SV3_1aParser::RuleClocking_item);
@@ -57661,6 +62131,13 @@
   if (parserListener != nullptr)
     parserListener->exitDefaultSkew_IntputOutput(this);
 }
+
+antlrcpp::Any SV3_1aParser::DefaultSkew_IntputOutputContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDefaultSkew_IntputOutput(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- DefaultSkew_OutputContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::DefaultSkew_OutputContext::OUTPUT() {
@@ -57683,6 +62160,13 @@
   if (parserListener != nullptr)
     parserListener->exitDefaultSkew_Output(this);
 }
+
+antlrcpp::Any SV3_1aParser::DefaultSkew_OutputContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDefaultSkew_Output(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- DefaultSkew_IntputContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::DefaultSkew_IntputContext::INPUT() {
@@ -57705,6 +62189,13 @@
   if (parserListener != nullptr)
     parserListener->exitDefaultSkew_Intput(this);
 }
+
+antlrcpp::Any SV3_1aParser::DefaultSkew_IntputContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDefaultSkew_Intput(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Default_skewContext* SV3_1aParser::default_skew() {
   Default_skewContext *_localctx = _tracker.createInstance<Default_skewContext>(_ctx, getState());
   enterRule(_localctx, 930, SV3_1aParser::RuleDefault_skew);
@@ -57807,6 +62298,13 @@
   if (parserListener != nullptr)
     parserListener->exitClockingDir_InputOutput(this);
 }
+
+antlrcpp::Any SV3_1aParser::ClockingDir_InputOutputContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClockingDir_InputOutput(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- ClockingDir_InputContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::ClockingDir_InputContext::INPUT() {
@@ -57829,6 +62327,13 @@
   if (parserListener != nullptr)
     parserListener->exitClockingDir_Input(this);
 }
+
+antlrcpp::Any SV3_1aParser::ClockingDir_InputContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClockingDir_Input(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- ClockingDir_OutputContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::ClockingDir_OutputContext::OUTPUT() {
@@ -57851,6 +62356,13 @@
   if (parserListener != nullptr)
     parserListener->exitClockingDir_Output(this);
 }
+
+antlrcpp::Any SV3_1aParser::ClockingDir_OutputContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClockingDir_Output(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- ClockingDir_InoutContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::ClockingDir_InoutContext::INOUT() {
@@ -57869,6 +62381,13 @@
   if (parserListener != nullptr)
     parserListener->exitClockingDir_Inout(this);
 }
+
+antlrcpp::Any SV3_1aParser::ClockingDir_InoutContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClockingDir_Inout(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Clocking_directionContext* SV3_1aParser::clocking_direction() {
   Clocking_directionContext *_localctx = _tracker.createInstance<Clocking_directionContext>(_ctx, getState());
   enterRule(_localctx, 932, SV3_1aParser::RuleClocking_direction);
@@ -58010,6 +62529,14 @@
     parserListener->exitList_of_clocking_decl_assign(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_clocking_decl_assignContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_clocking_decl_assign(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_clocking_decl_assignContext* SV3_1aParser::list_of_clocking_decl_assign() {
   List_of_clocking_decl_assignContext *_localctx = _tracker.createInstance<List_of_clocking_decl_assignContext>(_ctx, getState());
   enterRule(_localctx, 934, SV3_1aParser::RuleList_of_clocking_decl_assign);
@@ -58116,6 +62643,14 @@
     parserListener->exitClocking_decl_assign(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Clocking_decl_assignContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClocking_decl_assign(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Clocking_decl_assignContext* SV3_1aParser::clocking_decl_assign() {
   Clocking_decl_assignContext *_localctx = _tracker.createInstance<Clocking_decl_assignContext>(_ctx, getState());
   enterRule(_localctx, 936, SV3_1aParser::RuleClocking_decl_assign);
@@ -58214,6 +62749,14 @@
     parserListener->exitClocking_skew(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Clocking_skewContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClocking_skew(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Clocking_skewContext* SV3_1aParser::clocking_skew() {
   Clocking_skewContext *_localctx = _tracker.createInstance<Clocking_skewContext>(_ctx, getState());
   enterRule(_localctx, 938, SV3_1aParser::RuleClocking_skew);
@@ -58298,6 +62841,13 @@
   if (parserListener != nullptr)
     parserListener->exitEdge_Edge(this);
 }
+
+antlrcpp::Any SV3_1aParser::Edge_EdgeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEdge_Edge(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Edge_NegedgeContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Edge_NegedgeContext::NEGEDGE() {
@@ -58316,6 +62866,13 @@
   if (parserListener != nullptr)
     parserListener->exitEdge_Negedge(this);
 }
+
+antlrcpp::Any SV3_1aParser::Edge_NegedgeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEdge_Negedge(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Edge_PosedgeContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Edge_PosedgeContext::POSEDGE() {
@@ -58334,6 +62891,13 @@
   if (parserListener != nullptr)
     parserListener->exitEdge_Posedge(this);
 }
+
+antlrcpp::Any SV3_1aParser::Edge_PosedgeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEdge_Posedge(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Edge_identifierContext* SV3_1aParser::edge_identifier() {
   Edge_identifierContext *_localctx = _tracker.createInstance<Edge_identifierContext>(_ctx, getState());
   enterRule(_localctx, 940, SV3_1aParser::RuleEdge_identifier);
@@ -58422,6 +62986,14 @@
     parserListener->exitClocking_drive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Clocking_driveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClocking_drive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Clocking_driveContext* SV3_1aParser::clocking_drive() {
   Clocking_driveContext *_localctx = _tracker.createInstance<Clocking_driveContext>(_ctx, getState());
   enterRule(_localctx, 942, SV3_1aParser::RuleClocking_drive);
@@ -58545,6 +63117,14 @@
     parserListener->exitCycle_delay(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Cycle_delayContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCycle_delay(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Cycle_delayContext* SV3_1aParser::cycle_delay() {
   Cycle_delayContext *_localctx = _tracker.createInstance<Cycle_delayContext>(_ctx, getState());
   enterRule(_localctx, 944, SV3_1aParser::RuleCycle_delay);
@@ -58666,6 +63246,14 @@
     parserListener->exitClockvar(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::ClockvarContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClockvar(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::ClockvarContext* SV3_1aParser::clockvar() {
   ClockvarContext *_localctx = _tracker.createInstance<ClockvarContext>(_ctx, getState());
   enterRule(_localctx, 946, SV3_1aParser::RuleClockvar);
@@ -58757,6 +63345,14 @@
     parserListener->exitClockvar_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Clockvar_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitClockvar_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Clockvar_expressionContext* SV3_1aParser::clockvar_expression() {
   Clockvar_expressionContext *_localctx = _tracker.createInstance<Clockvar_expressionContext>(_ctx, getState());
   enterRule(_localctx, 948, SV3_1aParser::RuleClockvar_expression);
@@ -58832,6 +63428,14 @@
     parserListener->exitRandsequence_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Randsequence_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRandsequence_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Randsequence_statementContext* SV3_1aParser::randsequence_statement() {
   Randsequence_statementContext *_localctx = _tracker.createInstance<Randsequence_statementContext>(_ctx, getState());
   enterRule(_localctx, 950, SV3_1aParser::RuleRandsequence_statement);
@@ -59002,6 +63606,14 @@
     parserListener->exitProduction(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::ProductionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProduction(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::ProductionContext* SV3_1aParser::production() {
   ProductionContext *_localctx = _tracker.createInstance<ProductionContext>(_ctx, getState());
   enterRule(_localctx, 952, SV3_1aParser::RuleProduction);
@@ -59105,6 +63717,14 @@
     parserListener->exitRs_rule(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Rs_ruleContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRs_rule(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Rs_ruleContext* SV3_1aParser::rs_rule() {
   Rs_ruleContext *_localctx = _tracker.createInstance<Rs_ruleContext>(_ctx, getState());
   enterRule(_localctx, 954, SV3_1aParser::RuleRs_rule);
@@ -59205,6 +63825,14 @@
     parserListener->exitRs_production_list(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Rs_production_listContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRs_production_list(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Rs_production_listContext* SV3_1aParser::rs_production_list() {
   Rs_production_listContext *_localctx = _tracker.createInstance<Rs_production_listContext>(_ctx, getState());
   enterRule(_localctx, 956, SV3_1aParser::RuleRs_production_list);
@@ -59391,6 +64019,14 @@
     parserListener->exitRs_code_block(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Rs_code_blockContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRs_code_block(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Rs_code_blockContext* SV3_1aParser::rs_code_block() {
   Rs_code_blockContext *_localctx = _tracker.createInstance<Rs_code_blockContext>(_ctx, getState());
   enterRule(_localctx, 958, SV3_1aParser::RuleRs_code_block);
@@ -59557,6 +64193,14 @@
     parserListener->exitRs_prod(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Rs_prodContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRs_prod(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Rs_prodContext* SV3_1aParser::rs_prod() {
   Rs_prodContext *_localctx = _tracker.createInstance<Rs_prodContext>(_ctx, getState());
   enterRule(_localctx, 960, SV3_1aParser::RuleRs_prod);
@@ -59673,6 +64317,14 @@
     parserListener->exitProduction_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Production_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProduction_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Production_itemContext* SV3_1aParser::production_item() {
   Production_itemContext *_localctx = _tracker.createInstance<Production_itemContext>(_ctx, getState());
   enterRule(_localctx, 962, SV3_1aParser::RuleProduction_item);
@@ -59761,6 +64413,14 @@
     parserListener->exitRs_if_else(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Rs_if_elseContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRs_if_else(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Rs_if_elseContext* SV3_1aParser::rs_if_else() {
   Rs_if_elseContext *_localctx = _tracker.createInstance<Rs_if_elseContext>(_ctx, getState());
   enterRule(_localctx, 964, SV3_1aParser::RuleRs_if_else);
@@ -59845,6 +64505,14 @@
     parserListener->exitRs_repeat(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Rs_repeatContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRs_repeat(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Rs_repeatContext* SV3_1aParser::rs_repeat() {
   Rs_repeatContext *_localctx = _tracker.createInstance<Rs_repeatContext>(_ctx, getState());
   enterRule(_localctx, 966, SV3_1aParser::RuleRs_repeat);
@@ -59926,6 +64594,14 @@
     parserListener->exitRs_case(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Rs_caseContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRs_case(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Rs_caseContext* SV3_1aParser::rs_case() {
   Rs_caseContext *_localctx = _tracker.createInstance<Rs_caseContext>(_ctx, getState());
   enterRule(_localctx, 968, SV3_1aParser::RuleRs_case);
@@ -60091,6 +64767,14 @@
     parserListener->exitRs_case_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Rs_case_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRs_case_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Rs_case_itemContext* SV3_1aParser::rs_case_item() {
   Rs_case_itemContext *_localctx = _tracker.createInstance<Rs_case_itemContext>(_ctx, getState());
   enterRule(_localctx, 970, SV3_1aParser::RuleRs_case_item);
@@ -60253,6 +64937,14 @@
     parserListener->exitEndspecify(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndspecifyContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndspecify(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndspecifyContext* SV3_1aParser::endspecify() {
   EndspecifyContext *_localctx = _tracker.createInstance<EndspecifyContext>(_ctx, getState());
   enterRule(_localctx, 972, SV3_1aParser::RuleEndspecify);
@@ -60314,6 +65006,14 @@
     parserListener->exitSpecify_block(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Specify_blockContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSpecify_block(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Specify_blockContext* SV3_1aParser::specify_block() {
   Specify_blockContext *_localctx = _tracker.createInstance<Specify_blockContext>(_ctx, getState());
   enterRule(_localctx, 974, SV3_1aParser::RuleSpecify_block);
@@ -60400,6 +65100,14 @@
     parserListener->exitSpecify_item(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Specify_itemContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSpecify_item(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Specify_itemContext* SV3_1aParser::specify_item() {
   Specify_itemContext *_localctx = _tracker.createInstance<Specify_itemContext>(_ctx, getState());
   enterRule(_localctx, 976, SV3_1aParser::RuleSpecify_item);
@@ -60503,6 +65211,14 @@
     parserListener->exitPulsestyle_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Pulsestyle_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPulsestyle_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Pulsestyle_declarationContext* SV3_1aParser::pulsestyle_declaration() {
   Pulsestyle_declarationContext *_localctx = _tracker.createInstance<Pulsestyle_declarationContext>(_ctx, getState());
   enterRule(_localctx, 978, SV3_1aParser::RulePulsestyle_declaration);
@@ -60589,6 +65305,14 @@
     parserListener->exitShowcancelled_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Showcancelled_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitShowcancelled_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Showcancelled_declarationContext* SV3_1aParser::showcancelled_declaration() {
   Showcancelled_declarationContext *_localctx = _tracker.createInstance<Showcancelled_declarationContext>(_ctx, getState());
   enterRule(_localctx, 980, SV3_1aParser::RuleShowcancelled_declaration);
@@ -60675,6 +65399,14 @@
     parserListener->exitPath_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Path_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPath_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Path_declarationContext* SV3_1aParser::path_declaration() {
   Path_declarationContext *_localctx = _tracker.createInstance<Path_declarationContext>(_ctx, getState());
   enterRule(_localctx, 982, SV3_1aParser::RulePath_declaration);
@@ -60764,6 +65496,14 @@
     parserListener->exitSimple_path_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Simple_path_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSimple_path_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Simple_path_declarationContext* SV3_1aParser::simple_path_declaration() {
   Simple_path_declarationContext *_localctx = _tracker.createInstance<Simple_path_declarationContext>(_ctx, getState());
   enterRule(_localctx, 984, SV3_1aParser::RuleSimple_path_declaration);
@@ -60860,6 +65600,14 @@
     parserListener->exitParallel_path_description(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Parallel_path_descriptionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitParallel_path_description(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Parallel_path_descriptionContext* SV3_1aParser::parallel_path_description() {
   Parallel_path_descriptionContext *_localctx = _tracker.createInstance<Parallel_path_descriptionContext>(_ctx, getState());
   enterRule(_localctx, 986, SV3_1aParser::RuleParallel_path_description);
@@ -60961,6 +65709,14 @@
     parserListener->exitFull_path_description(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Full_path_descriptionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFull_path_description(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Full_path_descriptionContext* SV3_1aParser::full_path_description() {
   Full_path_descriptionContext *_localctx = _tracker.createInstance<Full_path_descriptionContext>(_ctx, getState());
   enterRule(_localctx, 988, SV3_1aParser::RuleFull_path_description);
@@ -61050,6 +65806,14 @@
     parserListener->exitList_of_path_inputs(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_path_inputsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_path_inputs(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_path_inputsContext* SV3_1aParser::list_of_path_inputs() {
   List_of_path_inputsContext *_localctx = _tracker.createInstance<List_of_path_inputsContext>(_ctx, getState());
   enterRule(_localctx, 990, SV3_1aParser::RuleList_of_path_inputs);
@@ -61124,6 +65888,14 @@
     parserListener->exitList_of_path_outputs(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_path_outputsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_path_outputs(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_path_outputsContext* SV3_1aParser::list_of_path_outputs() {
   List_of_path_outputsContext *_localctx = _tracker.createInstance<List_of_path_outputsContext>(_ctx, getState());
   enterRule(_localctx, 992, SV3_1aParser::RuleList_of_path_outputs);
@@ -61206,6 +65978,14 @@
     parserListener->exitSpecify_input_terminal_descriptor(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Specify_input_terminal_descriptorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSpecify_input_terminal_descriptor(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Specify_input_terminal_descriptorContext* SV3_1aParser::specify_input_terminal_descriptor() {
   Specify_input_terminal_descriptorContext *_localctx = _tracker.createInstance<Specify_input_terminal_descriptorContext>(_ctx, getState());
   enterRule(_localctx, 994, SV3_1aParser::RuleSpecify_input_terminal_descriptor);
@@ -61306,6 +66086,14 @@
     parserListener->exitSpecify_output_terminal_descriptor(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Specify_output_terminal_descriptorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSpecify_output_terminal_descriptor(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Specify_output_terminal_descriptorContext* SV3_1aParser::specify_output_terminal_descriptor() {
   Specify_output_terminal_descriptorContext *_localctx = _tracker.createInstance<Specify_output_terminal_descriptorContext>(_ctx, getState());
   enterRule(_localctx, 996, SV3_1aParser::RuleSpecify_output_terminal_descriptor);
@@ -61394,6 +66182,14 @@
     parserListener->exitPath_delay_value(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Path_delay_valueContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPath_delay_value(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Path_delay_valueContext* SV3_1aParser::path_delay_value() {
   Path_delay_valueContext *_localctx = _tracker.createInstance<Path_delay_valueContext>(_ctx, getState());
   enterRule(_localctx, 998, SV3_1aParser::RulePath_delay_value);
@@ -61530,6 +66326,14 @@
     parserListener->exitList_of_path_delay_expressions(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_path_delay_expressionsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_path_delay_expressions(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_path_delay_expressionsContext* SV3_1aParser::list_of_path_delay_expressions() {
   List_of_path_delay_expressionsContext *_localctx = _tracker.createInstance<List_of_path_delay_expressionsContext>(_ctx, getState());
   enterRule(_localctx, 1000, SV3_1aParser::RuleList_of_path_delay_expressions);
@@ -61691,6 +66495,14 @@
     parserListener->exitT_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::T_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitT_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::T_path_delay_expressionContext* SV3_1aParser::t_path_delay_expression() {
   T_path_delay_expressionContext *_localctx = _tracker.createInstance<T_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1002, SV3_1aParser::RuleT_path_delay_expression);
@@ -61740,6 +66552,14 @@
     parserListener->exitTrise_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Trise_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTrise_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Trise_path_delay_expressionContext* SV3_1aParser::trise_path_delay_expression() {
   Trise_path_delay_expressionContext *_localctx = _tracker.createInstance<Trise_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1004, SV3_1aParser::RuleTrise_path_delay_expression);
@@ -61789,6 +66609,14 @@
     parserListener->exitTfall_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Tfall_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTfall_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Tfall_path_delay_expressionContext* SV3_1aParser::tfall_path_delay_expression() {
   Tfall_path_delay_expressionContext *_localctx = _tracker.createInstance<Tfall_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1006, SV3_1aParser::RuleTfall_path_delay_expression);
@@ -61838,6 +66666,14 @@
     parserListener->exitTz_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Tz_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTz_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Tz_path_delay_expressionContext* SV3_1aParser::tz_path_delay_expression() {
   Tz_path_delay_expressionContext *_localctx = _tracker.createInstance<Tz_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1008, SV3_1aParser::RuleTz_path_delay_expression);
@@ -61887,6 +66723,14 @@
     parserListener->exitT01_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::T01_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitT01_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::T01_path_delay_expressionContext* SV3_1aParser::t01_path_delay_expression() {
   T01_path_delay_expressionContext *_localctx = _tracker.createInstance<T01_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1010, SV3_1aParser::RuleT01_path_delay_expression);
@@ -61936,6 +66780,14 @@
     parserListener->exitT10_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::T10_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitT10_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::T10_path_delay_expressionContext* SV3_1aParser::t10_path_delay_expression() {
   T10_path_delay_expressionContext *_localctx = _tracker.createInstance<T10_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1012, SV3_1aParser::RuleT10_path_delay_expression);
@@ -61985,6 +66837,14 @@
     parserListener->exitT0z_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::T0z_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitT0z_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::T0z_path_delay_expressionContext* SV3_1aParser::t0z_path_delay_expression() {
   T0z_path_delay_expressionContext *_localctx = _tracker.createInstance<T0z_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1014, SV3_1aParser::RuleT0z_path_delay_expression);
@@ -62034,6 +66894,14 @@
     parserListener->exitTz1_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Tz1_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTz1_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Tz1_path_delay_expressionContext* SV3_1aParser::tz1_path_delay_expression() {
   Tz1_path_delay_expressionContext *_localctx = _tracker.createInstance<Tz1_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1016, SV3_1aParser::RuleTz1_path_delay_expression);
@@ -62083,6 +66951,14 @@
     parserListener->exitT1z_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::T1z_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitT1z_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::T1z_path_delay_expressionContext* SV3_1aParser::t1z_path_delay_expression() {
   T1z_path_delay_expressionContext *_localctx = _tracker.createInstance<T1z_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1018, SV3_1aParser::RuleT1z_path_delay_expression);
@@ -62132,6 +67008,14 @@
     parserListener->exitTz0_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Tz0_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTz0_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Tz0_path_delay_expressionContext* SV3_1aParser::tz0_path_delay_expression() {
   Tz0_path_delay_expressionContext *_localctx = _tracker.createInstance<Tz0_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1020, SV3_1aParser::RuleTz0_path_delay_expression);
@@ -62181,6 +67065,14 @@
     parserListener->exitT0x_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::T0x_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitT0x_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::T0x_path_delay_expressionContext* SV3_1aParser::t0x_path_delay_expression() {
   T0x_path_delay_expressionContext *_localctx = _tracker.createInstance<T0x_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1022, SV3_1aParser::RuleT0x_path_delay_expression);
@@ -62230,6 +67122,14 @@
     parserListener->exitTx1_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Tx1_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTx1_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Tx1_path_delay_expressionContext* SV3_1aParser::tx1_path_delay_expression() {
   Tx1_path_delay_expressionContext *_localctx = _tracker.createInstance<Tx1_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1024, SV3_1aParser::RuleTx1_path_delay_expression);
@@ -62279,6 +67179,14 @@
     parserListener->exitT1x_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::T1x_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitT1x_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::T1x_path_delay_expressionContext* SV3_1aParser::t1x_path_delay_expression() {
   T1x_path_delay_expressionContext *_localctx = _tracker.createInstance<T1x_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1026, SV3_1aParser::RuleT1x_path_delay_expression);
@@ -62328,6 +67236,14 @@
     parserListener->exitTx0_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Tx0_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTx0_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Tx0_path_delay_expressionContext* SV3_1aParser::tx0_path_delay_expression() {
   Tx0_path_delay_expressionContext *_localctx = _tracker.createInstance<Tx0_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1028, SV3_1aParser::RuleTx0_path_delay_expression);
@@ -62377,6 +67293,14 @@
     parserListener->exitTxz_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Txz_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTxz_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Txz_path_delay_expressionContext* SV3_1aParser::txz_path_delay_expression() {
   Txz_path_delay_expressionContext *_localctx = _tracker.createInstance<Txz_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1030, SV3_1aParser::RuleTxz_path_delay_expression);
@@ -62426,6 +67350,14 @@
     parserListener->exitTzx_path_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Tzx_path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTzx_path_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Tzx_path_delay_expressionContext* SV3_1aParser::tzx_path_delay_expression() {
   Tzx_path_delay_expressionContext *_localctx = _tracker.createInstance<Tzx_path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1032, SV3_1aParser::RuleTzx_path_delay_expression);
@@ -62475,6 +67407,14 @@
     parserListener->exitPath_delay_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Path_delay_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPath_delay_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Path_delay_expressionContext* SV3_1aParser::path_delay_expression() {
   Path_delay_expressionContext *_localctx = _tracker.createInstance<Path_delay_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1034, SV3_1aParser::RulePath_delay_expression);
@@ -62536,6 +67476,14 @@
     parserListener->exitEdge_sensitive_path_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Edge_sensitive_path_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEdge_sensitive_path_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Edge_sensitive_path_declarationContext* SV3_1aParser::edge_sensitive_path_declaration() {
   Edge_sensitive_path_declarationContext *_localctx = _tracker.createInstance<Edge_sensitive_path_declarationContext>(_ctx, getState());
   enterRule(_localctx, 1036, SV3_1aParser::RuleEdge_sensitive_path_declaration);
@@ -62652,6 +67600,14 @@
     parserListener->exitParallel_edge_sensitive_path_description(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Parallel_edge_sensitive_path_descriptionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitParallel_edge_sensitive_path_description(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Parallel_edge_sensitive_path_descriptionContext* SV3_1aParser::parallel_edge_sensitive_path_description() {
   Parallel_edge_sensitive_path_descriptionContext *_localctx = _tracker.createInstance<Parallel_edge_sensitive_path_descriptionContext>(_ctx, getState());
   enterRule(_localctx, 1038, SV3_1aParser::RuleParallel_edge_sensitive_path_description);
@@ -62782,6 +67738,14 @@
     parserListener->exitFull_edge_sensitive_path_description(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Full_edge_sensitive_path_descriptionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitFull_edge_sensitive_path_description(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Full_edge_sensitive_path_descriptionContext* SV3_1aParser::full_edge_sensitive_path_description() {
   Full_edge_sensitive_path_descriptionContext *_localctx = _tracker.createInstance<Full_edge_sensitive_path_descriptionContext>(_ctx, getState());
   enterRule(_localctx, 1040, SV3_1aParser::RuleFull_edge_sensitive_path_description);
@@ -62892,6 +67856,14 @@
     parserListener->exitState_dependent_path_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::State_dependent_path_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitState_dependent_path_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::State_dependent_path_declarationContext* SV3_1aParser::state_dependent_path_declaration() {
   State_dependent_path_declarationContext *_localctx = _tracker.createInstance<State_dependent_path_declarationContext>(_ctx, getState());
   enterRule(_localctx, 1042, SV3_1aParser::RuleState_dependent_path_declaration);
@@ -63025,6 +67997,14 @@
     parserListener->exitSystem_timing_check(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::System_timing_checkContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSystem_timing_check(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::System_timing_checkContext* SV3_1aParser::system_timing_check() {
   System_timing_checkContext *_localctx = _tracker.createInstance<System_timing_checkContext>(_ctx, getState());
   enterRule(_localctx, 1044, SV3_1aParser::RuleSystem_timing_check);
@@ -63199,6 +68179,14 @@
     parserListener->exitDollar_setup_timing_check(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_setup_timing_checkContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_setup_timing_check(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_setup_timing_checkContext* SV3_1aParser::dollar_setup_timing_check() {
   Dollar_setup_timing_checkContext *_localctx = _tracker.createInstance<Dollar_setup_timing_checkContext>(_ctx, getState());
   enterRule(_localctx, 1046, SV3_1aParser::RuleDollar_setup_timing_check);
@@ -63341,6 +68329,14 @@
     parserListener->exitDollar_hold_timing_check(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_hold_timing_checkContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_hold_timing_check(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_hold_timing_checkContext* SV3_1aParser::dollar_hold_timing_check() {
   Dollar_hold_timing_checkContext *_localctx = _tracker.createInstance<Dollar_hold_timing_checkContext>(_ctx, getState());
   enterRule(_localctx, 1048, SV3_1aParser::RuleDollar_hold_timing_check);
@@ -63503,6 +68499,14 @@
     parserListener->exitDollar_setuphold_timing_check(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_setuphold_timing_checkContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_setuphold_timing_check(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_setuphold_timing_checkContext* SV3_1aParser::dollar_setuphold_timing_check() {
   Dollar_setuphold_timing_checkContext *_localctx = _tracker.createInstance<Dollar_setuphold_timing_checkContext>(_ctx, getState());
   enterRule(_localctx, 1050, SV3_1aParser::RuleDollar_setuphold_timing_check);
@@ -63889,6 +68893,14 @@
     parserListener->exitDollar_recovery_timing_check(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_recovery_timing_checkContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_recovery_timing_check(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_recovery_timing_checkContext* SV3_1aParser::dollar_recovery_timing_check() {
   Dollar_recovery_timing_checkContext *_localctx = _tracker.createInstance<Dollar_recovery_timing_checkContext>(_ctx, getState());
   enterRule(_localctx, 1052, SV3_1aParser::RuleDollar_recovery_timing_check);
@@ -64031,6 +69043,14 @@
     parserListener->exitDollar_removal_timing_check(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_removal_timing_checkContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_removal_timing_check(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_removal_timing_checkContext* SV3_1aParser::dollar_removal_timing_check() {
   Dollar_removal_timing_checkContext *_localctx = _tracker.createInstance<Dollar_removal_timing_checkContext>(_ctx, getState());
   enterRule(_localctx, 1054, SV3_1aParser::RuleDollar_removal_timing_check);
@@ -64193,6 +69213,14 @@
     parserListener->exitDollar_recrem_timing_check(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_recrem_timing_checkContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_recrem_timing_check(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_recrem_timing_checkContext* SV3_1aParser::dollar_recrem_timing_check() {
   Dollar_recrem_timing_checkContext *_localctx = _tracker.createInstance<Dollar_recrem_timing_checkContext>(_ctx, getState());
   enterRule(_localctx, 1056, SV3_1aParser::RuleDollar_recrem_timing_check);
@@ -64579,6 +69607,14 @@
     parserListener->exitDollar_skew_timing_check(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_skew_timing_checkContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_skew_timing_check(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_skew_timing_checkContext* SV3_1aParser::dollar_skew_timing_check() {
   Dollar_skew_timing_checkContext *_localctx = _tracker.createInstance<Dollar_skew_timing_checkContext>(_ctx, getState());
   enterRule(_localctx, 1058, SV3_1aParser::RuleDollar_skew_timing_check);
@@ -64729,6 +69765,14 @@
     parserListener->exitDollar_timeskew_timing_check(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_timeskew_timing_checkContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_timeskew_timing_check(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_timeskew_timing_checkContext* SV3_1aParser::dollar_timeskew_timing_check() {
   Dollar_timeskew_timing_checkContext *_localctx = _tracker.createInstance<Dollar_timeskew_timing_checkContext>(_ctx, getState());
   enterRule(_localctx, 1060, SV3_1aParser::RuleDollar_timeskew_timing_check);
@@ -65047,6 +70091,14 @@
     parserListener->exitDollar_fullskew_timing_check(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_fullskew_timing_checkContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_fullskew_timing_check(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_fullskew_timing_checkContext* SV3_1aParser::dollar_fullskew_timing_check() {
   Dollar_fullskew_timing_checkContext *_localctx = _tracker.createInstance<Dollar_fullskew_timing_checkContext>(_ctx, getState());
   enterRule(_localctx, 1062, SV3_1aParser::RuleDollar_fullskew_timing_check);
@@ -65353,6 +70405,14 @@
     parserListener->exitDollar_period_timing_check(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_period_timing_checkContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_period_timing_check(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_period_timing_checkContext* SV3_1aParser::dollar_period_timing_check() {
   Dollar_period_timing_checkContext *_localctx = _tracker.createInstance<Dollar_period_timing_checkContext>(_ctx, getState());
   enterRule(_localctx, 1064, SV3_1aParser::RuleDollar_period_timing_check);
@@ -65491,6 +70551,14 @@
     parserListener->exitDollar_width_timing_check(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_width_timing_checkContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_width_timing_check(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_width_timing_checkContext* SV3_1aParser::dollar_width_timing_check() {
   Dollar_width_timing_checkContext *_localctx = _tracker.createInstance<Dollar_width_timing_checkContext>(_ctx, getState());
   enterRule(_localctx, 1066, SV3_1aParser::RuleDollar_width_timing_check);
@@ -65637,6 +70705,14 @@
     parserListener->exitDollar_nochange_timing_check(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_nochange_timing_checkContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_nochange_timing_check(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_nochange_timing_checkContext* SV3_1aParser::dollar_nochange_timing_check() {
   Dollar_nochange_timing_checkContext *_localctx = _tracker.createInstance<Dollar_nochange_timing_checkContext>(_ctx, getState());
   enterRule(_localctx, 1068, SV3_1aParser::RuleDollar_nochange_timing_check);
@@ -65755,6 +70831,14 @@
     parserListener->exitDelayed_data(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Delayed_dataContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDelayed_data(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Delayed_dataContext* SV3_1aParser::delayed_data() {
   Delayed_dataContext *_localctx = _tracker.createInstance<Delayed_dataContext>(_ctx, getState());
   enterRule(_localctx, 1070, SV3_1aParser::RuleDelayed_data);
@@ -65837,6 +70921,14 @@
     parserListener->exitDelayed_reference(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Delayed_referenceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDelayed_reference(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Delayed_referenceContext* SV3_1aParser::delayed_reference() {
   Delayed_referenceContext *_localctx = _tracker.createInstance<Delayed_referenceContext>(_ctx, getState());
   enterRule(_localctx, 1072, SV3_1aParser::RuleDelayed_reference);
@@ -65907,6 +70999,14 @@
     parserListener->exitEnd_edge_offset(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::End_edge_offsetContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEnd_edge_offset(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::End_edge_offsetContext* SV3_1aParser::end_edge_offset() {
   End_edge_offsetContext *_localctx = _tracker.createInstance<End_edge_offsetContext>(_ctx, getState());
   enterRule(_localctx, 1074, SV3_1aParser::RuleEnd_edge_offset);
@@ -65956,6 +71056,14 @@
     parserListener->exitEvent_based_flag(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Event_based_flagContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEvent_based_flag(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Event_based_flagContext* SV3_1aParser::event_based_flag() {
   Event_based_flagContext *_localctx = _tracker.createInstance<Event_based_flagContext>(_ctx, getState());
   enterRule(_localctx, 1076, SV3_1aParser::RuleEvent_based_flag);
@@ -66005,6 +71113,14 @@
     parserListener->exitNotifier(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::NotifierContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNotifier(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::NotifierContext* SV3_1aParser::notifier() {
   NotifierContext *_localctx = _tracker.createInstance<NotifierContext>(_ctx, getState());
   enterRule(_localctx, 1078, SV3_1aParser::RuleNotifier);
@@ -66054,6 +71170,14 @@
     parserListener->exitReference_event(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Reference_eventContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitReference_event(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Reference_eventContext* SV3_1aParser::reference_event() {
   Reference_eventContext *_localctx = _tracker.createInstance<Reference_eventContext>(_ctx, getState());
   enterRule(_localctx, 1080, SV3_1aParser::RuleReference_event);
@@ -66103,6 +71227,14 @@
     parserListener->exitRemain_active_flag(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Remain_active_flagContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRemain_active_flag(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Remain_active_flagContext* SV3_1aParser::remain_active_flag() {
   Remain_active_flagContext *_localctx = _tracker.createInstance<Remain_active_flagContext>(_ctx, getState());
   enterRule(_localctx, 1082, SV3_1aParser::RuleRemain_active_flag);
@@ -66152,6 +71284,14 @@
     parserListener->exitStamptime_condition(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Stamptime_conditionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStamptime_condition(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Stamptime_conditionContext* SV3_1aParser::stamptime_condition() {
   Stamptime_conditionContext *_localctx = _tracker.createInstance<Stamptime_conditionContext>(_ctx, getState());
   enterRule(_localctx, 1084, SV3_1aParser::RuleStamptime_condition);
@@ -66201,6 +71341,14 @@
     parserListener->exitStart_edge_offset(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Start_edge_offsetContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStart_edge_offset(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Start_edge_offsetContext* SV3_1aParser::start_edge_offset() {
   Start_edge_offsetContext *_localctx = _tracker.createInstance<Start_edge_offsetContext>(_ctx, getState());
   enterRule(_localctx, 1086, SV3_1aParser::RuleStart_edge_offset);
@@ -66250,6 +71398,14 @@
     parserListener->exitThreshold(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::ThresholdContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitThreshold(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::ThresholdContext* SV3_1aParser::threshold() {
   ThresholdContext *_localctx = _tracker.createInstance<ThresholdContext>(_ctx, getState());
   enterRule(_localctx, 1088, SV3_1aParser::RuleThreshold);
@@ -66299,6 +71455,14 @@
     parserListener->exitTiming_check_limit(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Timing_check_limitContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTiming_check_limit(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Timing_check_limitContext* SV3_1aParser::timing_check_limit() {
   Timing_check_limitContext *_localctx = _tracker.createInstance<Timing_check_limitContext>(_ctx, getState());
   enterRule(_localctx, 1090, SV3_1aParser::RuleTiming_check_limit);
@@ -66360,6 +71524,14 @@
     parserListener->exitTiming_check_event(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Timing_check_eventContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTiming_check_event(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Timing_check_eventContext* SV3_1aParser::timing_check_event() {
   Timing_check_eventContext *_localctx = _tracker.createInstance<Timing_check_eventContext>(_ctx, getState());
   enterRule(_localctx, 1092, SV3_1aParser::RuleTiming_check_event);
@@ -66443,6 +71615,14 @@
     parserListener->exitControlled_timing_check_event(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Controlled_timing_check_eventContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitControlled_timing_check_event(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Controlled_timing_check_eventContext* SV3_1aParser::controlled_timing_check_event() {
   Controlled_timing_check_eventContext *_localctx = _tracker.createInstance<Controlled_timing_check_eventContext>(_ctx, getState());
   enterRule(_localctx, 1094, SV3_1aParser::RuleControlled_timing_check_event);
@@ -66511,6 +71691,13 @@
   if (parserListener != nullptr)
     parserListener->exitTimingCheckEventControl_Negedge(this);
 }
+
+antlrcpp::Any SV3_1aParser::TimingCheckEventControl_NegedgeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTimingCheckEventControl_Negedge(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- TimingCheckEventControl_PosedgeContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::TimingCheckEventControl_PosedgeContext::POSEDGE() {
@@ -66529,6 +71716,13 @@
   if (parserListener != nullptr)
     parserListener->exitTimingCheckEventControl_Posedge(this);
 }
+
+antlrcpp::Any SV3_1aParser::TimingCheckEventControl_PosedgeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTimingCheckEventControl_Posedge(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- TimingCheckEventControl_EdgeContext ------------------------------------------------------------------
 
 SV3_1aParser::Edge_control_specifierContext* SV3_1aParser::TimingCheckEventControl_EdgeContext::edge_control_specifier() {
@@ -66547,6 +71741,13 @@
   if (parserListener != nullptr)
     parserListener->exitTimingCheckEventControl_Edge(this);
 }
+
+antlrcpp::Any SV3_1aParser::TimingCheckEventControl_EdgeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTimingCheckEventControl_Edge(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Timing_check_event_controlContext* SV3_1aParser::timing_check_event_control() {
   Timing_check_event_controlContext *_localctx = _tracker.createInstance<Timing_check_event_controlContext>(_ctx, getState());
   enterRule(_localctx, 1096, SV3_1aParser::RuleTiming_check_event_control);
@@ -66627,6 +71828,14 @@
     parserListener->exitSpecify_terminal_descriptor(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Specify_terminal_descriptorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSpecify_terminal_descriptor(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Specify_terminal_descriptorContext* SV3_1aParser::specify_terminal_descriptor() {
   Specify_terminal_descriptorContext *_localctx = _tracker.createInstance<Specify_terminal_descriptorContext>(_ctx, getState());
   enterRule(_localctx, 1098, SV3_1aParser::RuleSpecify_terminal_descriptor);
@@ -66715,6 +71924,14 @@
     parserListener->exitEdge_control_specifier(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Edge_control_specifierContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEdge_control_specifier(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Edge_control_specifierContext* SV3_1aParser::edge_control_specifier() {
   Edge_control_specifierContext *_localctx = _tracker.createInstance<Edge_control_specifierContext>(_ctx, getState());
   enterRule(_localctx, 1100, SV3_1aParser::RuleEdge_control_specifier);
@@ -66787,6 +72004,14 @@
     parserListener->exitEdge_descriptor(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Edge_descriptorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEdge_descriptor(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Edge_descriptorContext* SV3_1aParser::edge_descriptor() {
   Edge_descriptorContext *_localctx = _tracker.createInstance<Edge_descriptorContext>(_ctx, getState());
   enterRule(_localctx, 1102, SV3_1aParser::RuleEdge_descriptor);
@@ -66870,6 +72095,14 @@
     parserListener->exitTiming_check_condition(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Timing_check_conditionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTiming_check_condition(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Timing_check_conditionContext* SV3_1aParser::timing_check_condition() {
   Timing_check_conditionContext *_localctx = _tracker.createInstance<Timing_check_conditionContext>(_ctx, getState());
   enterRule(_localctx, 1104, SV3_1aParser::RuleTiming_check_condition);
@@ -66962,6 +72195,14 @@
     parserListener->exitScalar_timing_check_condition(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Scalar_timing_check_conditionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitScalar_timing_check_condition(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Scalar_timing_check_conditionContext* SV3_1aParser::scalar_timing_check_condition() {
   Scalar_timing_check_conditionContext *_localctx = _tracker.createInstance<Scalar_timing_check_conditionContext>(_ctx, getState());
   enterRule(_localctx, 1106, SV3_1aParser::RuleScalar_timing_check_condition);
@@ -67078,6 +72319,13 @@
   if (parserListener != nullptr)
     parserListener->exitScalar_1Tickb1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Scalar_1Tickb1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitScalar_1Tickb1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Scalar_1TickB1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Scalar_1TickB1Context::ONE_TICK_B1() {
@@ -67096,6 +72344,13 @@
   if (parserListener != nullptr)
     parserListener->exitScalar_1TickB1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Scalar_1TickB1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitScalar_1TickB1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Scalar_1Tickb0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Scalar_1Tickb0Context::ONE_TICK_b0() {
@@ -67114,6 +72369,13 @@
   if (parserListener != nullptr)
     parserListener->exitScalar_1Tickb0(this);
 }
+
+antlrcpp::Any SV3_1aParser::Scalar_1Tickb0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitScalar_1Tickb0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Scalar_1TickB0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Scalar_1TickB0Context::ONE_TICK_B0() {
@@ -67132,6 +72394,13 @@
   if (parserListener != nullptr)
     parserListener->exitScalar_1TickB0(this);
 }
+
+antlrcpp::Any SV3_1aParser::Scalar_1TickB0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitScalar_1TickB0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Scalar_IntegralContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Scalar_IntegralContext::Integral_number() {
@@ -67150,6 +72419,13 @@
   if (parserListener != nullptr)
     parserListener->exitScalar_Integral(this);
 }
+
+antlrcpp::Any SV3_1aParser::Scalar_IntegralContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitScalar_Integral(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Scalar_Tickb0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Scalar_Tickb0Context::TICK_b0() {
@@ -67168,6 +72444,13 @@
   if (parserListener != nullptr)
     parserListener->exitScalar_Tickb0(this);
 }
+
+antlrcpp::Any SV3_1aParser::Scalar_Tickb0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitScalar_Tickb0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Scalar_TickB0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Scalar_TickB0Context::TICK_B0() {
@@ -67186,6 +72469,13 @@
   if (parserListener != nullptr)
     parserListener->exitScalar_TickB0(this);
 }
+
+antlrcpp::Any SV3_1aParser::Scalar_TickB0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitScalar_TickB0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Scalar_Tickb1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Scalar_Tickb1Context::TICK_b1() {
@@ -67204,6 +72494,13 @@
   if (parserListener != nullptr)
     parserListener->exitScalar_Tickb1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Scalar_Tickb1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitScalar_Tickb1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Scalar_TickB1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Scalar_TickB1Context::TICK_B1() {
@@ -67222,6 +72519,13 @@
   if (parserListener != nullptr)
     parserListener->exitScalar_TickB1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Scalar_TickB1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitScalar_TickB1(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Scalar_constantContext* SV3_1aParser::scalar_constant() {
   Scalar_constantContext *_localctx = _tracker.createInstance<Scalar_constantContext>(_ctx, getState());
   enterRule(_localctx, 1108, SV3_1aParser::RuleScalar_constant);
@@ -67382,6 +72686,14 @@
     parserListener->exitConcatenation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::ConcatenationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConcatenation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::ConcatenationContext* SV3_1aParser::concatenation() {
   ConcatenationContext *_localctx = _tracker.createInstance<ConcatenationContext>(_ctx, getState());
   enterRule(_localctx, 1110, SV3_1aParser::RuleConcatenation);
@@ -67523,6 +72835,14 @@
     parserListener->exitConstant_concatenation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constant_concatenationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_concatenation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constant_concatenationContext* SV3_1aParser::constant_concatenation() {
   Constant_concatenationContext *_localctx = _tracker.createInstance<Constant_concatenationContext>(_ctx, getState());
   enterRule(_localctx, 1112, SV3_1aParser::RuleConstant_concatenation);
@@ -67636,6 +72956,14 @@
     parserListener->exitArray_member_label(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Array_member_labelContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitArray_member_label(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Array_member_labelContext* SV3_1aParser::array_member_label() {
   Array_member_labelContext *_localctx = _tracker.createInstance<Array_member_labelContext>(_ctx, getState());
   enterRule(_localctx, 1114, SV3_1aParser::RuleArray_member_label);
@@ -67719,6 +73047,14 @@
     parserListener->exitConstant_multiple_concatenation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constant_multiple_concatenationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_multiple_concatenation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constant_multiple_concatenationContext* SV3_1aParser::constant_multiple_concatenation() {
   Constant_multiple_concatenationContext *_localctx = _tracker.createInstance<Constant_multiple_concatenationContext>(_ctx, getState());
   enterRule(_localctx, 1116, SV3_1aParser::RuleConstant_multiple_concatenation);
@@ -67794,6 +73130,14 @@
     parserListener->exitModule_path_concatenation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Module_path_concatenationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_path_concatenation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Module_path_concatenationContext* SV3_1aParser::module_path_concatenation() {
   Module_path_concatenationContext *_localctx = _tracker.createInstance<Module_path_concatenationContext>(_ctx, getState());
   enterRule(_localctx, 1118, SV3_1aParser::RuleModule_path_concatenation);
@@ -67872,6 +73216,14 @@
     parserListener->exitModule_path_multiple_concatenation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Module_path_multiple_concatenationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_path_multiple_concatenation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Module_path_multiple_concatenationContext* SV3_1aParser::module_path_multiple_concatenation() {
   Module_path_multiple_concatenationContext *_localctx = _tracker.createInstance<Module_path_multiple_concatenationContext>(_ctx, getState());
   enterRule(_localctx, 1120, SV3_1aParser::RuleModule_path_multiple_concatenation);
@@ -67939,6 +73291,14 @@
     parserListener->exitMultiple_concatenation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Multiple_concatenationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitMultiple_concatenation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Multiple_concatenationContext* SV3_1aParser::multiple_concatenation() {
   Multiple_concatenationContext *_localctx = _tracker.createInstance<Multiple_concatenationContext>(_ctx, getState());
   enterRule(_localctx, 1122, SV3_1aParser::RuleMultiple_concatenation);
@@ -68010,6 +73370,14 @@
     parserListener->exitStreaming_concatenation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Streaming_concatenationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStreaming_concatenation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Streaming_concatenationContext* SV3_1aParser::streaming_concatenation() {
   Streaming_concatenationContext *_localctx = _tracker.createInstance<Streaming_concatenationContext>(_ctx, getState());
   enterRule(_localctx, 1124, SV3_1aParser::RuleStreaming_concatenation);
@@ -68080,6 +73448,14 @@
     parserListener->exitStream_operator(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Stream_operatorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStream_operator(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Stream_operatorContext* SV3_1aParser::stream_operator() {
   Stream_operatorContext *_localctx = _tracker.createInstance<Stream_operatorContext>(_ctx, getState());
   enterRule(_localctx, 1126, SV3_1aParser::RuleStream_operator);
@@ -68143,6 +73519,14 @@
     parserListener->exitSlice_size(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Slice_sizeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSlice_size(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Slice_sizeContext* SV3_1aParser::slice_size() {
   Slice_sizeContext *_localctx = _tracker.createInstance<Slice_sizeContext>(_ctx, getState());
   enterRule(_localctx, 1128, SV3_1aParser::RuleSlice_size);
@@ -68227,6 +73611,14 @@
     parserListener->exitStream_concatenation(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Stream_concatenationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStream_concatenation(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Stream_concatenationContext* SV3_1aParser::stream_concatenation() {
   Stream_concatenationContext *_localctx = _tracker.createInstance<Stream_concatenationContext>(_ctx, getState());
   enterRule(_localctx, 1130, SV3_1aParser::RuleStream_concatenation);
@@ -68309,6 +73701,14 @@
     parserListener->exitStream_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Stream_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitStream_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Stream_expressionContext* SV3_1aParser::stream_expression() {
   Stream_expressionContext *_localctx = _tracker.createInstance<Stream_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1132, SV3_1aParser::RuleStream_expression);
@@ -68389,6 +73789,14 @@
     parserListener->exitArray_range_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Array_range_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitArray_range_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Array_range_expressionContext* SV3_1aParser::array_range_expression() {
   Array_range_expressionContext *_localctx = _tracker.createInstance<Array_range_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1134, SV3_1aParser::RuleArray_range_expression);
@@ -68483,6 +73891,14 @@
     parserListener->exitEmpty_queue(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Empty_queueContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEmpty_queue(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Empty_queueContext* SV3_1aParser::empty_queue() {
   Empty_queueContext *_localctx = _tracker.createInstance<Empty_queueContext>(_ctx, getState());
   enterRule(_localctx, 1136, SV3_1aParser::RuleEmpty_queue);
@@ -68606,6 +74022,14 @@
     parserListener->exitSubroutine_call(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Subroutine_callContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSubroutine_call(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Subroutine_callContext* SV3_1aParser::subroutine_call() {
   Subroutine_callContext *_localctx = _tracker.createInstance<Subroutine_callContext>(_ctx, getState());
   enterRule(_localctx, 1138, SV3_1aParser::RuleSubroutine_call);
@@ -68822,6 +74246,14 @@
     parserListener->exitList_of_arguments(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::List_of_argumentsContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitList_of_arguments(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::List_of_argumentsContext* SV3_1aParser::list_of_arguments() {
   List_of_argumentsContext *_localctx = _tracker.createInstance<List_of_argumentsContext>(_ctx, getState());
   enterRule(_localctx, 1140, SV3_1aParser::RuleList_of_arguments);
@@ -69419,6 +74851,14 @@
     parserListener->exitMethod_call(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Method_callContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitMethod_call(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Method_callContext* SV3_1aParser::method_call() {
   Method_callContext *_localctx = _tracker.createInstance<Method_callContext>(_ctx, getState());
   enterRule(_localctx, 1142, SV3_1aParser::RuleMethod_call);
@@ -69515,6 +74955,14 @@
     parserListener->exitMethod_call_body(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Method_call_bodyContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitMethod_call_body(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Method_call_bodyContext* SV3_1aParser::method_call_body() {
   Method_call_bodyContext *_localctx = _tracker.createInstance<Method_call_bodyContext>(_ctx, getState());
   enterRule(_localctx, 1144, SV3_1aParser::RuleMethod_call_body);
@@ -69611,6 +75059,14 @@
     parserListener->exitBuilt_in_method_call(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Built_in_method_callContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBuilt_in_method_call(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Built_in_method_callContext* SV3_1aParser::built_in_method_call() {
   Built_in_method_callContext *_localctx = _tracker.createInstance<Built_in_method_callContext>(_ctx, getState());
   enterRule(_localctx, 1146, SV3_1aParser::RuleBuilt_in_method_call);
@@ -69711,6 +75167,14 @@
     parserListener->exitArray_manipulation_call(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Array_manipulation_callContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitArray_manipulation_call(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Array_manipulation_callContext* SV3_1aParser::array_manipulation_call() {
   Array_manipulation_callContext *_localctx = _tracker.createInstance<Array_manipulation_callContext>(_ctx, getState());
   enterRule(_localctx, 1148, SV3_1aParser::RuleArray_manipulation_call);
@@ -69849,6 +75313,14 @@
     parserListener->exitRandomize_call(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Randomize_callContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRandomize_call(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Randomize_callContext* SV3_1aParser::randomize_call() {
   Randomize_callContext *_localctx = _tracker.createInstance<Randomize_callContext>(_ctx, getState());
   enterRule(_localctx, 1150, SV3_1aParser::RuleRandomize_call);
@@ -70069,6 +75541,14 @@
     parserListener->exitMethod_call_root(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Method_call_rootContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitMethod_call_root(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Method_call_rootContext* SV3_1aParser::method_call_root() {
   Method_call_rootContext *_localctx = _tracker.createInstance<Method_call_rootContext>(_ctx, getState());
   enterRule(_localctx, 1152, SV3_1aParser::RuleMethod_call_root);
@@ -70206,6 +75686,14 @@
     parserListener->exitArray_method_name(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Array_method_nameContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitArray_method_name(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Array_method_nameContext* SV3_1aParser::array_method_name() {
   Array_method_nameContext *_localctx = _tracker.createInstance<Array_method_nameContext>(_ctx, getState());
   enterRule(_localctx, 1154, SV3_1aParser::RuleArray_method_name);
@@ -70310,6 +75798,14 @@
     parserListener->exitUnique_call(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Unique_callContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnique_call(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Unique_callContext* SV3_1aParser::unique_call() {
   Unique_callContext *_localctx = _tracker.createInstance<Unique_callContext>(_ctx, getState());
   enterRule(_localctx, 1156, SV3_1aParser::RuleUnique_call);
@@ -70359,6 +75855,14 @@
     parserListener->exitAnd_call(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::And_callContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAnd_call(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::And_callContext* SV3_1aParser::and_call() {
   And_callContext *_localctx = _tracker.createInstance<And_callContext>(_ctx, getState());
   enterRule(_localctx, 1158, SV3_1aParser::RuleAnd_call);
@@ -70408,6 +75912,14 @@
     parserListener->exitOr_call(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Or_callContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitOr_call(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Or_callContext* SV3_1aParser::or_call() {
   Or_callContext *_localctx = _tracker.createInstance<Or_callContext>(_ctx, getState());
   enterRule(_localctx, 1160, SV3_1aParser::RuleOr_call);
@@ -70457,6 +75969,14 @@
     parserListener->exitXor_call(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Xor_callContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitXor_call(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Xor_callContext* SV3_1aParser::xor_call() {
   Xor_callContext *_localctx = _tracker.createInstance<Xor_callContext>(_ctx, getState());
   enterRule(_localctx, 1162, SV3_1aParser::RuleXor_call);
@@ -70518,6 +76038,14 @@
     parserListener->exitInc_or_dec_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Inc_or_dec_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInc_or_dec_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Inc_or_dec_expressionContext* SV3_1aParser::inc_or_dec_expression() {
   Inc_or_dec_expressionContext *_localctx = _tracker.createInstance<Inc_or_dec_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1164, SV3_1aParser::RuleInc_or_dec_expression);
@@ -70676,6 +76204,14 @@
 }
 
 
+antlrcpp::Any SV3_1aParser::Constant_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
+
 SV3_1aParser::Constant_expressionContext* SV3_1aParser::constant_expression() {
    return constant_expression(0);
 }
@@ -70685,6 +76221,7 @@
   size_t parentState = getState();
   SV3_1aParser::Constant_expressionContext *_localctx = _tracker.createInstance<Constant_expressionContext>(_ctx, parentState);
   SV3_1aParser::Constant_expressionContext *previousContext = _localctx;
+  (void)previousContext; // Silence compiler, in case the context is not used by generated code.
   size_t startState = 1166;
   enterRecursionRule(_localctx, 1166, SV3_1aParser::RuleConstant_expression, precedence);
 
@@ -70846,6 +76383,14 @@
     parserListener->exitConstant_mintypmax_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constant_mintypmax_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_mintypmax_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constant_mintypmax_expressionContext* SV3_1aParser::constant_mintypmax_expression() {
   Constant_mintypmax_expressionContext *_localctx = _tracker.createInstance<Constant_mintypmax_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1168, SV3_1aParser::RuleConstant_mintypmax_expression);
@@ -70926,6 +76471,14 @@
     parserListener->exitConstant_param_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constant_param_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_param_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constant_param_expressionContext* SV3_1aParser::constant_param_expression() {
   Constant_param_expressionContext *_localctx = _tracker.createInstance<Constant_param_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1170, SV3_1aParser::RuleConstant_param_expression);
@@ -71005,6 +76558,14 @@
     parserListener->exitParam_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Param_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitParam_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Param_expressionContext* SV3_1aParser::param_expression() {
   Param_expressionContext *_localctx = _tracker.createInstance<Param_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1172, SV3_1aParser::RuleParam_expression);
@@ -71080,6 +76641,14 @@
     parserListener->exitConstant_range_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constant_range_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_range_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constant_range_expressionContext* SV3_1aParser::constant_range_expression() {
   Constant_range_expressionContext *_localctx = _tracker.createInstance<Constant_range_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1174, SV3_1aParser::RuleConstant_range_expression);
@@ -71148,6 +76717,14 @@
     parserListener->exitConstant_part_select_range(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constant_part_select_rangeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_part_select_range(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constant_part_select_rangeContext* SV3_1aParser::constant_part_select_range() {
   Constant_part_select_rangeContext *_localctx = _tracker.createInstance<Constant_part_select_rangeContext>(_ctx, getState());
   enterRule(_localctx, 1176, SV3_1aParser::RuleConstant_part_select_range);
@@ -71220,6 +76797,14 @@
     parserListener->exitConstant_range(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constant_rangeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_range(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constant_rangeContext* SV3_1aParser::constant_range() {
   Constant_rangeContext *_localctx = _tracker.createInstance<Constant_rangeContext>(_ctx, getState());
   enterRule(_localctx, 1178, SV3_1aParser::RuleConstant_range);
@@ -71285,6 +76870,14 @@
     parserListener->exitConstant_indexed_range(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constant_indexed_rangeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_indexed_range(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constant_indexed_rangeContext* SV3_1aParser::constant_indexed_range() {
   Constant_indexed_rangeContext *_localctx = _tracker.createInstance<Constant_indexed_rangeContext>(_ctx, getState());
   enterRule(_localctx, 1180, SV3_1aParser::RuleConstant_indexed_range);
@@ -71442,6 +77035,14 @@
 }
 
 
+antlrcpp::Any SV3_1aParser::ExpressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitExpression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
+
 SV3_1aParser::ExpressionContext* SV3_1aParser::expression() {
    return expression(0);
 }
@@ -71451,6 +77052,7 @@
   size_t parentState = getState();
   SV3_1aParser::ExpressionContext *_localctx = _tracker.createInstance<ExpressionContext>(_ctx, parentState);
   SV3_1aParser::ExpressionContext *previousContext = _localctx;
+  (void)previousContext; // Silence compiler, in case the context is not used by generated code.
   size_t startState = 1182;
   enterRecursionRule(_localctx, 1182, SV3_1aParser::RuleExpression, precedence);
 
@@ -71740,6 +77342,14 @@
     parserListener->exitTagged_union_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Tagged_union_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTagged_union_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Tagged_union_expressionContext* SV3_1aParser::tagged_union_expression() {
   Tagged_union_expressionContext *_localctx = _tracker.createInstance<Tagged_union_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1184, SV3_1aParser::RuleTagged_union_expression);
@@ -71818,6 +77428,14 @@
     parserListener->exitValue_range(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Value_rangeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitValue_range(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Value_rangeContext* SV3_1aParser::value_range() {
   Value_rangeContext *_localctx = _tracker.createInstance<Value_rangeContext>(_ctx, getState());
   enterRule(_localctx, 1186, SV3_1aParser::RuleValue_range);
@@ -71973,6 +77591,14 @@
     parserListener->exitMintypmax_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Mintypmax_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitMintypmax_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Mintypmax_expressionContext* SV3_1aParser::mintypmax_expression() {
   Mintypmax_expressionContext *_localctx = _tracker.createInstance<Mintypmax_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1188, SV3_1aParser::RuleMintypmax_expression);
@@ -72078,6 +77704,14 @@
 }
 
 
+antlrcpp::Any SV3_1aParser::Module_path_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_path_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
+
 SV3_1aParser::Module_path_expressionContext* SV3_1aParser::module_path_expression() {
    return module_path_expression(0);
 }
@@ -72087,6 +77721,7 @@
   size_t parentState = getState();
   SV3_1aParser::Module_path_expressionContext *_localctx = _tracker.createInstance<Module_path_expressionContext>(_ctx, parentState);
   SV3_1aParser::Module_path_expressionContext *previousContext = _localctx;
+  (void)previousContext; // Silence compiler, in case the context is not used by generated code.
   size_t startState = 1190;
   enterRecursionRule(_localctx, 1190, SV3_1aParser::RuleModule_path_expression, precedence);
 
@@ -72291,6 +77926,14 @@
     parserListener->exitModule_path_mintypmax_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Module_path_mintypmax_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_path_mintypmax_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Module_path_mintypmax_expressionContext* SV3_1aParser::module_path_mintypmax_expression() {
   Module_path_mintypmax_expressionContext *_localctx = _tracker.createInstance<Module_path_mintypmax_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1192, SV3_1aParser::RuleModule_path_mintypmax_expression);
@@ -72367,6 +78010,14 @@
     parserListener->exitRange_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Range_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRange_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Range_expressionContext* SV3_1aParser::range_expression() {
   Range_expressionContext *_localctx = _tracker.createInstance<Range_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1194, SV3_1aParser::RuleRange_expression);
@@ -72435,6 +78086,14 @@
     parserListener->exitPart_select_range(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Part_select_rangeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPart_select_range(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Part_select_rangeContext* SV3_1aParser::part_select_range() {
   Part_select_rangeContext *_localctx = _tracker.createInstance<Part_select_rangeContext>(_ctx, getState());
   enterRule(_localctx, 1196, SV3_1aParser::RulePart_select_range);
@@ -72511,6 +78170,14 @@
     parserListener->exitIndexed_range(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Indexed_rangeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIndexed_range(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Indexed_rangeContext* SV3_1aParser::indexed_range() {
   Indexed_rangeContext *_localctx = _tracker.createInstance<Indexed_rangeContext>(_ctx, getState());
   enterRule(_localctx, 1198, SV3_1aParser::RuleIndexed_range);
@@ -72651,6 +78318,14 @@
     parserListener->exitConstant_primary(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constant_primaryContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_primary(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constant_primaryContext* SV3_1aParser::constant_primary() {
   Constant_primaryContext *_localctx = _tracker.createInstance<Constant_primaryContext>(_ctx, getState());
   enterRule(_localctx, 1200, SV3_1aParser::RuleConstant_primary);
@@ -72867,6 +78542,14 @@
     parserListener->exitModule_path_primary(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Module_path_primaryContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitModule_path_primary(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Module_path_primaryContext* SV3_1aParser::module_path_primary() {
   Module_path_primaryContext *_localctx = _tracker.createInstance<Module_path_primaryContext>(_ctx, getState());
   enterRule(_localctx, 1202, SV3_1aParser::RuleModule_path_primary);
@@ -73047,6 +78730,14 @@
     parserListener->exitComplex_func_call(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Complex_func_callContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitComplex_func_call(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Complex_func_callContext* SV3_1aParser::complex_func_call() {
   Complex_func_callContext *_localctx = _tracker.createInstance<Complex_func_callContext>(_ctx, getState());
   enterRule(_localctx, 1204, SV3_1aParser::RuleComplex_func_call);
@@ -73301,6 +78992,14 @@
     parserListener->exitPrimary(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::PrimaryContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPrimary(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::PrimaryContext* SV3_1aParser::primary() {
   PrimaryContext *_localctx = _tracker.createInstance<PrimaryContext>(_ctx, getState());
   enterRule(_localctx, 1206, SV3_1aParser::RulePrimary);
@@ -73486,6 +79185,14 @@
     parserListener->exitThis_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::This_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitThis_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::This_keywordContext* SV3_1aParser::this_keyword() {
   This_keywordContext *_localctx = _tracker.createInstance<This_keywordContext>(_ctx, getState());
   enterRule(_localctx, 1208, SV3_1aParser::RuleThis_keyword);
@@ -73535,6 +79242,14 @@
     parserListener->exitSuper_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Super_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSuper_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Super_keywordContext* SV3_1aParser::super_keyword() {
   Super_keywordContext *_localctx = _tracker.createInstance<Super_keywordContext>(_ctx, getState());
   enterRule(_localctx, 1210, SV3_1aParser::RuleSuper_keyword);
@@ -73584,6 +79299,14 @@
     parserListener->exitDollar_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_keywordContext* SV3_1aParser::dollar_keyword() {
   Dollar_keywordContext *_localctx = _tracker.createInstance<Dollar_keywordContext>(_ctx, getState());
   enterRule(_localctx, 1212, SV3_1aParser::RuleDollar_keyword);
@@ -73637,6 +79360,14 @@
     parserListener->exitDollar_root_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Dollar_root_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDollar_root_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Dollar_root_keywordContext* SV3_1aParser::dollar_root_keyword() {
   Dollar_root_keywordContext *_localctx = _tracker.createInstance<Dollar_root_keywordContext>(_ctx, getState());
   enterRule(_localctx, 1214, SV3_1aParser::RuleDollar_root_keyword);
@@ -73696,6 +79427,14 @@
     parserListener->exitThis_dot_super(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::This_dot_superContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitThis_dot_super(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::This_dot_superContext* SV3_1aParser::this_dot_super() {
   This_dot_superContext *_localctx = _tracker.createInstance<This_dot_superContext>(_ctx, getState());
   enterRule(_localctx, 1216, SV3_1aParser::RuleThis_dot_super);
@@ -73749,6 +79488,14 @@
     parserListener->exitNull_keyword(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Null_keywordContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNull_keyword(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Null_keywordContext* SV3_1aParser::null_keyword() {
   Null_keywordContext *_localctx = _tracker.createInstance<Null_keywordContext>(_ctx, getState());
   enterRule(_localctx, 1218, SV3_1aParser::RuleNull_keyword);
@@ -73806,6 +79553,14 @@
     parserListener->exitTime_literal(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Time_literalContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTime_literal(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Time_literalContext* SV3_1aParser::time_literal() {
   Time_literalContext *_localctx = _tracker.createInstance<Time_literalContext>(_ctx, getState());
   enterRule(_localctx, 1220, SV3_1aParser::RuleTime_literal);
@@ -73876,6 +79631,14 @@
     parserListener->exitTime_unit(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Time_unitContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTime_unit(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Time_unitContext* SV3_1aParser::time_unit() {
   Time_unitContext *_localctx = _tracker.createInstance<Time_unitContext>(_ctx, getState());
   enterRule(_localctx, 1222, SV3_1aParser::RuleTime_unit);
@@ -73933,6 +79696,14 @@
     parserListener->exitImplicit_class_handle(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Implicit_class_handleContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitImplicit_class_handle(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Implicit_class_handleContext* SV3_1aParser::implicit_class_handle() {
   Implicit_class_handleContext *_localctx = _tracker.createInstance<Implicit_class_handleContext>(_ctx, getState());
   enterRule(_localctx, 1224, SV3_1aParser::RuleImplicit_class_handle);
@@ -74024,6 +79795,14 @@
     parserListener->exitBit_select(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Bit_selectContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBit_select(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Bit_selectContext* SV3_1aParser::bit_select() {
   Bit_selectContext *_localctx = _tracker.createInstance<Bit_selectContext>(_ctx, getState());
   enterRule(_localctx, 1226, SV3_1aParser::RuleBit_select);
@@ -74120,6 +79899,14 @@
     parserListener->exitSelect(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::SelectContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSelect(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::SelectContext* SV3_1aParser::select() {
   SelectContext *_localctx = _tracker.createInstance<SelectContext>(_ctx, getState());
   enterRule(_localctx, 1228, SV3_1aParser::RuleSelect);
@@ -74234,6 +80021,14 @@
     parserListener->exitNonrange_select(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Nonrange_selectContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNonrange_select(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Nonrange_selectContext* SV3_1aParser::nonrange_select() {
   Nonrange_selectContext *_localctx = _tracker.createInstance<Nonrange_selectContext>(_ctx, getState());
   enterRule(_localctx, 1230, SV3_1aParser::RuleNonrange_select);
@@ -74331,6 +80126,14 @@
     parserListener->exitConstant_bit_select(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constant_bit_selectContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_bit_select(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constant_bit_selectContext* SV3_1aParser::constant_bit_select() {
   Constant_bit_selectContext *_localctx = _tracker.createInstance<Constant_bit_selectContext>(_ctx, getState());
   enterRule(_localctx, 1232, SV3_1aParser::RuleConstant_bit_select);
@@ -74427,6 +80230,14 @@
     parserListener->exitConstant_select(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constant_selectContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_select(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constant_selectContext* SV3_1aParser::constant_select() {
   Constant_selectContext *_localctx = _tracker.createInstance<Constant_selectContext>(_ctx, getState());
   enterRule(_localctx, 1234, SV3_1aParser::RuleConstant_select);
@@ -74537,6 +80348,14 @@
     parserListener->exitPrimary_literal(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Primary_literalContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPrimary_literal(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Primary_literalContext* SV3_1aParser::primary_literal() {
   Primary_literalContext *_localctx = _tracker.createInstance<Primary_literalContext>(_ctx, getState());
   enterRule(_localctx, 1236, SV3_1aParser::RulePrimary_literal);
@@ -74646,6 +80465,14 @@
     parserListener->exitConstant_cast(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Constant_castContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConstant_cast(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Constant_castContext* SV3_1aParser::constant_cast() {
   Constant_castContext *_localctx = _tracker.createInstance<Constant_castContext>(_ctx, getState());
   enterRule(_localctx, 1238, SV3_1aParser::RuleConstant_cast);
@@ -74747,6 +80574,14 @@
     parserListener->exitCast(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::CastContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCast(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::CastContext* SV3_1aParser::cast() {
   CastContext *_localctx = _tracker.createInstance<CastContext>(_ctx, getState());
   enterRule(_localctx, 1240, SV3_1aParser::RuleCast);
@@ -74860,6 +80695,14 @@
     parserListener->exitNet_lvalue(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Net_lvalueContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNet_lvalue(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Net_lvalueContext* SV3_1aParser::net_lvalue() {
   Net_lvalueContext *_localctx = _tracker.createInstance<Net_lvalueContext>(_ctx, getState());
   enterRule(_localctx, 1242, SV3_1aParser::RuleNet_lvalue);
@@ -75036,6 +80879,14 @@
     parserListener->exitVariable_lvalue(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Variable_lvalueContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitVariable_lvalue(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Variable_lvalueContext* SV3_1aParser::variable_lvalue() {
   Variable_lvalueContext *_localctx = _tracker.createInstance<Variable_lvalueContext>(_ctx, getState());
   enterRule(_localctx, 1244, SV3_1aParser::RuleVariable_lvalue);
@@ -75202,6 +81053,14 @@
     parserListener->exitNonrange_variable_lvalue(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Nonrange_variable_lvalueContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNonrange_variable_lvalue(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Nonrange_variable_lvalueContext* SV3_1aParser::nonrange_variable_lvalue() {
   Nonrange_variable_lvalueContext *_localctx = _tracker.createInstance<Nonrange_variable_lvalueContext>(_ctx, getState());
   enterRule(_localctx, 1246, SV3_1aParser::RuleNonrange_variable_lvalue);
@@ -75278,6 +81137,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnary_BitwAnd(this);
 }
+
+antlrcpp::Any SV3_1aParser::Unary_BitwAndContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnary_BitwAnd(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Unary_ReductNandContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Unary_ReductNandContext::REDUCTION_NAND() {
@@ -75296,6 +81162,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnary_ReductNand(this);
 }
+
+antlrcpp::Any SV3_1aParser::Unary_ReductNandContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnary_ReductNand(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Unary_TildaContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Unary_TildaContext::TILDA() {
@@ -75314,6 +81187,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnary_Tilda(this);
 }
+
+antlrcpp::Any SV3_1aParser::Unary_TildaContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnary_Tilda(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Unary_PlusContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Unary_PlusContext::PLUS() {
@@ -75332,6 +81212,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnary_Plus(this);
 }
+
+antlrcpp::Any SV3_1aParser::Unary_PlusContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnary_Plus(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Unary_NotContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Unary_NotContext::BANG() {
@@ -75350,6 +81237,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnary_Not(this);
 }
+
+antlrcpp::Any SV3_1aParser::Unary_NotContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnary_Not(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Unary_BitwOrContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Unary_BitwOrContext::BITW_OR() {
@@ -75368,6 +81262,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnary_BitwOr(this);
 }
+
+antlrcpp::Any SV3_1aParser::Unary_BitwOrContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnary_BitwOr(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Unary_ReductXnor2Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Unary_ReductXnor2Context::REDUCTION_XNOR2() {
@@ -75386,6 +81287,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnary_ReductXnor2(this);
 }
+
+antlrcpp::Any SV3_1aParser::Unary_ReductXnor2Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnary_ReductXnor2(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Unary_BitwXorContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Unary_BitwXorContext::BITW_XOR() {
@@ -75404,6 +81312,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnary_BitwXor(this);
 }
+
+antlrcpp::Any SV3_1aParser::Unary_BitwXorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnary_BitwXor(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Unary_MinusContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Unary_MinusContext::MINUS() {
@@ -75422,6 +81337,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnary_Minus(this);
 }
+
+antlrcpp::Any SV3_1aParser::Unary_MinusContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnary_Minus(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Unary_ReductNorContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Unary_ReductNorContext::REDUCTION_NOR() {
@@ -75440,6 +81362,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnary_ReductNor(this);
 }
+
+antlrcpp::Any SV3_1aParser::Unary_ReductNorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnary_ReductNor(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Unary_ReductXnor1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Unary_ReductXnor1Context::REDUCTION_XNOR1() {
@@ -75458,6 +81387,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnary_ReductXnor1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Unary_ReductXnor1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnary_ReductXnor1(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Unary_operatorContext* SV3_1aParser::unary_operator() {
   Unary_operatorContext *_localctx = _tracker.createInstance<Unary_operatorContext>(_ctx, getState());
   enterRule(_localctx, 1248, SV3_1aParser::RuleUnary_operator);
@@ -75604,6 +81540,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_BitwAnd(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_BitwAndContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_BitwAnd(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_MinusContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_MinusContext::MINUS() {
@@ -75622,6 +81565,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_Minus(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_MinusContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_Minus(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_DivContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_DivContext::DIV() {
@@ -75640,6 +81590,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_Div(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_DivContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_Div(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_WildEqualContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_WildEqualContext::WILD_EQUAL_OP() {
@@ -75658,6 +81615,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_WildEqual(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_WildEqualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_WildEqual(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_ArithShiftLeftContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_ArithShiftLeftContext::ARITH_SHIFT_LEFT() {
@@ -75676,6 +81640,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_ArithShiftLeft(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_ArithShiftLeftContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_ArithShiftLeft(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_MultContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_MultContext::STAR() {
@@ -75694,6 +81665,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_Mult(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_MultContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_Mult(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_ReductNandContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_ReductNandContext::REDUCTION_NAND() {
@@ -75712,6 +81690,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_ReductNand(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_ReductNandContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_ReductNand(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_NotContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_NotContext::NOTEQUAL() {
@@ -75730,6 +81715,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_Not(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_NotContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_Not(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_BitwXorContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_BitwXorContext::BITW_XOR() {
@@ -75748,6 +81740,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_BitwXor(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_BitwXorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_BitwXor(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_ShiftLeftContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_ShiftLeftContext::SHIFT_LEFT() {
@@ -75766,6 +81765,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_ShiftLeft(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_ShiftLeftContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_ShiftLeft(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_WildcardEqualContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_WildcardEqualContext::BINARY_WILDCARD_EQUAL() {
@@ -75784,6 +81790,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_WildcardEqual(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_WildcardEqualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_WildcardEqual(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_ShiftRightContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_ShiftRightContext::SHIFT_RIGHT() {
@@ -75802,6 +81815,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_ShiftRight(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_ShiftRightContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_ShiftRight(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_ArithShiftRightContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_ArithShiftRightContext::ARITH_SHIFT_RIGHT() {
@@ -75820,6 +81840,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_ArithShiftRight(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_ArithShiftRightContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_ArithShiftRight(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_LogicOrContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_LogicOrContext::LOGICAL_OR() {
@@ -75838,6 +81865,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_LogicOr(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_LogicOrContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_LogicOr(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_PercentContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_PercentContext::PERCENT() {
@@ -75856,6 +81890,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_Percent(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_PercentContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_Percent(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_ReductNorContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_ReductNorContext::REDUCTION_NOR() {
@@ -75874,6 +81915,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_ReductNor(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_ReductNorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_ReductNor(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_WildcardNotEqualContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_WildcardNotEqualContext::BINARY_WILDCARD_NOTEQUAL() {
@@ -75892,6 +81940,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_WildcardNotEqual(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_WildcardNotEqualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_WildcardNotEqual(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_FourStateLogicEqualContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_FourStateLogicEqualContext::FOUR_STATE_LOGIC_EQUAL() {
@@ -75910,6 +81965,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_FourStateLogicEqual(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_FourStateLogicEqualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_FourStateLogicEqual(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_ImplyContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_ImplyContext::IMPLY() {
@@ -75928,6 +81990,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_Imply(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_ImplyContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_Imply(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_EquivContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_EquivContext::EQUIV() {
@@ -75946,6 +82015,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_Equiv(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_EquivContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_Equiv(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_LessEqualContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_LessEqualContext::LESS_EQUAL() {
@@ -75964,6 +82040,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_LessEqual(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_LessEqualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_LessEqual(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_LogicAndContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_LogicAndContext::LOGICAL_AND() {
@@ -75982,6 +82065,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_LogicAnd(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_LogicAndContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_LogicAnd(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_ReductXnor2Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_ReductXnor2Context::REDUCTION_XNOR2() {
@@ -76000,6 +82090,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_ReductXnor2(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_ReductXnor2Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_ReductXnor2(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_ReductXnor1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_ReductXnor1Context::REDUCTION_XNOR1() {
@@ -76018,6 +82115,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_ReductXnor1(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_ReductXnor1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_ReductXnor1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_GreatEqualContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_GreatEqualContext::GREATER_EQUAL() {
@@ -76036,6 +82140,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_GreatEqual(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_GreatEqualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_GreatEqual(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_FourStateLogicNotEqualContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_FourStateLogicNotEqualContext::FOUR_STATE_LOGIC_NOTEQUAL() {
@@ -76054,6 +82165,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_FourStateLogicNotEqual(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_FourStateLogicNotEqualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_FourStateLogicNotEqual(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_MultMultContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_MultMultContext::STARSTAR() {
@@ -76072,6 +82190,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_MultMult(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_MultMultContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_MultMult(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_GreatContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_GreatContext::GREATER() {
@@ -76090,6 +82215,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_Great(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_GreatContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_Great(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_EquivalenceContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_EquivalenceContext::EQUIVALENCE() {
@@ -76108,6 +82240,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_Equivalence(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_EquivalenceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_Equivalence(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_WildNotEqualContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_WildNotEqualContext::WILD_NOTEQUAL_OP() {
@@ -76126,6 +82265,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_WildNotEqual(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_WildNotEqualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_WildNotEqual(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_LessContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_LessContext::LESS() {
@@ -76144,6 +82290,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_Less(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_LessContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_Less(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_PlusContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_PlusContext::PLUS() {
@@ -76162,6 +82315,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_Plus(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_PlusContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_Plus(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinOp_BitwOrContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinOp_BitwOrContext::BITW_OR() {
@@ -76180,6 +82340,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinOp_BitwOr(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinOp_BitwOrContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinOp_BitwOr(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Binary_operatorContext* SV3_1aParser::binary_operator() {
   Binary_operatorContext *_localctx = _tracker.createInstance<Binary_operatorContext>(_ctx, getState());
   enterRule(_localctx, 1250, SV3_1aParser::RuleBinary_operator);
@@ -76502,6 +82669,13 @@
   if (parserListener != nullptr)
     parserListener->exitIncDec_MinusMinus(this);
 }
+
+antlrcpp::Any SV3_1aParser::IncDec_MinusMinusContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIncDec_MinusMinus(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- IncDec_PlusPlusContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::IncDec_PlusPlusContext::PLUSPLUS() {
@@ -76520,6 +82694,13 @@
   if (parserListener != nullptr)
     parserListener->exitIncDec_PlusPlus(this);
 }
+
+antlrcpp::Any SV3_1aParser::IncDec_PlusPlusContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIncDec_PlusPlus(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Inc_or_dec_operatorContext* SV3_1aParser::inc_or_dec_operator() {
   Inc_or_dec_operatorContext *_localctx = _tracker.createInstance<Inc_or_dec_operatorContext>(_ctx, getState());
   enterRule(_localctx, 1252, SV3_1aParser::RuleInc_or_dec_operator);
@@ -76594,6 +82775,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnaryModOp_ReductXnor2(this);
 }
+
+antlrcpp::Any SV3_1aParser::UnaryModOp_ReductXnor2Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnaryModOp_ReductXnor2(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- UnaryModOp_NotContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::UnaryModOp_NotContext::BANG() {
@@ -76612,6 +82800,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnaryModOp_Not(this);
 }
+
+antlrcpp::Any SV3_1aParser::UnaryModOp_NotContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnaryModOp_Not(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- UnaryModOp_ReductNandContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::UnaryModOp_ReductNandContext::REDUCTION_NAND() {
@@ -76630,6 +82825,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnaryModOp_ReductNand(this);
 }
+
+antlrcpp::Any SV3_1aParser::UnaryModOp_ReductNandContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnaryModOp_ReductNand(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- UnaryModOp_ReductXNor1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::UnaryModOp_ReductXNor1Context::REDUCTION_XNOR1() {
@@ -76648,6 +82850,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnaryModOp_ReductXNor1(this);
 }
+
+antlrcpp::Any SV3_1aParser::UnaryModOp_ReductXNor1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnaryModOp_ReductXNor1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- UnaryModOp_TildaContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::UnaryModOp_TildaContext::TILDA() {
@@ -76666,6 +82875,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnaryModOp_Tilda(this);
 }
+
+antlrcpp::Any SV3_1aParser::UnaryModOp_TildaContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnaryModOp_Tilda(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- UnaryModOp_BitwOrContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::UnaryModOp_BitwOrContext::BITW_OR() {
@@ -76684,6 +82900,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnaryModOp_BitwOr(this);
 }
+
+antlrcpp::Any SV3_1aParser::UnaryModOp_BitwOrContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnaryModOp_BitwOr(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- UnaryModOp_ReductNorContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::UnaryModOp_ReductNorContext::REDUCTION_NOR() {
@@ -76702,6 +82925,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnaryModOp_ReductNor(this);
 }
+
+antlrcpp::Any SV3_1aParser::UnaryModOp_ReductNorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnaryModOp_ReductNor(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- UnaryModOp_BitwXorContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::UnaryModOp_BitwXorContext::BITW_XOR() {
@@ -76720,6 +82950,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnaryModOp_BitwXor(this);
 }
+
+antlrcpp::Any SV3_1aParser::UnaryModOp_BitwXorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnaryModOp_BitwXor(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- UnaryModOp_BitwAndContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::UnaryModOp_BitwAndContext::BITW_AND() {
@@ -76738,6 +82975,13 @@
   if (parserListener != nullptr)
     parserListener->exitUnaryModOp_BitwAnd(this);
 }
+
+antlrcpp::Any SV3_1aParser::UnaryModOp_BitwAndContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnaryModOp_BitwAnd(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Unary_module_path_operatorContext* SV3_1aParser::unary_module_path_operator() {
   Unary_module_path_operatorContext *_localctx = _tracker.createInstance<Unary_module_path_operatorContext>(_ctx, getState());
   enterRule(_localctx, 1254, SV3_1aParser::RuleUnary_module_path_operator);
@@ -76868,6 +83112,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinModOp_Equiv(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinModOp_EquivContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinModOp_Equiv(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinModOp_BitwXorContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinModOp_BitwXorContext::BITW_XOR() {
@@ -76886,6 +83137,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinModOp_BitwXor(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinModOp_BitwXorContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinModOp_BitwXor(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinModOp_LogicOrContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinModOp_LogicOrContext::LOGICAL_OR() {
@@ -76904,6 +83162,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinModOp_LogicOr(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinModOp_LogicOrContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinModOp_LogicOr(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinModOp_NotEqualContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinModOp_NotEqualContext::NOTEQUAL() {
@@ -76922,6 +83187,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinModOp_NotEqual(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinModOp_NotEqualContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinModOp_NotEqual(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinModOp_LogicAndContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinModOp_LogicAndContext::LOGICAL_AND() {
@@ -76940,6 +83212,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinModOp_LogicAnd(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinModOp_LogicAndContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinModOp_LogicAnd(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinModOp_BitwAndContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinModOp_BitwAndContext::BITW_AND() {
@@ -76958,6 +83237,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinModOp_BitwAnd(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinModOp_BitwAndContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinModOp_BitwAnd(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinModOp_BitwOrContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinModOp_BitwOrContext::BITW_OR() {
@@ -76976,6 +83262,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinModOp_BitwOr(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinModOp_BitwOrContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinModOp_BitwOr(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinModOp_ReductXnor1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinModOp_ReductXnor1Context::REDUCTION_XNOR1() {
@@ -76994,6 +83287,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinModOp_ReductXnor1(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinModOp_ReductXnor1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinModOp_ReductXnor1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- BinModOp_ReductXnor2Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::BinModOp_ReductXnor2Context::REDUCTION_XNOR2() {
@@ -77012,6 +83312,13 @@
   if (parserListener != nullptr)
     parserListener->exitBinModOp_ReductXnor2(this);
 }
+
+antlrcpp::Any SV3_1aParser::BinModOp_ReductXnor2Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBinModOp_ReductXnor2(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::Binary_module_path_operatorContext* SV3_1aParser::binary_module_path_operator() {
   Binary_module_path_operatorContext *_localctx = _tracker.createInstance<Binary_module_path_operatorContext>(_ctx, getState());
   enterRule(_localctx, 1256, SV3_1aParser::RuleBinary_module_path_operator);
@@ -77142,6 +83449,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_Real(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_RealContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_Real(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_1Tickb0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_1Tickb0Context::ONE_TICK_b0() {
@@ -77160,6 +83474,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_1Tickb0(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_1Tickb0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_1Tickb0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_1TickB0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_1TickB0Context::ONE_TICK_B0() {
@@ -77178,6 +83499,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_1TickB0(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_1TickB0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_1TickB0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_1Tickb1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_1Tickb1Context::ONE_TICK_b1() {
@@ -77196,6 +83524,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_1Tickb1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_1Tickb1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_1Tickb1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_1TickB1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_1TickB1Context::ONE_TICK_B1() {
@@ -77214,6 +83549,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_1TickB1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_1TickB1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_1TickB1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_1TickbxContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_1TickbxContext::ONE_TICK_bx() {
@@ -77232,6 +83574,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_1Tickbx(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_1TickbxContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_1Tickbx(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_1TickbXContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_1TickbXContext::ONE_TICK_bX() {
@@ -77250,6 +83599,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_1TickbX(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_1TickbXContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_1TickbX(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_1TickBxContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_1TickBxContext::ONE_TICK_Bx() {
@@ -77268,6 +83624,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_1TickBx(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_1TickBxContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_1TickBx(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_1TickBXContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_1TickBXContext::ONE_TICK_BX() {
@@ -77286,6 +83649,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_1TickBX(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_1TickBXContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_1TickBX(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_IntegralContext ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_IntegralContext::Integral_number() {
@@ -77304,6 +83674,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_Integral(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_IntegralContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_Integral(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_Tick0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_Tick0Context::TICK_0() {
@@ -77322,6 +83699,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_Tick0(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_Tick0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_Tick0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_Tick1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_Tick1Context::TICK_1() {
@@ -77340,6 +83724,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_Tick1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_Tick1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_Tick1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_Tickb0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_Tickb0Context::TICK_b0() {
@@ -77358,6 +83749,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_Tickb0(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_Tickb0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_Tickb0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_TickB0Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_TickB0Context::TICK_B0() {
@@ -77376,6 +83774,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_TickB0(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_TickB0Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_TickB0(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_Tickb1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_Tickb1Context::TICK_b1() {
@@ -77394,6 +83799,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_Tickb1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_Tickb1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_Tickb1(this);
+  else
+    return visitor->visitChildren(this);
+}
 //----------------- Number_TickB1Context ------------------------------------------------------------------
 
 tree::TerminalNode* SV3_1aParser::Number_TickB1Context::TICK_B1() {
@@ -77412,6 +83824,13 @@
   if (parserListener != nullptr)
     parserListener->exitNumber_TickB1(this);
 }
+
+antlrcpp::Any SV3_1aParser::Number_TickB1Context::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNumber_TickB1(this);
+  else
+    return visitor->visitChildren(this);
+}
 SV3_1aParser::NumberContext* SV3_1aParser::number() {
   NumberContext *_localctx = _tracker.createInstance<NumberContext>(_ctx, getState());
   enterRule(_localctx, 1258, SV3_1aParser::RuleNumber);
@@ -77604,6 +84023,14 @@
     parserListener->exitUnbased_unsized_literal(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Unbased_unsized_literalContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnbased_unsized_literal(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Unbased_unsized_literalContext* SV3_1aParser::unbased_unsized_literal() {
   Unbased_unsized_literalContext *_localctx = _tracker.createInstance<Unbased_unsized_literalContext>(_ctx, getState());
   enterRule(_localctx, 1260, SV3_1aParser::RuleUnbased_unsized_literal);
@@ -77699,6 +84126,14 @@
     parserListener->exitAttribute_instance(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Attribute_instanceContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAttribute_instance(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Attribute_instanceContext* SV3_1aParser::attribute_instance() {
   Attribute_instanceContext *_localctx = _tracker.createInstance<Attribute_instanceContext>(_ctx, getState());
   enterRule(_localctx, 1262, SV3_1aParser::RuleAttribute_instance);
@@ -77773,6 +84208,14 @@
     parserListener->exitAttr_spec(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Attr_specContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAttr_spec(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Attr_specContext* SV3_1aParser::attr_spec() {
   Attr_specContext *_localctx = _tracker.createInstance<Attr_specContext>(_ctx, getState());
   enterRule(_localctx, 1264, SV3_1aParser::RuleAttr_spec);
@@ -77833,6 +84276,14 @@
     parserListener->exitAttr_name(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Attr_nameContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAttr_name(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Attr_nameContext* SV3_1aParser::attr_name() {
   Attr_nameContext *_localctx = _tracker.createInstance<Attr_nameContext>(_ctx, getState());
   enterRule(_localctx, 1266, SV3_1aParser::RuleAttr_name);
@@ -78058,6 +84509,14 @@
     parserListener->exitHierarchical_identifier(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Hierarchical_identifierContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitHierarchical_identifier(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Hierarchical_identifierContext* SV3_1aParser::hierarchical_identifier() {
   Hierarchical_identifierContext *_localctx = _tracker.createInstance<Hierarchical_identifierContext>(_ctx, getState());
   enterRule(_localctx, 1268, SV3_1aParser::RuleHierarchical_identifier);
@@ -78263,6 +84722,14 @@
     parserListener->exitIdentifier(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::IdentifierContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitIdentifier(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::IdentifierContext* SV3_1aParser::identifier() {
   IdentifierContext *_localctx = _tracker.createInstance<IdentifierContext>(_ctx, getState());
   enterRule(_localctx, 1270, SV3_1aParser::RuleIdentifier);
@@ -78378,6 +84845,14 @@
     parserListener->exitInterface_identifier(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Interface_identifierContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInterface_identifier(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Interface_identifierContext* SV3_1aParser::interface_identifier() {
   Interface_identifierContext *_localctx = _tracker.createInstance<Interface_identifierContext>(_ctx, getState());
   enterRule(_localctx, 1272, SV3_1aParser::RuleInterface_identifier);
@@ -78489,6 +84964,14 @@
     parserListener->exitPackage_scope(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Package_scopeContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPackage_scope(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Package_scopeContext* SV3_1aParser::package_scope() {
   Package_scopeContext *_localctx = _tracker.createInstance<Package_scopeContext>(_ctx, getState());
   enterRule(_localctx, 1274, SV3_1aParser::RulePackage_scope);
@@ -78597,6 +85080,14 @@
     parserListener->exitPs_identifier(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Ps_identifierContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPs_identifier(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Ps_identifierContext* SV3_1aParser::ps_identifier() {
   Ps_identifierContext *_localctx = _tracker.createInstance<Ps_identifierContext>(_ctx, getState());
   enterRule(_localctx, 1276, SV3_1aParser::RulePs_identifier);
@@ -78689,6 +85180,14 @@
     parserListener->exitPs_or_hierarchical_identifier(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Ps_or_hierarchical_identifierContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPs_or_hierarchical_identifier(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Ps_or_hierarchical_identifierContext* SV3_1aParser::ps_or_hierarchical_identifier() {
   Ps_or_hierarchical_identifierContext *_localctx = _tracker.createInstance<Ps_or_hierarchical_identifierContext>(_ctx, getState());
   enterRule(_localctx, 1278, SV3_1aParser::RulePs_or_hierarchical_identifier);
@@ -78816,6 +85315,14 @@
     parserListener->exitPs_or_hierarchical_array_identifier(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Ps_or_hierarchical_array_identifierContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPs_or_hierarchical_array_identifier(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Ps_or_hierarchical_array_identifierContext* SV3_1aParser::ps_or_hierarchical_array_identifier() {
   Ps_or_hierarchical_array_identifierContext *_localctx = _tracker.createInstance<Ps_or_hierarchical_array_identifierContext>(_ctx, getState());
   enterRule(_localctx, 1280, SV3_1aParser::RulePs_or_hierarchical_array_identifier);
@@ -78972,6 +85479,14 @@
     parserListener->exitPs_or_hierarchical_sequence_identifier(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Ps_or_hierarchical_sequence_identifierContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPs_or_hierarchical_sequence_identifier(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Ps_or_hierarchical_sequence_identifierContext* SV3_1aParser::ps_or_hierarchical_sequence_identifier() {
   Ps_or_hierarchical_sequence_identifierContext *_localctx = _tracker.createInstance<Ps_or_hierarchical_sequence_identifierContext>(_ctx, getState());
   enterRule(_localctx, 1282, SV3_1aParser::RulePs_or_hierarchical_sequence_identifier);
@@ -79097,6 +85612,14 @@
     parserListener->exitPs_type_identifier(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Ps_type_identifierContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPs_type_identifier(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Ps_type_identifierContext* SV3_1aParser::ps_type_identifier() {
   Ps_type_identifierContext *_localctx = _tracker.createInstance<Ps_type_identifierContext>(_ctx, getState());
   enterRule(_localctx, 1284, SV3_1aParser::RulePs_type_identifier);
@@ -79185,6 +85708,14 @@
     parserListener->exitSystem_task(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::System_taskContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSystem_task(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::System_taskContext* SV3_1aParser::system_task() {
   System_taskContext *_localctx = _tracker.createInstance<System_taskContext>(_ctx, getState());
   enterRule(_localctx, 1286, SV3_1aParser::RuleSystem_task);
@@ -79302,6 +85833,14 @@
     parserListener->exitSystem_task_names(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::System_task_namesContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSystem_task_names(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::System_task_namesContext* SV3_1aParser::system_task_names() {
   System_task_namesContext *_localctx = _tracker.createInstance<System_task_namesContext>(_ctx, getState());
   enterRule(_localctx, 1288, SV3_1aParser::RuleSystem_task_names);
@@ -79568,6 +86107,14 @@
     parserListener->exitTop_directives(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Top_directivesContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTop_directives(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Top_directivesContext* SV3_1aParser::top_directives() {
   Top_directivesContext *_localctx = _tracker.createInstance<Top_directivesContext>(_ctx, getState());
   enterRule(_localctx, 1290, SV3_1aParser::RuleTop_directives);
@@ -79917,6 +86464,14 @@
     parserListener->exitPragma_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Pragma_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPragma_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Pragma_directiveContext* SV3_1aParser::pragma_directive() {
   Pragma_directiveContext *_localctx = _tracker.createInstance<Pragma_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1292, SV3_1aParser::RulePragma_directive);
@@ -80008,6 +86563,14 @@
     parserListener->exitPragma_expression(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Pragma_expressionContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPragma_expression(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Pragma_expressionContext* SV3_1aParser::pragma_expression() {
   Pragma_expressionContext *_localctx = _tracker.createInstance<Pragma_expressionContext>(_ctx, getState());
   enterRule(_localctx, 1294, SV3_1aParser::RulePragma_expression);
@@ -80129,6 +86692,14 @@
     parserListener->exitPragma_value(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Pragma_valueContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitPragma_value(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Pragma_valueContext* SV3_1aParser::pragma_value() {
   Pragma_valueContext *_localctx = _tracker.createInstance<Pragma_valueContext>(_ctx, getState());
   enterRule(_localctx, 1296, SV3_1aParser::RulePragma_value);
@@ -80261,6 +86832,14 @@
     parserListener->exitTimescale_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Timescale_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitTimescale_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Timescale_directiveContext* SV3_1aParser::timescale_directive() {
   Timescale_directiveContext *_localctx = _tracker.createInstance<Timescale_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1298, SV3_1aParser::RuleTimescale_directive);
@@ -80324,6 +86903,14 @@
     parserListener->exitBegin_keywords_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Begin_keywords_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitBegin_keywords_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Begin_keywords_directiveContext* SV3_1aParser::begin_keywords_directive() {
   Begin_keywords_directiveContext *_localctx = _tracker.createInstance<Begin_keywords_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1300, SV3_1aParser::RuleBegin_keywords_directive);
@@ -80375,6 +86962,14 @@
     parserListener->exitEnd_keywords_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::End_keywords_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEnd_keywords_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::End_keywords_directiveContext* SV3_1aParser::end_keywords_directive() {
   End_keywords_directiveContext *_localctx = _tracker.createInstance<End_keywords_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1302, SV3_1aParser::RuleEnd_keywords_directive);
@@ -80436,6 +87031,14 @@
     parserListener->exitUnconnected_drive_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Unconnected_drive_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnconnected_drive_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Unconnected_drive_directiveContext* SV3_1aParser::unconnected_drive_directive() {
   Unconnected_drive_directiveContext *_localctx = _tracker.createInstance<Unconnected_drive_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1304, SV3_1aParser::RuleUnconnected_drive_directive);
@@ -80497,6 +87100,14 @@
     parserListener->exitNounconnected_drive_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Nounconnected_drive_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNounconnected_drive_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Nounconnected_drive_directiveContext* SV3_1aParser::nounconnected_drive_directive() {
   Nounconnected_drive_directiveContext *_localctx = _tracker.createInstance<Nounconnected_drive_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1306, SV3_1aParser::RuleNounconnected_drive_directive);
@@ -80554,6 +87165,14 @@
     parserListener->exitDefault_nettype_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Default_nettype_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDefault_nettype_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Default_nettype_directiveContext* SV3_1aParser::default_nettype_directive() {
   Default_nettype_directiveContext *_localctx = _tracker.createInstance<Default_nettype_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1308, SV3_1aParser::RuleDefault_nettype_directive);
@@ -80632,6 +87251,14 @@
     parserListener->exitUselib_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Uselib_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUselib_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Uselib_directiveContext* SV3_1aParser::uselib_directive() {
   Uselib_directiveContext *_localctx = _tracker.createInstance<Uselib_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1310, SV3_1aParser::RuleUselib_directive);
@@ -80681,6 +87308,14 @@
     parserListener->exitCelldefine_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Celldefine_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCelldefine_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Celldefine_directiveContext* SV3_1aParser::celldefine_directive() {
   Celldefine_directiveContext *_localctx = _tracker.createInstance<Celldefine_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1312, SV3_1aParser::RuleCelldefine_directive);
@@ -80730,6 +87365,14 @@
     parserListener->exitEndcelldefine_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Endcelldefine_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndcelldefine_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Endcelldefine_directiveContext* SV3_1aParser::endcelldefine_directive() {
   Endcelldefine_directiveContext *_localctx = _tracker.createInstance<Endcelldefine_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1314, SV3_1aParser::RuleEndcelldefine_directive);
@@ -80779,6 +87422,14 @@
     parserListener->exitProtect_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Protect_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProtect_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Protect_directiveContext* SV3_1aParser::protect_directive() {
   Protect_directiveContext *_localctx = _tracker.createInstance<Protect_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1316, SV3_1aParser::RuleProtect_directive);
@@ -80828,6 +87479,14 @@
     parserListener->exitEndprotect_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Endprotect_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndprotect_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Endprotect_directiveContext* SV3_1aParser::endprotect_directive() {
   Endprotect_directiveContext *_localctx = _tracker.createInstance<Endprotect_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1318, SV3_1aParser::RuleEndprotect_directive);
@@ -80877,6 +87536,14 @@
     parserListener->exitProtected_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Protected_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitProtected_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Protected_directiveContext* SV3_1aParser::protected_directive() {
   Protected_directiveContext *_localctx = _tracker.createInstance<Protected_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1320, SV3_1aParser::RuleProtected_directive);
@@ -80926,6 +87593,14 @@
     parserListener->exitEndprotected_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Endprotected_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndprotected_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Endprotected_directiveContext* SV3_1aParser::endprotected_directive() {
   Endprotected_directiveContext *_localctx = _tracker.createInstance<Endprotected_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1322, SV3_1aParser::RuleEndprotected_directive);
@@ -80975,6 +87650,14 @@
     parserListener->exitExpand_vectornets_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Expand_vectornets_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitExpand_vectornets_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Expand_vectornets_directiveContext* SV3_1aParser::expand_vectornets_directive() {
   Expand_vectornets_directiveContext *_localctx = _tracker.createInstance<Expand_vectornets_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1324, SV3_1aParser::RuleExpand_vectornets_directive);
@@ -81024,6 +87707,14 @@
     parserListener->exitNoexpand_vectornets_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Noexpand_vectornets_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNoexpand_vectornets_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Noexpand_vectornets_directiveContext* SV3_1aParser::noexpand_vectornets_directive() {
   Noexpand_vectornets_directiveContext *_localctx = _tracker.createInstance<Noexpand_vectornets_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1326, SV3_1aParser::RuleNoexpand_vectornets_directive);
@@ -81073,6 +87764,14 @@
     parserListener->exitAutoexpand_vectornets_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Autoexpand_vectornets_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAutoexpand_vectornets_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Autoexpand_vectornets_directiveContext* SV3_1aParser::autoexpand_vectornets_directive() {
   Autoexpand_vectornets_directiveContext *_localctx = _tracker.createInstance<Autoexpand_vectornets_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1328, SV3_1aParser::RuleAutoexpand_vectornets_directive);
@@ -81122,6 +87821,14 @@
     parserListener->exitDisable_portfaults_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Disable_portfaults_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDisable_portfaults_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Disable_portfaults_directiveContext* SV3_1aParser::disable_portfaults_directive() {
   Disable_portfaults_directiveContext *_localctx = _tracker.createInstance<Disable_portfaults_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1330, SV3_1aParser::RuleDisable_portfaults_directive);
@@ -81171,6 +87878,14 @@
     parserListener->exitEnable_portfaults_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Enable_portfaults_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEnable_portfaults_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Enable_portfaults_directiveContext* SV3_1aParser::enable_portfaults_directive() {
   Enable_portfaults_directiveContext *_localctx = _tracker.createInstance<Enable_portfaults_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1332, SV3_1aParser::RuleEnable_portfaults_directive);
@@ -81220,6 +87935,14 @@
     parserListener->exitNosuppress_faults_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Nosuppress_faults_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNosuppress_faults_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Nosuppress_faults_directiveContext* SV3_1aParser::nosuppress_faults_directive() {
   Nosuppress_faults_directiveContext *_localctx = _tracker.createInstance<Nosuppress_faults_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1334, SV3_1aParser::RuleNosuppress_faults_directive);
@@ -81269,6 +87992,14 @@
     parserListener->exitSuppress_faults_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Suppress_faults_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSuppress_faults_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Suppress_faults_directiveContext* SV3_1aParser::suppress_faults_directive() {
   Suppress_faults_directiveContext *_localctx = _tracker.createInstance<Suppress_faults_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1336, SV3_1aParser::RuleSuppress_faults_directive);
@@ -81318,6 +88049,14 @@
     parserListener->exitSigned_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Signed_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSigned_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Signed_directiveContext* SV3_1aParser::signed_directive() {
   Signed_directiveContext *_localctx = _tracker.createInstance<Signed_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1338, SV3_1aParser::RuleSigned_directive);
@@ -81367,6 +88106,14 @@
     parserListener->exitUnsigned_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Unsigned_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUnsigned_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Unsigned_directiveContext* SV3_1aParser::unsigned_directive() {
   Unsigned_directiveContext *_localctx = _tracker.createInstance<Unsigned_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1340, SV3_1aParser::RuleUnsigned_directive);
@@ -81416,6 +88163,14 @@
     parserListener->exitRemove_gatename_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Remove_gatename_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRemove_gatename_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Remove_gatename_directiveContext* SV3_1aParser::remove_gatename_directive() {
   Remove_gatename_directiveContext *_localctx = _tracker.createInstance<Remove_gatename_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1342, SV3_1aParser::RuleRemove_gatename_directive);
@@ -81465,6 +88220,14 @@
     parserListener->exitNoremove_gatenames_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Noremove_gatenames_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNoremove_gatenames_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Noremove_gatenames_directiveContext* SV3_1aParser::noremove_gatenames_directive() {
   Noremove_gatenames_directiveContext *_localctx = _tracker.createInstance<Noremove_gatenames_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1344, SV3_1aParser::RuleNoremove_gatenames_directive);
@@ -81514,6 +88277,14 @@
     parserListener->exitRemove_netname_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Remove_netname_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitRemove_netname_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Remove_netname_directiveContext* SV3_1aParser::remove_netname_directive() {
   Remove_netname_directiveContext *_localctx = _tracker.createInstance<Remove_netname_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1346, SV3_1aParser::RuleRemove_netname_directive);
@@ -81563,6 +88334,14 @@
     parserListener->exitNoremove_netnames_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Noremove_netnames_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNoremove_netnames_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Noremove_netnames_directiveContext* SV3_1aParser::noremove_netnames_directive() {
   Noremove_netnames_directiveContext *_localctx = _tracker.createInstance<Noremove_netnames_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1348, SV3_1aParser::RuleNoremove_netnames_directive);
@@ -81612,6 +88391,14 @@
     parserListener->exitAccelerate_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Accelerate_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitAccelerate_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Accelerate_directiveContext* SV3_1aParser::accelerate_directive() {
   Accelerate_directiveContext *_localctx = _tracker.createInstance<Accelerate_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1350, SV3_1aParser::RuleAccelerate_directive);
@@ -81661,6 +88448,14 @@
     parserListener->exitNoaccelerate_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Noaccelerate_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitNoaccelerate_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Noaccelerate_directiveContext* SV3_1aParser::noaccelerate_directive() {
   Noaccelerate_directiveContext *_localctx = _tracker.createInstance<Noaccelerate_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1352, SV3_1aParser::RuleNoaccelerate_directive);
@@ -81714,6 +88509,14 @@
     parserListener->exitDefault_trireg_strenght_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Default_trireg_strenght_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDefault_trireg_strenght_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Default_trireg_strenght_directiveContext* SV3_1aParser::default_trireg_strenght_directive() {
   Default_trireg_strenght_directiveContext *_localctx = _tracker.createInstance<Default_trireg_strenght_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1354, SV3_1aParser::RuleDefault_trireg_strenght_directive);
@@ -81773,6 +88576,14 @@
     parserListener->exitDefault_decay_time_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Default_decay_time_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDefault_decay_time_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Default_decay_time_directiveContext* SV3_1aParser::default_decay_time_directive() {
   Default_decay_time_directiveContext *_localctx = _tracker.createInstance<Default_decay_time_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1356, SV3_1aParser::RuleDefault_decay_time_directive);
@@ -81855,6 +88666,14 @@
     parserListener->exitDelay_mode_distributed_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Delay_mode_distributed_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDelay_mode_distributed_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Delay_mode_distributed_directiveContext* SV3_1aParser::delay_mode_distributed_directive() {
   Delay_mode_distributed_directiveContext *_localctx = _tracker.createInstance<Delay_mode_distributed_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1358, SV3_1aParser::RuleDelay_mode_distributed_directive);
@@ -81904,6 +88723,14 @@
     parserListener->exitDelay_mode_path_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Delay_mode_path_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDelay_mode_path_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Delay_mode_path_directiveContext* SV3_1aParser::delay_mode_path_directive() {
   Delay_mode_path_directiveContext *_localctx = _tracker.createInstance<Delay_mode_path_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1360, SV3_1aParser::RuleDelay_mode_path_directive);
@@ -81953,6 +88780,14 @@
     parserListener->exitDelay_mode_unit_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Delay_mode_unit_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDelay_mode_unit_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Delay_mode_unit_directiveContext* SV3_1aParser::delay_mode_unit_directive() {
   Delay_mode_unit_directiveContext *_localctx = _tracker.createInstance<Delay_mode_unit_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1362, SV3_1aParser::RuleDelay_mode_unit_directive);
@@ -82002,6 +88837,14 @@
     parserListener->exitDelay_mode_zero_directive(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Delay_mode_zero_directiveContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDelay_mode_zero_directive(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Delay_mode_zero_directiveContext* SV3_1aParser::delay_mode_zero_directive() {
   Delay_mode_zero_directiveContext *_localctx = _tracker.createInstance<Delay_mode_zero_directiveContext>(_ctx, getState());
   enterRule(_localctx, 1364, SV3_1aParser::RuleDelay_mode_zero_directive);
@@ -82051,6 +88894,14 @@
     parserListener->exitSurelog_macro_not_defined(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Surelog_macro_not_definedContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSurelog_macro_not_defined(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Surelog_macro_not_definedContext* SV3_1aParser::surelog_macro_not_defined() {
   Surelog_macro_not_definedContext *_localctx = _tracker.createInstance<Surelog_macro_not_definedContext>(_ctx, getState());
   enterRule(_localctx, 1366, SV3_1aParser::RuleSurelog_macro_not_defined);
@@ -82112,6 +88963,14 @@
     parserListener->exitSlline(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::SllineContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitSlline(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::SllineContext* SV3_1aParser::slline() {
   SllineContext *_localctx = _tracker.createInstance<SllineContext>(_ctx, getState());
   enterRule(_localctx, 1368, SV3_1aParser::RuleSlline);
@@ -82167,6 +89026,14 @@
     parserListener->exitEndconfig(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::EndconfigContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitEndconfig(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::EndconfigContext* SV3_1aParser::endconfig() {
   EndconfigContext *_localctx = _tracker.createInstance<EndconfigContext>(_ctx, getState());
   enterRule(_localctx, 1370, SV3_1aParser::RuleEndconfig);
@@ -82260,6 +89127,14 @@
     parserListener->exitConfig_declaration(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Config_declarationContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConfig_declaration(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Config_declarationContext* SV3_1aParser::config_declaration() {
   Config_declarationContext *_localctx = _tracker.createInstance<Config_declarationContext>(_ctx, getState());
   enterRule(_localctx, 1372, SV3_1aParser::RuleConfig_declaration);
@@ -82373,6 +89248,14 @@
     parserListener->exitDesign_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Design_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDesign_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Design_statementContext* SV3_1aParser::design_statement() {
   Design_statementContext *_localctx = _tracker.createInstance<Design_statementContext>(_ctx, getState());
   enterRule(_localctx, 1374, SV3_1aParser::RuleDesign_statement);
@@ -82490,6 +89373,14 @@
     parserListener->exitConfig_rule_statement(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Config_rule_statementContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitConfig_rule_statement(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Config_rule_statementContext* SV3_1aParser::config_rule_statement() {
   Config_rule_statementContext *_localctx = _tracker.createInstance<Config_rule_statementContext>(_ctx, getState());
   enterRule(_localctx, 1376, SV3_1aParser::RuleConfig_rule_statement);
@@ -82617,6 +89508,14 @@
     parserListener->exitDefault_clause(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Default_clauseContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitDefault_clause(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Default_clauseContext* SV3_1aParser::default_clause() {
   Default_clauseContext *_localctx = _tracker.createInstance<Default_clauseContext>(_ctx, getState());
   enterRule(_localctx, 1378, SV3_1aParser::RuleDefault_clause);
@@ -82670,6 +89569,14 @@
     parserListener->exitInst_clause(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Inst_clauseContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInst_clause(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Inst_clauseContext* SV3_1aParser::inst_clause() {
   Inst_clauseContext *_localctx = _tracker.createInstance<Inst_clauseContext>(_ctx, getState());
   enterRule(_localctx, 1380, SV3_1aParser::RuleInst_clause);
@@ -82733,6 +89640,14 @@
     parserListener->exitInst_name(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Inst_nameContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitInst_name(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Inst_nameContext* SV3_1aParser::inst_name() {
   Inst_nameContext *_localctx = _tracker.createInstance<Inst_nameContext>(_ctx, getState());
   enterRule(_localctx, 1382, SV3_1aParser::RuleInst_name);
@@ -82807,6 +89722,14 @@
     parserListener->exitCell_clause(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Cell_clauseContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitCell_clause(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Cell_clauseContext* SV3_1aParser::cell_clause() {
   Cell_clauseContext *_localctx = _tracker.createInstance<Cell_clauseContext>(_ctx, getState());
   enterRule(_localctx, 1384, SV3_1aParser::RuleCell_clause);
@@ -82879,6 +89802,14 @@
     parserListener->exitLiblist_clause(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Liblist_clauseContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitLiblist_clause(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Liblist_clauseContext* SV3_1aParser::liblist_clause() {
   Liblist_clauseContext *_localctx = _tracker.createInstance<Liblist_clauseContext>(_ctx, getState());
   enterRule(_localctx, 1386, SV3_1aParser::RuleLiblist_clause);
@@ -82993,6 +89924,14 @@
     parserListener->exitUse_clause_config(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Use_clause_configContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUse_clause_config(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Use_clause_configContext* SV3_1aParser::use_clause_config() {
   Use_clause_configContext *_localctx = _tracker.createInstance<Use_clause_configContext>(_ctx, getState());
   enterRule(_localctx, 1388, SV3_1aParser::RuleUse_clause_config);
@@ -83167,6 +90106,14 @@
     parserListener->exitUse_clause(this);
 }
 
+
+antlrcpp::Any SV3_1aParser::Use_clauseContext::accept(tree::ParseTreeVisitor *visitor) {
+  if (auto parserVisitor = dynamic_cast<SV3_1aParserVisitor*>(visitor))
+    return parserVisitor->visitUse_clause(this);
+  else
+    return visitor->visitChildren(this);
+}
+
 SV3_1aParser::Use_clauseContext* SV3_1aParser::use_clause() {
   Use_clauseContext *_localctx = _tracker.createInstance<Use_clauseContext>(_ctx, getState());
   enterRule(_localctx, 1390, SV3_1aParser::RuleUse_clause);
diff --git a/src/parser/SV3_1aParser.h b/src/parser/SV3_1aParser.h
index 174bec7..469b33e 100644
--- a/src/parser/SV3_1aParser.h
+++ b/src/parser/SV3_1aParser.h
@@ -1,5 +1,5 @@
 
-// Generated from SV3_1aParser.g4 by ANTLR 4.7.1
+// Generated from /home/alain/Surelog/grammar/SV3_1aParser.g4 by ANTLR 4.7.2
 
 #pragma once
 
@@ -1080,6 +1080,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1095,6 +1097,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1109,6 +1113,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1125,6 +1131,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1145,6 +1153,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1169,6 +1179,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1184,6 +1196,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1199,6 +1213,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1211,6 +1227,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1235,6 +1253,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1257,6 +1277,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1279,6 +1301,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1312,6 +1336,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1325,6 +1351,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1339,6 +1367,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1359,6 +1389,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1379,6 +1411,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1410,6 +1444,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1423,6 +1459,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1442,6 +1480,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1462,6 +1502,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1475,6 +1517,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1500,6 +1544,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1532,6 +1578,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1545,6 +1593,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1578,6 +1628,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1591,6 +1643,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1605,6 +1659,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1632,6 +1688,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1651,6 +1709,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1666,6 +1726,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1679,6 +1741,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1702,6 +1766,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1711,7 +1777,7 @@
   public:
     Timeunits_declarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Timeunits_declarationContext() : antlr4::ParserRuleContext() { }
+    Timeunits_declarationContext() = default;
     void copyFrom(Timeunits_declarationContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -1731,6 +1797,8 @@
     antlr4::tree::TerminalNode *SEMICOLUMN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  TimeUnitsDecl_TimePrecisionTimeUnitContext : public Timeunits_declarationContext {
@@ -1745,6 +1813,8 @@
     antlr4::tree::TerminalNode *TIMEUNIT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  TimeUnitsDecl_TimeUnitTimePrecisionContext : public Timeunits_declarationContext {
@@ -1759,6 +1829,8 @@
     antlr4::tree::TerminalNode *TIMEPRECISION();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  TimeUnitsDecl_TimeUnitContext : public Timeunits_declarationContext {
@@ -1770,6 +1842,8 @@
     antlr4::tree::TerminalNode *SEMICOLUMN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  TimeUnitsDecl_TimePrecisionContext : public Timeunits_declarationContext {
@@ -1781,6 +1855,8 @@
     antlr4::tree::TerminalNode *SEMICOLUMN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Timeunits_declarationContext* timeunits_declaration();
@@ -1800,6 +1876,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1818,6 +1896,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1836,6 +1916,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1856,6 +1938,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1875,6 +1959,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1892,6 +1978,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1908,6 +1996,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1922,6 +2012,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -1931,7 +2023,7 @@
   public:
     Port_directionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Port_directionContext() : antlr4::ParserRuleContext() { }
+    Port_directionContext() = default;
     void copyFrom(Port_directionContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -1947,6 +2039,8 @@
     antlr4::tree::TerminalNode *INPUT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  PortDir_OutContext : public Port_directionContext {
@@ -1956,6 +2050,8 @@
     antlr4::tree::TerminalNode *OUTPUT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  PortDir_RefContext : public Port_directionContext {
@@ -1965,6 +2061,8 @@
     antlr4::tree::TerminalNode *REF();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  PortDir_InoutContext : public Port_directionContext {
@@ -1974,6 +2072,8 @@
     antlr4::tree::TerminalNode *INOUT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Port_directionContext* port_direction();
@@ -1987,6 +2087,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2001,6 +2103,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2017,6 +2121,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2043,6 +2149,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2063,6 +2171,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2089,6 +2199,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2104,6 +2216,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2123,6 +2237,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2145,6 +2261,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2169,6 +2287,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2184,6 +2304,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2210,6 +2332,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2226,6 +2350,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2248,6 +2374,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2265,6 +2393,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2280,6 +2410,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2301,6 +2433,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2316,6 +2450,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2339,6 +2475,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2355,6 +2493,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2370,6 +2510,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2392,6 +2534,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2411,6 +2555,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2441,6 +2587,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2457,6 +2605,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2481,6 +2631,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2504,6 +2656,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2518,6 +2672,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2531,6 +2687,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2555,6 +2713,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2572,6 +2732,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2586,6 +2748,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2595,7 +2759,7 @@
   public:
     Class_item_qualifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Class_item_qualifierContext() : antlr4::ParserRuleContext() { }
+    Class_item_qualifierContext() = default;
     void copyFrom(Class_item_qualifierContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -2611,6 +2775,8 @@
     antlr4::tree::TerminalNode *STATIC();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  ClassItemQualifier_LocalContext : public Class_item_qualifierContext {
@@ -2620,6 +2786,8 @@
     antlr4::tree::TerminalNode *LOCAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  ClassItemQualifier_ProtectedContext : public Class_item_qualifierContext {
@@ -2629,6 +2797,8 @@
     antlr4::tree::TerminalNode *PROTECTED();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Class_item_qualifierContext* class_item_qualifier();
@@ -2637,7 +2807,7 @@
   public:
     Property_qualifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Property_qualifierContext() : antlr4::ParserRuleContext() { }
+    Property_qualifierContext() = default;
     void copyFrom(Property_qualifierContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -2653,6 +2823,8 @@
     Class_item_qualifierContext *class_item_qualifier();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  PropQualifier_RandContext : public Property_qualifierContext {
@@ -2662,6 +2834,8 @@
     antlr4::tree::TerminalNode *RAND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  PropQualifier_RandcContext : public Property_qualifierContext {
@@ -2671,6 +2845,8 @@
     antlr4::tree::TerminalNode *RANDC();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Property_qualifierContext* property_qualifier();
@@ -2679,7 +2855,7 @@
   public:
     Method_qualifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Method_qualifierContext() : antlr4::ParserRuleContext() { }
+    Method_qualifierContext() = default;
     void copyFrom(Method_qualifierContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -2695,6 +2871,8 @@
     antlr4::tree::TerminalNode *VIRTUAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  MethodQualifier_ClassItemContext : public Method_qualifierContext {
@@ -2704,6 +2882,8 @@
     Class_item_qualifierContext *class_item_qualifier();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Method_qualifierContext* method_qualifier();
@@ -2717,6 +2897,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2732,6 +2914,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2763,6 +2947,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2779,6 +2965,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2795,6 +2983,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2813,6 +3003,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2829,6 +3021,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2855,6 +3049,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2886,6 +3082,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2902,6 +3100,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2918,6 +3118,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2934,6 +3136,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2948,6 +3152,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -2957,7 +3163,7 @@
   public:
     Dist_weightContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Dist_weightContext() : antlr4::ParserRuleContext() { }
+    Dist_weightContext() = default;
     void copyFrom(Dist_weightContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -2974,6 +3180,8 @@
     ExpressionContext *expression();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  DistWeight_AssignRangeContext : public Dist_weightContext {
@@ -2985,6 +3193,8 @@
     ExpressionContext *expression();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Dist_weightContext* dist_weight();
@@ -3002,6 +3212,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3019,6 +3231,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3035,6 +3249,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3052,6 +3268,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3080,6 +3298,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3097,6 +3317,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3116,6 +3338,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3132,6 +3356,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3149,6 +3375,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3165,6 +3393,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3180,6 +3410,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3197,6 +3429,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3214,6 +3448,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3230,6 +3466,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3245,6 +3483,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3264,6 +3504,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3282,6 +3524,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3300,6 +3544,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3316,6 +3562,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3334,6 +3582,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3349,6 +3599,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3379,6 +3631,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3406,6 +3660,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3419,6 +3675,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3432,6 +3690,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3445,6 +3705,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3458,6 +3720,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3472,6 +3736,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3492,6 +3758,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3501,7 +3769,7 @@
   public:
     LifetimeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    LifetimeContext() : antlr4::ParserRuleContext() { }
+    LifetimeContext() = default;
     void copyFrom(LifetimeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -3517,6 +3785,8 @@
     antlr4::tree::TerminalNode *STATIC();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Lifetime_AutomaticContext : public LifetimeContext {
@@ -3526,6 +3796,8 @@
     antlr4::tree::TerminalNode *AUTOMATIC();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   LifetimeContext* lifetime();
@@ -3546,6 +3818,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3592,6 +3866,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3605,6 +3881,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3618,6 +3896,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3631,6 +3911,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3644,6 +3926,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3657,6 +3941,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3670,6 +3956,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3686,6 +3974,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3701,6 +3991,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3718,6 +4010,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3738,6 +4032,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3752,6 +4048,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3776,6 +4074,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3790,6 +4090,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -3799,7 +4101,7 @@
   public:
     Integer_atom_typeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Integer_atom_typeContext() : antlr4::ParserRuleContext() { }
+    Integer_atom_typeContext() = default;
     void copyFrom(Integer_atom_typeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -3815,6 +4117,8 @@
     antlr4::tree::TerminalNode *SHORTINT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  IntegerAtomType_IntContext : public Integer_atom_typeContext {
@@ -3825,6 +4129,8 @@
     antlr4::tree::TerminalNode *INTEGER();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  IntegerAtomType_TimeContext : public Integer_atom_typeContext {
@@ -3834,6 +4140,8 @@
     antlr4::tree::TerminalNode *TIME();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  IntegerAtomType_ByteContext : public Integer_atom_typeContext {
@@ -3843,6 +4151,8 @@
     antlr4::tree::TerminalNode *BYTE();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  IntegerAtomType_LongIntContext : public Integer_atom_typeContext {
@@ -3852,6 +4162,8 @@
     antlr4::tree::TerminalNode *LONGINT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Integer_atom_typeContext* integer_atom_type();
@@ -3860,7 +4172,7 @@
   public:
     Integer_vector_typeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Integer_vector_typeContext() : antlr4::ParserRuleContext() { }
+    Integer_vector_typeContext() = default;
     void copyFrom(Integer_vector_typeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -3876,6 +4188,8 @@
     antlr4::tree::TerminalNode *BIT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  IntVec_TypeRegContext : public Integer_vector_typeContext {
@@ -3885,6 +4199,8 @@
     antlr4::tree::TerminalNode *REG();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  IntVec_TypeLogicContext : public Integer_vector_typeContext {
@@ -3894,6 +4210,8 @@
     antlr4::tree::TerminalNode *LOGIC();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Integer_vector_typeContext* integer_vector_type();
@@ -3902,7 +4220,7 @@
   public:
     Non_integer_typeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Non_integer_typeContext() : antlr4::ParserRuleContext() { }
+    Non_integer_typeContext() = default;
     void copyFrom(Non_integer_typeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -3918,6 +4236,8 @@
     antlr4::tree::TerminalNode *REALTIME();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NonIntType_ShortRealContext : public Non_integer_typeContext {
@@ -3927,6 +4247,8 @@
     antlr4::tree::TerminalNode *SHORTREAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NonIntType_RealContext : public Non_integer_typeContext {
@@ -3936,6 +4258,8 @@
     antlr4::tree::TerminalNode *REAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Non_integer_typeContext* non_integer_type();
@@ -3944,7 +4268,7 @@
   public:
     Net_typeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Net_typeContext() : antlr4::ParserRuleContext() { }
+    Net_typeContext() = default;
     void copyFrom(Net_typeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -3960,6 +4284,8 @@
     antlr4::tree::TerminalNode *SUPPLY0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NetType_WireContext : public Net_typeContext {
@@ -3969,6 +4295,8 @@
     antlr4::tree::TerminalNode *WIRE();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NetType_Supply1Context : public Net_typeContext {
@@ -3978,6 +4306,8 @@
     antlr4::tree::TerminalNode *SUPPLY1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NetType_WandContext : public Net_typeContext {
@@ -3987,6 +4317,8 @@
     antlr4::tree::TerminalNode *WAND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NetType_Tri1Context : public Net_typeContext {
@@ -3996,6 +4328,8 @@
     antlr4::tree::TerminalNode *TRI1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NetType_Tri0Context : public Net_typeContext {
@@ -4005,6 +4339,8 @@
     antlr4::tree::TerminalNode *TRI0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NetType_TriOrContext : public Net_typeContext {
@@ -4014,6 +4350,8 @@
     antlr4::tree::TerminalNode *TRIOR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NetType_TriContext : public Net_typeContext {
@@ -4023,6 +4361,8 @@
     antlr4::tree::TerminalNode *TRI();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NetType_TriRegContext : public Net_typeContext {
@@ -4032,6 +4372,8 @@
     antlr4::tree::TerminalNode *TRIREG();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NetType_WorContext : public Net_typeContext {
@@ -4041,6 +4383,8 @@
     antlr4::tree::TerminalNode *WOR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NetType_UwireContext : public Net_typeContext {
@@ -4050,6 +4394,8 @@
     antlr4::tree::TerminalNode *UWIRE();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NetType_TriAndContext : public Net_typeContext {
@@ -4059,6 +4405,8 @@
     antlr4::tree::TerminalNode *TRIAND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Net_typeContext* net_type();
@@ -4075,6 +4423,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4091,6 +4441,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4106,6 +4458,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4115,7 +4469,7 @@
   public:
     SigningContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    SigningContext() : antlr4::ParserRuleContext() { }
+    SigningContext() = default;
     void copyFrom(SigningContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -4131,6 +4485,8 @@
     antlr4::tree::TerminalNode *UNSIGNED();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Signing_SignedContext : public SigningContext {
@@ -4140,6 +4496,8 @@
     antlr4::tree::TerminalNode *SIGNED();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   SigningContext* signing();
@@ -4154,6 +4512,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4163,7 +4523,7 @@
   public:
     Random_qualifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Random_qualifierContext() : antlr4::ParserRuleContext() { }
+    Random_qualifierContext() = default;
     void copyFrom(Random_qualifierContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -4179,6 +4539,8 @@
     antlr4::tree::TerminalNode *RANDC();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  RandomQualifier_RandContext : public Random_qualifierContext {
@@ -4188,6 +4550,8 @@
     antlr4::tree::TerminalNode *RAND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Random_qualifierContext* random_qualifier();
@@ -4205,6 +4569,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4219,6 +4585,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4234,6 +4602,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4247,6 +4617,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4264,6 +4636,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4283,6 +4657,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4292,7 +4668,7 @@
   public:
     Strength0Context(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Strength0Context() : antlr4::ParserRuleContext() { }
+    Strength0Context() = default;
     void copyFrom(Strength0Context *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -4308,6 +4684,8 @@
     antlr4::tree::TerminalNode *WEAK0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Strength0_Strong0Context : public Strength0Context {
@@ -4317,6 +4695,8 @@
     antlr4::tree::TerminalNode *STRONG0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Strength0_Pull0Context : public Strength0Context {
@@ -4326,6 +4706,8 @@
     antlr4::tree::TerminalNode *PULL0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Strength0_Supply0Context : public Strength0Context {
@@ -4335,6 +4717,8 @@
     antlr4::tree::TerminalNode *SUPPLY0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Strength0Context* strength0();
@@ -4343,7 +4727,7 @@
   public:
     Strength1Context(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Strength1Context() : antlr4::ParserRuleContext() { }
+    Strength1Context() = default;
     void copyFrom(Strength1Context *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -4359,6 +4743,8 @@
     antlr4::tree::TerminalNode *SUPPLY1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Strength1_Strong1Context : public Strength1Context {
@@ -4368,6 +4754,8 @@
     antlr4::tree::TerminalNode *STRONG1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Strength1_Pull1Context : public Strength1Context {
@@ -4377,6 +4765,8 @@
     antlr4::tree::TerminalNode *PULL1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Strength1_Weak1Context : public Strength1Context {
@@ -4386,6 +4776,8 @@
     antlr4::tree::TerminalNode *WEAK1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Strength1Context* strength1();
@@ -4394,7 +4786,7 @@
   public:
     Charge_strengthContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Charge_strengthContext() : antlr4::ParserRuleContext() { }
+    Charge_strengthContext() = default;
     void copyFrom(Charge_strengthContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -4410,6 +4802,8 @@
     antlr4::tree::TerminalNode *SMALL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  ChargeStrength_MediumContext : public Charge_strengthContext {
@@ -4419,6 +4813,8 @@
     antlr4::tree::TerminalNode *MEDIUM();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  ChargeStrength_LargeContext : public Charge_strengthContext {
@@ -4428,6 +4824,8 @@
     antlr4::tree::TerminalNode *LARGE();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Charge_strengthContext* charge_strength();
@@ -4447,6 +4845,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4466,6 +4866,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4482,6 +4884,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4500,6 +4904,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4516,6 +4922,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4534,6 +4942,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4550,6 +4960,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4566,6 +4978,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4584,6 +4998,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4600,6 +5016,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4622,6 +5040,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4642,6 +5062,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4658,6 +5080,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4676,6 +5100,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4698,6 +5124,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4716,6 +5144,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4731,6 +5161,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4748,6 +5180,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4765,6 +5199,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4781,6 +5217,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4805,6 +5243,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4829,6 +5269,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4847,6 +5289,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4866,6 +5310,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4882,6 +5328,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4898,6 +5346,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4914,6 +5364,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4930,6 +5382,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4947,6 +5401,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4961,6 +5417,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4975,6 +5433,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -4991,6 +5451,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5006,6 +5468,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5019,6 +5483,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5049,6 +5515,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5067,6 +5535,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5091,6 +5561,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5104,6 +5576,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5118,6 +5592,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5132,6 +5608,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5145,6 +5623,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5160,6 +5640,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5173,6 +5655,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5202,6 +5686,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5216,6 +5702,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5232,6 +5720,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5254,6 +5744,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5263,7 +5755,7 @@
   public:
     Tf_port_directionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Tf_port_directionContext() : antlr4::ParserRuleContext() { }
+    Tf_port_directionContext() = default;
     void copyFrom(Tf_port_directionContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -5279,6 +5771,8 @@
     antlr4::tree::TerminalNode *REF();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  TfPortDir_ConstRefContext : public Tf_port_directionContext {
@@ -5289,6 +5783,8 @@
     antlr4::tree::TerminalNode *REF();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  TfPortDir_OutContext : public Tf_port_directionContext {
@@ -5298,6 +5794,8 @@
     antlr4::tree::TerminalNode *OUTPUT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  TfPortDir_InpContext : public Tf_port_directionContext {
@@ -5307,6 +5805,8 @@
     antlr4::tree::TerminalNode *INPUT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  TfPortDir_InoutContext : public Tf_port_directionContext {
@@ -5316,6 +5816,8 @@
     antlr4::tree::TerminalNode *INOUT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Tf_port_directionContext* tf_port_direction();
@@ -5334,6 +5836,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5351,6 +5855,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5370,6 +5876,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5391,6 +5899,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5400,7 +5910,7 @@
   public:
     Overload_operatorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Overload_operatorContext() : antlr4::ParserRuleContext() { }
+    Overload_operatorContext() = default;
     void copyFrom(Overload_operatorContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -5416,6 +5926,8 @@
     antlr4::tree::TerminalNode *MINUS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_GreaterEqualContext : public Overload_operatorContext {
@@ -5425,6 +5937,8 @@
     antlr4::tree::TerminalNode *GREATER_EQUAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_LessContext : public Overload_operatorContext {
@@ -5434,6 +5948,8 @@
     antlr4::tree::TerminalNode *LESS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_PercentContext : public Overload_operatorContext {
@@ -5443,6 +5959,8 @@
     antlr4::tree::TerminalNode *PERCENT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_NotEqualContext : public Overload_operatorContext {
@@ -5452,6 +5970,8 @@
     antlr4::tree::TerminalNode *NOTEQUAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_MultContext : public Overload_operatorContext {
@@ -5461,6 +5981,8 @@
     antlr4::tree::TerminalNode *STAR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_EquivContext : public Overload_operatorContext {
@@ -5470,6 +5992,8 @@
     antlr4::tree::TerminalNode *EQUIV();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_EqualContext : public Overload_operatorContext {
@@ -5479,6 +6003,8 @@
     antlr4::tree::TerminalNode *ASSIGN_OP();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_LessEqualContext : public Overload_operatorContext {
@@ -5488,6 +6014,8 @@
     antlr4::tree::TerminalNode *LESS_EQUAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_PlusPlusContext : public Overload_operatorContext {
@@ -5497,6 +6025,8 @@
     antlr4::tree::TerminalNode *PLUSPLUS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_GreaterContext : public Overload_operatorContext {
@@ -5506,6 +6036,8 @@
     antlr4::tree::TerminalNode *GREATER();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_MinusMinusContext : public Overload_operatorContext {
@@ -5515,6 +6047,8 @@
     antlr4::tree::TerminalNode *MINUSMINUS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_StarStarContext : public Overload_operatorContext {
@@ -5524,6 +6058,8 @@
     antlr4::tree::TerminalNode *STARSTAR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_PlusContext : public Overload_operatorContext {
@@ -5533,6 +6069,8 @@
     antlr4::tree::TerminalNode *PLUS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  OverloadOp_DivContext : public Overload_operatorContext {
@@ -5542,6 +6080,8 @@
     antlr4::tree::TerminalNode *DIV();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Overload_operatorContext* overload_operator();
@@ -5557,6 +6097,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5574,6 +6116,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5593,6 +6137,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5612,6 +6158,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5629,6 +6177,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5647,6 +6197,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5665,6 +6217,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5683,6 +6237,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5697,6 +6253,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5713,6 +6271,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5730,6 +6290,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5748,6 +6310,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5766,6 +6330,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5784,6 +6350,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5801,6 +6369,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5825,6 +6395,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5843,6 +6415,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5859,6 +6433,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5873,6 +6449,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5887,6 +6465,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5902,6 +6482,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5915,6 +6497,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5940,6 +6524,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5954,6 +6540,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5973,6 +6561,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -5986,6 +6576,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6042,6 +6634,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6062,6 +6656,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6075,6 +6671,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6100,6 +6698,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6133,6 +6733,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6152,6 +6754,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6167,6 +6771,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6182,6 +6788,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6191,7 +6799,7 @@
   public:
     Sequence_formal_typeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Sequence_formal_typeContext() : antlr4::ParserRuleContext() { }
+    Sequence_formal_typeContext() = default;
     void copyFrom(Sequence_formal_typeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -6207,6 +6815,8 @@
     Data_type_or_implicitContext *data_type_or_implicit();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  SeqFormatType_UntypedContext : public Sequence_formal_typeContext {
@@ -6216,6 +6826,8 @@
     antlr4::tree::TerminalNode *UNTYPED();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  SeqFormatType_SequenceContext : public Sequence_formal_typeContext {
@@ -6225,6 +6837,8 @@
     antlr4::tree::TerminalNode *SEQUENCE();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Sequence_formal_typeContext* sequence_formal_type();
@@ -6240,6 +6854,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6264,6 +6880,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6278,6 +6896,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6293,6 +6913,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6309,6 +6931,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6333,6 +6957,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6347,6 +6973,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6362,6 +6990,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6377,6 +7007,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6392,6 +7024,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6407,6 +7041,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6421,6 +7057,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6437,6 +7075,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6454,6 +7094,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6469,6 +7111,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6489,6 +7133,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6505,6 +7151,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6525,6 +7173,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6539,6 +7189,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6552,6 +7204,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6576,6 +7230,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6593,6 +7249,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6610,6 +7268,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6624,6 +7284,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6645,6 +7307,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6658,6 +7322,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6676,6 +7342,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6701,6 +7369,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6722,6 +7392,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6742,6 +7414,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6777,6 +7451,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6786,7 +7462,7 @@
   public:
     Bins_keywordContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Bins_keywordContext() : antlr4::ParserRuleContext() { }
+    Bins_keywordContext() = default;
     void copyFrom(Bins_keywordContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -6802,6 +7478,8 @@
     antlr4::tree::TerminalNode *IGNORE_BINS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Bins_BinsContext : public Bins_keywordContext {
@@ -6811,6 +7489,8 @@
     antlr4::tree::TerminalNode *BINS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Bins_IllegalContext : public Bins_keywordContext {
@@ -6820,6 +7500,8 @@
     antlr4::tree::TerminalNode *ILLEGAL_BINS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Bins_keywordContext* bins_keyword();
@@ -6835,6 +7517,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6855,6 +7539,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6871,6 +7557,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6889,6 +7577,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6904,6 +7594,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6925,6 +7617,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6941,6 +7635,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6954,6 +7650,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6970,6 +7668,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -6985,6 +7685,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7001,6 +7703,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7021,6 +7725,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7046,6 +7752,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7066,6 +7774,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7081,6 +7791,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7097,6 +7809,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7142,6 +7856,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7162,6 +7878,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7182,6 +7900,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7202,6 +7922,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7222,6 +7944,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7242,6 +7966,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7260,6 +7986,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7280,6 +8008,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7296,6 +8026,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7305,7 +8037,7 @@
   public:
     Pulldown_strengthContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Pulldown_strengthContext() : antlr4::ParserRuleContext() { }
+    Pulldown_strengthContext() = default;
     void copyFrom(Pulldown_strengthContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -7325,6 +8057,8 @@
     antlr4::tree::TerminalNode *CLOSE_PARENS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  PulldownStrength_10Context : public Pulldown_strengthContext {
@@ -7338,6 +8072,8 @@
     antlr4::tree::TerminalNode *CLOSE_PARENS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  PulldownStrength_0Context : public Pulldown_strengthContext {
@@ -7349,6 +8085,8 @@
     antlr4::tree::TerminalNode *CLOSE_PARENS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Pulldown_strengthContext* pulldown_strength();
@@ -7357,7 +8095,7 @@
   public:
     Pullup_strengthContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Pullup_strengthContext() : antlr4::ParserRuleContext() { }
+    Pullup_strengthContext() = default;
     void copyFrom(Pullup_strengthContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -7377,6 +8115,8 @@
     antlr4::tree::TerminalNode *CLOSE_PARENS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  PullupStrength_01Context : public Pullup_strengthContext {
@@ -7390,6 +8130,8 @@
     antlr4::tree::TerminalNode *CLOSE_PARENS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  PullupStrength_1Context : public Pullup_strengthContext {
@@ -7401,6 +8143,8 @@
     antlr4::tree::TerminalNode *CLOSE_PARENS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Pullup_strengthContext* pullup_strength();
@@ -7409,7 +8153,7 @@
   public:
     Cmos_switchtypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Cmos_switchtypeContext() : antlr4::ParserRuleContext() { }
+    Cmos_switchtypeContext() = default;
     void copyFrom(Cmos_switchtypeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -7425,6 +8169,8 @@
     antlr4::tree::TerminalNode *RCMOS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  CmosSwitchType_CmosContext : public Cmos_switchtypeContext {
@@ -7434,6 +8180,8 @@
     antlr4::tree::TerminalNode *CMOS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Cmos_switchtypeContext* cmos_switchtype();
@@ -7442,7 +8190,7 @@
   public:
     Enable_gatetypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Enable_gatetypeContext() : antlr4::ParserRuleContext() { }
+    Enable_gatetypeContext() = default;
     void copyFrom(Enable_gatetypeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -7458,6 +8206,8 @@
     antlr4::tree::TerminalNode *BUFIF0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  EnableGateType_Notif0Context : public Enable_gatetypeContext {
@@ -7467,6 +8217,8 @@
     antlr4::tree::TerminalNode *NOTIF0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  EnableGateType_Notif1Context : public Enable_gatetypeContext {
@@ -7476,6 +8228,8 @@
     antlr4::tree::TerminalNode *NOTIF1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  EnableGateType_Bufif1Context : public Enable_gatetypeContext {
@@ -7485,6 +8239,8 @@
     antlr4::tree::TerminalNode *BUFIF1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Enable_gatetypeContext* enable_gatetype();
@@ -7493,7 +8249,7 @@
   public:
     Mos_switchtypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Mos_switchtypeContext() : antlr4::ParserRuleContext() { }
+    Mos_switchtypeContext() = default;
     void copyFrom(Mos_switchtypeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -7509,6 +8265,8 @@
     antlr4::tree::TerminalNode *PMOS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  MosSwitchType_NMosContext : public Mos_switchtypeContext {
@@ -7518,6 +8276,8 @@
     antlr4::tree::TerminalNode *NMOS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  MosSwitchType_RPMosContext : public Mos_switchtypeContext {
@@ -7527,6 +8287,8 @@
     antlr4::tree::TerminalNode *RPMOS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  MosSwitchType_RNMosContext : public Mos_switchtypeContext {
@@ -7536,6 +8298,8 @@
     antlr4::tree::TerminalNode *RNMOS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Mos_switchtypeContext* mos_switchtype();
@@ -7544,7 +8308,7 @@
   public:
     N_input_gatetypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    N_input_gatetypeContext() : antlr4::ParserRuleContext() { }
+    N_input_gatetypeContext() = default;
     void copyFrom(N_input_gatetypeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -7560,6 +8324,8 @@
     antlr4::tree::TerminalNode *XOR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NInpGate_NandContext : public N_input_gatetypeContext {
@@ -7569,6 +8335,8 @@
     antlr4::tree::TerminalNode *NAND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NInpGate_AndContext : public N_input_gatetypeContext {
@@ -7578,6 +8346,8 @@
     antlr4::tree::TerminalNode *AND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NInpGate_OrContext : public N_input_gatetypeContext {
@@ -7587,6 +8357,8 @@
     antlr4::tree::TerminalNode *OR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NInpGate_XnorContext : public N_input_gatetypeContext {
@@ -7596,6 +8368,8 @@
     antlr4::tree::TerminalNode *XNOR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NInpGate_NorContext : public N_input_gatetypeContext {
@@ -7605,6 +8379,8 @@
     antlr4::tree::TerminalNode *NOR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   N_input_gatetypeContext* n_input_gatetype();
@@ -7613,7 +8389,7 @@
   public:
     N_output_gatetypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    N_output_gatetypeContext() : antlr4::ParserRuleContext() { }
+    N_output_gatetypeContext() = default;
     void copyFrom(N_output_gatetypeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -7629,6 +8405,8 @@
     antlr4::tree::TerminalNode *BUF();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  NOutGate_NotContext : public N_output_gatetypeContext {
@@ -7638,6 +8416,8 @@
     antlr4::tree::TerminalNode *NOT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   N_output_gatetypeContext* n_output_gatetype();
@@ -7646,7 +8426,7 @@
   public:
     Pass_en_switchtypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Pass_en_switchtypeContext() : antlr4::ParserRuleContext() { }
+    Pass_en_switchtypeContext() = default;
     void copyFrom(Pass_en_switchtypeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -7662,6 +8442,8 @@
     antlr4::tree::TerminalNode *RTRANIF1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  PassEnSwitch_Tranif0Context : public Pass_en_switchtypeContext {
@@ -7671,6 +8453,8 @@
     antlr4::tree::TerminalNode *TRANIF0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  PassEnSwitch_Tranif1Context : public Pass_en_switchtypeContext {
@@ -7680,6 +8464,8 @@
     antlr4::tree::TerminalNode *TRANIF1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  PassEnSwitch_RTranif0Context : public Pass_en_switchtypeContext {
@@ -7689,6 +8475,8 @@
     antlr4::tree::TerminalNode *RTRANIF0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Pass_en_switchtypeContext* pass_en_switchtype();
@@ -7697,7 +8485,7 @@
   public:
     Pass_switchtypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Pass_switchtypeContext() : antlr4::ParserRuleContext() { }
+    Pass_switchtypeContext() = default;
     void copyFrom(Pass_switchtypeContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -7713,6 +8501,8 @@
     antlr4::tree::TerminalNode *RTRAN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  PassSwitch_TranContext : public Pass_switchtypeContext {
@@ -7722,6 +8512,8 @@
     antlr4::tree::TerminalNode *TRAN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Pass_switchtypeContext* pass_switchtype();
@@ -7740,6 +8532,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7758,6 +8552,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7776,6 +8572,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7789,6 +8587,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7806,6 +8606,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7822,6 +8624,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7837,6 +8641,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7855,6 +8661,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7870,6 +8678,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7890,6 +8700,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7909,6 +8721,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7928,6 +8742,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7945,6 +8761,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7962,6 +8780,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7977,6 +8797,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -7997,6 +8819,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8010,6 +8834,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8026,6 +8852,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8045,6 +8873,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8064,6 +8894,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8083,6 +8915,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8102,6 +8936,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8123,6 +8959,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8139,6 +8977,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8155,6 +8995,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8176,6 +9018,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8196,6 +9040,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8212,6 +9058,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8231,6 +9079,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8250,6 +9100,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8269,6 +9121,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8288,6 +9142,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8309,6 +9165,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8330,6 +9188,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8350,6 +9210,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8366,6 +9228,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8387,6 +9251,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8403,6 +9269,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8419,6 +9287,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8433,6 +9303,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8452,6 +9324,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8471,6 +9345,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8490,6 +9366,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8510,6 +9388,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8525,6 +9405,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8545,6 +9427,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8565,6 +9449,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8578,6 +9464,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8607,6 +9495,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8623,6 +9513,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8640,6 +9532,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8656,6 +9550,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8675,6 +9571,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8691,6 +9589,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8707,6 +9607,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8721,6 +9623,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8734,6 +9638,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8750,6 +9656,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8766,6 +9674,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8783,6 +9693,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8800,6 +9712,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8809,7 +9723,7 @@
   public:
     Init_valContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Init_valContext() : antlr4::ParserRuleContext() { }
+    Init_valContext() = default;
     void copyFrom(Init_valContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -8825,6 +9739,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_b1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  InitVal_1TickB1Context : public Init_valContext {
@@ -8834,6 +9750,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_B1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  InitVal_1Tickb0Context : public Init_valContext {
@@ -8843,6 +9761,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_b0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  InitVal_1TickB0Context : public Init_valContext {
@@ -8852,6 +9772,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_B0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  InitVal_1TickbxContext : public Init_valContext {
@@ -8861,6 +9783,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_bx();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  InitVal_1TickbXContext : public Init_valContext {
@@ -8870,6 +9794,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_bX();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  InitVal_1TickBxContext : public Init_valContext {
@@ -8879,6 +9805,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_Bx();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  InitVal_1TickBXContext : public Init_valContext {
@@ -8888,6 +9816,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_BX();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  InitVal_IntegralContext : public Init_valContext {
@@ -8897,6 +9827,8 @@
     antlr4::tree::TerminalNode *Integral_number();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Init_valContext* init_val();
@@ -8914,6 +9846,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8928,6 +9862,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8942,6 +9878,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8957,6 +9895,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8974,6 +9914,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -8988,6 +9930,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9002,6 +9946,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9017,6 +9963,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9031,6 +9979,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9051,6 +10001,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9071,6 +10023,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9091,6 +10045,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9107,6 +10063,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9123,6 +10081,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9141,6 +10101,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9156,6 +10118,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9170,6 +10134,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9184,6 +10150,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9193,7 +10161,7 @@
   public:
     Always_keywordContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Always_keywordContext() : antlr4::ParserRuleContext() { }
+    Always_keywordContext() = default;
     void copyFrom(Always_keywordContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -9209,6 +10177,8 @@
     antlr4::tree::TerminalNode *ALWAYS_COMB();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AlwaysKeywd_LatchContext : public Always_keywordContext {
@@ -9218,6 +10188,8 @@
     antlr4::tree::TerminalNode *ALWAYS_LATCH();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AlwaysKeywd_FFContext : public Always_keywordContext {
@@ -9227,6 +10199,8 @@
     antlr4::tree::TerminalNode *ALWAYS_FF();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AlwaysKeywd_AlwaysContext : public Always_keywordContext {
@@ -9236,6 +10210,8 @@
     antlr4::tree::TerminalNode *ALWAYS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Always_keywordContext* always_keyword();
@@ -9261,6 +10237,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9276,6 +10254,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9285,7 +10265,7 @@
   public:
     Assignment_operatorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Assignment_operatorContext() : antlr4::ParserRuleContext() { }
+    Assignment_operatorContext() = default;
     void copyFrom(Assignment_operatorContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -9301,6 +10281,8 @@
     antlr4::tree::TerminalNode *ADD_ASSIGN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AssignOp_ModuloContext : public Assignment_operatorContext {
@@ -9310,6 +10292,8 @@
     antlr4::tree::TerminalNode *MODULO_ASSIGN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AssignOp_BitwXorContext : public Assignment_operatorContext {
@@ -9319,6 +10303,8 @@
     antlr4::tree::TerminalNode *BITW_XOR_ASSIGN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AssignOp_BitwLeftShiftContext : public Assignment_operatorContext {
@@ -9328,6 +10314,8 @@
     antlr4::tree::TerminalNode *BITW_LEFT_SHIFT_ASSIGN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AssignOp_SubContext : public Assignment_operatorContext {
@@ -9337,6 +10325,8 @@
     antlr4::tree::TerminalNode *SUB_ASSIGN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AssignOp_BitwOrContext : public Assignment_operatorContext {
@@ -9346,6 +10336,8 @@
     antlr4::tree::TerminalNode *BITW_OR_ASSIGN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AssignOp_DivContext : public Assignment_operatorContext {
@@ -9355,6 +10347,8 @@
     antlr4::tree::TerminalNode *DIV_ASSIGN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AssignOp_BitwRightShiftContext : public Assignment_operatorContext {
@@ -9364,6 +10358,8 @@
     antlr4::tree::TerminalNode *BITW_RIGHT_SHIFT_ASSIGN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AssignOp_AssignContext : public Assignment_operatorContext {
@@ -9373,6 +10369,8 @@
     antlr4::tree::TerminalNode *ASSIGN_OP();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AssignOp_ArithShiftRightContext : public Assignment_operatorContext {
@@ -9382,6 +10380,8 @@
     antlr4::tree::TerminalNode *ARITH_SHIFT_RIGHT_ASSIGN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AssignOp_MultContext : public Assignment_operatorContext {
@@ -9391,6 +10391,8 @@
     antlr4::tree::TerminalNode *MULT_ASSIGN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AssignOp_BitwAndContext : public Assignment_operatorContext {
@@ -9400,6 +10402,8 @@
     antlr4::tree::TerminalNode *BITW_AND_ASSIGN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  AssignOp_ArithShiftLeftContext : public Assignment_operatorContext {
@@ -9409,6 +10413,8 @@
     antlr4::tree::TerminalNode *ARITH_SHIFT_LEFT_ASSIGN();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Assignment_operatorContext* assignment_operator();
@@ -9424,6 +10430,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9444,6 +10452,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9459,6 +10469,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9474,6 +10486,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9496,6 +10510,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9520,6 +10536,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9533,6 +10551,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9546,6 +10566,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9559,6 +10581,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9575,6 +10599,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9592,6 +10618,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9627,6 +10655,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9643,6 +10673,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9657,6 +10689,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9675,6 +10709,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9692,6 +10728,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9712,6 +10750,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9735,6 +10775,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9750,6 +10792,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9767,6 +10811,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9781,6 +10827,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9815,6 +10863,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9832,6 +10882,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9848,6 +10900,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9873,6 +10927,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9888,6 +10944,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9904,6 +10962,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9919,6 +10979,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9945,6 +11007,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -9954,7 +11018,7 @@
   public:
     Case_keywordContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Case_keywordContext() : antlr4::ParserRuleContext() { }
+    Case_keywordContext() = default;
     void copyFrom(Case_keywordContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -9970,6 +11034,8 @@
     antlr4::tree::TerminalNode *CASE();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  CaseKeyword_CaseZContext : public Case_keywordContext {
@@ -9979,6 +11045,8 @@
     antlr4::tree::TerminalNode *CASEZ();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  CaseKeyword_CaseXContext : public Case_keywordContext {
@@ -9988,6 +11056,8 @@
     antlr4::tree::TerminalNode *CASEX();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Case_keywordContext* case_keyword();
@@ -10006,6 +11076,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10024,6 +11096,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10040,6 +11114,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10056,6 +11132,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10071,6 +11149,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10098,6 +11178,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10126,6 +11208,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10140,6 +11224,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10154,6 +11240,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10168,6 +11256,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10182,6 +11272,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10198,6 +11290,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10211,6 +11305,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10230,6 +11326,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10249,6 +11347,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10262,6 +11362,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10275,6 +11377,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10288,6 +11392,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10320,6 +11426,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10337,6 +11445,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10359,6 +11469,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10375,6 +11487,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10390,6 +11504,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10406,6 +11522,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10424,6 +11542,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10438,6 +11558,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10453,6 +11575,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10468,6 +11592,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10482,6 +11608,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10497,6 +11625,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10514,6 +11644,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10531,6 +11663,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10548,6 +11682,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10563,6 +11699,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10582,6 +11720,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10601,6 +11741,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10620,6 +11762,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10633,6 +11777,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10656,6 +11802,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10673,6 +11821,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10693,6 +11843,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10702,7 +11854,7 @@
   public:
     Default_skewContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Default_skewContext() : antlr4::ParserRuleContext() { }
+    Default_skewContext() = default;
     void copyFrom(Default_skewContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -10721,6 +11873,8 @@
     antlr4::tree::TerminalNode *OUTPUT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  DefaultSkew_OutputContext : public Default_skewContext {
@@ -10731,6 +11885,8 @@
     Clocking_skewContext *clocking_skew();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  DefaultSkew_IntputContext : public Default_skewContext {
@@ -10741,6 +11897,8 @@
     Clocking_skewContext *clocking_skew();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Default_skewContext* default_skew();
@@ -10749,7 +11907,7 @@
   public:
     Clocking_directionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Clocking_directionContext() : antlr4::ParserRuleContext() { }
+    Clocking_directionContext() = default;
     void copyFrom(Clocking_directionContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -10768,6 +11926,8 @@
     Clocking_skewContext* clocking_skew(size_t i);
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  ClockingDir_InputContext : public Clocking_directionContext {
@@ -10778,6 +11938,8 @@
     Clocking_skewContext *clocking_skew();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  ClockingDir_OutputContext : public Clocking_directionContext {
@@ -10788,6 +11950,8 @@
     Clocking_skewContext *clocking_skew();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  ClockingDir_InoutContext : public Clocking_directionContext {
@@ -10797,6 +11961,8 @@
     antlr4::tree::TerminalNode *INOUT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Clocking_directionContext* clocking_direction();
@@ -10812,6 +11978,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10836,6 +12004,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10850,6 +12020,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10859,7 +12031,7 @@
   public:
     Edge_identifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Edge_identifierContext() : antlr4::ParserRuleContext() { }
+    Edge_identifierContext() = default;
     void copyFrom(Edge_identifierContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -10875,6 +12047,8 @@
     antlr4::tree::TerminalNode *EDGE();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Edge_NegedgeContext : public Edge_identifierContext {
@@ -10884,6 +12058,8 @@
     antlr4::tree::TerminalNode *NEGEDGE();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Edge_PosedgeContext : public Edge_identifierContext {
@@ -10893,6 +12069,8 @@
     antlr4::tree::TerminalNode *POSEDGE();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Edge_identifierContext* edge_identifier();
@@ -10908,6 +12086,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10926,6 +12106,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10949,6 +12131,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10963,6 +12147,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -10982,6 +12168,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11005,6 +12193,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11021,6 +12211,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11042,6 +12234,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11060,6 +12254,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11077,6 +12273,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11093,6 +12291,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11112,6 +12312,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11129,6 +12331,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11148,6 +12352,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11167,6 +12373,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11180,6 +12388,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11196,6 +12406,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11213,6 +12425,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11229,6 +12443,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11245,6 +12461,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11261,6 +12479,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11277,6 +12497,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11296,6 +12518,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11315,6 +12539,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11331,6 +12557,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11347,6 +12575,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11365,6 +12595,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11383,6 +12615,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11398,6 +12632,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11428,6 +12664,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11441,6 +12679,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11454,6 +12694,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11467,6 +12709,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11480,6 +12724,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11493,6 +12739,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11506,6 +12754,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11519,6 +12769,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11532,6 +12784,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11545,6 +12799,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11558,6 +12814,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11571,6 +12829,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11584,6 +12844,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11597,6 +12859,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11610,6 +12874,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11623,6 +12889,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11636,6 +12904,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11649,6 +12919,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11665,6 +12937,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11689,6 +12963,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11713,6 +12989,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11732,6 +13010,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11756,6 +13036,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11779,6 +13061,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11802,6 +13086,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11830,6 +13116,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11853,6 +13141,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11876,6 +13166,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11904,6 +13196,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11927,6 +13221,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11952,6 +13248,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -11978,6 +13276,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12000,6 +13300,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12023,6 +13325,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12047,6 +13351,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12063,6 +13369,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12079,6 +13387,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12092,6 +13402,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12105,6 +13417,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12118,6 +13432,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12131,6 +13447,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12144,6 +13462,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12157,6 +13477,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12170,6 +13492,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12183,6 +13507,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12196,6 +13522,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12212,6 +13540,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12228,6 +13558,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12237,7 +13569,7 @@
   public:
     Timing_check_event_controlContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Timing_check_event_controlContext() : antlr4::ParserRuleContext() { }
+    Timing_check_event_controlContext() = default;
     void copyFrom(Timing_check_event_controlContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -12253,6 +13585,8 @@
     antlr4::tree::TerminalNode *NEGEDGE();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  TimingCheckEventControl_PosedgeContext : public Timing_check_event_controlContext {
@@ -12262,6 +13596,8 @@
     antlr4::tree::TerminalNode *POSEDGE();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  TimingCheckEventControl_EdgeContext : public Timing_check_event_controlContext {
@@ -12271,6 +13607,8 @@
     Edge_control_specifierContext *edge_control_specifier();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Timing_check_event_controlContext* timing_check_event_control();
@@ -12284,6 +13622,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12303,6 +13643,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12317,6 +13659,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12332,6 +13676,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12351,6 +13697,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12360,7 +13708,7 @@
   public:
     Scalar_constantContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Scalar_constantContext() : antlr4::ParserRuleContext() { }
+    Scalar_constantContext() = default;
     void copyFrom(Scalar_constantContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -12376,6 +13724,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_b1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Scalar_1TickB1Context : public Scalar_constantContext {
@@ -12385,6 +13735,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_B1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Scalar_1Tickb0Context : public Scalar_constantContext {
@@ -12394,6 +13746,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_b0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Scalar_1TickB0Context : public Scalar_constantContext {
@@ -12403,6 +13757,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_B0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Scalar_IntegralContext : public Scalar_constantContext {
@@ -12412,6 +13768,8 @@
     antlr4::tree::TerminalNode *Integral_number();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Scalar_Tickb0Context : public Scalar_constantContext {
@@ -12421,6 +13779,8 @@
     antlr4::tree::TerminalNode *TICK_b0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Scalar_TickB0Context : public Scalar_constantContext {
@@ -12430,6 +13790,8 @@
     antlr4::tree::TerminalNode *TICK_B0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Scalar_Tickb1Context : public Scalar_constantContext {
@@ -12439,6 +13801,8 @@
     antlr4::tree::TerminalNode *TICK_b1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Scalar_TickB1Context : public Scalar_constantContext {
@@ -12448,6 +13812,8 @@
     antlr4::tree::TerminalNode *TICK_B1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Scalar_constantContext* scalar_constant();
@@ -12469,6 +13835,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12491,6 +13859,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12506,6 +13876,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12522,6 +13894,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12540,6 +13914,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12556,6 +13932,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12572,6 +13950,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12589,6 +13969,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12603,6 +13985,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12617,6 +14001,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12635,6 +14021,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12652,6 +14040,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12669,6 +14059,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12683,6 +14075,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12714,6 +14108,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12738,6 +14134,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12755,6 +14153,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12774,6 +14174,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12788,6 +14190,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12810,6 +14214,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12834,6 +14240,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12861,6 +14269,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12878,6 +14288,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12891,6 +14303,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12904,6 +14318,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12917,6 +14333,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12930,6 +14348,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12946,6 +14366,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12968,6 +14390,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12984,6 +14408,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -12999,6 +14425,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13014,6 +14442,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13028,6 +14458,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13042,6 +14474,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13057,6 +14491,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13073,6 +14509,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13107,6 +14545,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13122,6 +14562,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13139,6 +14581,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13155,6 +14599,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13176,6 +14622,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13192,6 +14640,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13206,6 +14656,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13220,6 +14672,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13236,6 +14690,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13266,6 +14722,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13286,6 +14744,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13320,6 +14780,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13354,6 +14816,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13367,6 +14831,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13380,6 +14846,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13393,6 +14861,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13407,6 +14877,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13422,6 +14894,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13435,6 +14909,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13450,6 +14926,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13463,6 +14941,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13478,6 +14958,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13496,6 +14978,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13517,6 +15001,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13535,6 +15021,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13553,6 +15041,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13574,6 +15064,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13591,6 +15083,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13610,6 +15104,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13629,6 +15125,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13651,6 +15149,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13677,6 +15177,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13694,6 +15196,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -13703,7 +15207,7 @@
   public:
     Unary_operatorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Unary_operatorContext() : antlr4::ParserRuleContext() { }
+    Unary_operatorContext() = default;
     void copyFrom(Unary_operatorContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -13719,6 +15223,8 @@
     antlr4::tree::TerminalNode *BITW_AND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Unary_ReductNandContext : public Unary_operatorContext {
@@ -13728,6 +15234,8 @@
     antlr4::tree::TerminalNode *REDUCTION_NAND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Unary_TildaContext : public Unary_operatorContext {
@@ -13737,6 +15245,8 @@
     antlr4::tree::TerminalNode *TILDA();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Unary_PlusContext : public Unary_operatorContext {
@@ -13746,6 +15256,8 @@
     antlr4::tree::TerminalNode *PLUS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Unary_NotContext : public Unary_operatorContext {
@@ -13755,6 +15267,8 @@
     antlr4::tree::TerminalNode *BANG();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Unary_BitwOrContext : public Unary_operatorContext {
@@ -13764,6 +15278,8 @@
     antlr4::tree::TerminalNode *BITW_OR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Unary_ReductXnor2Context : public Unary_operatorContext {
@@ -13773,6 +15289,8 @@
     antlr4::tree::TerminalNode *REDUCTION_XNOR2();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Unary_BitwXorContext : public Unary_operatorContext {
@@ -13782,6 +15300,8 @@
     antlr4::tree::TerminalNode *BITW_XOR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Unary_MinusContext : public Unary_operatorContext {
@@ -13791,6 +15311,8 @@
     antlr4::tree::TerminalNode *MINUS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Unary_ReductNorContext : public Unary_operatorContext {
@@ -13800,6 +15322,8 @@
     antlr4::tree::TerminalNode *REDUCTION_NOR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Unary_ReductXnor1Context : public Unary_operatorContext {
@@ -13809,6 +15333,8 @@
     antlr4::tree::TerminalNode *REDUCTION_XNOR1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Unary_operatorContext* unary_operator();
@@ -13817,7 +15343,7 @@
   public:
     Binary_operatorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Binary_operatorContext() : antlr4::ParserRuleContext() { }
+    Binary_operatorContext() = default;
     void copyFrom(Binary_operatorContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -13833,6 +15359,8 @@
     antlr4::tree::TerminalNode *BITW_AND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_MinusContext : public Binary_operatorContext {
@@ -13842,6 +15370,8 @@
     antlr4::tree::TerminalNode *MINUS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_DivContext : public Binary_operatorContext {
@@ -13851,6 +15381,8 @@
     antlr4::tree::TerminalNode *DIV();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_WildEqualContext : public Binary_operatorContext {
@@ -13860,6 +15392,8 @@
     antlr4::tree::TerminalNode *WILD_EQUAL_OP();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_ArithShiftLeftContext : public Binary_operatorContext {
@@ -13869,6 +15403,8 @@
     antlr4::tree::TerminalNode *ARITH_SHIFT_LEFT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_MultContext : public Binary_operatorContext {
@@ -13878,6 +15414,8 @@
     antlr4::tree::TerminalNode *STAR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_ReductNandContext : public Binary_operatorContext {
@@ -13887,6 +15425,8 @@
     antlr4::tree::TerminalNode *REDUCTION_NAND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_NotContext : public Binary_operatorContext {
@@ -13896,6 +15436,8 @@
     antlr4::tree::TerminalNode *NOTEQUAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_BitwXorContext : public Binary_operatorContext {
@@ -13905,6 +15447,8 @@
     antlr4::tree::TerminalNode *BITW_XOR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_ShiftLeftContext : public Binary_operatorContext {
@@ -13914,6 +15458,8 @@
     antlr4::tree::TerminalNode *SHIFT_LEFT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_WildcardEqualContext : public Binary_operatorContext {
@@ -13923,6 +15469,8 @@
     antlr4::tree::TerminalNode *BINARY_WILDCARD_EQUAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_ShiftRightContext : public Binary_operatorContext {
@@ -13932,6 +15480,8 @@
     antlr4::tree::TerminalNode *SHIFT_RIGHT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_ArithShiftRightContext : public Binary_operatorContext {
@@ -13941,6 +15491,8 @@
     antlr4::tree::TerminalNode *ARITH_SHIFT_RIGHT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_LogicOrContext : public Binary_operatorContext {
@@ -13950,6 +15502,8 @@
     antlr4::tree::TerminalNode *LOGICAL_OR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_PercentContext : public Binary_operatorContext {
@@ -13959,6 +15513,8 @@
     antlr4::tree::TerminalNode *PERCENT();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_ReductNorContext : public Binary_operatorContext {
@@ -13968,6 +15524,8 @@
     antlr4::tree::TerminalNode *REDUCTION_NOR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_WildcardNotEqualContext : public Binary_operatorContext {
@@ -13977,6 +15535,8 @@
     antlr4::tree::TerminalNode *BINARY_WILDCARD_NOTEQUAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_FourStateLogicEqualContext : public Binary_operatorContext {
@@ -13986,6 +15546,8 @@
     antlr4::tree::TerminalNode *FOUR_STATE_LOGIC_EQUAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_ImplyContext : public Binary_operatorContext {
@@ -13995,6 +15557,8 @@
     antlr4::tree::TerminalNode *IMPLY();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_EquivContext : public Binary_operatorContext {
@@ -14004,6 +15568,8 @@
     antlr4::tree::TerminalNode *EQUIV();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_LessEqualContext : public Binary_operatorContext {
@@ -14013,6 +15579,8 @@
     antlr4::tree::TerminalNode *LESS_EQUAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_LogicAndContext : public Binary_operatorContext {
@@ -14022,6 +15590,8 @@
     antlr4::tree::TerminalNode *LOGICAL_AND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_ReductXnor2Context : public Binary_operatorContext {
@@ -14031,6 +15601,8 @@
     antlr4::tree::TerminalNode *REDUCTION_XNOR2();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_ReductXnor1Context : public Binary_operatorContext {
@@ -14040,6 +15612,8 @@
     antlr4::tree::TerminalNode *REDUCTION_XNOR1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_GreatEqualContext : public Binary_operatorContext {
@@ -14049,6 +15623,8 @@
     antlr4::tree::TerminalNode *GREATER_EQUAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_FourStateLogicNotEqualContext : public Binary_operatorContext {
@@ -14058,6 +15634,8 @@
     antlr4::tree::TerminalNode *FOUR_STATE_LOGIC_NOTEQUAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_MultMultContext : public Binary_operatorContext {
@@ -14067,6 +15645,8 @@
     antlr4::tree::TerminalNode *STARSTAR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_GreatContext : public Binary_operatorContext {
@@ -14076,6 +15656,8 @@
     antlr4::tree::TerminalNode *GREATER();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_EquivalenceContext : public Binary_operatorContext {
@@ -14085,6 +15667,8 @@
     antlr4::tree::TerminalNode *EQUIVALENCE();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_WildNotEqualContext : public Binary_operatorContext {
@@ -14094,6 +15678,8 @@
     antlr4::tree::TerminalNode *WILD_NOTEQUAL_OP();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_LessContext : public Binary_operatorContext {
@@ -14103,6 +15689,8 @@
     antlr4::tree::TerminalNode *LESS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_PlusContext : public Binary_operatorContext {
@@ -14112,6 +15700,8 @@
     antlr4::tree::TerminalNode *PLUS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinOp_BitwOrContext : public Binary_operatorContext {
@@ -14121,6 +15711,8 @@
     antlr4::tree::TerminalNode *BITW_OR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Binary_operatorContext* binary_operator();
@@ -14129,7 +15721,7 @@
   public:
     Inc_or_dec_operatorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Inc_or_dec_operatorContext() : antlr4::ParserRuleContext() { }
+    Inc_or_dec_operatorContext() = default;
     void copyFrom(Inc_or_dec_operatorContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -14145,6 +15737,8 @@
     antlr4::tree::TerminalNode *MINUSMINUS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  IncDec_PlusPlusContext : public Inc_or_dec_operatorContext {
@@ -14154,6 +15748,8 @@
     antlr4::tree::TerminalNode *PLUSPLUS();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Inc_or_dec_operatorContext* inc_or_dec_operator();
@@ -14162,7 +15758,7 @@
   public:
     Unary_module_path_operatorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Unary_module_path_operatorContext() : antlr4::ParserRuleContext() { }
+    Unary_module_path_operatorContext() = default;
     void copyFrom(Unary_module_path_operatorContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -14178,6 +15774,8 @@
     antlr4::tree::TerminalNode *REDUCTION_XNOR2();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  UnaryModOp_NotContext : public Unary_module_path_operatorContext {
@@ -14187,6 +15785,8 @@
     antlr4::tree::TerminalNode *BANG();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  UnaryModOp_ReductNandContext : public Unary_module_path_operatorContext {
@@ -14196,6 +15796,8 @@
     antlr4::tree::TerminalNode *REDUCTION_NAND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  UnaryModOp_ReductXNor1Context : public Unary_module_path_operatorContext {
@@ -14205,6 +15807,8 @@
     antlr4::tree::TerminalNode *REDUCTION_XNOR1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  UnaryModOp_TildaContext : public Unary_module_path_operatorContext {
@@ -14214,6 +15818,8 @@
     antlr4::tree::TerminalNode *TILDA();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  UnaryModOp_BitwOrContext : public Unary_module_path_operatorContext {
@@ -14223,6 +15829,8 @@
     antlr4::tree::TerminalNode *BITW_OR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  UnaryModOp_ReductNorContext : public Unary_module_path_operatorContext {
@@ -14232,6 +15840,8 @@
     antlr4::tree::TerminalNode *REDUCTION_NOR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  UnaryModOp_BitwXorContext : public Unary_module_path_operatorContext {
@@ -14241,6 +15851,8 @@
     antlr4::tree::TerminalNode *BITW_XOR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  UnaryModOp_BitwAndContext : public Unary_module_path_operatorContext {
@@ -14250,6 +15862,8 @@
     antlr4::tree::TerminalNode *BITW_AND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Unary_module_path_operatorContext* unary_module_path_operator();
@@ -14258,7 +15872,7 @@
   public:
     Binary_module_path_operatorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    Binary_module_path_operatorContext() : antlr4::ParserRuleContext() { }
+    Binary_module_path_operatorContext() = default;
     void copyFrom(Binary_module_path_operatorContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -14274,6 +15888,8 @@
     antlr4::tree::TerminalNode *EQUIV();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinModOp_BitwXorContext : public Binary_module_path_operatorContext {
@@ -14283,6 +15899,8 @@
     antlr4::tree::TerminalNode *BITW_XOR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinModOp_LogicOrContext : public Binary_module_path_operatorContext {
@@ -14292,6 +15910,8 @@
     antlr4::tree::TerminalNode *LOGICAL_OR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinModOp_NotEqualContext : public Binary_module_path_operatorContext {
@@ -14301,6 +15921,8 @@
     antlr4::tree::TerminalNode *NOTEQUAL();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinModOp_LogicAndContext : public Binary_module_path_operatorContext {
@@ -14310,6 +15932,8 @@
     antlr4::tree::TerminalNode *LOGICAL_AND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinModOp_BitwAndContext : public Binary_module_path_operatorContext {
@@ -14319,6 +15943,8 @@
     antlr4::tree::TerminalNode *BITW_AND();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinModOp_BitwOrContext : public Binary_module_path_operatorContext {
@@ -14328,6 +15954,8 @@
     antlr4::tree::TerminalNode *BITW_OR();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinModOp_ReductXnor1Context : public Binary_module_path_operatorContext {
@@ -14337,6 +15965,8 @@
     antlr4::tree::TerminalNode *REDUCTION_XNOR1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  BinModOp_ReductXnor2Context : public Binary_module_path_operatorContext {
@@ -14346,6 +15976,8 @@
     antlr4::tree::TerminalNode *REDUCTION_XNOR2();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   Binary_module_path_operatorContext* binary_module_path_operator();
@@ -14354,7 +15986,7 @@
   public:
     NumberContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    
-    NumberContext() : antlr4::ParserRuleContext() { }
+    NumberContext() = default;
     void copyFrom(NumberContext *context);
     using antlr4::ParserRuleContext::copyFrom;
 
@@ -14370,6 +16002,8 @@
     antlr4::tree::TerminalNode *Real_number();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_1Tickb0Context : public NumberContext {
@@ -14379,6 +16013,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_b0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_1TickB0Context : public NumberContext {
@@ -14388,6 +16024,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_B0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_1Tickb1Context : public NumberContext {
@@ -14397,6 +16035,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_b1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_1TickB1Context : public NumberContext {
@@ -14406,6 +16046,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_B1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_1TickbxContext : public NumberContext {
@@ -14415,6 +16057,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_bx();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_1TickbXContext : public NumberContext {
@@ -14424,6 +16068,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_bX();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_1TickBxContext : public NumberContext {
@@ -14433,6 +16079,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_Bx();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_1TickBXContext : public NumberContext {
@@ -14442,6 +16090,8 @@
     antlr4::tree::TerminalNode *ONE_TICK_BX();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_IntegralContext : public NumberContext {
@@ -14451,6 +16101,8 @@
     antlr4::tree::TerminalNode *Integral_number();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_Tick0Context : public NumberContext {
@@ -14460,6 +16112,8 @@
     antlr4::tree::TerminalNode *TICK_0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_Tick1Context : public NumberContext {
@@ -14469,6 +16123,8 @@
     antlr4::tree::TerminalNode *TICK_1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_Tickb0Context : public NumberContext {
@@ -14478,6 +16134,8 @@
     antlr4::tree::TerminalNode *TICK_b0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_TickB0Context : public NumberContext {
@@ -14487,6 +16145,8 @@
     antlr4::tree::TerminalNode *TICK_B0();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_Tickb1Context : public NumberContext {
@@ -14496,6 +16156,8 @@
     antlr4::tree::TerminalNode *TICK_b1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   class  Number_TickB1Context : public NumberContext {
@@ -14505,6 +16167,8 @@
     antlr4::tree::TerminalNode *TICK_B1();
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
   };
 
   NumberContext* number();
@@ -14520,6 +16184,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14538,6 +16204,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14553,6 +16221,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14566,6 +16236,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14623,6 +16295,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14653,6 +16327,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14676,6 +16352,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14695,6 +16373,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14719,6 +16399,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14734,6 +16416,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14760,6 +16444,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14784,6 +16470,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14800,6 +16488,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14818,6 +16508,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14838,6 +16530,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14890,6 +16584,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14908,6 +16604,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14925,6 +16623,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14946,6 +16646,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14964,6 +16666,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14978,6 +16682,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -14991,6 +16697,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15007,6 +16715,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15020,6 +16730,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15035,6 +16747,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15048,6 +16762,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15061,6 +16777,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15074,6 +16792,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15087,6 +16807,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15100,6 +16822,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15113,6 +16837,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15126,6 +16852,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15139,6 +16867,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15152,6 +16882,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15165,6 +16897,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15178,6 +16912,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15191,6 +16927,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15204,6 +16942,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15217,6 +16957,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15230,6 +16972,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15243,6 +16987,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15256,6 +17002,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15269,6 +17017,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15282,6 +17032,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15295,6 +17047,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15308,6 +17062,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15321,6 +17077,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15335,6 +17093,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15350,6 +17110,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15363,6 +17125,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15376,6 +17140,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15389,6 +17155,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15402,6 +17170,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15415,6 +17185,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15431,6 +17203,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15444,6 +17218,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15468,6 +17244,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15486,6 +17264,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15505,6 +17285,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15518,6 +17300,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15532,6 +17316,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15548,6 +17334,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15564,6 +17352,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15579,6 +17369,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15601,6 +17393,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
@@ -15622,6 +17416,8 @@
 
     virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
     virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+
+    virtual antlrcpp::Any accept(antlr4::tree::ParseTreeVisitor *visitor) override;
    
   };
 
diff --git a/src/parser/SV3_1aParserBaseListener.cpp b/src/parser/SV3_1aParserBaseListener.cpp
index ca75084..8ed1556 100644
--- a/src/parser/SV3_1aParserBaseListener.cpp
+++ b/src/parser/SV3_1aParserBaseListener.cpp
@@ -1,5 +1,5 @@
 
-// Generated from SV3_1aParser.g4 by ANTLR 4.7.1
+// Generated from /home/alain/Surelog/grammar/SV3_1aParser.g4 by ANTLR 4.7.2
 
 
 #include "SV3_1aParserBaseListener.h"
diff --git a/src/parser/SV3_1aParserBaseListener.h b/src/parser/SV3_1aParserBaseListener.h
index d0baaa4..bfe80ad 100644
--- a/src/parser/SV3_1aParserBaseListener.h
+++ b/src/parser/SV3_1aParserBaseListener.h
@@ -1,5 +1,5 @@
 
-// Generated from SV3_1aParser.g4 by ANTLR 4.7.1
+// Generated from /home/alain/Surelog/grammar/SV3_1aParser.g4 by ANTLR 4.7.2
 
 #pragma once
 
diff --git a/src/parser/SV3_1aParserListener.cpp b/src/parser/SV3_1aParserListener.cpp
index 5f32f42..c062014 100644
--- a/src/parser/SV3_1aParserListener.cpp
+++ b/src/parser/SV3_1aParserListener.cpp
@@ -1,5 +1,5 @@
 
-// Generated from SV3_1aParser.g4 by ANTLR 4.7.1
+// Generated from /home/alain/Surelog/grammar/SV3_1aParser.g4 by ANTLR 4.7.2
 
 
 #include "SV3_1aParserListener.h"
diff --git a/src/parser/SV3_1aParserListener.h b/src/parser/SV3_1aParserListener.h
index 5ec8514..79e3655 100644
--- a/src/parser/SV3_1aParserListener.h
+++ b/src/parser/SV3_1aParserListener.h
@@ -1,5 +1,5 @@
 
-// Generated from SV3_1aParser.g4 by ANTLR 4.7.1
+// Generated from /home/alain/Surelog/grammar/SV3_1aParser.g4 by ANTLR 4.7.2
 
 #pragma once