Merge pull request #104 from alainmarcel/alainmarcel-patch-1

README
diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.nojekyll
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8298559..7522b7d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -247,14 +247,11 @@
 INSTALL(
   FILES  
   ${PROJECT_SOURCE_DIR}/src/SourceCompile/SymbolTable.h
-  ${PROJECT_SOURCE_DIR}/src/SourceCompile/CompilationUnit.h
-  ${PROJECT_SOURCE_DIR}/src/SourceCompile/PreprocessFile.h
-  ${PROJECT_SOURCE_DIR}/src/SourceCompile/CompileSourceFile.h
-  ${PROJECT_SOURCE_DIR}/src/SourceCompile/Compiler.h
   DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/surelog/SourceCompile
   )
 INSTALL(
   FILES
+  ${PROJECT_SOURCE_DIR}/src/ErrorReporting/ErrorDefinition.h
   ${PROJECT_SOURCE_DIR}/src/ErrorReporting/ErrorContainer.h
   ${PROJECT_SOURCE_DIR}/src/ErrorReporting/Report.h
   ${PROJECT_SOURCE_DIR}/src/ErrorReporting/Waiver.h
@@ -264,6 +261,7 @@
   FILES
   ${PROJECT_SOURCE_DIR}/src/API/PythonAPI.h
   ${PROJECT_SOURCE_DIR}/src/API/SLAPI.h
+  ${PROJECT_SOURCE_DIR}/src/API/Surelog.h
   DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/surelog/API
   )
 INSTALL(
diff --git a/README.md b/README.md
index 57aa3ff..e20d4d3 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
 
 # Applications
 
-Linter, Simulator, Synthesys tool, Formal tools can use this front-end and be developed either as plugins (linked with) or use this front-end as an intermediate step of their compilation flows using the on-disk memory models (down-converter).
+Linter, Simulator, Synthesis tool, Formal tools can use this front-end. They either can be developed as plugins (linked with) or use this front-end as an intermediate step of their compilation flows using the on-disk serialized models.
 
 # Contributing to this project
 
@@ -56,18 +56,15 @@
    * +librescan            Lib Rescan option (ignored)
    * +libverbose           Lib Verbose option (ignored)
    * +nolibcell            No Lib Cell option (ignored)
-   * +define+name=value[+name=value...]
-   *                      Defines a macro and optionally its value
+   * +define+name=value[+name=value...] Defines a macro and optionally its value
    * -L <libName>          Defines library compilation order
    * -map <mapFile>        Specifies a library mapping file (multiple -map options supported)
    * -cfgfile <confiFile>  Specifies a configuration file (multiple -cfgFile options supported)
    * -cfg <configName>     Specifies a configuration to use (multiple -cfg options supported)
    * -Dvar=value           Same as env var definition for -f files var substitution
  * FLOWS OPTIONS:
-   * -fileunit             Compiles each Verilog file as an independent
-   *                       compilation unit (under slpp_unit/ if -writepp used)
-   * -diffcompunit         Compiles both all files as a whole unit and
-   *                       separate compilation units to perform diffs
+   * -fileunit             Compiles each Verilog file as an independent compilation unit (under slpp_unit/ if -writepp used)
+   * -diffcompunit         Compiles both all files as a whole unit and separate compilation units to perform diffs
    * -parse                Parse/Compile/Elaborate the files after pre-processing step
    * -nocomp               Turns off Compilation & Elaboration
    * -noelab               Turns off Elaboration
@@ -77,9 +74,7 @@
    * -pythonevalscript <script.py> Eval the Python script at the design level
    * -nopython             Turns off all Python features, including waivers
    * -strictpythoncheck    Turns on strict Python checks
-   * -mt <nb_max_treads>   0 up to 512 max threads, 0 or 1 being single threaded,
-   *                       if "max" is given, the program will use one thread
-   *                       per core on the host
+   * -mt <nb_max_treads>   0 up to 512 max threads, 0 or 1 being single threaded, if "max" is given, the program will use one thread per core on the host
    * -split <line number>  Split files or modules larger than specified line number for multi thread compilation
    * -timescale=<timescale> Specifies the overall timescale
    * -nobuiltin            Do not parse SV builtin classes (array...)
@@ -93,16 +88,13 @@
 
  * OUTPUT OPTIONS:
    * -odir <dir>           Specifies the output directory, default is ./
-   * -writeppfile <file>   Writes out Preprocessor output in file
-   *                      (all compilation units will override this file)
-   * -writepp              Writes out Preprocessor output (all compilation
-   *                       units will generate files under slpp_all/ or slpp_unit/)
+   * -writeppfile <file>   Writes out Preprocessor output in file (all compilation units will override this file)
+   * -writepp              Writes out Preprocessor output (all compilation units will generate files under slpp_all/ or slpp_unit/)
    * -lineoffsetascomments Writes the preprocessor line offsets as comments as opposed as parser directives
    * -nocache              Default allows to create a cache for include files, this option prevents it
-   *  -cache <dir>          Specifies the cache directory, default is slpp_all/cache or slpp_unit/cache
+   * -cache <dir>          Specifies the cache directory, default is slpp_all/cache or slpp_unit/cache
    * -createcache          Create cache for precompiled packages
-   * -filterdirectives     Filters out simple directives like
-   *                       default_nettype in pre-processor's output
+   * -filterdirectives     Filters out simple directives like default_nettype in pre-processor's output
    * -filterprotected      Filters out protected regions in pre-processor's output
    * -filtercomments       Filters out comments in pre-processor's output
    * -outputlineinfo       Outputs SLline directives in pre-processor's output
@@ -120,3 +112,24 @@
    * 0x2 - Syntax error(s)
    * 0x4 - Error(s)
 
+### Similar projects:
+
+* [hdlConvertor](https://github.com/Nic30/hdlConvertor/) - System Verilog and VHDL parser, preprocessor and code generator for Python/C++ written in C++ 
+* [cl-vhdl](https://github.com/mabragor/cl-vhdl) - lisp, Parser of VHDL into lisp-expressions 
+* [HDL_ANTLR4](https://github.com/denisgav/HDL_ANTLR4) - C# projects that use ANTLR4 library to analyse VHDL and Verilog code
+* [hdlparse](https://github.com/kevinpt/hdlparse/) - vhdl/verilog parser in python
+* [ieee1800_2017](https://github.com/veriktig/ieee1800_2017) - Java, SystemVerilog preprocessor
+* [Pyverilog](https://github.com/PyHDI/Pyverilog) - python verilog toolkit
+* [pyVHDLParser](https://github.com/Paebbels/pyVHDLParser) - python vhdl parser with 2008 support
+* [rust_hdl](https://github.com/kraigher/rust_hdl) - rust vhdl 2008 parser
+* [slang](https://github.com/MikePopoloski/slang) - Parser and compiler library for SystemVerilog.
+* [sv-parser](https://github.com/dalance/sv-parser) - Rust, SystemVerilog parser library fully complient with IEEE 1800-2017
+* [systemc-clang](https://github.com/anikau31/systemc-clang) - SystemC Parser using the Clang Front-end
+* [v2sc](https://github.com/denisgav/v2sc) - vhdl to systemc
+* [veelox](https://github.com/martinda/veelox) - Java+ANTLR,  An experiment in SystemVerilog Preprocessing 
+* [verilog-parser](https://github.com/ben-marshall/verilog-parser) - A Flex/Bison Parser for the IEEE 1364-2001 Verilog Standard.
+* [vbpp](https://github.com/balanx/vbpp) - C, Verilog PreProcessor
+* [tree-sitter-verilog](https://github.com/tree-sitter/tree-sitter-verilog) - JS,  Verilog grammar for tree-sitter 
+* [Verilog-Perl](https://metacpan.org/pod/Verilog-Perl)
+* [vpp.pl](https://www.beyond-circuits.com/wordpress/vpp-pl-man-page/) - verilog preprocessor with integrated Perl
+* [sv2v](https://github.com/zachjs/sv2v)- Haskell, SystemVerilog to Verilog
diff --git a/src/API/PythonAPI.cpp b/src/API/PythonAPI.cpp
index 300ab52..58eb5f4 100644
--- a/src/API/PythonAPI.cpp
+++ b/src/API/PythonAPI.cpp
@@ -21,6 +21,8 @@
  * Created on May 13, 2017, 4:42 PM
  */
 
+#include "ParserRuleContext.h"
+
 #include "SourceCompile/SymbolTable.h"
 #include "Utils/StringUtils.h"
 #include "Utils/FileUtils.h"
@@ -32,6 +34,7 @@
 #include "SourceCompile/Compiler.h"
 #include "SourceCompile/ParseFile.h"
 #include "antlr4-runtime.h"
+
 using namespace std;
 using namespace antlr4;
 
@@ -47,8 +50,13 @@
 #include <iostream>
 #include <cstdio>
 #include "Python.h"
+
 #include "API/PythonAPI.h"
+
 #include "API/SLAPI.h"
+
+#include "ParserRuleContext.h"
+
 #include "API/slapi_wrap.cxx"
 #include "API/slapi.h"
 #include "API/vobjecttypes_py.h"
@@ -219,7 +227,8 @@
 }
 
 void PythonAPI::evalScript(std::string function, SV3_1aPythonListener* listener,
-                           ParserRuleContext* ctx) {
+                           parser_rule_context* ctx1) {
+  antlr4::ParserRuleContext* ctx = (antlr4::ParserRuleContext*) ctx1;
   PyEval_AcquireThread(listener->getPyThreadState());
   PyObject *pModuleName, *pModule, *pFunc;
   PyObject *pArgs, *pValue;
@@ -239,7 +248,7 @@
                               SWIGTYPE_p_SURELOG__SV3_1aPythonListener, 0 | 0);
   PyTuple_SetItem(pArgs, 0, pValue);
   pValue = SWIG_NewPointerObj(SWIG_as_voidptr(ctx),
-                              SWIGTYPE_p_ParserRuleContext, 0 | 0);
+                              SWIGTYPE_p_antlr4__ParserRuleContext, 0 | 0);
   PyTuple_SetItem(pArgs, 1, pValue);
   PyObject_CallObject(pFunc, pArgs);
   PyErr_Print();
@@ -371,7 +380,7 @@
   }
   pArgs = PyTuple_New(2);
   pValue = SWIG_NewPointerObj(
-      SWIG_as_voidptr(design->getCompiler()->getErrorContainer()),
+      SWIG_as_voidptr(design->getErrorContainer()),
       SWIGTYPE_p_SURELOG__ErrorContainer, 0 | 0);
   PyTuple_SetItem(pArgs, 0, pValue);
   pValue = SWIG_NewPointerObj(SWIG_as_voidptr(design),
diff --git a/src/API/PythonAPI.h b/src/API/PythonAPI.h
index 236513a..5249f1b 100644
--- a/src/API/PythonAPI.h
+++ b/src/API/PythonAPI.h
@@ -27,10 +27,11 @@
 
 namespace SURELOG {
 
-class SV3_1aPythonListener;
+class SV3_1aPythonListener; 
 class FileContent;
 class Design;
-
+struct parser_rule_context;
+ 
 class PythonAPI {
  public:
   PythonAPI();
@@ -40,7 +41,6 @@
   static void init(int argc, const char** argv);
   static void shutdown();
   static PyThreadState* getMainInterp() { return m_mainThreadState; }
-
   /* Per thread interpreters */
   static PyThreadState* initNewInterp();
   static void shutdown(PyThreadState* interp);
@@ -50,7 +50,7 @@
                                 std::vector<std::string> args,
                                 PyThreadState* interp);
   static void evalScript(std::string function, SV3_1aPythonListener* listener,
-                         ParserRuleContext* ctx);
+                         parser_rule_context* ctx);
   static std::string getInvalidScriptString() { return m_invalidScriptResult; }
   static bool isListenerLoaded() { return m_listenerLoaded; }
   static std::string getListenerScript() { return m_listenerScript; }
diff --git a/src/API/SLAPI.cpp b/src/API/SLAPI.cpp
index fe9735f..2228747 100644
--- a/src/API/SLAPI.cpp
+++ b/src/API/SLAPI.cpp
@@ -20,10 +20,13 @@
  *
  * Created on May 13, 2017, 4:42 PM
  */
-
+#include "Python.h"
 #include <string>
 #include <vector>
 
+#include "antlr4-runtime.h"
+using namespace antlr4;
+
 #include "ErrorReporting/Waiver.h"
 #include "ErrorReporting/ErrorDefinition.h"
 #include "SourceCompile/SymbolTable.h"
@@ -46,6 +49,8 @@
 using namespace antlr4;
 using namespace SURELOG;
 
+#include "ParserRuleContext.h"
+
 #include "parser/SV3_1aLexer.h"
 #include "parser/SV3_1aParser.h"
 #include "parser/SV3_1aParserBaseListener.h"
@@ -135,11 +140,11 @@
 }
 
 void SURELOG::SLaddErrorContext(SV3_1aPythonListener* prog,
-                                ParserRuleContext* context,
+                                antlr4::ParserRuleContext* context,
                                 const char* messageId, const char* objectName,
                                 bool printColumn) {
   SV3_1aPythonListener* listener = (SV3_1aPythonListener*)prog;
-  ParserRuleContext* ctx = (ParserRuleContext*)context;
+  antlr4::ParserRuleContext* ctx = (antlr4::ParserRuleContext*)context;
   ErrorContainer* errors =
       listener->getPythonListen()->getCompileSourceFile()->getErrorContainer();
   std::pair<int, int> lineCol =
@@ -159,14 +164,14 @@
 }
 
 void SURELOG::SLaddMLErrorContext(SV3_1aPythonListener* prog,
-                                  ParserRuleContext* context1,
-                                  ParserRuleContext* context2,
+                                  antlr4::ParserRuleContext* context1,
+                                  antlr4::ParserRuleContext* context2,
                                   const char* messageId,
                                   const char* objectName1,
                                   const char* objectName2, bool printColumn) {
   SV3_1aPythonListener* listener = (SV3_1aPythonListener*)prog;
-  ParserRuleContext* ctx1 = (ParserRuleContext*)context1;
-  ParserRuleContext* ctx2 = (ParserRuleContext*)context2;
+  antlr4::ParserRuleContext* ctx1 = (antlr4::ParserRuleContext*)context1;
+  antlr4::ParserRuleContext* ctx2 = (antlr4::ParserRuleContext*)context2;
   ErrorContainer* errors =
       listener->getPythonListen()->getCompileSourceFile()->getErrorContainer();
   std::pair<int, int> lineCol1 =
@@ -197,33 +202,33 @@
 }
 
 std::string SURELOG::SLgetFile(SV3_1aPythonListener* prog,
-                               ParserRuleContext* context) {
+                               antlr4::ParserRuleContext* context) {
   SV3_1aPythonListener* listener = (SV3_1aPythonListener*)prog;
   std::string file =
       listener->getPythonListen()->getParseFile()->getFileName(0);
   return file;
 }
 
-int SURELOG::SLgetLine(SV3_1aPythonListener* prog, ParserRuleContext* context) {
+int SURELOG::SLgetLine(SV3_1aPythonListener* prog, antlr4::ParserRuleContext* context) {
   SV3_1aPythonListener* listener = (SV3_1aPythonListener*)prog;
-  ParserRuleContext* ctx = (ParserRuleContext*)context;
+  antlr4::ParserRuleContext* ctx = (antlr4::ParserRuleContext*)context;
   std::pair<int, int> lineCol =
       ParseUtils::getLineColumn(listener->getTokenStream(), ctx);
   return lineCol.first;
 }
 
 int SURELOG::SLgetColumn(SV3_1aPythonListener* prog,
-                         ParserRuleContext* context) {
+                         antlr4::ParserRuleContext* context) {
   SV3_1aPythonListener* listener = (SV3_1aPythonListener*)prog;
-  ParserRuleContext* ctx = (ParserRuleContext*)context;
+  antlr4::ParserRuleContext* ctx = (antlr4::ParserRuleContext*)context;
   std::pair<int, int> lineCol =
       ParseUtils::getLineColumn(listener->getTokenStream(), ctx);
   return lineCol.second;
 }
 
 std::string SURELOG::SLgetText(SV3_1aPythonListener* /*prog*/,
-                               ParserRuleContext* context) {
-  ParserRuleContext* ctx = (ParserRuleContext*)context;
+                               antlr4::ParserRuleContext* context) {
+  antlr4::ParserRuleContext* ctx = (antlr4::ParserRuleContext*)context;
   std::vector<Token*> tokens = ParseUtils::getFlatTokenList(ctx);
   std::string text;
   for (auto token : tokens) {
@@ -233,8 +238,8 @@
 }
 
 std::vector<std::string> SURELOG::SLgetTokens(SV3_1aPythonListener* prog,
-                                              ParserRuleContext* context) {
-  ParserRuleContext* ctx = (ParserRuleContext*)context;
+                                              antlr4::ParserRuleContext* context) {
+  antlr4::ParserRuleContext* ctx = (antlr4::ParserRuleContext*)context;
   std::vector<Token*> tokens = ParseUtils::getFlatTokenList(ctx);
   std::vector<std::string> body_tokens;
   for (auto token : tokens) {
@@ -243,16 +248,16 @@
   return body_tokens;
 }
 
-ParserRuleContext* SURELOG::SLgetParentContext(SV3_1aPythonListener* prog,
-                                               ParserRuleContext* context) {
-  ParserRuleContext* ctx = (ParserRuleContext*)context;
-  return (ParserRuleContext*)ctx->parent;
+antlr4::ParserRuleContext* SURELOG::SLgetParentContext(SV3_1aPythonListener* prog,
+                                               antlr4::ParserRuleContext* context) {
+  antlr4::ParserRuleContext* ctx = (antlr4::ParserRuleContext*)context;
+  return (antlr4::ParserRuleContext*)ctx->parent;
 }
 
-std::vector<ParserRuleContext*> SURELOG::SLgetChildrenContext(
-    SV3_1aPythonListener* prog, ParserRuleContext* context) {
-  ParserRuleContext* ctx = (ParserRuleContext*)context;
-  std::vector<ParserRuleContext*> children;
+std::vector<antlr4::ParserRuleContext*> SURELOG::SLgetChildrenContext(
+    SV3_1aPythonListener* prog, antlr4::ParserRuleContext* context) {
+  antlr4::ParserRuleContext* ctx = (antlr4::ParserRuleContext*)context;
+  std::vector<antlr4::ParserRuleContext*> children;
 
   for (unsigned int i = 0; i < ctx->children.size(); i++) {
     // Get the i-th child node of `parent`.
@@ -262,7 +267,7 @@
       // Terminal node
     } else {
       // Rule
-      children.push_back((ParserRuleContext*)child);
+      children.push_back((antlr4::ParserRuleContext*)child);
     }
   }
   return children;
diff --git a/src/API/SLAPI.h b/src/API/SLAPI.h
index 8214a4b..c7c7d52 100644
--- a/src/API/SLAPI.h
+++ b/src/API/SLAPI.h
@@ -54,13 +54,13 @@
                 const char* fileName, unsigned int line, unsigned int col,
                 const char* objectName);
 
-void SLaddErrorContext(SV3_1aPythonListener* prog, ParserRuleContext* context,
+void SLaddErrorContext(SV3_1aPythonListener* prog, antlr4::ParserRuleContext* context,
                        const char* messageId, const char* objectName,
                        bool printColumn = 0);
 
 void SLaddMLErrorContext(SV3_1aPythonListener* prog,
-                         ParserRuleContext* context1,
-                         ParserRuleContext* context2, const char* messageId,
+                         antlr4::ParserRuleContext* context1,
+                         antlr4::ParserRuleContext* context2, const char* messageId,
                          const char* objectName1, const char* objectName2,
                          bool printColumn = 0);
 
@@ -71,22 +71,22 @@
                   const char* objectName2);
 
 /* File Listener API */
-std::string SLgetFile(SV3_1aPythonListener* prog, ParserRuleContext* context);
+std::string SLgetFile(SV3_1aPythonListener* prog, antlr4::ParserRuleContext* context);
 
-int SLgetLine(SV3_1aPythonListener* prog, ParserRuleContext* context);
+int SLgetLine(SV3_1aPythonListener* prog, antlr4::ParserRuleContext* context);
 
-int SLgetColumn(SV3_1aPythonListener* prog, ParserRuleContext* context);
+int SLgetColumn(SV3_1aPythonListener* prog, antlr4::ParserRuleContext* context);
 
-std::string SLgetText(SV3_1aPythonListener* prog, ParserRuleContext* context);
+std::string SLgetText(SV3_1aPythonListener* prog, antlr4::ParserRuleContext* context);
 
 std::vector<std::string> SLgetTokens(SV3_1aPythonListener* prog,
-                                     ParserRuleContext* context);
+                                     antlr4::ParserRuleContext* context);
 
-ParserRuleContext* SLgetParentContext(SV3_1aPythonListener* prog,
-                                      ParserRuleContext* context);
+antlr4::ParserRuleContext* SLgetParentContext(SV3_1aPythonListener* prog,
+                                      antlr4::ParserRuleContext* context);
 
-std::vector<ParserRuleContext*> SLgetChildrenContext(
-    SV3_1aPythonListener* prog, ParserRuleContext* context);
+std::vector<antlr4::ParserRuleContext*> SLgetChildrenContext(
+    SV3_1aPythonListener* prog, antlr4::ParserRuleContext* context);
 
 /* Parser API */
 NodeId SLgetRootNode(FileContent* fC);
diff --git a/src/API/SV3_1aPythonListener.cpp b/src/API/SV3_1aPythonListener.cpp
index 7785a87..9cff7f0 100644
--- a/src/API/SV3_1aPythonListener.cpp
+++ b/src/API/SV3_1aPythonListener.cpp
@@ -44,7 +44,7 @@
 SV3_1aPythonListener::~SV3_1aPythonListener () { }
 
 void
-SV3_1aPythonListener::logError (ErrorDefinition::ErrorType error, ParserRuleContext* ctx, std::string object, bool printColumn)
+SV3_1aPythonListener::logError (ErrorDefinition::ErrorType error, antlr4::ParserRuleContext* ctx, std::string object, bool printColumn)
 {
   std::pair<int, int> lineCol = ParseUtils::getLineColumn (getTokenStream (), ctx);
 
diff --git a/src/API/SV3_1aPythonListener.h b/src/API/SV3_1aPythonListener.h
index 503009f..0b0c2f2 100644
--- a/src/API/SV3_1aPythonListener.h
+++ b/src/API/SV3_1aPythonListener.h
@@ -34,7207 +34,7207 @@
     antlr4::CommonTokenStream* getTokenStream() { return m_tokens; }
     ~SV3_1aPythonListener();
 
- void logError(ErrorDefinition::ErrorType error, ParserRuleContext* ctx, std::string object, bool printColumn = false);
+ void logError(ErrorDefinition::ErrorType error, antlr4::ParserRuleContext* ctx, std::string object, bool printColumn = false);
  void logError(ErrorDefinition::ErrorType, Location& loc, bool showDuplicates = false);
  void logError(ErrorDefinition::ErrorType, Location& loc, Location& extraLoc, bool showDuplicates = false);
    void enterTop_level_rule(SV3_1aParser::Top_level_ruleContext * ctx)   {
-PythonAPI::evalScript("enterTop_level_rule", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTop_level_rule", this, (parser_rule_context*) ctx);
 }
 
    void exitTop_level_rule(SV3_1aParser::Top_level_ruleContext * ctx)   {
-PythonAPI::evalScript("exitTop_level_rule", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTop_level_rule", this, (parser_rule_context*) ctx);
 }
 
    void enterTop_level_library_rule(SV3_1aParser::Top_level_library_ruleContext * ctx)   {
-PythonAPI::evalScript("enterTop_level_library_rule", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTop_level_library_rule", this, (parser_rule_context*) ctx);
 }
 
    void exitTop_level_library_rule(SV3_1aParser::Top_level_library_ruleContext * ctx)   {
-PythonAPI::evalScript("exitTop_level_library_rule", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTop_level_library_rule", this, (parser_rule_context*) ctx);
 }
 
    void enterLibrary_text(SV3_1aParser::Library_textContext * ctx)   {
-PythonAPI::evalScript("enterLibrary_text", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLibrary_text", this, (parser_rule_context*) ctx);
 }
 
    void exitLibrary_text(SV3_1aParser::Library_textContext * ctx)   {
-PythonAPI::evalScript("exitLibrary_text", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLibrary_text", this, (parser_rule_context*) ctx);
 }
 
    void enterLibrary_descriptions(SV3_1aParser::Library_descriptionsContext * ctx)   {
-PythonAPI::evalScript("enterLibrary_descriptions", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLibrary_descriptions", this, (parser_rule_context*) ctx);
 }
 
    void exitLibrary_descriptions(SV3_1aParser::Library_descriptionsContext * ctx)   {
-PythonAPI::evalScript("exitLibrary_descriptions", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLibrary_descriptions", this, (parser_rule_context*) ctx);
 }
 
    void enterLibrary_declaration(SV3_1aParser::Library_declarationContext * ctx)   {
-PythonAPI::evalScript("enterLibrary_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLibrary_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitLibrary_declaration(SV3_1aParser::Library_declarationContext * ctx)   {
-PythonAPI::evalScript("exitLibrary_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLibrary_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterFile_path_spec(SV3_1aParser::File_path_specContext * ctx)   {
-PythonAPI::evalScript("enterFile_path_spec", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFile_path_spec", this, (parser_rule_context*) ctx);
 }
 
    void exitFile_path_spec(SV3_1aParser::File_path_specContext * ctx)   {
-PythonAPI::evalScript("exitFile_path_spec", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFile_path_spec", this, (parser_rule_context*) ctx);
 }
 
    void enterInclude_statement(SV3_1aParser::Include_statementContext * ctx)   {
-PythonAPI::evalScript("enterInclude_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInclude_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitInclude_statement(SV3_1aParser::Include_statementContext * ctx)   {
-PythonAPI::evalScript("exitInclude_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInclude_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterSource_text(SV3_1aParser::Source_textContext * ctx)   {
-PythonAPI::evalScript("enterSource_text", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSource_text", this, (parser_rule_context*) ctx);
 }
 
    void exitSource_text(SV3_1aParser::Source_textContext * ctx)   {
-PythonAPI::evalScript("exitSource_text", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSource_text", this, (parser_rule_context*) ctx);
 }
 
    void enterNull_rule(SV3_1aParser::Null_ruleContext * ctx)   {
-PythonAPI::evalScript("enterNull_rule", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNull_rule", this, (parser_rule_context*) ctx);
 }
 
    void exitNull_rule(SV3_1aParser::Null_ruleContext * ctx)   {
-PythonAPI::evalScript("exitNull_rule", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNull_rule", this, (parser_rule_context*) ctx);
 }
 
    void enterDescription(SV3_1aParser::DescriptionContext * ctx)   {
-PythonAPI::evalScript("enterDescription", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDescription", this, (parser_rule_context*) ctx);
 }
 
    void exitDescription(SV3_1aParser::DescriptionContext * ctx)   {
-PythonAPI::evalScript("exitDescription", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDescription", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_nonansi_header(SV3_1aParser::Module_nonansi_headerContext * ctx)   {
-PythonAPI::evalScript("enterModule_nonansi_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_nonansi_header", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_nonansi_header(SV3_1aParser::Module_nonansi_headerContext * ctx)   {
-PythonAPI::evalScript("exitModule_nonansi_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_nonansi_header", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_ansi_header(SV3_1aParser::Module_ansi_headerContext * ctx)   {
-PythonAPI::evalScript("enterModule_ansi_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_ansi_header", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_ansi_header(SV3_1aParser::Module_ansi_headerContext * ctx)   {
-PythonAPI::evalScript("exitModule_ansi_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_ansi_header", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_declaration(SV3_1aParser::Module_declarationContext * ctx)   {
-PythonAPI::evalScript("enterModule_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_declaration(SV3_1aParser::Module_declarationContext * ctx)   {
-PythonAPI::evalScript("exitModule_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterEndmodule(SV3_1aParser::EndmoduleContext * ctx)   {
-PythonAPI::evalScript("enterEndmodule", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndmodule", this, (parser_rule_context*) ctx);
 }
 
    void exitEndmodule(SV3_1aParser::EndmoduleContext * ctx)   {
-PythonAPI::evalScript("exitEndmodule", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndmodule", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_keyword(SV3_1aParser::Module_keywordContext * ctx)   {
-PythonAPI::evalScript("enterModule_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_keyword(SV3_1aParser::Module_keywordContext * ctx)   {
-PythonAPI::evalScript("exitModule_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_nonansi_header(SV3_1aParser::Interface_nonansi_headerContext * ctx)   {
-PythonAPI::evalScript("enterInterface_nonansi_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_nonansi_header", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_nonansi_header(SV3_1aParser::Interface_nonansi_headerContext * ctx)   {
-PythonAPI::evalScript("exitInterface_nonansi_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_nonansi_header", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_ansi_header(SV3_1aParser::Interface_ansi_headerContext * ctx)   {
-PythonAPI::evalScript("enterInterface_ansi_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_ansi_header", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_ansi_header(SV3_1aParser::Interface_ansi_headerContext * ctx)   {
-PythonAPI::evalScript("exitInterface_ansi_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_ansi_header", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_declaration(SV3_1aParser::Interface_declarationContext * ctx)   {
-PythonAPI::evalScript("enterInterface_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_declaration(SV3_1aParser::Interface_declarationContext * ctx)   {
-PythonAPI::evalScript("exitInterface_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterEndinterface(SV3_1aParser::EndinterfaceContext * ctx)   {
-PythonAPI::evalScript("enterEndinterface", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndinterface", this, (parser_rule_context*) ctx);
 }
 
    void exitEndinterface(SV3_1aParser::EndinterfaceContext * ctx)   {
-PythonAPI::evalScript("exitEndinterface", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndinterface", this, (parser_rule_context*) ctx);
 }
 
    void enterProgram_nonansi_header(SV3_1aParser::Program_nonansi_headerContext * ctx)   {
-PythonAPI::evalScript("enterProgram_nonansi_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProgram_nonansi_header", this, (parser_rule_context*) ctx);
 }
 
    void exitProgram_nonansi_header(SV3_1aParser::Program_nonansi_headerContext * ctx)   {
-PythonAPI::evalScript("exitProgram_nonansi_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProgram_nonansi_header", this, (parser_rule_context*) ctx);
 }
 
    void enterProgram_ansi_header(SV3_1aParser::Program_ansi_headerContext * ctx)   {
-PythonAPI::evalScript("enterProgram_ansi_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProgram_ansi_header", this, (parser_rule_context*) ctx);
 }
 
    void exitProgram_ansi_header(SV3_1aParser::Program_ansi_headerContext * ctx)   {
-PythonAPI::evalScript("exitProgram_ansi_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProgram_ansi_header", this, (parser_rule_context*) ctx);
 }
 
    void enterEndchecker(SV3_1aParser::EndcheckerContext * ctx)   {
-PythonAPI::evalScript("enterEndchecker", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndchecker", this, (parser_rule_context*) ctx);
 }
 
    void exitEndchecker(SV3_1aParser::EndcheckerContext * ctx)   {
-PythonAPI::evalScript("exitEndchecker", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndchecker", this, (parser_rule_context*) ctx);
 }
 
    void enterChecker_declaration(SV3_1aParser::Checker_declarationContext * ctx)   {
-PythonAPI::evalScript("enterChecker_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterChecker_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitChecker_declaration(SV3_1aParser::Checker_declarationContext * ctx)   {
-PythonAPI::evalScript("exitChecker_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitChecker_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterProgram_declaration(SV3_1aParser::Program_declarationContext * ctx)   {
-PythonAPI::evalScript("enterProgram_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProgram_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitProgram_declaration(SV3_1aParser::Program_declarationContext * ctx)   {
-PythonAPI::evalScript("exitProgram_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProgram_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterEndprogram(SV3_1aParser::EndprogramContext * ctx)   {
-PythonAPI::evalScript("enterEndprogram", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndprogram", this, (parser_rule_context*) ctx);
 }
 
    void exitEndprogram(SV3_1aParser::EndprogramContext * ctx)   {
-PythonAPI::evalScript("exitEndprogram", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndprogram", this, (parser_rule_context*) ctx);
 }
 
    void enterClass_declaration(SV3_1aParser::Class_declarationContext * ctx)   {
-PythonAPI::evalScript("enterClass_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClass_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitClass_declaration(SV3_1aParser::Class_declarationContext * ctx)   {
-PythonAPI::evalScript("exitClass_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClass_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterEndclass(SV3_1aParser::EndclassContext * ctx)   {
-PythonAPI::evalScript("enterEndclass", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndclass", this, (parser_rule_context*) ctx);
 }
 
    void exitEndclass(SV3_1aParser::EndclassContext * ctx)   {
-PythonAPI::evalScript("exitEndclass", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndclass", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_class_type(SV3_1aParser::Interface_class_typeContext * ctx)   {
-PythonAPI::evalScript("enterInterface_class_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_class_type", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_class_type(SV3_1aParser::Interface_class_typeContext * ctx)   {
-PythonAPI::evalScript("exitInterface_class_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_class_type", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_class_declaration(SV3_1aParser::Interface_class_declarationContext * ctx)   {
-PythonAPI::evalScript("enterInterface_class_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_class_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_class_declaration(SV3_1aParser::Interface_class_declarationContext * ctx)   {
-PythonAPI::evalScript("exitInterface_class_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_class_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_class_item(SV3_1aParser::Interface_class_itemContext * ctx)   {
-PythonAPI::evalScript("enterInterface_class_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_class_item", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_class_item(SV3_1aParser::Interface_class_itemContext * ctx)   {
-PythonAPI::evalScript("exitInterface_class_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_class_item", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_class_method(SV3_1aParser::Interface_class_methodContext * ctx)   {
-PythonAPI::evalScript("enterInterface_class_method", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_class_method", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_class_method(SV3_1aParser::Interface_class_methodContext * ctx)   {
-PythonAPI::evalScript("exitInterface_class_method", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_class_method", this, (parser_rule_context*) ctx);
 }
 
    void enterEndpackage(SV3_1aParser::EndpackageContext * ctx)   {
-PythonAPI::evalScript("enterEndpackage", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndpackage", this, (parser_rule_context*) ctx);
 }
 
    void exitEndpackage(SV3_1aParser::EndpackageContext * ctx)   {
-PythonAPI::evalScript("exitEndpackage", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndpackage", this, (parser_rule_context*) ctx);
 }
 
    void enterPackage_declaration(SV3_1aParser::Package_declarationContext * ctx)   {
-PythonAPI::evalScript("enterPackage_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPackage_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitPackage_declaration(SV3_1aParser::Package_declarationContext * ctx)   {
-PythonAPI::evalScript("exitPackage_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPackage_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterTimeUnitsDecl_TimeUnitDiv(SV3_1aParser::TimeUnitsDecl_TimeUnitDivContext * ctx)   {
-PythonAPI::evalScript("enterTimeUnitsDecl_TimeUnitDiv", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTimeUnitsDecl_TimeUnitDiv", this, (parser_rule_context*) ctx);
 }
 
    void exitTimeUnitsDecl_TimeUnitDiv(SV3_1aParser::TimeUnitsDecl_TimeUnitDivContext * ctx)   {
-PythonAPI::evalScript("exitTimeUnitsDecl_TimeUnitDiv", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTimeUnitsDecl_TimeUnitDiv", this, (parser_rule_context*) ctx);
 }
 
    void enterTimeUnitsDecl_TimeUnit(SV3_1aParser::TimeUnitsDecl_TimeUnitContext * ctx)   {
-PythonAPI::evalScript("enterTimeUnitsDecl_TimeUnit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTimeUnitsDecl_TimeUnit", this, (parser_rule_context*) ctx);
 }
 
    void exitTimeUnitsDecl_TimeUnit(SV3_1aParser::TimeUnitsDecl_TimeUnitContext * ctx)   {
-PythonAPI::evalScript("exitTimeUnitsDecl_TimeUnit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTimeUnitsDecl_TimeUnit", this, (parser_rule_context*) ctx);
 }
 
    void enterTimeUnitsDecl_TimePrecision(SV3_1aParser::TimeUnitsDecl_TimePrecisionContext * ctx)   {
-PythonAPI::evalScript("enterTimeUnitsDecl_TimePrecision", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTimeUnitsDecl_TimePrecision", this, (parser_rule_context*) ctx);
 }
 
    void exitTimeUnitsDecl_TimePrecision(SV3_1aParser::TimeUnitsDecl_TimePrecisionContext * ctx)   {
-PythonAPI::evalScript("exitTimeUnitsDecl_TimePrecision", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTimeUnitsDecl_TimePrecision", this, (parser_rule_context*) ctx);
 }
 
    void enterTimeUnitsDecl_TimeUnitTimePrecision(SV3_1aParser::TimeUnitsDecl_TimeUnitTimePrecisionContext * ctx)   {
-PythonAPI::evalScript("enterTimeUnitsDecl_TimeUnitTimePrecision", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTimeUnitsDecl_TimeUnitTimePrecision", this, (parser_rule_context*) ctx);
 }
 
    void exitTimeUnitsDecl_TimeUnitTimePrecision(SV3_1aParser::TimeUnitsDecl_TimeUnitTimePrecisionContext * ctx)   {
-PythonAPI::evalScript("exitTimeUnitsDecl_TimeUnitTimePrecision", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTimeUnitsDecl_TimeUnitTimePrecision", this, (parser_rule_context*) ctx);
 }
 
    void enterTimeUnitsDecl_TimePrecisionTimeUnit(SV3_1aParser::TimeUnitsDecl_TimePrecisionTimeUnitContext * ctx)   {
-PythonAPI::evalScript("enterTimeUnitsDecl_TimePrecisionTimeUnit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTimeUnitsDecl_TimePrecisionTimeUnit", this, (parser_rule_context*) ctx);
 }
 
    void exitTimeUnitsDecl_TimePrecisionTimeUnit(SV3_1aParser::TimeUnitsDecl_TimePrecisionTimeUnitContext * ctx)   {
-PythonAPI::evalScript("exitTimeUnitsDecl_TimePrecisionTimeUnit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTimeUnitsDecl_TimePrecisionTimeUnit", this, (parser_rule_context*) ctx);
 }
 
    void enterParameter_port_list(SV3_1aParser::Parameter_port_listContext * ctx)   {
-PythonAPI::evalScript("enterParameter_port_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterParameter_port_list", this, (parser_rule_context*) ctx);
 }
 
    void exitParameter_port_list(SV3_1aParser::Parameter_port_listContext * ctx)   {
-PythonAPI::evalScript("exitParameter_port_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitParameter_port_list", this, (parser_rule_context*) ctx);
 }
 
    void enterParameter_port_declaration(SV3_1aParser::Parameter_port_declarationContext * ctx)   {
-PythonAPI::evalScript("enterParameter_port_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterParameter_port_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitParameter_port_declaration(SV3_1aParser::Parameter_port_declarationContext * ctx)   {
-PythonAPI::evalScript("exitParameter_port_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitParameter_port_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_ports(SV3_1aParser::List_of_portsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_ports", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_ports", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_ports(SV3_1aParser::List_of_portsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_ports", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_ports", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_port_declarations(SV3_1aParser::List_of_port_declarationsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_port_declarations", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_port_declarations", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_port_declarations(SV3_1aParser::List_of_port_declarationsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_port_declarations", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_port_declarations", this, (parser_rule_context*) ctx);
 }
 
    void enterPort_declaration(SV3_1aParser::Port_declarationContext * ctx)   {
-PythonAPI::evalScript("enterPort_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPort_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitPort_declaration(SV3_1aParser::Port_declarationContext * ctx)   {
-PythonAPI::evalScript("exitPort_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPort_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterPort(SV3_1aParser::PortContext * ctx)   {
-PythonAPI::evalScript("enterPort", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPort", this, (parser_rule_context*) ctx);
 }
 
    void exitPort(SV3_1aParser::PortContext * ctx)   {
-PythonAPI::evalScript("exitPort", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPort", this, (parser_rule_context*) ctx);
 }
 
    void enterPort_expression(SV3_1aParser::Port_expressionContext * ctx)   {
-PythonAPI::evalScript("enterPort_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPort_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitPort_expression(SV3_1aParser::Port_expressionContext * ctx)   {
-PythonAPI::evalScript("exitPort_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPort_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterPort_reference(SV3_1aParser::Port_referenceContext * ctx)   {
-PythonAPI::evalScript("enterPort_reference", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPort_reference", this, (parser_rule_context*) ctx);
 }
 
    void exitPort_reference(SV3_1aParser::Port_referenceContext * ctx)   {
-PythonAPI::evalScript("exitPort_reference", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPort_reference", this, (parser_rule_context*) ctx);
 }
 
    void enterPortDir_Inp(SV3_1aParser::PortDir_InpContext * ctx)   {
-PythonAPI::evalScript("enterPortDir_Inp", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPortDir_Inp", this, (parser_rule_context*) ctx);
 }
 
    void exitPortDir_Inp(SV3_1aParser::PortDir_InpContext * ctx)   {
-PythonAPI::evalScript("exitPortDir_Inp", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPortDir_Inp", this, (parser_rule_context*) ctx);
 }
 
    void enterPortDir_Out(SV3_1aParser::PortDir_OutContext * ctx)   {
-PythonAPI::evalScript("enterPortDir_Out", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPortDir_Out", this, (parser_rule_context*) ctx);
 }
 
    void exitPortDir_Out(SV3_1aParser::PortDir_OutContext * ctx)   {
-PythonAPI::evalScript("exitPortDir_Out", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPortDir_Out", this, (parser_rule_context*) ctx);
 }
 
    void enterPortDir_Inout(SV3_1aParser::PortDir_InoutContext * ctx)   {
-PythonAPI::evalScript("enterPortDir_Inout", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPortDir_Inout", this, (parser_rule_context*) ctx);
 }
 
    void exitPortDir_Inout(SV3_1aParser::PortDir_InoutContext * ctx)   {
-PythonAPI::evalScript("exitPortDir_Inout", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPortDir_Inout", this, (parser_rule_context*) ctx);
 }
 
    void enterPortDir_Ref(SV3_1aParser::PortDir_RefContext * ctx)   {
-PythonAPI::evalScript("enterPortDir_Ref", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPortDir_Ref", this, (parser_rule_context*) ctx);
 }
 
    void exitPortDir_Ref(SV3_1aParser::PortDir_RefContext * ctx)   {
-PythonAPI::evalScript("exitPortDir_Ref", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPortDir_Ref", this, (parser_rule_context*) ctx);
 }
 
    void enterNet_port_header(SV3_1aParser::Net_port_headerContext * ctx)   {
-PythonAPI::evalScript("enterNet_port_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNet_port_header", this, (parser_rule_context*) ctx);
 }
 
    void exitNet_port_header(SV3_1aParser::Net_port_headerContext * ctx)   {
-PythonAPI::evalScript("exitNet_port_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNet_port_header", this, (parser_rule_context*) ctx);
 }
 
    void enterVariable_port_header(SV3_1aParser::Variable_port_headerContext * ctx)   {
-PythonAPI::evalScript("enterVariable_port_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterVariable_port_header", this, (parser_rule_context*) ctx);
 }
 
    void exitVariable_port_header(SV3_1aParser::Variable_port_headerContext * ctx)   {
-PythonAPI::evalScript("exitVariable_port_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitVariable_port_header", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_port_header(SV3_1aParser::Interface_port_headerContext * ctx)   {
-PythonAPI::evalScript("enterInterface_port_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_port_header", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_port_header(SV3_1aParser::Interface_port_headerContext * ctx)   {
-PythonAPI::evalScript("exitInterface_port_header", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_port_header", this, (parser_rule_context*) ctx);
 }
 
    void enterAnsi_port_declaration(SV3_1aParser::Ansi_port_declarationContext * ctx)   {
-PythonAPI::evalScript("enterAnsi_port_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAnsi_port_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitAnsi_port_declaration(SV3_1aParser::Ansi_port_declarationContext * ctx)   {
-PythonAPI::evalScript("exitAnsi_port_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAnsi_port_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterElaboration_system_task(SV3_1aParser::Elaboration_system_taskContext * ctx)   {
-PythonAPI::evalScript("enterElaboration_system_task", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterElaboration_system_task", this, (parser_rule_context*) ctx);
 }
 
    void exitElaboration_system_task(SV3_1aParser::Elaboration_system_taskContext * ctx)   {
-PythonAPI::evalScript("exitElaboration_system_task", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitElaboration_system_task", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_common_item(SV3_1aParser::Module_common_itemContext * ctx)   {
-PythonAPI::evalScript("enterModule_common_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_common_item", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_common_item(SV3_1aParser::Module_common_itemContext * ctx)   {
-PythonAPI::evalScript("exitModule_common_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_common_item", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_item(SV3_1aParser::Module_itemContext * ctx)   {
-PythonAPI::evalScript("enterModule_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_item", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_item(SV3_1aParser::Module_itemContext * ctx)   {
-PythonAPI::evalScript("exitModule_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_item", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_or_generate_item(SV3_1aParser::Module_or_generate_itemContext * ctx)   {
-PythonAPI::evalScript("enterModule_or_generate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_or_generate_item", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_or_generate_item(SV3_1aParser::Module_or_generate_itemContext * ctx)   {
-PythonAPI::evalScript("exitModule_or_generate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_or_generate_item", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_or_generate_item_declaration(SV3_1aParser::Module_or_generate_item_declarationContext * ctx)   {
-PythonAPI::evalScript("enterModule_or_generate_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_or_generate_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_or_generate_item_declaration(SV3_1aParser::Module_or_generate_item_declarationContext * ctx)   {
-PythonAPI::evalScript("exitModule_or_generate_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_or_generate_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterNon_port_module_item(SV3_1aParser::Non_port_module_itemContext * ctx)   {
-PythonAPI::evalScript("enterNon_port_module_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNon_port_module_item", this, (parser_rule_context*) ctx);
 }
 
    void exitNon_port_module_item(SV3_1aParser::Non_port_module_itemContext * ctx)   {
-PythonAPI::evalScript("exitNon_port_module_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNon_port_module_item", this, (parser_rule_context*) ctx);
 }
 
    void enterParameter_override(SV3_1aParser::Parameter_overrideContext * ctx)   {
-PythonAPI::evalScript("enterParameter_override", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterParameter_override", this, (parser_rule_context*) ctx);
 }
 
    void exitParameter_override(SV3_1aParser::Parameter_overrideContext * ctx)   {
-PythonAPI::evalScript("exitParameter_override", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitParameter_override", this, (parser_rule_context*) ctx);
 }
 
    void enterBind_directive(SV3_1aParser::Bind_directiveContext * ctx)   {
-PythonAPI::evalScript("enterBind_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBind_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitBind_directive(SV3_1aParser::Bind_directiveContext * ctx)   {
-PythonAPI::evalScript("exitBind_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBind_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterBind_instantiation(SV3_1aParser::Bind_instantiationContext * ctx)   {
-PythonAPI::evalScript("enterBind_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBind_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void exitBind_instantiation(SV3_1aParser::Bind_instantiationContext * ctx)   {
-PythonAPI::evalScript("exitBind_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBind_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_or_generate_item(SV3_1aParser::Interface_or_generate_itemContext * ctx)   {
-PythonAPI::evalScript("enterInterface_or_generate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_or_generate_item", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_or_generate_item(SV3_1aParser::Interface_or_generate_itemContext * ctx)   {
-PythonAPI::evalScript("exitInterface_or_generate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_or_generate_item", this, (parser_rule_context*) ctx);
 }
 
    void enterExtern_tf_declaration(SV3_1aParser::Extern_tf_declarationContext * ctx)   {
-PythonAPI::evalScript("enterExtern_tf_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterExtern_tf_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitExtern_tf_declaration(SV3_1aParser::Extern_tf_declarationContext * ctx)   {
-PythonAPI::evalScript("exitExtern_tf_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitExtern_tf_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_item(SV3_1aParser::Interface_itemContext * ctx)   {
-PythonAPI::evalScript("enterInterface_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_item", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_item(SV3_1aParser::Interface_itemContext * ctx)   {
-PythonAPI::evalScript("exitInterface_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_item", this, (parser_rule_context*) ctx);
 }
 
    void enterNon_port_interface_item(SV3_1aParser::Non_port_interface_itemContext * ctx)   {
-PythonAPI::evalScript("enterNon_port_interface_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNon_port_interface_item", this, (parser_rule_context*) ctx);
 }
 
    void exitNon_port_interface_item(SV3_1aParser::Non_port_interface_itemContext * ctx)   {
-PythonAPI::evalScript("exitNon_port_interface_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNon_port_interface_item", this, (parser_rule_context*) ctx);
 }
 
    void enterProgram_item(SV3_1aParser::Program_itemContext * ctx)   {
-PythonAPI::evalScript("enterProgram_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProgram_item", this, (parser_rule_context*) ctx);
 }
 
    void exitProgram_item(SV3_1aParser::Program_itemContext * ctx)   {
-PythonAPI::evalScript("exitProgram_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProgram_item", this, (parser_rule_context*) ctx);
 }
 
    void enterNon_port_program_item(SV3_1aParser::Non_port_program_itemContext * ctx)   {
-PythonAPI::evalScript("enterNon_port_program_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNon_port_program_item", this, (parser_rule_context*) ctx);
 }
 
    void exitNon_port_program_item(SV3_1aParser::Non_port_program_itemContext * ctx)   {
-PythonAPI::evalScript("exitNon_port_program_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNon_port_program_item", this, (parser_rule_context*) ctx);
 }
 
    void enterProgram_generate_item(SV3_1aParser::Program_generate_itemContext * ctx)   {
-PythonAPI::evalScript("enterProgram_generate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProgram_generate_item", this, (parser_rule_context*) ctx);
 }
 
    void exitProgram_generate_item(SV3_1aParser::Program_generate_itemContext * ctx)   {
-PythonAPI::evalScript("exitProgram_generate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProgram_generate_item", this, (parser_rule_context*) ctx);
 }
 
    void enterChecker_port_list(SV3_1aParser::Checker_port_listContext * ctx)   {
-PythonAPI::evalScript("enterChecker_port_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterChecker_port_list", this, (parser_rule_context*) ctx);
 }
 
    void exitChecker_port_list(SV3_1aParser::Checker_port_listContext * ctx)   {
-PythonAPI::evalScript("exitChecker_port_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitChecker_port_list", this, (parser_rule_context*) ctx);
 }
 
    void enterChecker_port_item(SV3_1aParser::Checker_port_itemContext * ctx)   {
-PythonAPI::evalScript("enterChecker_port_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterChecker_port_item", this, (parser_rule_context*) ctx);
 }
 
    void exitChecker_port_item(SV3_1aParser::Checker_port_itemContext * ctx)   {
-PythonAPI::evalScript("exitChecker_port_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitChecker_port_item", this, (parser_rule_context*) ctx);
 }
 
    void enterChecker_or_generate_item(SV3_1aParser::Checker_or_generate_itemContext * ctx)   {
-PythonAPI::evalScript("enterChecker_or_generate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterChecker_or_generate_item", this, (parser_rule_context*) ctx);
 }
 
    void exitChecker_or_generate_item(SV3_1aParser::Checker_or_generate_itemContext * ctx)   {
-PythonAPI::evalScript("exitChecker_or_generate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitChecker_or_generate_item", this, (parser_rule_context*) ctx);
 }
 
    void enterChecker_or_generate_item_declaration(SV3_1aParser::Checker_or_generate_item_declarationContext * ctx)   {
-PythonAPI::evalScript("enterChecker_or_generate_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterChecker_or_generate_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitChecker_or_generate_item_declaration(SV3_1aParser::Checker_or_generate_item_declarationContext * ctx)   {
-PythonAPI::evalScript("exitChecker_or_generate_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitChecker_or_generate_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterChecker_generate_item(SV3_1aParser::Checker_generate_itemContext * ctx)   {
-PythonAPI::evalScript("enterChecker_generate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterChecker_generate_item", this, (parser_rule_context*) ctx);
 }
 
    void exitChecker_generate_item(SV3_1aParser::Checker_generate_itemContext * ctx)   {
-PythonAPI::evalScript("exitChecker_generate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitChecker_generate_item", this, (parser_rule_context*) ctx);
 }
 
    void enterClass_item(SV3_1aParser::Class_itemContext * ctx)   {
-PythonAPI::evalScript("enterClass_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClass_item", this, (parser_rule_context*) ctx);
 }
 
    void exitClass_item(SV3_1aParser::Class_itemContext * ctx)   {
-PythonAPI::evalScript("exitClass_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClass_item", this, (parser_rule_context*) ctx);
 }
 
    void enterClass_property(SV3_1aParser::Class_propertyContext * ctx)   {
-PythonAPI::evalScript("enterClass_property", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClass_property", this, (parser_rule_context*) ctx);
 }
 
    void exitClass_property(SV3_1aParser::Class_propertyContext * ctx)   {
-PythonAPI::evalScript("exitClass_property", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClass_property", this, (parser_rule_context*) ctx);
 }
 
    void enterPure_virtual_qualifier(SV3_1aParser::Pure_virtual_qualifierContext * ctx)   {
-PythonAPI::evalScript("enterPure_virtual_qualifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPure_virtual_qualifier", this, (parser_rule_context*) ctx);
 }
 
    void exitPure_virtual_qualifier(SV3_1aParser::Pure_virtual_qualifierContext * ctx)   {
-PythonAPI::evalScript("exitPure_virtual_qualifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPure_virtual_qualifier", this, (parser_rule_context*) ctx);
 }
 
    void enterExtern_qualifier(SV3_1aParser::Extern_qualifierContext * ctx)   {
-PythonAPI::evalScript("enterExtern_qualifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterExtern_qualifier", this, (parser_rule_context*) ctx);
 }
 
    void exitExtern_qualifier(SV3_1aParser::Extern_qualifierContext * ctx)   {
-PythonAPI::evalScript("exitExtern_qualifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitExtern_qualifier", this, (parser_rule_context*) ctx);
 }
 
    void enterClass_method(SV3_1aParser::Class_methodContext * ctx)   {
-PythonAPI::evalScript("enterClass_method", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClass_method", this, (parser_rule_context*) ctx);
 }
 
    void exitClass_method(SV3_1aParser::Class_methodContext * ctx)   {
-PythonAPI::evalScript("exitClass_method", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClass_method", this, (parser_rule_context*) ctx);
 }
 
    void enterClass_constructor_prototype(SV3_1aParser::Class_constructor_prototypeContext * ctx)   {
-PythonAPI::evalScript("enterClass_constructor_prototype", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClass_constructor_prototype", this, (parser_rule_context*) ctx);
 }
 
    void exitClass_constructor_prototype(SV3_1aParser::Class_constructor_prototypeContext * ctx)   {
-PythonAPI::evalScript("exitClass_constructor_prototype", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClass_constructor_prototype", this, (parser_rule_context*) ctx);
 }
 
    void enterClass_constraint(SV3_1aParser::Class_constraintContext * ctx)   {
-PythonAPI::evalScript("enterClass_constraint", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClass_constraint", this, (parser_rule_context*) ctx);
 }
 
    void exitClass_constraint(SV3_1aParser::Class_constraintContext * ctx)   {
-PythonAPI::evalScript("exitClass_constraint", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClass_constraint", this, (parser_rule_context*) ctx);
 }
 
    void enterClassItemQualifier_Static(SV3_1aParser::ClassItemQualifier_StaticContext * ctx)   {
-PythonAPI::evalScript("enterClassItemQualifier_Static", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClassItemQualifier_Static", this, (parser_rule_context*) ctx);
 }
 
    void exitClassItemQualifier_Static(SV3_1aParser::ClassItemQualifier_StaticContext * ctx)   {
-PythonAPI::evalScript("exitClassItemQualifier_Static", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClassItemQualifier_Static", this, (parser_rule_context*) ctx);
 }
 
    void enterClassItemQualifier_Protected(SV3_1aParser::ClassItemQualifier_ProtectedContext * ctx)   {
-PythonAPI::evalScript("enterClassItemQualifier_Protected", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClassItemQualifier_Protected", this, (parser_rule_context*) ctx);
 }
 
    void exitClassItemQualifier_Protected(SV3_1aParser::ClassItemQualifier_ProtectedContext * ctx)   {
-PythonAPI::evalScript("exitClassItemQualifier_Protected", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClassItemQualifier_Protected", this, (parser_rule_context*) ctx);
 }
 
    void enterClassItemQualifier_Local(SV3_1aParser::ClassItemQualifier_LocalContext * ctx)   {
-PythonAPI::evalScript("enterClassItemQualifier_Local", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClassItemQualifier_Local", this, (parser_rule_context*) ctx);
 }
 
    void exitClassItemQualifier_Local(SV3_1aParser::ClassItemQualifier_LocalContext * ctx)   {
-PythonAPI::evalScript("exitClassItemQualifier_Local", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClassItemQualifier_Local", this, (parser_rule_context*) ctx);
 }
 
    void enterPropQualifier_Rand(SV3_1aParser::PropQualifier_RandContext * ctx)   {
-PythonAPI::evalScript("enterPropQualifier_Rand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPropQualifier_Rand", this, (parser_rule_context*) ctx);
 }
 
    void exitPropQualifier_Rand(SV3_1aParser::PropQualifier_RandContext * ctx)   {
-PythonAPI::evalScript("exitPropQualifier_Rand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPropQualifier_Rand", this, (parser_rule_context*) ctx);
 }
 
    void enterPropQualifier_Randc(SV3_1aParser::PropQualifier_RandcContext * ctx)   {
-PythonAPI::evalScript("enterPropQualifier_Randc", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPropQualifier_Randc", this, (parser_rule_context*) ctx);
 }
 
    void exitPropQualifier_Randc(SV3_1aParser::PropQualifier_RandcContext * ctx)   {
-PythonAPI::evalScript("exitPropQualifier_Randc", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPropQualifier_Randc", this, (parser_rule_context*) ctx);
 }
 
    void enterPropQualifier_ClassItem(SV3_1aParser::PropQualifier_ClassItemContext * ctx)   {
-PythonAPI::evalScript("enterPropQualifier_ClassItem", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPropQualifier_ClassItem", this, (parser_rule_context*) ctx);
 }
 
    void exitPropQualifier_ClassItem(SV3_1aParser::PropQualifier_ClassItemContext * ctx)   {
-PythonAPI::evalScript("exitPropQualifier_ClassItem", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPropQualifier_ClassItem", this, (parser_rule_context*) ctx);
 }
 
    void enterMethodQualifier_Virtual(SV3_1aParser::MethodQualifier_VirtualContext * ctx)   {
-PythonAPI::evalScript("enterMethodQualifier_Virtual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterMethodQualifier_Virtual", this, (parser_rule_context*) ctx);
 }
 
    void exitMethodQualifier_Virtual(SV3_1aParser::MethodQualifier_VirtualContext * ctx)   {
-PythonAPI::evalScript("exitMethodQualifier_Virtual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitMethodQualifier_Virtual", this, (parser_rule_context*) ctx);
 }
 
    void enterMethodQualifier_ClassItem(SV3_1aParser::MethodQualifier_ClassItemContext * ctx)   {
-PythonAPI::evalScript("enterMethodQualifier_ClassItem", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterMethodQualifier_ClassItem", this, (parser_rule_context*) ctx);
 }
 
    void exitMethodQualifier_ClassItem(SV3_1aParser::MethodQualifier_ClassItemContext * ctx)   {
-PythonAPI::evalScript("exitMethodQualifier_ClassItem", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitMethodQualifier_ClassItem", this, (parser_rule_context*) ctx);
 }
 
    void enterMethod_prototype(SV3_1aParser::Method_prototypeContext * ctx)   {
-PythonAPI::evalScript("enterMethod_prototype", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterMethod_prototype", this, (parser_rule_context*) ctx);
 }
 
    void exitMethod_prototype(SV3_1aParser::Method_prototypeContext * ctx)   {
-PythonAPI::evalScript("exitMethod_prototype", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitMethod_prototype", this, (parser_rule_context*) ctx);
 }
 
    void enterSuper_dot_new(SV3_1aParser::Super_dot_newContext * ctx)   {
-PythonAPI::evalScript("enterSuper_dot_new", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSuper_dot_new", this, (parser_rule_context*) ctx);
 }
 
    void exitSuper_dot_new(SV3_1aParser::Super_dot_newContext * ctx)   {
-PythonAPI::evalScript("exitSuper_dot_new", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSuper_dot_new", this, (parser_rule_context*) ctx);
 }
 
    void enterClass_constructor_declaration(SV3_1aParser::Class_constructor_declarationContext * ctx)   {
-PythonAPI::evalScript("enterClass_constructor_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClass_constructor_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitClass_constructor_declaration(SV3_1aParser::Class_constructor_declarationContext * ctx)   {
-PythonAPI::evalScript("exitClass_constructor_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClass_constructor_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterConstraint_declaration(SV3_1aParser::Constraint_declarationContext * ctx)   {
-PythonAPI::evalScript("enterConstraint_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstraint_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitConstraint_declaration(SV3_1aParser::Constraint_declarationContext * ctx)   {
-PythonAPI::evalScript("exitConstraint_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstraint_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterConstraint_block(SV3_1aParser::Constraint_blockContext * ctx)   {
-PythonAPI::evalScript("enterConstraint_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstraint_block", this, (parser_rule_context*) ctx);
 }
 
    void exitConstraint_block(SV3_1aParser::Constraint_blockContext * ctx)   {
-PythonAPI::evalScript("exitConstraint_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstraint_block", this, (parser_rule_context*) ctx);
 }
 
    void enterConstraint_block_item(SV3_1aParser::Constraint_block_itemContext * ctx)   {
-PythonAPI::evalScript("enterConstraint_block_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstraint_block_item", this, (parser_rule_context*) ctx);
 }
 
    void exitConstraint_block_item(SV3_1aParser::Constraint_block_itemContext * ctx)   {
-PythonAPI::evalScript("exitConstraint_block_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstraint_block_item", this, (parser_rule_context*) ctx);
 }
 
    void enterSolve_before_list(SV3_1aParser::Solve_before_listContext * ctx)   {
-PythonAPI::evalScript("enterSolve_before_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSolve_before_list", this, (parser_rule_context*) ctx);
 }
 
    void exitSolve_before_list(SV3_1aParser::Solve_before_listContext * ctx)   {
-PythonAPI::evalScript("exitSolve_before_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSolve_before_list", this, (parser_rule_context*) ctx);
 }
 
    void enterConstraint_primary(SV3_1aParser::Constraint_primaryContext * ctx)   {
-PythonAPI::evalScript("enterConstraint_primary", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstraint_primary", this, (parser_rule_context*) ctx);
 }
 
    void exitConstraint_primary(SV3_1aParser::Constraint_primaryContext * ctx)   {
-PythonAPI::evalScript("exitConstraint_primary", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstraint_primary", this, (parser_rule_context*) ctx);
 }
 
    void enterConstraint_expression(SV3_1aParser::Constraint_expressionContext * ctx)   {
-PythonAPI::evalScript("enterConstraint_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstraint_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitConstraint_expression(SV3_1aParser::Constraint_expressionContext * ctx)   {
-PythonAPI::evalScript("exitConstraint_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstraint_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterUniqueness_constraint(SV3_1aParser::Uniqueness_constraintContext * ctx)   {
-PythonAPI::evalScript("enterUniqueness_constraint", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUniqueness_constraint", this, (parser_rule_context*) ctx);
 }
 
    void exitUniqueness_constraint(SV3_1aParser::Uniqueness_constraintContext * ctx)   {
-PythonAPI::evalScript("exitUniqueness_constraint", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUniqueness_constraint", this, (parser_rule_context*) ctx);
 }
 
    void enterConstraint_set(SV3_1aParser::Constraint_setContext * ctx)   {
-PythonAPI::evalScript("enterConstraint_set", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstraint_set", this, (parser_rule_context*) ctx);
 }
 
    void exitConstraint_set(SV3_1aParser::Constraint_setContext * ctx)   {
-PythonAPI::evalScript("exitConstraint_set", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstraint_set", this, (parser_rule_context*) ctx);
 }
 
    void enterDist_list(SV3_1aParser::Dist_listContext * ctx)   {
-PythonAPI::evalScript("enterDist_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDist_list", this, (parser_rule_context*) ctx);
 }
 
    void exitDist_list(SV3_1aParser::Dist_listContext * ctx)   {
-PythonAPI::evalScript("exitDist_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDist_list", this, (parser_rule_context*) ctx);
 }
 
    void enterDist_item(SV3_1aParser::Dist_itemContext * ctx)   {
-PythonAPI::evalScript("enterDist_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDist_item", this, (parser_rule_context*) ctx);
 }
 
    void exitDist_item(SV3_1aParser::Dist_itemContext * ctx)   {
-PythonAPI::evalScript("exitDist_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDist_item", this, (parser_rule_context*) ctx);
 }
 
    void enterDistWeight_AssignValue(SV3_1aParser::DistWeight_AssignValueContext * ctx)   {
-PythonAPI::evalScript("enterDistWeight_AssignValue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDistWeight_AssignValue", this, (parser_rule_context*) ctx);
 }
 
    void exitDistWeight_AssignValue(SV3_1aParser::DistWeight_AssignValueContext * ctx)   {
-PythonAPI::evalScript("exitDistWeight_AssignValue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDistWeight_AssignValue", this, (parser_rule_context*) ctx);
 }
 
    void enterDistWeight_AssignRange(SV3_1aParser::DistWeight_AssignRangeContext * ctx)   {
-PythonAPI::evalScript("enterDistWeight_AssignRange", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDistWeight_AssignRange", this, (parser_rule_context*) ctx);
 }
 
    void exitDistWeight_AssignRange(SV3_1aParser::DistWeight_AssignRangeContext * ctx)   {
-PythonAPI::evalScript("exitDistWeight_AssignRange", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDistWeight_AssignRange", this, (parser_rule_context*) ctx);
 }
 
    void enterConstraint_prototype(SV3_1aParser::Constraint_prototypeContext * ctx)   {
-PythonAPI::evalScript("enterConstraint_prototype", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstraint_prototype", this, (parser_rule_context*) ctx);
 }
 
    void exitConstraint_prototype(SV3_1aParser::Constraint_prototypeContext * ctx)   {
-PythonAPI::evalScript("exitConstraint_prototype", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstraint_prototype", this, (parser_rule_context*) ctx);
 }
 
    void enterExtern_constraint_declaration(SV3_1aParser::Extern_constraint_declarationContext * ctx)   {
-PythonAPI::evalScript("enterExtern_constraint_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterExtern_constraint_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitExtern_constraint_declaration(SV3_1aParser::Extern_constraint_declarationContext * ctx)   {
-PythonAPI::evalScript("exitExtern_constraint_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitExtern_constraint_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterIdentifier_list(SV3_1aParser::Identifier_listContext * ctx)   {
-PythonAPI::evalScript("enterIdentifier_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIdentifier_list", this, (parser_rule_context*) ctx);
 }
 
    void exitIdentifier_list(SV3_1aParser::Identifier_listContext * ctx)   {
-PythonAPI::evalScript("exitIdentifier_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIdentifier_list", this, (parser_rule_context*) ctx);
 }
 
    void enterPackage_item(SV3_1aParser::Package_itemContext * ctx)   {
-PythonAPI::evalScript("enterPackage_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPackage_item", this, (parser_rule_context*) ctx);
 }
 
    void exitPackage_item(SV3_1aParser::Package_itemContext * ctx)   {
-PythonAPI::evalScript("exitPackage_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPackage_item", this, (parser_rule_context*) ctx);
 }
 
    void enterPackage_or_generate_item_declaration(SV3_1aParser::Package_or_generate_item_declarationContext * ctx)   {
-PythonAPI::evalScript("enterPackage_or_generate_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPackage_or_generate_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitPackage_or_generate_item_declaration(SV3_1aParser::Package_or_generate_item_declarationContext * ctx)   {
-PythonAPI::evalScript("exitPackage_or_generate_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPackage_or_generate_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterAnonymous_program(SV3_1aParser::Anonymous_programContext * ctx)   {
-PythonAPI::evalScript("enterAnonymous_program", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAnonymous_program", this, (parser_rule_context*) ctx);
 }
 
    void exitAnonymous_program(SV3_1aParser::Anonymous_programContext * ctx)   {
-PythonAPI::evalScript("exitAnonymous_program", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAnonymous_program", this, (parser_rule_context*) ctx);
 }
 
    void enterAnonymous_program_item(SV3_1aParser::Anonymous_program_itemContext * ctx)   {
-PythonAPI::evalScript("enterAnonymous_program_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAnonymous_program_item", this, (parser_rule_context*) ctx);
 }
 
    void exitAnonymous_program_item(SV3_1aParser::Anonymous_program_itemContext * ctx)   {
-PythonAPI::evalScript("exitAnonymous_program_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAnonymous_program_item", this, (parser_rule_context*) ctx);
 }
 
    void enterLocal_parameter_declaration(SV3_1aParser::Local_parameter_declarationContext * ctx)   {
-PythonAPI::evalScript("enterLocal_parameter_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLocal_parameter_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitLocal_parameter_declaration(SV3_1aParser::Local_parameter_declarationContext * ctx)   {
-PythonAPI::evalScript("exitLocal_parameter_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLocal_parameter_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterParameter_declaration(SV3_1aParser::Parameter_declarationContext * ctx)   {
-PythonAPI::evalScript("enterParameter_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterParameter_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitParameter_declaration(SV3_1aParser::Parameter_declarationContext * ctx)   {
-PythonAPI::evalScript("exitParameter_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitParameter_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterSpecparam_declaration(SV3_1aParser::Specparam_declarationContext * ctx)   {
-PythonAPI::evalScript("enterSpecparam_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSpecparam_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitSpecparam_declaration(SV3_1aParser::Specparam_declarationContext * ctx)   {
-PythonAPI::evalScript("exitSpecparam_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSpecparam_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterInout_declaration(SV3_1aParser::Inout_declarationContext * ctx)   {
-PythonAPI::evalScript("enterInout_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInout_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitInout_declaration(SV3_1aParser::Inout_declarationContext * ctx)   {
-PythonAPI::evalScript("exitInout_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInout_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterInput_declaration(SV3_1aParser::Input_declarationContext * ctx)   {
-PythonAPI::evalScript("enterInput_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInput_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitInput_declaration(SV3_1aParser::Input_declarationContext * ctx)   {
-PythonAPI::evalScript("exitInput_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInput_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterOutput_declaration(SV3_1aParser::Output_declarationContext * ctx)   {
-PythonAPI::evalScript("enterOutput_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOutput_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitOutput_declaration(SV3_1aParser::Output_declarationContext * ctx)   {
-PythonAPI::evalScript("exitOutput_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOutput_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_port_declaration(SV3_1aParser::Interface_port_declarationContext * ctx)   {
-PythonAPI::evalScript("enterInterface_port_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_port_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_port_declaration(SV3_1aParser::Interface_port_declarationContext * ctx)   {
-PythonAPI::evalScript("exitInterface_port_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_port_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterRef_declaration(SV3_1aParser::Ref_declarationContext * ctx)   {
-PythonAPI::evalScript("enterRef_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRef_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitRef_declaration(SV3_1aParser::Ref_declarationContext * ctx)   {
-PythonAPI::evalScript("exitRef_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRef_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterData_declaration(SV3_1aParser::Data_declarationContext * ctx)   {
-PythonAPI::evalScript("enterData_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterData_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitData_declaration(SV3_1aParser::Data_declarationContext * ctx)   {
-PythonAPI::evalScript("exitData_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitData_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterVariable_declaration(SV3_1aParser::Variable_declarationContext * ctx)   {
-PythonAPI::evalScript("enterVariable_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterVariable_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitVariable_declaration(SV3_1aParser::Variable_declarationContext * ctx)   {
-PythonAPI::evalScript("exitVariable_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitVariable_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterPackage_import_declaration(SV3_1aParser::Package_import_declarationContext * ctx)   {
-PythonAPI::evalScript("enterPackage_import_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPackage_import_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitPackage_import_declaration(SV3_1aParser::Package_import_declarationContext * ctx)   {
-PythonAPI::evalScript("exitPackage_import_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPackage_import_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterPackage_import_item(SV3_1aParser::Package_import_itemContext * ctx)   {
-PythonAPI::evalScript("enterPackage_import_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPackage_import_item", this, (parser_rule_context*) ctx);
 }
 
    void exitPackage_import_item(SV3_1aParser::Package_import_itemContext * ctx)   {
-PythonAPI::evalScript("exitPackage_import_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPackage_import_item", this, (parser_rule_context*) ctx);
 }
 
    void enterPackage_export_declaration(SV3_1aParser::Package_export_declarationContext * ctx)   {
-PythonAPI::evalScript("enterPackage_export_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPackage_export_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitPackage_export_declaration(SV3_1aParser::Package_export_declarationContext * ctx)   {
-PythonAPI::evalScript("exitPackage_export_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPackage_export_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterGenvar_declaration(SV3_1aParser::Genvar_declarationContext * ctx)   {
-PythonAPI::evalScript("enterGenvar_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenvar_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitGenvar_declaration(SV3_1aParser::Genvar_declarationContext * ctx)   {
-PythonAPI::evalScript("exitGenvar_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenvar_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterNet_declaration(SV3_1aParser::Net_declarationContext * ctx)   {
-PythonAPI::evalScript("enterNet_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNet_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitNet_declaration(SV3_1aParser::Net_declarationContext * ctx)   {
-PythonAPI::evalScript("exitNet_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNet_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterType_declaration(SV3_1aParser::Type_declarationContext * ctx)   {
-PythonAPI::evalScript("enterType_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterType_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitType_declaration(SV3_1aParser::Type_declarationContext * ctx)   {
-PythonAPI::evalScript("exitType_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitType_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterEnum_keyword(SV3_1aParser::Enum_keywordContext * ctx)   {
-PythonAPI::evalScript("enterEnum_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEnum_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitEnum_keyword(SV3_1aParser::Enum_keywordContext * ctx)   {
-PythonAPI::evalScript("exitEnum_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEnum_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterStruct_keyword(SV3_1aParser::Struct_keywordContext * ctx)   {
-PythonAPI::evalScript("enterStruct_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStruct_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitStruct_keyword(SV3_1aParser::Struct_keywordContext * ctx)   {
-PythonAPI::evalScript("exitStruct_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStruct_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterUnion_keyword(SV3_1aParser::Union_keywordContext * ctx)   {
-PythonAPI::evalScript("enterUnion_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnion_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitUnion_keyword(SV3_1aParser::Union_keywordContext * ctx)   {
-PythonAPI::evalScript("exitUnion_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnion_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterClass_keyword(SV3_1aParser::Class_keywordContext * ctx)   {
-PythonAPI::evalScript("enterClass_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClass_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitClass_keyword(SV3_1aParser::Class_keywordContext * ctx)   {
-PythonAPI::evalScript("exitClass_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClass_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_class_keyword(SV3_1aParser::Interface_class_keywordContext * ctx)   {
-PythonAPI::evalScript("enterInterface_class_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_class_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_class_keyword(SV3_1aParser::Interface_class_keywordContext * ctx)   {
-PythonAPI::evalScript("exitInterface_class_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_class_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterNet_type_declaration(SV3_1aParser::Net_type_declarationContext * ctx)   {
-PythonAPI::evalScript("enterNet_type_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNet_type_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitNet_type_declaration(SV3_1aParser::Net_type_declarationContext * ctx)   {
-PythonAPI::evalScript("exitNet_type_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNet_type_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterLifetime_Static(SV3_1aParser::Lifetime_StaticContext * ctx)   {
-PythonAPI::evalScript("enterLifetime_Static", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLifetime_Static", this, (parser_rule_context*) ctx);
 }
 
    void exitLifetime_Static(SV3_1aParser::Lifetime_StaticContext * ctx)   {
-PythonAPI::evalScript("exitLifetime_Static", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLifetime_Static", this, (parser_rule_context*) ctx);
 }
 
    void enterLifetime_Automatic(SV3_1aParser::Lifetime_AutomaticContext * ctx)   {
-PythonAPI::evalScript("enterLifetime_Automatic", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLifetime_Automatic", this, (parser_rule_context*) ctx);
 }
 
    void exitLifetime_Automatic(SV3_1aParser::Lifetime_AutomaticContext * ctx)   {
-PythonAPI::evalScript("exitLifetime_Automatic", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLifetime_Automatic", this, (parser_rule_context*) ctx);
 }
 
    void enterCasting_type(SV3_1aParser::Casting_typeContext * ctx)   {
-PythonAPI::evalScript("enterCasting_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCasting_type", this, (parser_rule_context*) ctx);
 }
 
    void exitCasting_type(SV3_1aParser::Casting_typeContext * ctx)   {
-PythonAPI::evalScript("exitCasting_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCasting_type", this, (parser_rule_context*) ctx);
 }
 
    void enterData_type(SV3_1aParser::Data_typeContext * ctx)   {
-PythonAPI::evalScript("enterData_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterData_type", this, (parser_rule_context*) ctx);
 }
 
    void exitData_type(SV3_1aParser::Data_typeContext * ctx)   {
-PythonAPI::evalScript("exitData_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitData_type", this, (parser_rule_context*) ctx);
 }
 
    void enterPacked_keyword(SV3_1aParser::Packed_keywordContext * ctx)   {
-PythonAPI::evalScript("enterPacked_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPacked_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitPacked_keyword(SV3_1aParser::Packed_keywordContext * ctx)   {
-PythonAPI::evalScript("exitPacked_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPacked_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterString_type(SV3_1aParser::String_typeContext * ctx)   {
-PythonAPI::evalScript("enterString_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterString_type", this, (parser_rule_context*) ctx);
 }
 
    void exitString_type(SV3_1aParser::String_typeContext * ctx)   {
-PythonAPI::evalScript("exitString_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitString_type", this, (parser_rule_context*) ctx);
 }
 
    void enterString_value(SV3_1aParser::String_valueContext * ctx)   {
-PythonAPI::evalScript("enterString_value", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterString_value", this, (parser_rule_context*) ctx);
 }
 
    void exitString_value(SV3_1aParser::String_valueContext * ctx)   {
-PythonAPI::evalScript("exitString_value", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitString_value", this, (parser_rule_context*) ctx);
 }
 
    void enterChandle_type(SV3_1aParser::Chandle_typeContext * ctx)   {
-PythonAPI::evalScript("enterChandle_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterChandle_type", this, (parser_rule_context*) ctx);
 }
 
    void exitChandle_type(SV3_1aParser::Chandle_typeContext * ctx)   {
-PythonAPI::evalScript("exitChandle_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitChandle_type", this, (parser_rule_context*) ctx);
 }
 
    void enterEvent_type(SV3_1aParser::Event_typeContext * ctx)   {
-PythonAPI::evalScript("enterEvent_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEvent_type", this, (parser_rule_context*) ctx);
 }
 
    void exitEvent_type(SV3_1aParser::Event_typeContext * ctx)   {
-PythonAPI::evalScript("exitEvent_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEvent_type", this, (parser_rule_context*) ctx);
 }
 
    void enterConst_type(SV3_1aParser::Const_typeContext * ctx)   {
-PythonAPI::evalScript("enterConst_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConst_type", this, (parser_rule_context*) ctx);
 }
 
    void exitConst_type(SV3_1aParser::Const_typeContext * ctx)   {
-PythonAPI::evalScript("exitConst_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConst_type", this, (parser_rule_context*) ctx);
 }
 
    void enterData_type_or_implicit(SV3_1aParser::Data_type_or_implicitContext * ctx)   {
-PythonAPI::evalScript("enterData_type_or_implicit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterData_type_or_implicit", this, (parser_rule_context*) ctx);
 }
 
    void exitData_type_or_implicit(SV3_1aParser::Data_type_or_implicitContext * ctx)   {
-PythonAPI::evalScript("exitData_type_or_implicit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitData_type_or_implicit", this, (parser_rule_context*) ctx);
 }
 
    void enterImplicit_data_type(SV3_1aParser::Implicit_data_typeContext * ctx)   {
-PythonAPI::evalScript("enterImplicit_data_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterImplicit_data_type", this, (parser_rule_context*) ctx);
 }
 
    void exitImplicit_data_type(SV3_1aParser::Implicit_data_typeContext * ctx)   {
-PythonAPI::evalScript("exitImplicit_data_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitImplicit_data_type", this, (parser_rule_context*) ctx);
 }
 
    void enterEnum_base_type(SV3_1aParser::Enum_base_typeContext * ctx)   {
-PythonAPI::evalScript("enterEnum_base_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEnum_base_type", this, (parser_rule_context*) ctx);
 }
 
    void exitEnum_base_type(SV3_1aParser::Enum_base_typeContext * ctx)   {
-PythonAPI::evalScript("exitEnum_base_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEnum_base_type", this, (parser_rule_context*) ctx);
 }
 
    void enterEnum_name_declaration(SV3_1aParser::Enum_name_declarationContext * ctx)   {
-PythonAPI::evalScript("enterEnum_name_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEnum_name_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitEnum_name_declaration(SV3_1aParser::Enum_name_declarationContext * ctx)   {
-PythonAPI::evalScript("exitEnum_name_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEnum_name_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterClass_scope(SV3_1aParser::Class_scopeContext * ctx)   {
-PythonAPI::evalScript("enterClass_scope", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClass_scope", this, (parser_rule_context*) ctx);
 }
 
    void exitClass_scope(SV3_1aParser::Class_scopeContext * ctx)   {
-PythonAPI::evalScript("exitClass_scope", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClass_scope", this, (parser_rule_context*) ctx);
 }
 
    void enterClass_type(SV3_1aParser::Class_typeContext * ctx)   {
-PythonAPI::evalScript("enterClass_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClass_type", this, (parser_rule_context*) ctx);
 }
 
    void exitClass_type(SV3_1aParser::Class_typeContext * ctx)   {
-PythonAPI::evalScript("exitClass_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClass_type", this, (parser_rule_context*) ctx);
 }
 
    void enterInteger_type(SV3_1aParser::Integer_typeContext * ctx)   {
-PythonAPI::evalScript("enterInteger_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInteger_type", this, (parser_rule_context*) ctx);
 }
 
    void exitInteger_type(SV3_1aParser::Integer_typeContext * ctx)   {
-PythonAPI::evalScript("exitInteger_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInteger_type", this, (parser_rule_context*) ctx);
 }
 
    void enterIntegerAtomType_Byte(SV3_1aParser::IntegerAtomType_ByteContext * ctx)   {
-PythonAPI::evalScript("enterIntegerAtomType_Byte", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIntegerAtomType_Byte", this, (parser_rule_context*) ctx);
 }
 
    void exitIntegerAtomType_Byte(SV3_1aParser::IntegerAtomType_ByteContext * ctx)   {
-PythonAPI::evalScript("exitIntegerAtomType_Byte", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIntegerAtomType_Byte", this, (parser_rule_context*) ctx);
 }
 
    void enterIntegerAtomType_Shortint(SV3_1aParser::IntegerAtomType_ShortintContext * ctx)   {
-PythonAPI::evalScript("enterIntegerAtomType_Shortint", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIntegerAtomType_Shortint", this, (parser_rule_context*) ctx);
 }
 
    void exitIntegerAtomType_Shortint(SV3_1aParser::IntegerAtomType_ShortintContext * ctx)   {
-PythonAPI::evalScript("exitIntegerAtomType_Shortint", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIntegerAtomType_Shortint", this, (parser_rule_context*) ctx);
 }
 
    void enterIntegerAtomType_Int(SV3_1aParser::IntegerAtomType_IntContext * ctx)   {
-PythonAPI::evalScript("enterIntegerAtomType_Int", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIntegerAtomType_Int", this, (parser_rule_context*) ctx);
 }
 
    void exitIntegerAtomType_Int(SV3_1aParser::IntegerAtomType_IntContext * ctx)   {
-PythonAPI::evalScript("exitIntegerAtomType_Int", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIntegerAtomType_Int", this, (parser_rule_context*) ctx);
 }
 
    void enterIntegerAtomType_LongInt(SV3_1aParser::IntegerAtomType_LongIntContext * ctx)   {
-PythonAPI::evalScript("enterIntegerAtomType_LongInt", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIntegerAtomType_LongInt", this, (parser_rule_context*) ctx);
 }
 
    void exitIntegerAtomType_LongInt(SV3_1aParser::IntegerAtomType_LongIntContext * ctx)   {
-PythonAPI::evalScript("exitIntegerAtomType_LongInt", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIntegerAtomType_LongInt", this, (parser_rule_context*) ctx);
 }
 
    void enterIntegerAtomType_Time(SV3_1aParser::IntegerAtomType_TimeContext * ctx)   {
-PythonAPI::evalScript("enterIntegerAtomType_Time", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIntegerAtomType_Time", this, (parser_rule_context*) ctx);
 }
 
    void exitIntegerAtomType_Time(SV3_1aParser::IntegerAtomType_TimeContext * ctx)   {
-PythonAPI::evalScript("exitIntegerAtomType_Time", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIntegerAtomType_Time", this, (parser_rule_context*) ctx);
 }
 
    void enterIntVec_TypeBit(SV3_1aParser::IntVec_TypeBitContext * ctx)   {
-PythonAPI::evalScript("enterIntVec_TypeBit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIntVec_TypeBit", this, (parser_rule_context*) ctx);
 }
 
    void exitIntVec_TypeBit(SV3_1aParser::IntVec_TypeBitContext * ctx)   {
-PythonAPI::evalScript("exitIntVec_TypeBit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIntVec_TypeBit", this, (parser_rule_context*) ctx);
 }
 
    void enterIntVec_TypeLogic(SV3_1aParser::IntVec_TypeLogicContext * ctx)   {
-PythonAPI::evalScript("enterIntVec_TypeLogic", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIntVec_TypeLogic", this, (parser_rule_context*) ctx);
 }
 
    void exitIntVec_TypeLogic(SV3_1aParser::IntVec_TypeLogicContext * ctx)   {
-PythonAPI::evalScript("exitIntVec_TypeLogic", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIntVec_TypeLogic", this, (parser_rule_context*) ctx);
 }
 
    void enterIntVec_TypeReg(SV3_1aParser::IntVec_TypeRegContext * ctx)   {
-PythonAPI::evalScript("enterIntVec_TypeReg", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIntVec_TypeReg", this, (parser_rule_context*) ctx);
 }
 
    void exitIntVec_TypeReg(SV3_1aParser::IntVec_TypeRegContext * ctx)   {
-PythonAPI::evalScript("exitIntVec_TypeReg", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIntVec_TypeReg", this, (parser_rule_context*) ctx);
 }
 
    void enterNonIntType_ShortReal(SV3_1aParser::NonIntType_ShortRealContext * ctx)   {
-PythonAPI::evalScript("enterNonIntType_ShortReal", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNonIntType_ShortReal", this, (parser_rule_context*) ctx);
 }
 
    void exitNonIntType_ShortReal(SV3_1aParser::NonIntType_ShortRealContext * ctx)   {
-PythonAPI::evalScript("exitNonIntType_ShortReal", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNonIntType_ShortReal", this, (parser_rule_context*) ctx);
 }
 
    void enterNonIntType_Real(SV3_1aParser::NonIntType_RealContext * ctx)   {
-PythonAPI::evalScript("enterNonIntType_Real", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNonIntType_Real", this, (parser_rule_context*) ctx);
 }
 
    void exitNonIntType_Real(SV3_1aParser::NonIntType_RealContext * ctx)   {
-PythonAPI::evalScript("exitNonIntType_Real", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNonIntType_Real", this, (parser_rule_context*) ctx);
 }
 
    void enterNonIntType_RealTime(SV3_1aParser::NonIntType_RealTimeContext * ctx)   {
-PythonAPI::evalScript("enterNonIntType_RealTime", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNonIntType_RealTime", this, (parser_rule_context*) ctx);
 }
 
    void exitNonIntType_RealTime(SV3_1aParser::NonIntType_RealTimeContext * ctx)   {
-PythonAPI::evalScript("exitNonIntType_RealTime", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNonIntType_RealTime", this, (parser_rule_context*) ctx);
 }
 
    void enterNetType_Supply0(SV3_1aParser::NetType_Supply0Context * ctx)   {
-PythonAPI::evalScript("enterNetType_Supply0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNetType_Supply0", this, (parser_rule_context*) ctx);
 }
 
    void exitNetType_Supply0(SV3_1aParser::NetType_Supply0Context * ctx)   {
-PythonAPI::evalScript("exitNetType_Supply0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNetType_Supply0", this, (parser_rule_context*) ctx);
 }
 
    void enterNetType_Supply1(SV3_1aParser::NetType_Supply1Context * ctx)   {
-PythonAPI::evalScript("enterNetType_Supply1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNetType_Supply1", this, (parser_rule_context*) ctx);
 }
 
    void exitNetType_Supply1(SV3_1aParser::NetType_Supply1Context * ctx)   {
-PythonAPI::evalScript("exitNetType_Supply1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNetType_Supply1", this, (parser_rule_context*) ctx);
 }
 
    void enterNetType_Tri(SV3_1aParser::NetType_TriContext * ctx)   {
-PythonAPI::evalScript("enterNetType_Tri", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNetType_Tri", this, (parser_rule_context*) ctx);
 }
 
    void exitNetType_Tri(SV3_1aParser::NetType_TriContext * ctx)   {
-PythonAPI::evalScript("exitNetType_Tri", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNetType_Tri", this, (parser_rule_context*) ctx);
 }
 
    void enterNetType_TriAnd(SV3_1aParser::NetType_TriAndContext * ctx)   {
-PythonAPI::evalScript("enterNetType_TriAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNetType_TriAnd", this, (parser_rule_context*) ctx);
 }
 
    void exitNetType_TriAnd(SV3_1aParser::NetType_TriAndContext * ctx)   {
-PythonAPI::evalScript("exitNetType_TriAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNetType_TriAnd", this, (parser_rule_context*) ctx);
 }
 
    void enterNetType_TriOr(SV3_1aParser::NetType_TriOrContext * ctx)   {
-PythonAPI::evalScript("enterNetType_TriOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNetType_TriOr", this, (parser_rule_context*) ctx);
 }
 
    void exitNetType_TriOr(SV3_1aParser::NetType_TriOrContext * ctx)   {
-PythonAPI::evalScript("exitNetType_TriOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNetType_TriOr", this, (parser_rule_context*) ctx);
 }
 
    void enterNetType_TriReg(SV3_1aParser::NetType_TriRegContext * ctx)   {
-PythonAPI::evalScript("enterNetType_TriReg", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNetType_TriReg", this, (parser_rule_context*) ctx);
 }
 
    void exitNetType_TriReg(SV3_1aParser::NetType_TriRegContext * ctx)   {
-PythonAPI::evalScript("exitNetType_TriReg", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNetType_TriReg", this, (parser_rule_context*) ctx);
 }
 
    void enterNetType_Tri0(SV3_1aParser::NetType_Tri0Context * ctx)   {
-PythonAPI::evalScript("enterNetType_Tri0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNetType_Tri0", this, (parser_rule_context*) ctx);
 }
 
    void exitNetType_Tri0(SV3_1aParser::NetType_Tri0Context * ctx)   {
-PythonAPI::evalScript("exitNetType_Tri0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNetType_Tri0", this, (parser_rule_context*) ctx);
 }
 
    void enterNetType_Tri1(SV3_1aParser::NetType_Tri1Context * ctx)   {
-PythonAPI::evalScript("enterNetType_Tri1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNetType_Tri1", this, (parser_rule_context*) ctx);
 }
 
    void exitNetType_Tri1(SV3_1aParser::NetType_Tri1Context * ctx)   {
-PythonAPI::evalScript("exitNetType_Tri1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNetType_Tri1", this, (parser_rule_context*) ctx);
 }
 
    void enterNetType_Uwire(SV3_1aParser::NetType_UwireContext * ctx)   {
-PythonAPI::evalScript("enterNetType_Uwire", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNetType_Uwire", this, (parser_rule_context*) ctx);
 }
 
    void exitNetType_Uwire(SV3_1aParser::NetType_UwireContext * ctx)   {
-PythonAPI::evalScript("exitNetType_Uwire", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNetType_Uwire", this, (parser_rule_context*) ctx);
 }
 
    void enterNetType_Wire(SV3_1aParser::NetType_WireContext * ctx)   {
-PythonAPI::evalScript("enterNetType_Wire", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNetType_Wire", this, (parser_rule_context*) ctx);
 }
 
    void exitNetType_Wire(SV3_1aParser::NetType_WireContext * ctx)   {
-PythonAPI::evalScript("exitNetType_Wire", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNetType_Wire", this, (parser_rule_context*) ctx);
 }
 
    void enterNetType_Wand(SV3_1aParser::NetType_WandContext * ctx)   {
-PythonAPI::evalScript("enterNetType_Wand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNetType_Wand", this, (parser_rule_context*) ctx);
 }
 
    void exitNetType_Wand(SV3_1aParser::NetType_WandContext * ctx)   {
-PythonAPI::evalScript("exitNetType_Wand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNetType_Wand", this, (parser_rule_context*) ctx);
 }
 
    void enterNetType_Wor(SV3_1aParser::NetType_WorContext * ctx)   {
-PythonAPI::evalScript("enterNetType_Wor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNetType_Wor", this, (parser_rule_context*) ctx);
 }
 
    void exitNetType_Wor(SV3_1aParser::NetType_WorContext * ctx)   {
-PythonAPI::evalScript("exitNetType_Wor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNetType_Wor", this, (parser_rule_context*) ctx);
 }
 
    void enterNet_port_type(SV3_1aParser::Net_port_typeContext * ctx)   {
-PythonAPI::evalScript("enterNet_port_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNet_port_type", this, (parser_rule_context*) ctx);
 }
 
    void exitNet_port_type(SV3_1aParser::Net_port_typeContext * ctx)   {
-PythonAPI::evalScript("exitNet_port_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNet_port_type", this, (parser_rule_context*) ctx);
 }
 
    void enterVariable_port_type(SV3_1aParser::Variable_port_typeContext * ctx)   {
-PythonAPI::evalScript("enterVariable_port_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterVariable_port_type", this, (parser_rule_context*) ctx);
 }
 
    void exitVariable_port_type(SV3_1aParser::Variable_port_typeContext * ctx)   {
-PythonAPI::evalScript("exitVariable_port_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitVariable_port_type", this, (parser_rule_context*) ctx);
 }
 
    void enterVar_data_type(SV3_1aParser::Var_data_typeContext * ctx)   {
-PythonAPI::evalScript("enterVar_data_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterVar_data_type", this, (parser_rule_context*) ctx);
 }
 
    void exitVar_data_type(SV3_1aParser::Var_data_typeContext * ctx)   {
-PythonAPI::evalScript("exitVar_data_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitVar_data_type", this, (parser_rule_context*) ctx);
 }
 
    void enterSigning_Signed(SV3_1aParser::Signing_SignedContext * ctx)   {
-PythonAPI::evalScript("enterSigning_Signed", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSigning_Signed", this, (parser_rule_context*) ctx);
 }
 
    void exitSigning_Signed(SV3_1aParser::Signing_SignedContext * ctx)   {
-PythonAPI::evalScript("exitSigning_Signed", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSigning_Signed", this, (parser_rule_context*) ctx);
 }
 
    void enterSigning_Unsigned(SV3_1aParser::Signing_UnsignedContext * ctx)   {
-PythonAPI::evalScript("enterSigning_Unsigned", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSigning_Unsigned", this, (parser_rule_context*) ctx);
 }
 
    void exitSigning_Unsigned(SV3_1aParser::Signing_UnsignedContext * ctx)   {
-PythonAPI::evalScript("exitSigning_Unsigned", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSigning_Unsigned", this, (parser_rule_context*) ctx);
 }
 
    void enterSimple_type(SV3_1aParser::Simple_typeContext * ctx)   {
-PythonAPI::evalScript("enterSimple_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSimple_type", this, (parser_rule_context*) ctx);
 }
 
    void exitSimple_type(SV3_1aParser::Simple_typeContext * ctx)   {
-PythonAPI::evalScript("exitSimple_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSimple_type", this, (parser_rule_context*) ctx);
 }
 
    void enterRandomQualifier_Rand(SV3_1aParser::RandomQualifier_RandContext * ctx)   {
-PythonAPI::evalScript("enterRandomQualifier_Rand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRandomQualifier_Rand", this, (parser_rule_context*) ctx);
 }
 
    void exitRandomQualifier_Rand(SV3_1aParser::RandomQualifier_RandContext * ctx)   {
-PythonAPI::evalScript("exitRandomQualifier_Rand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRandomQualifier_Rand", this, (parser_rule_context*) ctx);
 }
 
    void enterRandomQualifier_RandC(SV3_1aParser::RandomQualifier_RandCContext * ctx)   {
-PythonAPI::evalScript("enterRandomQualifier_RandC", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRandomQualifier_RandC", this, (parser_rule_context*) ctx);
 }
 
    void exitRandomQualifier_RandC(SV3_1aParser::RandomQualifier_RandCContext * ctx)   {
-PythonAPI::evalScript("exitRandomQualifier_RandC", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRandomQualifier_RandC", this, (parser_rule_context*) ctx);
 }
 
    void enterStruct_union_member(SV3_1aParser::Struct_union_memberContext * ctx)   {
-PythonAPI::evalScript("enterStruct_union_member", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStruct_union_member", this, (parser_rule_context*) ctx);
 }
 
    void exitStruct_union_member(SV3_1aParser::Struct_union_memberContext * ctx)   {
-PythonAPI::evalScript("exitStruct_union_member", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStruct_union_member", this, (parser_rule_context*) ctx);
 }
 
    void enterData_type_or_void(SV3_1aParser::Data_type_or_voidContext * ctx)   {
-PythonAPI::evalScript("enterData_type_or_void", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterData_type_or_void", this, (parser_rule_context*) ctx);
 }
 
    void exitData_type_or_void(SV3_1aParser::Data_type_or_voidContext * ctx)   {
-PythonAPI::evalScript("exitData_type_or_void", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitData_type_or_void", this, (parser_rule_context*) ctx);
 }
 
    void enterStruct_union(SV3_1aParser::Struct_unionContext * ctx)   {
-PythonAPI::evalScript("enterStruct_union", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStruct_union", this, (parser_rule_context*) ctx);
 }
 
    void exitStruct_union(SV3_1aParser::Struct_unionContext * ctx)   {
-PythonAPI::evalScript("exitStruct_union", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStruct_union", this, (parser_rule_context*) ctx);
 }
 
    void enterTagged_keyword(SV3_1aParser::Tagged_keywordContext * ctx)   {
-PythonAPI::evalScript("enterTagged_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTagged_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitTagged_keyword(SV3_1aParser::Tagged_keywordContext * ctx)   {
-PythonAPI::evalScript("exitTagged_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTagged_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterType_reference(SV3_1aParser::Type_referenceContext * ctx)   {
-PythonAPI::evalScript("enterType_reference", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterType_reference", this, (parser_rule_context*) ctx);
 }
 
    void exitType_reference(SV3_1aParser::Type_referenceContext * ctx)   {
-PythonAPI::evalScript("exitType_reference", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitType_reference", this, (parser_rule_context*) ctx);
 }
 
    void enterDrive_strength(SV3_1aParser::Drive_strengthContext * ctx)   {
-PythonAPI::evalScript("enterDrive_strength", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDrive_strength", this, (parser_rule_context*) ctx);
 }
 
    void exitDrive_strength(SV3_1aParser::Drive_strengthContext * ctx)   {
-PythonAPI::evalScript("exitDrive_strength", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDrive_strength", this, (parser_rule_context*) ctx);
 }
 
    void enterStrength0_Supply0(SV3_1aParser::Strength0_Supply0Context * ctx)   {
-PythonAPI::evalScript("enterStrength0_Supply0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStrength0_Supply0", this, (parser_rule_context*) ctx);
 }
 
    void exitStrength0_Supply0(SV3_1aParser::Strength0_Supply0Context * ctx)   {
-PythonAPI::evalScript("exitStrength0_Supply0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStrength0_Supply0", this, (parser_rule_context*) ctx);
 }
 
    void enterStrength0_Strong0(SV3_1aParser::Strength0_Strong0Context * ctx)   {
-PythonAPI::evalScript("enterStrength0_Strong0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStrength0_Strong0", this, (parser_rule_context*) ctx);
 }
 
    void exitStrength0_Strong0(SV3_1aParser::Strength0_Strong0Context * ctx)   {
-PythonAPI::evalScript("exitStrength0_Strong0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStrength0_Strong0", this, (parser_rule_context*) ctx);
 }
 
    void enterStrength0_Pull0(SV3_1aParser::Strength0_Pull0Context * ctx)   {
-PythonAPI::evalScript("enterStrength0_Pull0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStrength0_Pull0", this, (parser_rule_context*) ctx);
 }
 
    void exitStrength0_Pull0(SV3_1aParser::Strength0_Pull0Context * ctx)   {
-PythonAPI::evalScript("exitStrength0_Pull0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStrength0_Pull0", this, (parser_rule_context*) ctx);
 }
 
    void enterStrength0_Weak0(SV3_1aParser::Strength0_Weak0Context * ctx)   {
-PythonAPI::evalScript("enterStrength0_Weak0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStrength0_Weak0", this, (parser_rule_context*) ctx);
 }
 
    void exitStrength0_Weak0(SV3_1aParser::Strength0_Weak0Context * ctx)   {
-PythonAPI::evalScript("exitStrength0_Weak0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStrength0_Weak0", this, (parser_rule_context*) ctx);
 }
 
    void enterStrength1_Supply1(SV3_1aParser::Strength1_Supply1Context * ctx)   {
-PythonAPI::evalScript("enterStrength1_Supply1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStrength1_Supply1", this, (parser_rule_context*) ctx);
 }
 
    void exitStrength1_Supply1(SV3_1aParser::Strength1_Supply1Context * ctx)   {
-PythonAPI::evalScript("exitStrength1_Supply1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStrength1_Supply1", this, (parser_rule_context*) ctx);
 }
 
    void enterStrength1_Strong1(SV3_1aParser::Strength1_Strong1Context * ctx)   {
-PythonAPI::evalScript("enterStrength1_Strong1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStrength1_Strong1", this, (parser_rule_context*) ctx);
 }
 
    void exitStrength1_Strong1(SV3_1aParser::Strength1_Strong1Context * ctx)   {
-PythonAPI::evalScript("exitStrength1_Strong1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStrength1_Strong1", this, (parser_rule_context*) ctx);
 }
 
    void enterStrength1_Pull1(SV3_1aParser::Strength1_Pull1Context * ctx)   {
-PythonAPI::evalScript("enterStrength1_Pull1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStrength1_Pull1", this, (parser_rule_context*) ctx);
 }
 
    void exitStrength1_Pull1(SV3_1aParser::Strength1_Pull1Context * ctx)   {
-PythonAPI::evalScript("exitStrength1_Pull1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStrength1_Pull1", this, (parser_rule_context*) ctx);
 }
 
    void enterStrength1_Weak1(SV3_1aParser::Strength1_Weak1Context * ctx)   {
-PythonAPI::evalScript("enterStrength1_Weak1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStrength1_Weak1", this, (parser_rule_context*) ctx);
 }
 
    void exitStrength1_Weak1(SV3_1aParser::Strength1_Weak1Context * ctx)   {
-PythonAPI::evalScript("exitStrength1_Weak1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStrength1_Weak1", this, (parser_rule_context*) ctx);
 }
 
    void enterChargeStrength_Small(SV3_1aParser::ChargeStrength_SmallContext * ctx)   {
-PythonAPI::evalScript("enterChargeStrength_Small", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterChargeStrength_Small", this, (parser_rule_context*) ctx);
 }
 
    void exitChargeStrength_Small(SV3_1aParser::ChargeStrength_SmallContext * ctx)   {
-PythonAPI::evalScript("exitChargeStrength_Small", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitChargeStrength_Small", this, (parser_rule_context*) ctx);
 }
 
    void enterChargeStrength_Medium(SV3_1aParser::ChargeStrength_MediumContext * ctx)   {
-PythonAPI::evalScript("enterChargeStrength_Medium", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterChargeStrength_Medium", this, (parser_rule_context*) ctx);
 }
 
    void exitChargeStrength_Medium(SV3_1aParser::ChargeStrength_MediumContext * ctx)   {
-PythonAPI::evalScript("exitChargeStrength_Medium", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitChargeStrength_Medium", this, (parser_rule_context*) ctx);
 }
 
    void enterChargeStrength_Large(SV3_1aParser::ChargeStrength_LargeContext * ctx)   {
-PythonAPI::evalScript("enterChargeStrength_Large", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterChargeStrength_Large", this, (parser_rule_context*) ctx);
 }
 
    void exitChargeStrength_Large(SV3_1aParser::ChargeStrength_LargeContext * ctx)   {
-PythonAPI::evalScript("exitChargeStrength_Large", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitChargeStrength_Large", this, (parser_rule_context*) ctx);
 }
 
    void enterDelay3(SV3_1aParser::Delay3Context * ctx)   {
-PythonAPI::evalScript("enterDelay3", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDelay3", this, (parser_rule_context*) ctx);
 }
 
    void exitDelay3(SV3_1aParser::Delay3Context * ctx)   {
-PythonAPI::evalScript("exitDelay3", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDelay3", this, (parser_rule_context*) ctx);
 }
 
    void enterDelay2(SV3_1aParser::Delay2Context * ctx)   {
-PythonAPI::evalScript("enterDelay2", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDelay2", this, (parser_rule_context*) ctx);
 }
 
    void exitDelay2(SV3_1aParser::Delay2Context * ctx)   {
-PythonAPI::evalScript("exitDelay2", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDelay2", this, (parser_rule_context*) ctx);
 }
 
    void enterPound_delay_value(SV3_1aParser::Pound_delay_valueContext * ctx)   {
-PythonAPI::evalScript("enterPound_delay_value", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPound_delay_value", this, (parser_rule_context*) ctx);
 }
 
    void exitPound_delay_value(SV3_1aParser::Pound_delay_valueContext * ctx)   {
-PythonAPI::evalScript("exitPound_delay_value", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPound_delay_value", this, (parser_rule_context*) ctx);
 }
 
    void enterDelay_value(SV3_1aParser::Delay_valueContext * ctx)   {
-PythonAPI::evalScript("enterDelay_value", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDelay_value", this, (parser_rule_context*) ctx);
 }
 
    void exitDelay_value(SV3_1aParser::Delay_valueContext * ctx)   {
-PythonAPI::evalScript("exitDelay_value", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDelay_value", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_defparam_assignments(SV3_1aParser::List_of_defparam_assignmentsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_defparam_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_defparam_assignments", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_defparam_assignments(SV3_1aParser::List_of_defparam_assignmentsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_defparam_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_defparam_assignments", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_interface_identifiers(SV3_1aParser::List_of_interface_identifiersContext * ctx)   {
-PythonAPI::evalScript("enterList_of_interface_identifiers", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_interface_identifiers", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_interface_identifiers(SV3_1aParser::List_of_interface_identifiersContext * ctx)   {
-PythonAPI::evalScript("exitList_of_interface_identifiers", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_interface_identifiers", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_net_decl_assignments(SV3_1aParser::List_of_net_decl_assignmentsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_net_decl_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_net_decl_assignments", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_net_decl_assignments(SV3_1aParser::List_of_net_decl_assignmentsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_net_decl_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_net_decl_assignments", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_param_assignments(SV3_1aParser::List_of_param_assignmentsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_param_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_param_assignments", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_param_assignments(SV3_1aParser::List_of_param_assignmentsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_param_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_param_assignments", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_port_identifiers(SV3_1aParser::List_of_port_identifiersContext * ctx)   {
-PythonAPI::evalScript("enterList_of_port_identifiers", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_port_identifiers", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_port_identifiers(SV3_1aParser::List_of_port_identifiersContext * ctx)   {
-PythonAPI::evalScript("exitList_of_port_identifiers", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_port_identifiers", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_specparam_assignments(SV3_1aParser::List_of_specparam_assignmentsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_specparam_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_specparam_assignments", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_specparam_assignments(SV3_1aParser::List_of_specparam_assignmentsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_specparam_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_specparam_assignments", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_tf_variable_identifiers(SV3_1aParser::List_of_tf_variable_identifiersContext * ctx)   {
-PythonAPI::evalScript("enterList_of_tf_variable_identifiers", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_tf_variable_identifiers", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_tf_variable_identifiers(SV3_1aParser::List_of_tf_variable_identifiersContext * ctx)   {
-PythonAPI::evalScript("exitList_of_tf_variable_identifiers", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_tf_variable_identifiers", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_type_assignments(SV3_1aParser::List_of_type_assignmentsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_type_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_type_assignments", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_type_assignments(SV3_1aParser::List_of_type_assignmentsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_type_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_type_assignments", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_variable_decl_assignments(SV3_1aParser::List_of_variable_decl_assignmentsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_variable_decl_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_variable_decl_assignments", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_variable_decl_assignments(SV3_1aParser::List_of_variable_decl_assignmentsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_variable_decl_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_variable_decl_assignments", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_variable_identifiers(SV3_1aParser::List_of_variable_identifiersContext * ctx)   {
-PythonAPI::evalScript("enterList_of_variable_identifiers", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_variable_identifiers", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_variable_identifiers(SV3_1aParser::List_of_variable_identifiersContext * ctx)   {
-PythonAPI::evalScript("exitList_of_variable_identifiers", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_variable_identifiers", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_variable_port_identifiers(SV3_1aParser::List_of_variable_port_identifiersContext * ctx)   {
-PythonAPI::evalScript("enterList_of_variable_port_identifiers", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_variable_port_identifiers", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_variable_port_identifiers(SV3_1aParser::List_of_variable_port_identifiersContext * ctx)   {
-PythonAPI::evalScript("exitList_of_variable_port_identifiers", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_variable_port_identifiers", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_virtual_interface_decl(SV3_1aParser::List_of_virtual_interface_declContext * ctx)   {
-PythonAPI::evalScript("enterList_of_virtual_interface_decl", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_virtual_interface_decl", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_virtual_interface_decl(SV3_1aParser::List_of_virtual_interface_declContext * ctx)   {
-PythonAPI::evalScript("exitList_of_virtual_interface_decl", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_virtual_interface_decl", this, (parser_rule_context*) ctx);
 }
 
    void enterDefparam_assignment(SV3_1aParser::Defparam_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterDefparam_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDefparam_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitDefparam_assignment(SV3_1aParser::Defparam_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitDefparam_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDefparam_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterNet_decl_assignment(SV3_1aParser::Net_decl_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterNet_decl_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNet_decl_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitNet_decl_assignment(SV3_1aParser::Net_decl_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitNet_decl_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNet_decl_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterParam_assignment(SV3_1aParser::Param_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterParam_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterParam_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitParam_assignment(SV3_1aParser::Param_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitParam_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitParam_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterSpecparam_assignment(SV3_1aParser::Specparam_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterSpecparam_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSpecparam_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitSpecparam_assignment(SV3_1aParser::Specparam_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitSpecparam_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSpecparam_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterPulse_control_specparam(SV3_1aParser::Pulse_control_specparamContext * ctx)   {
-PythonAPI::evalScript("enterPulse_control_specparam", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPulse_control_specparam", this, (parser_rule_context*) ctx);
 }
 
    void exitPulse_control_specparam(SV3_1aParser::Pulse_control_specparamContext * ctx)   {
-PythonAPI::evalScript("exitPulse_control_specparam", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPulse_control_specparam", this, (parser_rule_context*) ctx);
 }
 
    void enterVariable_decl_assignment(SV3_1aParser::Variable_decl_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterVariable_decl_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterVariable_decl_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitVariable_decl_assignment(SV3_1aParser::Variable_decl_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitVariable_decl_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitVariable_decl_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterClass_new(SV3_1aParser::Class_newContext * ctx)   {
-PythonAPI::evalScript("enterClass_new", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClass_new", this, (parser_rule_context*) ctx);
 }
 
    void exitClass_new(SV3_1aParser::Class_newContext * ctx)   {
-PythonAPI::evalScript("exitClass_new", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClass_new", this, (parser_rule_context*) ctx);
 }
 
    void enterDynamic_array_new(SV3_1aParser::Dynamic_array_newContext * ctx)   {
-PythonAPI::evalScript("enterDynamic_array_new", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDynamic_array_new", this, (parser_rule_context*) ctx);
 }
 
    void exitDynamic_array_new(SV3_1aParser::Dynamic_array_newContext * ctx)   {
-PythonAPI::evalScript("exitDynamic_array_new", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDynamic_array_new", this, (parser_rule_context*) ctx);
 }
 
    void enterUnpacked_dimension(SV3_1aParser::Unpacked_dimensionContext * ctx)   {
-PythonAPI::evalScript("enterUnpacked_dimension", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnpacked_dimension", this, (parser_rule_context*) ctx);
 }
 
    void exitUnpacked_dimension(SV3_1aParser::Unpacked_dimensionContext * ctx)   {
-PythonAPI::evalScript("exitUnpacked_dimension", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnpacked_dimension", this, (parser_rule_context*) ctx);
 }
 
    void enterPacked_dimension(SV3_1aParser::Packed_dimensionContext * ctx)   {
-PythonAPI::evalScript("enterPacked_dimension", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPacked_dimension", this, (parser_rule_context*) ctx);
 }
 
    void exitPacked_dimension(SV3_1aParser::Packed_dimensionContext * ctx)   {
-PythonAPI::evalScript("exitPacked_dimension", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPacked_dimension", this, (parser_rule_context*) ctx);
 }
 
    void enterAssociative_dimension(SV3_1aParser::Associative_dimensionContext * ctx)   {
-PythonAPI::evalScript("enterAssociative_dimension", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssociative_dimension", this, (parser_rule_context*) ctx);
 }
 
    void exitAssociative_dimension(SV3_1aParser::Associative_dimensionContext * ctx)   {
-PythonAPI::evalScript("exitAssociative_dimension", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssociative_dimension", this, (parser_rule_context*) ctx);
 }
 
    void enterVariable_dimension(SV3_1aParser::Variable_dimensionContext * ctx)   {
-PythonAPI::evalScript("enterVariable_dimension", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterVariable_dimension", this, (parser_rule_context*) ctx);
 }
 
    void exitVariable_dimension(SV3_1aParser::Variable_dimensionContext * ctx)   {
-PythonAPI::evalScript("exitVariable_dimension", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitVariable_dimension", this, (parser_rule_context*) ctx);
 }
 
    void enterQueue_dimension(SV3_1aParser::Queue_dimensionContext * ctx)   {
-PythonAPI::evalScript("enterQueue_dimension", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterQueue_dimension", this, (parser_rule_context*) ctx);
 }
 
    void exitQueue_dimension(SV3_1aParser::Queue_dimensionContext * ctx)   {
-PythonAPI::evalScript("exitQueue_dimension", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitQueue_dimension", this, (parser_rule_context*) ctx);
 }
 
    void enterUnsized_dimension(SV3_1aParser::Unsized_dimensionContext * ctx)   {
-PythonAPI::evalScript("enterUnsized_dimension", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnsized_dimension", this, (parser_rule_context*) ctx);
 }
 
    void exitUnsized_dimension(SV3_1aParser::Unsized_dimensionContext * ctx)   {
-PythonAPI::evalScript("exitUnsized_dimension", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnsized_dimension", this, (parser_rule_context*) ctx);
 }
 
    void enterFunction_data_type(SV3_1aParser::Function_data_typeContext * ctx)   {
-PythonAPI::evalScript("enterFunction_data_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFunction_data_type", this, (parser_rule_context*) ctx);
 }
 
    void exitFunction_data_type(SV3_1aParser::Function_data_typeContext * ctx)   {
-PythonAPI::evalScript("exitFunction_data_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFunction_data_type", this, (parser_rule_context*) ctx);
 }
 
    void enterFunction_data_type_or_implicit(SV3_1aParser::Function_data_type_or_implicitContext * ctx)   {
-PythonAPI::evalScript("enterFunction_data_type_or_implicit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFunction_data_type_or_implicit", this, (parser_rule_context*) ctx);
 }
 
    void exitFunction_data_type_or_implicit(SV3_1aParser::Function_data_type_or_implicitContext * ctx)   {
-PythonAPI::evalScript("exitFunction_data_type_or_implicit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFunction_data_type_or_implicit", this, (parser_rule_context*) ctx);
 }
 
    void enterFunction_declaration(SV3_1aParser::Function_declarationContext * ctx)   {
-PythonAPI::evalScript("enterFunction_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFunction_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitFunction_declaration(SV3_1aParser::Function_declarationContext * ctx)   {
-PythonAPI::evalScript("exitFunction_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFunction_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterEndfunction(SV3_1aParser::EndfunctionContext * ctx)   {
-PythonAPI::evalScript("enterEndfunction", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndfunction", this, (parser_rule_context*) ctx);
 }
 
    void exitEndfunction(SV3_1aParser::EndfunctionContext * ctx)   {
-PythonAPI::evalScript("exitEndfunction", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndfunction", this, (parser_rule_context*) ctx);
 }
 
    void enterFunction_body_declaration(SV3_1aParser::Function_body_declarationContext * ctx)   {
-PythonAPI::evalScript("enterFunction_body_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFunction_body_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitFunction_body_declaration(SV3_1aParser::Function_body_declarationContext * ctx)   {
-PythonAPI::evalScript("exitFunction_body_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFunction_body_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterFunction_prototype(SV3_1aParser::Function_prototypeContext * ctx)   {
-PythonAPI::evalScript("enterFunction_prototype", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFunction_prototype", this, (parser_rule_context*) ctx);
 }
 
    void exitFunction_prototype(SV3_1aParser::Function_prototypeContext * ctx)   {
-PythonAPI::evalScript("exitFunction_prototype", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFunction_prototype", this, (parser_rule_context*) ctx);
 }
 
    void enterDpi_import_export(SV3_1aParser::Dpi_import_exportContext * ctx)   {
-PythonAPI::evalScript("enterDpi_import_export", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDpi_import_export", this, (parser_rule_context*) ctx);
 }
 
    void exitDpi_import_export(SV3_1aParser::Dpi_import_exportContext * ctx)   {
-PythonAPI::evalScript("exitDpi_import_export", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDpi_import_export", this, (parser_rule_context*) ctx);
 }
 
    void enterContext_keyword(SV3_1aParser::Context_keywordContext * ctx)   {
-PythonAPI::evalScript("enterContext_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterContext_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitContext_keyword(SV3_1aParser::Context_keywordContext * ctx)   {
-PythonAPI::evalScript("exitContext_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitContext_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterFunction_name_decl(SV3_1aParser::Function_name_declContext * ctx)   {
-PythonAPI::evalScript("enterFunction_name_decl", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFunction_name_decl", this, (parser_rule_context*) ctx);
 }
 
    void exitFunction_name_decl(SV3_1aParser::Function_name_declContext * ctx)   {
-PythonAPI::evalScript("exitFunction_name_decl", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFunction_name_decl", this, (parser_rule_context*) ctx);
 }
 
    void enterTask_name_decl(SV3_1aParser::Task_name_declContext * ctx)   {
-PythonAPI::evalScript("enterTask_name_decl", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTask_name_decl", this, (parser_rule_context*) ctx);
 }
 
    void exitTask_name_decl(SV3_1aParser::Task_name_declContext * ctx)   {
-PythonAPI::evalScript("exitTask_name_decl", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTask_name_decl", this, (parser_rule_context*) ctx);
 }
 
    void enterPure_keyword(SV3_1aParser::Pure_keywordContext * ctx)   {
-PythonAPI::evalScript("enterPure_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPure_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitPure_keyword(SV3_1aParser::Pure_keywordContext * ctx)   {
-PythonAPI::evalScript("exitPure_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPure_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterTask_declaration(SV3_1aParser::Task_declarationContext * ctx)   {
-PythonAPI::evalScript("enterTask_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTask_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitTask_declaration(SV3_1aParser::Task_declarationContext * ctx)   {
-PythonAPI::evalScript("exitTask_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTask_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterEndtask(SV3_1aParser::EndtaskContext * ctx)   {
-PythonAPI::evalScript("enterEndtask", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndtask", this, (parser_rule_context*) ctx);
 }
 
    void exitEndtask(SV3_1aParser::EndtaskContext * ctx)   {
-PythonAPI::evalScript("exitEndtask", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndtask", this, (parser_rule_context*) ctx);
 }
 
    void enterTask_body_declaration(SV3_1aParser::Task_body_declarationContext * ctx)   {
-PythonAPI::evalScript("enterTask_body_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTask_body_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitTask_body_declaration(SV3_1aParser::Task_body_declarationContext * ctx)   {
-PythonAPI::evalScript("exitTask_body_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTask_body_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterTf_item_declaration(SV3_1aParser::Tf_item_declarationContext * ctx)   {
-PythonAPI::evalScript("enterTf_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTf_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitTf_item_declaration(SV3_1aParser::Tf_item_declarationContext * ctx)   {
-PythonAPI::evalScript("exitTf_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTf_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterTf_port_list(SV3_1aParser::Tf_port_listContext * ctx)   {
-PythonAPI::evalScript("enterTf_port_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTf_port_list", this, (parser_rule_context*) ctx);
 }
 
    void exitTf_port_list(SV3_1aParser::Tf_port_listContext * ctx)   {
-PythonAPI::evalScript("exitTf_port_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTf_port_list", this, (parser_rule_context*) ctx);
 }
 
    void enterTf_port_item(SV3_1aParser::Tf_port_itemContext * ctx)   {
-PythonAPI::evalScript("enterTf_port_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTf_port_item", this, (parser_rule_context*) ctx);
 }
 
    void exitTf_port_item(SV3_1aParser::Tf_port_itemContext * ctx)   {
-PythonAPI::evalScript("exitTf_port_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTf_port_item", this, (parser_rule_context*) ctx);
 }
 
    void enterTfPortDir_Inp(SV3_1aParser::TfPortDir_InpContext * ctx)   {
-PythonAPI::evalScript("enterTfPortDir_Inp", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTfPortDir_Inp", this, (parser_rule_context*) ctx);
 }
 
    void exitTfPortDir_Inp(SV3_1aParser::TfPortDir_InpContext * ctx)   {
-PythonAPI::evalScript("exitTfPortDir_Inp", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTfPortDir_Inp", this, (parser_rule_context*) ctx);
 }
 
    void enterTfPortDir_Out(SV3_1aParser::TfPortDir_OutContext * ctx)   {
-PythonAPI::evalScript("enterTfPortDir_Out", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTfPortDir_Out", this, (parser_rule_context*) ctx);
 }
 
    void exitTfPortDir_Out(SV3_1aParser::TfPortDir_OutContext * ctx)   {
-PythonAPI::evalScript("exitTfPortDir_Out", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTfPortDir_Out", this, (parser_rule_context*) ctx);
 }
 
    void enterTfPortDir_Inout(SV3_1aParser::TfPortDir_InoutContext * ctx)   {
-PythonAPI::evalScript("enterTfPortDir_Inout", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTfPortDir_Inout", this, (parser_rule_context*) ctx);
 }
 
    void exitTfPortDir_Inout(SV3_1aParser::TfPortDir_InoutContext * ctx)   {
-PythonAPI::evalScript("exitTfPortDir_Inout", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTfPortDir_Inout", this, (parser_rule_context*) ctx);
 }
 
    void enterTfPortDir_Ref(SV3_1aParser::TfPortDir_RefContext * ctx)   {
-PythonAPI::evalScript("enterTfPortDir_Ref", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTfPortDir_Ref", this, (parser_rule_context*) ctx);
 }
 
    void exitTfPortDir_Ref(SV3_1aParser::TfPortDir_RefContext * ctx)   {
-PythonAPI::evalScript("exitTfPortDir_Ref", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTfPortDir_Ref", this, (parser_rule_context*) ctx);
 }
 
    void enterTfPortDir_ConstRef(SV3_1aParser::TfPortDir_ConstRefContext * ctx)   {
-PythonAPI::evalScript("enterTfPortDir_ConstRef", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTfPortDir_ConstRef", this, (parser_rule_context*) ctx);
 }
 
    void exitTfPortDir_ConstRef(SV3_1aParser::TfPortDir_ConstRefContext * ctx)   {
-PythonAPI::evalScript("exitTfPortDir_ConstRef", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTfPortDir_ConstRef", this, (parser_rule_context*) ctx);
 }
 
    void enterTf_port_declaration(SV3_1aParser::Tf_port_declarationContext * ctx)   {
-PythonAPI::evalScript("enterTf_port_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTf_port_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitTf_port_declaration(SV3_1aParser::Tf_port_declarationContext * ctx)   {
-PythonAPI::evalScript("exitTf_port_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTf_port_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterTask_prototype(SV3_1aParser::Task_prototypeContext * ctx)   {
-PythonAPI::evalScript("enterTask_prototype", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTask_prototype", this, (parser_rule_context*) ctx);
 }
 
    void exitTask_prototype(SV3_1aParser::Task_prototypeContext * ctx)   {
-PythonAPI::evalScript("exitTask_prototype", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTask_prototype", this, (parser_rule_context*) ctx);
 }
 
    void enterBlock_item_declaration(SV3_1aParser::Block_item_declarationContext * ctx)   {
-PythonAPI::evalScript("enterBlock_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBlock_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitBlock_item_declaration(SV3_1aParser::Block_item_declarationContext * ctx)   {
-PythonAPI::evalScript("exitBlock_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBlock_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterOverload_declaration(SV3_1aParser::Overload_declarationContext * ctx)   {
-PythonAPI::evalScript("enterOverload_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverload_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitOverload_declaration(SV3_1aParser::Overload_declarationContext * ctx)   {
-PythonAPI::evalScript("exitOverload_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverload_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_Plus(SV3_1aParser::OverloadOp_PlusContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_Plus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_Plus", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_Plus(SV3_1aParser::OverloadOp_PlusContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_Plus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_Plus", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_PlusPlus(SV3_1aParser::OverloadOp_PlusPlusContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_PlusPlus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_PlusPlus", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_PlusPlus(SV3_1aParser::OverloadOp_PlusPlusContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_PlusPlus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_PlusPlus", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_Minus(SV3_1aParser::OverloadOp_MinusContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_Minus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_Minus", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_Minus(SV3_1aParser::OverloadOp_MinusContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_Minus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_Minus", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_MinusMinus(SV3_1aParser::OverloadOp_MinusMinusContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_MinusMinus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_MinusMinus", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_MinusMinus(SV3_1aParser::OverloadOp_MinusMinusContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_MinusMinus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_MinusMinus", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_Mult(SV3_1aParser::OverloadOp_MultContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_Mult", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_Mult", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_Mult(SV3_1aParser::OverloadOp_MultContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_Mult", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_Mult", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_StarStar(SV3_1aParser::OverloadOp_StarStarContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_StarStar", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_StarStar", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_StarStar(SV3_1aParser::OverloadOp_StarStarContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_StarStar", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_StarStar", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_Div(SV3_1aParser::OverloadOp_DivContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_Div", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_Div", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_Div(SV3_1aParser::OverloadOp_DivContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_Div", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_Div", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_Percent(SV3_1aParser::OverloadOp_PercentContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_Percent", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_Percent", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_Percent(SV3_1aParser::OverloadOp_PercentContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_Percent", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_Percent", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_Equiv(SV3_1aParser::OverloadOp_EquivContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_Equiv", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_Equiv", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_Equiv(SV3_1aParser::OverloadOp_EquivContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_Equiv", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_Equiv", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_NotEqual(SV3_1aParser::OverloadOp_NotEqualContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_NotEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_NotEqual", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_NotEqual(SV3_1aParser::OverloadOp_NotEqualContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_NotEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_NotEqual", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_Less(SV3_1aParser::OverloadOp_LessContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_Less", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_Less", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_Less(SV3_1aParser::OverloadOp_LessContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_Less", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_Less", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_LessEqual(SV3_1aParser::OverloadOp_LessEqualContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_LessEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_LessEqual", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_LessEqual(SV3_1aParser::OverloadOp_LessEqualContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_LessEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_LessEqual", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_Greater(SV3_1aParser::OverloadOp_GreaterContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_Greater", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_Greater", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_Greater(SV3_1aParser::OverloadOp_GreaterContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_Greater", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_Greater", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_GreaterEqual(SV3_1aParser::OverloadOp_GreaterEqualContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_GreaterEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_GreaterEqual", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_GreaterEqual(SV3_1aParser::OverloadOp_GreaterEqualContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_GreaterEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_GreaterEqual", this, (parser_rule_context*) ctx);
 }
 
    void enterOverloadOp_Equal(SV3_1aParser::OverloadOp_EqualContext * ctx)   {
-PythonAPI::evalScript("enterOverloadOp_Equal", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverloadOp_Equal", this, (parser_rule_context*) ctx);
 }
 
    void exitOverloadOp_Equal(SV3_1aParser::OverloadOp_EqualContext * ctx)   {
-PythonAPI::evalScript("exitOverloadOp_Equal", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverloadOp_Equal", this, (parser_rule_context*) ctx);
 }
 
    void enterOverload_proto_formals(SV3_1aParser::Overload_proto_formalsContext * ctx)   {
-PythonAPI::evalScript("enterOverload_proto_formals", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOverload_proto_formals", this, (parser_rule_context*) ctx);
 }
 
    void exitOverload_proto_formals(SV3_1aParser::Overload_proto_formalsContext * ctx)   {
-PythonAPI::evalScript("exitOverload_proto_formals", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOverload_proto_formals", this, (parser_rule_context*) ctx);
 }
 
    void enterVirtual_interface_declaration(SV3_1aParser::Virtual_interface_declarationContext * ctx)   {
-PythonAPI::evalScript("enterVirtual_interface_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterVirtual_interface_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitVirtual_interface_declaration(SV3_1aParser::Virtual_interface_declarationContext * ctx)   {
-PythonAPI::evalScript("exitVirtual_interface_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitVirtual_interface_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterModport_item(SV3_1aParser::Modport_itemContext * ctx)   {
-PythonAPI::evalScript("enterModport_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModport_item", this, (parser_rule_context*) ctx);
 }
 
    void exitModport_item(SV3_1aParser::Modport_itemContext * ctx)   {
-PythonAPI::evalScript("exitModport_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModport_item", this, (parser_rule_context*) ctx);
 }
 
    void enterModport_ports_declaration(SV3_1aParser::Modport_ports_declarationContext * ctx)   {
-PythonAPI::evalScript("enterModport_ports_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModport_ports_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitModport_ports_declaration(SV3_1aParser::Modport_ports_declarationContext * ctx)   {
-PythonAPI::evalScript("exitModport_ports_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModport_ports_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterModport_simple_ports_declaration(SV3_1aParser::Modport_simple_ports_declarationContext * ctx)   {
-PythonAPI::evalScript("enterModport_simple_ports_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModport_simple_ports_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitModport_simple_ports_declaration(SV3_1aParser::Modport_simple_ports_declarationContext * ctx)   {
-PythonAPI::evalScript("exitModport_simple_ports_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModport_simple_ports_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterModport_simple_port(SV3_1aParser::Modport_simple_portContext * ctx)   {
-PythonAPI::evalScript("enterModport_simple_port", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModport_simple_port", this, (parser_rule_context*) ctx);
 }
 
    void exitModport_simple_port(SV3_1aParser::Modport_simple_portContext * ctx)   {
-PythonAPI::evalScript("exitModport_simple_port", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModport_simple_port", this, (parser_rule_context*) ctx);
 }
 
    void enterModport_hierarchical_ports_declaration(SV3_1aParser::Modport_hierarchical_ports_declarationContext * ctx)   {
-PythonAPI::evalScript("enterModport_hierarchical_ports_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModport_hierarchical_ports_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitModport_hierarchical_ports_declaration(SV3_1aParser::Modport_hierarchical_ports_declarationContext * ctx)   {
-PythonAPI::evalScript("exitModport_hierarchical_ports_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModport_hierarchical_ports_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterModport_tf_ports_declaration(SV3_1aParser::Modport_tf_ports_declarationContext * ctx)   {
-PythonAPI::evalScript("enterModport_tf_ports_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModport_tf_ports_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitModport_tf_ports_declaration(SV3_1aParser::Modport_tf_ports_declarationContext * ctx)   {
-PythonAPI::evalScript("exitModport_tf_ports_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModport_tf_ports_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterModport_tf_port(SV3_1aParser::Modport_tf_portContext * ctx)   {
-PythonAPI::evalScript("enterModport_tf_port", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModport_tf_port", this, (parser_rule_context*) ctx);
 }
 
    void exitModport_tf_port(SV3_1aParser::Modport_tf_portContext * ctx)   {
-PythonAPI::evalScript("exitModport_tf_port", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModport_tf_port", this, (parser_rule_context*) ctx);
 }
 
    void enterConcurrent_assertion_item(SV3_1aParser::Concurrent_assertion_itemContext * ctx)   {
-PythonAPI::evalScript("enterConcurrent_assertion_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConcurrent_assertion_item", this, (parser_rule_context*) ctx);
 }
 
    void exitConcurrent_assertion_item(SV3_1aParser::Concurrent_assertion_itemContext * ctx)   {
-PythonAPI::evalScript("exitConcurrent_assertion_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConcurrent_assertion_item", this, (parser_rule_context*) ctx);
 }
 
    void enterConcurrent_assertion_statement(SV3_1aParser::Concurrent_assertion_statementContext * ctx)   {
-PythonAPI::evalScript("enterConcurrent_assertion_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConcurrent_assertion_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitConcurrent_assertion_statement(SV3_1aParser::Concurrent_assertion_statementContext * ctx)   {
-PythonAPI::evalScript("exitConcurrent_assertion_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConcurrent_assertion_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterAssert_property_statement(SV3_1aParser::Assert_property_statementContext * ctx)   {
-PythonAPI::evalScript("enterAssert_property_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssert_property_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitAssert_property_statement(SV3_1aParser::Assert_property_statementContext * ctx)   {
-PythonAPI::evalScript("exitAssert_property_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssert_property_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterAssume_property_statement(SV3_1aParser::Assume_property_statementContext * ctx)   {
-PythonAPI::evalScript("enterAssume_property_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssume_property_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitAssume_property_statement(SV3_1aParser::Assume_property_statementContext * ctx)   {
-PythonAPI::evalScript("exitAssume_property_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssume_property_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterCover_property_statement(SV3_1aParser::Cover_property_statementContext * ctx)   {
-PythonAPI::evalScript("enterCover_property_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCover_property_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitCover_property_statement(SV3_1aParser::Cover_property_statementContext * ctx)   {
-PythonAPI::evalScript("exitCover_property_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCover_property_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterExpect_property_statement(SV3_1aParser::Expect_property_statementContext * ctx)   {
-PythonAPI::evalScript("enterExpect_property_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterExpect_property_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitExpect_property_statement(SV3_1aParser::Expect_property_statementContext * ctx)   {
-PythonAPI::evalScript("exitExpect_property_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitExpect_property_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterCover_sequence_statement(SV3_1aParser::Cover_sequence_statementContext * ctx)   {
-PythonAPI::evalScript("enterCover_sequence_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCover_sequence_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitCover_sequence_statement(SV3_1aParser::Cover_sequence_statementContext * ctx)   {
-PythonAPI::evalScript("exitCover_sequence_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCover_sequence_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterRestrict_property_statement(SV3_1aParser::Restrict_property_statementContext * ctx)   {
-PythonAPI::evalScript("enterRestrict_property_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRestrict_property_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitRestrict_property_statement(SV3_1aParser::Restrict_property_statementContext * ctx)   {
-PythonAPI::evalScript("exitRestrict_property_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRestrict_property_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterProperty_instance(SV3_1aParser::Property_instanceContext * ctx)   {
-PythonAPI::evalScript("enterProperty_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProperty_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitProperty_instance(SV3_1aParser::Property_instanceContext * ctx)   {
-PythonAPI::evalScript("exitProperty_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProperty_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterProperty_actual_arg(SV3_1aParser::Property_actual_argContext * ctx)   {
-PythonAPI::evalScript("enterProperty_actual_arg", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProperty_actual_arg", this, (parser_rule_context*) ctx);
 }
 
    void exitProperty_actual_arg(SV3_1aParser::Property_actual_argContext * ctx)   {
-PythonAPI::evalScript("exitProperty_actual_arg", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProperty_actual_arg", this, (parser_rule_context*) ctx);
 }
 
    void enterConcurrent_assertion_item_declaration(SV3_1aParser::Concurrent_assertion_item_declarationContext * ctx)   {
-PythonAPI::evalScript("enterConcurrent_assertion_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConcurrent_assertion_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitConcurrent_assertion_item_declaration(SV3_1aParser::Concurrent_assertion_item_declarationContext * ctx)   {
-PythonAPI::evalScript("exitConcurrent_assertion_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConcurrent_assertion_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterAssertion_item_declaration(SV3_1aParser::Assertion_item_declarationContext * ctx)   {
-PythonAPI::evalScript("enterAssertion_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssertion_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitAssertion_item_declaration(SV3_1aParser::Assertion_item_declarationContext * ctx)   {
-PythonAPI::evalScript("exitAssertion_item_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssertion_item_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterEndproperty(SV3_1aParser::EndpropertyContext * ctx)   {
-PythonAPI::evalScript("enterEndproperty", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndproperty", this, (parser_rule_context*) ctx);
 }
 
    void exitEndproperty(SV3_1aParser::EndpropertyContext * ctx)   {
-PythonAPI::evalScript("exitEndproperty", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndproperty", this, (parser_rule_context*) ctx);
 }
 
    void enterProperty_declaration(SV3_1aParser::Property_declarationContext * ctx)   {
-PythonAPI::evalScript("enterProperty_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProperty_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitProperty_declaration(SV3_1aParser::Property_declarationContext * ctx)   {
-PythonAPI::evalScript("exitProperty_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProperty_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterProperty_formal_type(SV3_1aParser::Property_formal_typeContext * ctx)   {
-PythonAPI::evalScript("enterProperty_formal_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProperty_formal_type", this, (parser_rule_context*) ctx);
 }
 
    void exitProperty_formal_type(SV3_1aParser::Property_formal_typeContext * ctx)   {
-PythonAPI::evalScript("exitProperty_formal_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProperty_formal_type", this, (parser_rule_context*) ctx);
 }
 
    void enterProperty_spec(SV3_1aParser::Property_specContext * ctx)   {
-PythonAPI::evalScript("enterProperty_spec", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProperty_spec", this, (parser_rule_context*) ctx);
 }
 
    void exitProperty_spec(SV3_1aParser::Property_specContext * ctx)   {
-PythonAPI::evalScript("exitProperty_spec", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProperty_spec", this, (parser_rule_context*) ctx);
 }
 
    void enterEndcase(SV3_1aParser::EndcaseContext * ctx)   {
-PythonAPI::evalScript("enterEndcase", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndcase", this, (parser_rule_context*) ctx);
 }
 
    void exitEndcase(SV3_1aParser::EndcaseContext * ctx)   {
-PythonAPI::evalScript("exitEndcase", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndcase", this, (parser_rule_context*) ctx);
 }
 
    void enterProperty_expr(SV3_1aParser::Property_exprContext * ctx)   {
-PythonAPI::evalScript("enterProperty_expr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProperty_expr", this, (parser_rule_context*) ctx);
 }
 
    void exitProperty_expr(SV3_1aParser::Property_exprContext * ctx)   {
-PythonAPI::evalScript("exitProperty_expr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProperty_expr", this, (parser_rule_context*) ctx);
 }
 
    void enterProperty_case_item(SV3_1aParser::Property_case_itemContext * ctx)   {
-PythonAPI::evalScript("enterProperty_case_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProperty_case_item", this, (parser_rule_context*) ctx);
 }
 
    void exitProperty_case_item(SV3_1aParser::Property_case_itemContext * ctx)   {
-PythonAPI::evalScript("exitProperty_case_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProperty_case_item", this, (parser_rule_context*) ctx);
 }
 
    void enterEndsequence(SV3_1aParser::EndsequenceContext * ctx)   {
-PythonAPI::evalScript("enterEndsequence", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndsequence", this, (parser_rule_context*) ctx);
 }
 
    void exitEndsequence(SV3_1aParser::EndsequenceContext * ctx)   {
-PythonAPI::evalScript("exitEndsequence", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndsequence", this, (parser_rule_context*) ctx);
 }
 
    void enterSequence_declaration(SV3_1aParser::Sequence_declarationContext * ctx)   {
-PythonAPI::evalScript("enterSequence_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSequence_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitSequence_declaration(SV3_1aParser::Sequence_declarationContext * ctx)   {
-PythonAPI::evalScript("exitSequence_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSequence_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterSequence_expr(SV3_1aParser::Sequence_exprContext * ctx)   {
-PythonAPI::evalScript("enterSequence_expr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSequence_expr", this, (parser_rule_context*) ctx);
 }
 
    void exitSequence_expr(SV3_1aParser::Sequence_exprContext * ctx)   {
-PythonAPI::evalScript("exitSequence_expr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSequence_expr", this, (parser_rule_context*) ctx);
 }
 
    void enterCycle_delay_range(SV3_1aParser::Cycle_delay_rangeContext * ctx)   {
-PythonAPI::evalScript("enterCycle_delay_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCycle_delay_range", this, (parser_rule_context*) ctx);
 }
 
    void exitCycle_delay_range(SV3_1aParser::Cycle_delay_rangeContext * ctx)   {
-PythonAPI::evalScript("exitCycle_delay_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCycle_delay_range", this, (parser_rule_context*) ctx);
 }
 
    void enterSequence_method_call(SV3_1aParser::Sequence_method_callContext * ctx)   {
-PythonAPI::evalScript("enterSequence_method_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSequence_method_call", this, (parser_rule_context*) ctx);
 }
 
    void exitSequence_method_call(SV3_1aParser::Sequence_method_callContext * ctx)   {
-PythonAPI::evalScript("exitSequence_method_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSequence_method_call", this, (parser_rule_context*) ctx);
 }
 
    void enterSequence_match_item(SV3_1aParser::Sequence_match_itemContext * ctx)   {
-PythonAPI::evalScript("enterSequence_match_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSequence_match_item", this, (parser_rule_context*) ctx);
 }
 
    void exitSequence_match_item(SV3_1aParser::Sequence_match_itemContext * ctx)   {
-PythonAPI::evalScript("exitSequence_match_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSequence_match_item", this, (parser_rule_context*) ctx);
 }
 
    void enterSeqFormatType_Data(SV3_1aParser::SeqFormatType_DataContext * ctx)   {
-PythonAPI::evalScript("enterSeqFormatType_Data", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSeqFormatType_Data", this, (parser_rule_context*) ctx);
 }
 
    void exitSeqFormatType_Data(SV3_1aParser::SeqFormatType_DataContext * ctx)   {
-PythonAPI::evalScript("exitSeqFormatType_Data", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSeqFormatType_Data", this, (parser_rule_context*) ctx);
 }
 
    void enterSeqFormatType_Sequence(SV3_1aParser::SeqFormatType_SequenceContext * ctx)   {
-PythonAPI::evalScript("enterSeqFormatType_Sequence", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSeqFormatType_Sequence", this, (parser_rule_context*) ctx);
 }
 
    void exitSeqFormatType_Sequence(SV3_1aParser::SeqFormatType_SequenceContext * ctx)   {
-PythonAPI::evalScript("exitSeqFormatType_Sequence", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSeqFormatType_Sequence", this, (parser_rule_context*) ctx);
 }
 
    void enterSeqFormatType_Untyped(SV3_1aParser::SeqFormatType_UntypedContext * ctx)   {
-PythonAPI::evalScript("enterSeqFormatType_Untyped", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSeqFormatType_Untyped", this, (parser_rule_context*) ctx);
 }
 
    void exitSeqFormatType_Untyped(SV3_1aParser::SeqFormatType_UntypedContext * ctx)   {
-PythonAPI::evalScript("exitSeqFormatType_Untyped", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSeqFormatType_Untyped", this, (parser_rule_context*) ctx);
 }
 
    void enterSequence_instance(SV3_1aParser::Sequence_instanceContext * ctx)   {
-PythonAPI::evalScript("enterSequence_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSequence_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitSequence_instance(SV3_1aParser::Sequence_instanceContext * ctx)   {
-PythonAPI::evalScript("exitSequence_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSequence_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterSequence_list_of_arguments(SV3_1aParser::Sequence_list_of_argumentsContext * ctx)   {
-PythonAPI::evalScript("enterSequence_list_of_arguments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSequence_list_of_arguments", this, (parser_rule_context*) ctx);
 }
 
    void exitSequence_list_of_arguments(SV3_1aParser::Sequence_list_of_argumentsContext * ctx)   {
-PythonAPI::evalScript("exitSequence_list_of_arguments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSequence_list_of_arguments", this, (parser_rule_context*) ctx);
 }
 
    void enterSequence_actual_arg(SV3_1aParser::Sequence_actual_argContext * ctx)   {
-PythonAPI::evalScript("enterSequence_actual_arg", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSequence_actual_arg", this, (parser_rule_context*) ctx);
 }
 
    void exitSequence_actual_arg(SV3_1aParser::Sequence_actual_argContext * ctx)   {
-PythonAPI::evalScript("exitSequence_actual_arg", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSequence_actual_arg", this, (parser_rule_context*) ctx);
 }
 
    void enterFormal_list_item(SV3_1aParser::Formal_list_itemContext * ctx)   {
-PythonAPI::evalScript("enterFormal_list_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFormal_list_item", this, (parser_rule_context*) ctx);
 }
 
    void exitFormal_list_item(SV3_1aParser::Formal_list_itemContext * ctx)   {
-PythonAPI::evalScript("exitFormal_list_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFormal_list_item", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_formals(SV3_1aParser::List_of_formalsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_formals", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_formals", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_formals(SV3_1aParser::List_of_formalsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_formals", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_formals", this, (parser_rule_context*) ctx);
 }
 
    void enterActual_arg_list(SV3_1aParser::Actual_arg_listContext * ctx)   {
-PythonAPI::evalScript("enterActual_arg_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterActual_arg_list", this, (parser_rule_context*) ctx);
 }
 
    void exitActual_arg_list(SV3_1aParser::Actual_arg_listContext * ctx)   {
-PythonAPI::evalScript("exitActual_arg_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitActual_arg_list", this, (parser_rule_context*) ctx);
 }
 
    void enterActual_arg_expr(SV3_1aParser::Actual_arg_exprContext * ctx)   {
-PythonAPI::evalScript("enterActual_arg_expr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterActual_arg_expr", this, (parser_rule_context*) ctx);
 }
 
    void exitActual_arg_expr(SV3_1aParser::Actual_arg_exprContext * ctx)   {
-PythonAPI::evalScript("exitActual_arg_expr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitActual_arg_expr", this, (parser_rule_context*) ctx);
 }
 
    void enterBoolean_abbrev(SV3_1aParser::Boolean_abbrevContext * ctx)   {
-PythonAPI::evalScript("enterBoolean_abbrev", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBoolean_abbrev", this, (parser_rule_context*) ctx);
 }
 
    void exitBoolean_abbrev(SV3_1aParser::Boolean_abbrevContext * ctx)   {
-PythonAPI::evalScript("exitBoolean_abbrev", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBoolean_abbrev", this, (parser_rule_context*) ctx);
 }
 
    void enterConsecutive_repetition(SV3_1aParser::Consecutive_repetitionContext * ctx)   {
-PythonAPI::evalScript("enterConsecutive_repetition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConsecutive_repetition", this, (parser_rule_context*) ctx);
 }
 
    void exitConsecutive_repetition(SV3_1aParser::Consecutive_repetitionContext * ctx)   {
-PythonAPI::evalScript("exitConsecutive_repetition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConsecutive_repetition", this, (parser_rule_context*) ctx);
 }
 
    void enterNon_consecutive_repetition(SV3_1aParser::Non_consecutive_repetitionContext * ctx)   {
-PythonAPI::evalScript("enterNon_consecutive_repetition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNon_consecutive_repetition", this, (parser_rule_context*) ctx);
 }
 
    void exitNon_consecutive_repetition(SV3_1aParser::Non_consecutive_repetitionContext * ctx)   {
-PythonAPI::evalScript("exitNon_consecutive_repetition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNon_consecutive_repetition", this, (parser_rule_context*) ctx);
 }
 
    void enterGoto_repetition(SV3_1aParser::Goto_repetitionContext * ctx)   {
-PythonAPI::evalScript("enterGoto_repetition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGoto_repetition", this, (parser_rule_context*) ctx);
 }
 
    void exitGoto_repetition(SV3_1aParser::Goto_repetitionContext * ctx)   {
-PythonAPI::evalScript("exitGoto_repetition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGoto_repetition", this, (parser_rule_context*) ctx);
 }
 
    void enterConst_or_range_expression(SV3_1aParser::Const_or_range_expressionContext * ctx)   {
-PythonAPI::evalScript("enterConst_or_range_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConst_or_range_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitConst_or_range_expression(SV3_1aParser::Const_or_range_expressionContext * ctx)   {
-PythonAPI::evalScript("exitConst_or_range_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConst_or_range_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterCycle_delay_const_range_expression(SV3_1aParser::Cycle_delay_const_range_expressionContext * ctx)   {
-PythonAPI::evalScript("enterCycle_delay_const_range_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCycle_delay_const_range_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitCycle_delay_const_range_expression(SV3_1aParser::Cycle_delay_const_range_expressionContext * ctx)   {
-PythonAPI::evalScript("exitCycle_delay_const_range_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCycle_delay_const_range_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterExpression_or_dist(SV3_1aParser::Expression_or_distContext * ctx)   {
-PythonAPI::evalScript("enterExpression_or_dist", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterExpression_or_dist", this, (parser_rule_context*) ctx);
 }
 
    void exitExpression_or_dist(SV3_1aParser::Expression_or_distContext * ctx)   {
-PythonAPI::evalScript("exitExpression_or_dist", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitExpression_or_dist", this, (parser_rule_context*) ctx);
 }
 
    void enterAssertion_variable_declaration(SV3_1aParser::Assertion_variable_declarationContext * ctx)   {
-PythonAPI::evalScript("enterAssertion_variable_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssertion_variable_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitAssertion_variable_declaration(SV3_1aParser::Assertion_variable_declarationContext * ctx)   {
-PythonAPI::evalScript("exitAssertion_variable_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssertion_variable_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterLet_declaration(SV3_1aParser::Let_declarationContext * ctx)   {
-PythonAPI::evalScript("enterLet_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLet_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitLet_declaration(SV3_1aParser::Let_declarationContext * ctx)   {
-PythonAPI::evalScript("exitLet_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLet_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterLet_port_list(SV3_1aParser::Let_port_listContext * ctx)   {
-PythonAPI::evalScript("enterLet_port_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLet_port_list", this, (parser_rule_context*) ctx);
 }
 
    void exitLet_port_list(SV3_1aParser::Let_port_listContext * ctx)   {
-PythonAPI::evalScript("exitLet_port_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLet_port_list", this, (parser_rule_context*) ctx);
 }
 
    void enterLet_port_item(SV3_1aParser::Let_port_itemContext * ctx)   {
-PythonAPI::evalScript("enterLet_port_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLet_port_item", this, (parser_rule_context*) ctx);
 }
 
    void exitLet_port_item(SV3_1aParser::Let_port_itemContext * ctx)   {
-PythonAPI::evalScript("exitLet_port_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLet_port_item", this, (parser_rule_context*) ctx);
 }
 
    void enterLet_formal_type(SV3_1aParser::Let_formal_typeContext * ctx)   {
-PythonAPI::evalScript("enterLet_formal_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLet_formal_type", this, (parser_rule_context*) ctx);
 }
 
    void exitLet_formal_type(SV3_1aParser::Let_formal_typeContext * ctx)   {
-PythonAPI::evalScript("exitLet_formal_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLet_formal_type", this, (parser_rule_context*) ctx);
 }
 
    void enterEndgroup(SV3_1aParser::EndgroupContext * ctx)   {
-PythonAPI::evalScript("enterEndgroup", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndgroup", this, (parser_rule_context*) ctx);
 }
 
    void exitEndgroup(SV3_1aParser::EndgroupContext * ctx)   {
-PythonAPI::evalScript("exitEndgroup", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndgroup", this, (parser_rule_context*) ctx);
 }
 
    void enterCovergroup_declaration(SV3_1aParser::Covergroup_declarationContext * ctx)   {
-PythonAPI::evalScript("enterCovergroup_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCovergroup_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitCovergroup_declaration(SV3_1aParser::Covergroup_declarationContext * ctx)   {
-PythonAPI::evalScript("exitCovergroup_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCovergroup_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterCoverage_spec_or_option(SV3_1aParser::Coverage_spec_or_optionContext * ctx)   {
-PythonAPI::evalScript("enterCoverage_spec_or_option", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCoverage_spec_or_option", this, (parser_rule_context*) ctx);
 }
 
    void exitCoverage_spec_or_option(SV3_1aParser::Coverage_spec_or_optionContext * ctx)   {
-PythonAPI::evalScript("exitCoverage_spec_or_option", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCoverage_spec_or_option", this, (parser_rule_context*) ctx);
 }
 
    void enterCoverage_option(SV3_1aParser::Coverage_optionContext * ctx)   {
-PythonAPI::evalScript("enterCoverage_option", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCoverage_option", this, (parser_rule_context*) ctx);
 }
 
    void exitCoverage_option(SV3_1aParser::Coverage_optionContext * ctx)   {
-PythonAPI::evalScript("exitCoverage_option", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCoverage_option", this, (parser_rule_context*) ctx);
 }
 
    void enterCoverage_spec(SV3_1aParser::Coverage_specContext * ctx)   {
-PythonAPI::evalScript("enterCoverage_spec", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCoverage_spec", this, (parser_rule_context*) ctx);
 }
 
    void exitCoverage_spec(SV3_1aParser::Coverage_specContext * ctx)   {
-PythonAPI::evalScript("exitCoverage_spec", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCoverage_spec", this, (parser_rule_context*) ctx);
 }
 
    void enterCoverage_event(SV3_1aParser::Coverage_eventContext * ctx)   {
-PythonAPI::evalScript("enterCoverage_event", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCoverage_event", this, (parser_rule_context*) ctx);
 }
 
    void exitCoverage_event(SV3_1aParser::Coverage_eventContext * ctx)   {
-PythonAPI::evalScript("exitCoverage_event", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCoverage_event", this, (parser_rule_context*) ctx);
 }
 
    void enterEnd(SV3_1aParser::EndContext * ctx)   {
-PythonAPI::evalScript("enterEnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEnd", this, (parser_rule_context*) ctx);
 }
 
    void exitEnd(SV3_1aParser::EndContext * ctx)   {
-PythonAPI::evalScript("exitEnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEnd", this, (parser_rule_context*) ctx);
 }
 
    void enterBlock_event_expression(SV3_1aParser::Block_event_expressionContext * ctx)   {
-PythonAPI::evalScript("enterBlock_event_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBlock_event_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitBlock_event_expression(SV3_1aParser::Block_event_expressionContext * ctx)   {
-PythonAPI::evalScript("exitBlock_event_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBlock_event_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterHierarchical_btf_identifier(SV3_1aParser::Hierarchical_btf_identifierContext * ctx)   {
-PythonAPI::evalScript("enterHierarchical_btf_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterHierarchical_btf_identifier", this, (parser_rule_context*) ctx);
 }
 
    void exitHierarchical_btf_identifier(SV3_1aParser::Hierarchical_btf_identifierContext * ctx)   {
-PythonAPI::evalScript("exitHierarchical_btf_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitHierarchical_btf_identifier", this, (parser_rule_context*) ctx);
 }
 
    void enterCover_point(SV3_1aParser::Cover_pointContext * ctx)   {
-PythonAPI::evalScript("enterCover_point", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCover_point", this, (parser_rule_context*) ctx);
 }
 
    void exitCover_point(SV3_1aParser::Cover_pointContext * ctx)   {
-PythonAPI::evalScript("exitCover_point", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCover_point", this, (parser_rule_context*) ctx);
 }
 
    void enterBins_or_empty(SV3_1aParser::Bins_or_emptyContext * ctx)   {
-PythonAPI::evalScript("enterBins_or_empty", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBins_or_empty", this, (parser_rule_context*) ctx);
 }
 
    void exitBins_or_empty(SV3_1aParser::Bins_or_emptyContext * ctx)   {
-PythonAPI::evalScript("exitBins_or_empty", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBins_or_empty", this, (parser_rule_context*) ctx);
 }
 
    void enterBins_or_options(SV3_1aParser::Bins_or_optionsContext * ctx)   {
-PythonAPI::evalScript("enterBins_or_options", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBins_or_options", this, (parser_rule_context*) ctx);
 }
 
    void exitBins_or_options(SV3_1aParser::Bins_or_optionsContext * ctx)   {
-PythonAPI::evalScript("exitBins_or_options", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBins_or_options", this, (parser_rule_context*) ctx);
 }
 
    void enterBins_Bins(SV3_1aParser::Bins_BinsContext * ctx)   {
-PythonAPI::evalScript("enterBins_Bins", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBins_Bins", this, (parser_rule_context*) ctx);
 }
 
    void exitBins_Bins(SV3_1aParser::Bins_BinsContext * ctx)   {
-PythonAPI::evalScript("exitBins_Bins", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBins_Bins", this, (parser_rule_context*) ctx);
 }
 
    void enterBins_Illegal(SV3_1aParser::Bins_IllegalContext * ctx)   {
-PythonAPI::evalScript("enterBins_Illegal", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBins_Illegal", this, (parser_rule_context*) ctx);
 }
 
    void exitBins_Illegal(SV3_1aParser::Bins_IllegalContext * ctx)   {
-PythonAPI::evalScript("exitBins_Illegal", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBins_Illegal", this, (parser_rule_context*) ctx);
 }
 
    void enterBins_Ignore(SV3_1aParser::Bins_IgnoreContext * ctx)   {
-PythonAPI::evalScript("enterBins_Ignore", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBins_Ignore", this, (parser_rule_context*) ctx);
 }
 
    void exitBins_Ignore(SV3_1aParser::Bins_IgnoreContext * ctx)   {
-PythonAPI::evalScript("exitBins_Ignore", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBins_Ignore", this, (parser_rule_context*) ctx);
 }
 
    void enterRange_list(SV3_1aParser::Range_listContext * ctx)   {
-PythonAPI::evalScript("enterRange_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRange_list", this, (parser_rule_context*) ctx);
 }
 
    void exitRange_list(SV3_1aParser::Range_listContext * ctx)   {
-PythonAPI::evalScript("exitRange_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRange_list", this, (parser_rule_context*) ctx);
 }
 
    void enterTrans_list(SV3_1aParser::Trans_listContext * ctx)   {
-PythonAPI::evalScript("enterTrans_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTrans_list", this, (parser_rule_context*) ctx);
 }
 
    void exitTrans_list(SV3_1aParser::Trans_listContext * ctx)   {
-PythonAPI::evalScript("exitTrans_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTrans_list", this, (parser_rule_context*) ctx);
 }
 
    void enterTrans_set(SV3_1aParser::Trans_setContext * ctx)   {
-PythonAPI::evalScript("enterTrans_set", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTrans_set", this, (parser_rule_context*) ctx);
 }
 
    void exitTrans_set(SV3_1aParser::Trans_setContext * ctx)   {
-PythonAPI::evalScript("exitTrans_set", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTrans_set", this, (parser_rule_context*) ctx);
 }
 
    void enterTrans_range_list(SV3_1aParser::Trans_range_listContext * ctx)   {
-PythonAPI::evalScript("enterTrans_range_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTrans_range_list", this, (parser_rule_context*) ctx);
 }
 
    void exitTrans_range_list(SV3_1aParser::Trans_range_listContext * ctx)   {
-PythonAPI::evalScript("exitTrans_range_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTrans_range_list", this, (parser_rule_context*) ctx);
 }
 
    void enterRepeat_range(SV3_1aParser::Repeat_rangeContext * ctx)   {
-PythonAPI::evalScript("enterRepeat_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRepeat_range", this, (parser_rule_context*) ctx);
 }
 
    void exitRepeat_range(SV3_1aParser::Repeat_rangeContext * ctx)   {
-PythonAPI::evalScript("exitRepeat_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRepeat_range", this, (parser_rule_context*) ctx);
 }
 
    void enterCover_cross(SV3_1aParser::Cover_crossContext * ctx)   {
-PythonAPI::evalScript("enterCover_cross", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCover_cross", this, (parser_rule_context*) ctx);
 }
 
    void exitCover_cross(SV3_1aParser::Cover_crossContext * ctx)   {
-PythonAPI::evalScript("exitCover_cross", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCover_cross", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_cross_items(SV3_1aParser::List_of_cross_itemsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_cross_items", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_cross_items", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_cross_items(SV3_1aParser::List_of_cross_itemsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_cross_items", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_cross_items", this, (parser_rule_context*) ctx);
 }
 
    void enterCross_item(SV3_1aParser::Cross_itemContext * ctx)   {
-PythonAPI::evalScript("enterCross_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCross_item", this, (parser_rule_context*) ctx);
 }
 
    void exitCross_item(SV3_1aParser::Cross_itemContext * ctx)   {
-PythonAPI::evalScript("exitCross_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCross_item", this, (parser_rule_context*) ctx);
 }
 
    void enterCross_body(SV3_1aParser::Cross_bodyContext * ctx)   {
-PythonAPI::evalScript("enterCross_body", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCross_body", this, (parser_rule_context*) ctx);
 }
 
    void exitCross_body(SV3_1aParser::Cross_bodyContext * ctx)   {
-PythonAPI::evalScript("exitCross_body", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCross_body", this, (parser_rule_context*) ctx);
 }
 
    void enterCross_body_item(SV3_1aParser::Cross_body_itemContext * ctx)   {
-PythonAPI::evalScript("enterCross_body_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCross_body_item", this, (parser_rule_context*) ctx);
 }
 
    void exitCross_body_item(SV3_1aParser::Cross_body_itemContext * ctx)   {
-PythonAPI::evalScript("exitCross_body_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCross_body_item", this, (parser_rule_context*) ctx);
 }
 
    void enterBins_selection_or_option(SV3_1aParser::Bins_selection_or_optionContext * ctx)   {
-PythonAPI::evalScript("enterBins_selection_or_option", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBins_selection_or_option", this, (parser_rule_context*) ctx);
 }
 
    void exitBins_selection_or_option(SV3_1aParser::Bins_selection_or_optionContext * ctx)   {
-PythonAPI::evalScript("exitBins_selection_or_option", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBins_selection_or_option", this, (parser_rule_context*) ctx);
 }
 
    void enterBins_selection(SV3_1aParser::Bins_selectionContext * ctx)   {
-PythonAPI::evalScript("enterBins_selection", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBins_selection", this, (parser_rule_context*) ctx);
 }
 
    void exitBins_selection(SV3_1aParser::Bins_selectionContext * ctx)   {
-PythonAPI::evalScript("exitBins_selection", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBins_selection", this, (parser_rule_context*) ctx);
 }
 
    void enterSelect_expression(SV3_1aParser::Select_expressionContext * ctx)   {
-PythonAPI::evalScript("enterSelect_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSelect_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitSelect_expression(SV3_1aParser::Select_expressionContext * ctx)   {
-PythonAPI::evalScript("exitSelect_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSelect_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterSelect_condition(SV3_1aParser::Select_conditionContext * ctx)   {
-PythonAPI::evalScript("enterSelect_condition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSelect_condition", this, (parser_rule_context*) ctx);
 }
 
    void exitSelect_condition(SV3_1aParser::Select_conditionContext * ctx)   {
-PythonAPI::evalScript("exitSelect_condition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSelect_condition", this, (parser_rule_context*) ctx);
 }
 
    void enterBins_expression(SV3_1aParser::Bins_expressionContext * ctx)   {
-PythonAPI::evalScript("enterBins_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBins_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitBins_expression(SV3_1aParser::Bins_expressionContext * ctx)   {
-PythonAPI::evalScript("exitBins_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBins_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterOpen_range_list(SV3_1aParser::Open_range_listContext * ctx)   {
-PythonAPI::evalScript("enterOpen_range_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOpen_range_list", this, (parser_rule_context*) ctx);
 }
 
    void exitOpen_range_list(SV3_1aParser::Open_range_listContext * ctx)   {
-PythonAPI::evalScript("exitOpen_range_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOpen_range_list", this, (parser_rule_context*) ctx);
 }
 
    void enterGate_instantiation(SV3_1aParser::Gate_instantiationContext * ctx)   {
-PythonAPI::evalScript("enterGate_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGate_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void exitGate_instantiation(SV3_1aParser::Gate_instantiationContext * ctx)   {
-PythonAPI::evalScript("exitGate_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGate_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void enterCmos_switch_instance(SV3_1aParser::Cmos_switch_instanceContext * ctx)   {
-PythonAPI::evalScript("enterCmos_switch_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCmos_switch_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitCmos_switch_instance(SV3_1aParser::Cmos_switch_instanceContext * ctx)   {
-PythonAPI::evalScript("exitCmos_switch_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCmos_switch_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterEnable_gate_instance(SV3_1aParser::Enable_gate_instanceContext * ctx)   {
-PythonAPI::evalScript("enterEnable_gate_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEnable_gate_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitEnable_gate_instance(SV3_1aParser::Enable_gate_instanceContext * ctx)   {
-PythonAPI::evalScript("exitEnable_gate_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEnable_gate_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterMos_switch_instance(SV3_1aParser::Mos_switch_instanceContext * ctx)   {
-PythonAPI::evalScript("enterMos_switch_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterMos_switch_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitMos_switch_instance(SV3_1aParser::Mos_switch_instanceContext * ctx)   {
-PythonAPI::evalScript("exitMos_switch_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitMos_switch_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterN_input_gate_instance(SV3_1aParser::N_input_gate_instanceContext * ctx)   {
-PythonAPI::evalScript("enterN_input_gate_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterN_input_gate_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitN_input_gate_instance(SV3_1aParser::N_input_gate_instanceContext * ctx)   {
-PythonAPI::evalScript("exitN_input_gate_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitN_input_gate_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterN_output_gate_instance(SV3_1aParser::N_output_gate_instanceContext * ctx)   {
-PythonAPI::evalScript("enterN_output_gate_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterN_output_gate_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitN_output_gate_instance(SV3_1aParser::N_output_gate_instanceContext * ctx)   {
-PythonAPI::evalScript("exitN_output_gate_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitN_output_gate_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterPass_switch_instance(SV3_1aParser::Pass_switch_instanceContext * ctx)   {
-PythonAPI::evalScript("enterPass_switch_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPass_switch_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitPass_switch_instance(SV3_1aParser::Pass_switch_instanceContext * ctx)   {
-PythonAPI::evalScript("exitPass_switch_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPass_switch_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterPass_enable_switch_instance(SV3_1aParser::Pass_enable_switch_instanceContext * ctx)   {
-PythonAPI::evalScript("enterPass_enable_switch_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPass_enable_switch_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitPass_enable_switch_instance(SV3_1aParser::Pass_enable_switch_instanceContext * ctx)   {
-PythonAPI::evalScript("exitPass_enable_switch_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPass_enable_switch_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterPull_gate_instance(SV3_1aParser::Pull_gate_instanceContext * ctx)   {
-PythonAPI::evalScript("enterPull_gate_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPull_gate_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitPull_gate_instance(SV3_1aParser::Pull_gate_instanceContext * ctx)   {
-PythonAPI::evalScript("exitPull_gate_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPull_gate_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterPulldownStrength_01(SV3_1aParser::PulldownStrength_01Context * ctx)   {
-PythonAPI::evalScript("enterPulldownStrength_01", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPulldownStrength_01", this, (parser_rule_context*) ctx);
 }
 
    void exitPulldownStrength_01(SV3_1aParser::PulldownStrength_01Context * ctx)   {
-PythonAPI::evalScript("exitPulldownStrength_01", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPulldownStrength_01", this, (parser_rule_context*) ctx);
 }
 
    void enterPulldownStrength_10(SV3_1aParser::PulldownStrength_10Context * ctx)   {
-PythonAPI::evalScript("enterPulldownStrength_10", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPulldownStrength_10", this, (parser_rule_context*) ctx);
 }
 
    void exitPulldownStrength_10(SV3_1aParser::PulldownStrength_10Context * ctx)   {
-PythonAPI::evalScript("exitPulldownStrength_10", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPulldownStrength_10", this, (parser_rule_context*) ctx);
 }
 
    void enterPulldownStrength_0(SV3_1aParser::PulldownStrength_0Context * ctx)   {
-PythonAPI::evalScript("enterPulldownStrength_0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPulldownStrength_0", this, (parser_rule_context*) ctx);
 }
 
    void exitPulldownStrength_0(SV3_1aParser::PulldownStrength_0Context * ctx)   {
-PythonAPI::evalScript("exitPulldownStrength_0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPulldownStrength_0", this, (parser_rule_context*) ctx);
 }
 
    void enterPullupStrength_01(SV3_1aParser::PullupStrength_01Context * ctx)   {
-PythonAPI::evalScript("enterPullupStrength_01", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPullupStrength_01", this, (parser_rule_context*) ctx);
 }
 
    void exitPullupStrength_01(SV3_1aParser::PullupStrength_01Context * ctx)   {
-PythonAPI::evalScript("exitPullupStrength_01", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPullupStrength_01", this, (parser_rule_context*) ctx);
 }
 
    void enterPullupStrength_10(SV3_1aParser::PullupStrength_10Context * ctx)   {
-PythonAPI::evalScript("enterPullupStrength_10", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPullupStrength_10", this, (parser_rule_context*) ctx);
 }
 
    void exitPullupStrength_10(SV3_1aParser::PullupStrength_10Context * ctx)   {
-PythonAPI::evalScript("exitPullupStrength_10", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPullupStrength_10", this, (parser_rule_context*) ctx);
 }
 
    void enterPullupStrength_1(SV3_1aParser::PullupStrength_1Context * ctx)   {
-PythonAPI::evalScript("enterPullupStrength_1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPullupStrength_1", this, (parser_rule_context*) ctx);
 }
 
    void exitPullupStrength_1(SV3_1aParser::PullupStrength_1Context * ctx)   {
-PythonAPI::evalScript("exitPullupStrength_1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPullupStrength_1", this, (parser_rule_context*) ctx);
 }
 
    void enterCmosSwitchType_Cmos(SV3_1aParser::CmosSwitchType_CmosContext * ctx)   {
-PythonAPI::evalScript("enterCmosSwitchType_Cmos", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCmosSwitchType_Cmos", this, (parser_rule_context*) ctx);
 }
 
    void exitCmosSwitchType_Cmos(SV3_1aParser::CmosSwitchType_CmosContext * ctx)   {
-PythonAPI::evalScript("exitCmosSwitchType_Cmos", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCmosSwitchType_Cmos", this, (parser_rule_context*) ctx);
 }
 
    void enterCmosSwitchType_RCmos(SV3_1aParser::CmosSwitchType_RCmosContext * ctx)   {
-PythonAPI::evalScript("enterCmosSwitchType_RCmos", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCmosSwitchType_RCmos", this, (parser_rule_context*) ctx);
 }
 
    void exitCmosSwitchType_RCmos(SV3_1aParser::CmosSwitchType_RCmosContext * ctx)   {
-PythonAPI::evalScript("exitCmosSwitchType_RCmos", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCmosSwitchType_RCmos", this, (parser_rule_context*) ctx);
 }
 
    void enterEnableGateType_Bufif0(SV3_1aParser::EnableGateType_Bufif0Context * ctx)   {
-PythonAPI::evalScript("enterEnableGateType_Bufif0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEnableGateType_Bufif0", this, (parser_rule_context*) ctx);
 }
 
    void exitEnableGateType_Bufif0(SV3_1aParser::EnableGateType_Bufif0Context * ctx)   {
-PythonAPI::evalScript("exitEnableGateType_Bufif0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEnableGateType_Bufif0", this, (parser_rule_context*) ctx);
 }
 
    void enterEnableGateType_Bufif1(SV3_1aParser::EnableGateType_Bufif1Context * ctx)   {
-PythonAPI::evalScript("enterEnableGateType_Bufif1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEnableGateType_Bufif1", this, (parser_rule_context*) ctx);
 }
 
    void exitEnableGateType_Bufif1(SV3_1aParser::EnableGateType_Bufif1Context * ctx)   {
-PythonAPI::evalScript("exitEnableGateType_Bufif1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEnableGateType_Bufif1", this, (parser_rule_context*) ctx);
 }
 
    void enterEnableGateType_Notif0(SV3_1aParser::EnableGateType_Notif0Context * ctx)   {
-PythonAPI::evalScript("enterEnableGateType_Notif0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEnableGateType_Notif0", this, (parser_rule_context*) ctx);
 }
 
    void exitEnableGateType_Notif0(SV3_1aParser::EnableGateType_Notif0Context * ctx)   {
-PythonAPI::evalScript("exitEnableGateType_Notif0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEnableGateType_Notif0", this, (parser_rule_context*) ctx);
 }
 
    void enterEnableGateType_Notif1(SV3_1aParser::EnableGateType_Notif1Context * ctx)   {
-PythonAPI::evalScript("enterEnableGateType_Notif1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEnableGateType_Notif1", this, (parser_rule_context*) ctx);
 }
 
    void exitEnableGateType_Notif1(SV3_1aParser::EnableGateType_Notif1Context * ctx)   {
-PythonAPI::evalScript("exitEnableGateType_Notif1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEnableGateType_Notif1", this, (parser_rule_context*) ctx);
 }
 
    void enterMosSwitchType_NMos(SV3_1aParser::MosSwitchType_NMosContext * ctx)   {
-PythonAPI::evalScript("enterMosSwitchType_NMos", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterMosSwitchType_NMos", this, (parser_rule_context*) ctx);
 }
 
    void exitMosSwitchType_NMos(SV3_1aParser::MosSwitchType_NMosContext * ctx)   {
-PythonAPI::evalScript("exitMosSwitchType_NMos", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitMosSwitchType_NMos", this, (parser_rule_context*) ctx);
 }
 
    void enterMosSwitchType_PMos(SV3_1aParser::MosSwitchType_PMosContext * ctx)   {
-PythonAPI::evalScript("enterMosSwitchType_PMos", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterMosSwitchType_PMos", this, (parser_rule_context*) ctx);
 }
 
    void exitMosSwitchType_PMos(SV3_1aParser::MosSwitchType_PMosContext * ctx)   {
-PythonAPI::evalScript("exitMosSwitchType_PMos", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitMosSwitchType_PMos", this, (parser_rule_context*) ctx);
 }
 
    void enterMosSwitchType_RNMos(SV3_1aParser::MosSwitchType_RNMosContext * ctx)   {
-PythonAPI::evalScript("enterMosSwitchType_RNMos", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterMosSwitchType_RNMos", this, (parser_rule_context*) ctx);
 }
 
    void exitMosSwitchType_RNMos(SV3_1aParser::MosSwitchType_RNMosContext * ctx)   {
-PythonAPI::evalScript("exitMosSwitchType_RNMos", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitMosSwitchType_RNMos", this, (parser_rule_context*) ctx);
 }
 
    void enterMosSwitchType_RPMos(SV3_1aParser::MosSwitchType_RPMosContext * ctx)   {
-PythonAPI::evalScript("enterMosSwitchType_RPMos", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterMosSwitchType_RPMos", this, (parser_rule_context*) ctx);
 }
 
    void exitMosSwitchType_RPMos(SV3_1aParser::MosSwitchType_RPMosContext * ctx)   {
-PythonAPI::evalScript("exitMosSwitchType_RPMos", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitMosSwitchType_RPMos", this, (parser_rule_context*) ctx);
 }
 
    void enterNInpGate_And(SV3_1aParser::NInpGate_AndContext * ctx)   {
-PythonAPI::evalScript("enterNInpGate_And", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNInpGate_And", this, (parser_rule_context*) ctx);
 }
 
    void exitNInpGate_And(SV3_1aParser::NInpGate_AndContext * ctx)   {
-PythonAPI::evalScript("exitNInpGate_And", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNInpGate_And", this, (parser_rule_context*) ctx);
 }
 
    void enterNInpGate_Nand(SV3_1aParser::NInpGate_NandContext * ctx)   {
-PythonAPI::evalScript("enterNInpGate_Nand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNInpGate_Nand", this, (parser_rule_context*) ctx);
 }
 
    void exitNInpGate_Nand(SV3_1aParser::NInpGate_NandContext * ctx)   {
-PythonAPI::evalScript("exitNInpGate_Nand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNInpGate_Nand", this, (parser_rule_context*) ctx);
 }
 
    void enterNInpGate_Or(SV3_1aParser::NInpGate_OrContext * ctx)   {
-PythonAPI::evalScript("enterNInpGate_Or", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNInpGate_Or", this, (parser_rule_context*) ctx);
 }
 
    void exitNInpGate_Or(SV3_1aParser::NInpGate_OrContext * ctx)   {
-PythonAPI::evalScript("exitNInpGate_Or", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNInpGate_Or", this, (parser_rule_context*) ctx);
 }
 
    void enterNInpGate_Nor(SV3_1aParser::NInpGate_NorContext * ctx)   {
-PythonAPI::evalScript("enterNInpGate_Nor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNInpGate_Nor", this, (parser_rule_context*) ctx);
 }
 
    void exitNInpGate_Nor(SV3_1aParser::NInpGate_NorContext * ctx)   {
-PythonAPI::evalScript("exitNInpGate_Nor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNInpGate_Nor", this, (parser_rule_context*) ctx);
 }
 
    void enterNInpGate_Xor(SV3_1aParser::NInpGate_XorContext * ctx)   {
-PythonAPI::evalScript("enterNInpGate_Xor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNInpGate_Xor", this, (parser_rule_context*) ctx);
 }
 
    void exitNInpGate_Xor(SV3_1aParser::NInpGate_XorContext * ctx)   {
-PythonAPI::evalScript("exitNInpGate_Xor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNInpGate_Xor", this, (parser_rule_context*) ctx);
 }
 
    void enterNInpGate_Xnor(SV3_1aParser::NInpGate_XnorContext * ctx)   {
-PythonAPI::evalScript("enterNInpGate_Xnor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNInpGate_Xnor", this, (parser_rule_context*) ctx);
 }
 
    void exitNInpGate_Xnor(SV3_1aParser::NInpGate_XnorContext * ctx)   {
-PythonAPI::evalScript("exitNInpGate_Xnor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNInpGate_Xnor", this, (parser_rule_context*) ctx);
 }
 
    void enterNOutGate_Buf(SV3_1aParser::NOutGate_BufContext * ctx)   {
-PythonAPI::evalScript("enterNOutGate_Buf", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNOutGate_Buf", this, (parser_rule_context*) ctx);
 }
 
    void exitNOutGate_Buf(SV3_1aParser::NOutGate_BufContext * ctx)   {
-PythonAPI::evalScript("exitNOutGate_Buf", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNOutGate_Buf", this, (parser_rule_context*) ctx);
 }
 
    void enterNOutGate_Not(SV3_1aParser::NOutGate_NotContext * ctx)   {
-PythonAPI::evalScript("enterNOutGate_Not", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNOutGate_Not", this, (parser_rule_context*) ctx);
 }
 
    void exitNOutGate_Not(SV3_1aParser::NOutGate_NotContext * ctx)   {
-PythonAPI::evalScript("exitNOutGate_Not", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNOutGate_Not", this, (parser_rule_context*) ctx);
 }
 
    void enterPassEnSwitch_Tranif0(SV3_1aParser::PassEnSwitch_Tranif0Context * ctx)   {
-PythonAPI::evalScript("enterPassEnSwitch_Tranif0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPassEnSwitch_Tranif0", this, (parser_rule_context*) ctx);
 }
 
    void exitPassEnSwitch_Tranif0(SV3_1aParser::PassEnSwitch_Tranif0Context * ctx)   {
-PythonAPI::evalScript("exitPassEnSwitch_Tranif0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPassEnSwitch_Tranif0", this, (parser_rule_context*) ctx);
 }
 
    void enterPassEnSwitch_Tranif1(SV3_1aParser::PassEnSwitch_Tranif1Context * ctx)   {
-PythonAPI::evalScript("enterPassEnSwitch_Tranif1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPassEnSwitch_Tranif1", this, (parser_rule_context*) ctx);
 }
 
    void exitPassEnSwitch_Tranif1(SV3_1aParser::PassEnSwitch_Tranif1Context * ctx)   {
-PythonAPI::evalScript("exitPassEnSwitch_Tranif1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPassEnSwitch_Tranif1", this, (parser_rule_context*) ctx);
 }
 
    void enterPassEnSwitch_RTranif1(SV3_1aParser::PassEnSwitch_RTranif1Context * ctx)   {
-PythonAPI::evalScript("enterPassEnSwitch_RTranif1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPassEnSwitch_RTranif1", this, (parser_rule_context*) ctx);
 }
 
    void exitPassEnSwitch_RTranif1(SV3_1aParser::PassEnSwitch_RTranif1Context * ctx)   {
-PythonAPI::evalScript("exitPassEnSwitch_RTranif1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPassEnSwitch_RTranif1", this, (parser_rule_context*) ctx);
 }
 
    void enterPassEnSwitch_RTranif0(SV3_1aParser::PassEnSwitch_RTranif0Context * ctx)   {
-PythonAPI::evalScript("enterPassEnSwitch_RTranif0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPassEnSwitch_RTranif0", this, (parser_rule_context*) ctx);
 }
 
    void exitPassEnSwitch_RTranif0(SV3_1aParser::PassEnSwitch_RTranif0Context * ctx)   {
-PythonAPI::evalScript("exitPassEnSwitch_RTranif0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPassEnSwitch_RTranif0", this, (parser_rule_context*) ctx);
 }
 
    void enterPassSwitch_Tran(SV3_1aParser::PassSwitch_TranContext * ctx)   {
-PythonAPI::evalScript("enterPassSwitch_Tran", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPassSwitch_Tran", this, (parser_rule_context*) ctx);
 }
 
    void exitPassSwitch_Tran(SV3_1aParser::PassSwitch_TranContext * ctx)   {
-PythonAPI::evalScript("exitPassSwitch_Tran", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPassSwitch_Tran", this, (parser_rule_context*) ctx);
 }
 
    void enterPassSwitch_RTran(SV3_1aParser::PassSwitch_RTranContext * ctx)   {
-PythonAPI::evalScript("enterPassSwitch_RTran", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPassSwitch_RTran", this, (parser_rule_context*) ctx);
 }
 
    void exitPassSwitch_RTran(SV3_1aParser::PassSwitch_RTranContext * ctx)   {
-PythonAPI::evalScript("exitPassSwitch_RTran", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPassSwitch_RTran", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_instantiation(SV3_1aParser::Module_instantiationContext * ctx)   {
-PythonAPI::evalScript("enterModule_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_instantiation(SV3_1aParser::Module_instantiationContext * ctx)   {
-PythonAPI::evalScript("exitModule_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void enterParameter_value_assignment(SV3_1aParser::Parameter_value_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterParameter_value_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterParameter_value_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitParameter_value_assignment(SV3_1aParser::Parameter_value_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitParameter_value_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitParameter_value_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_parameter_assignments(SV3_1aParser::List_of_parameter_assignmentsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_parameter_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_parameter_assignments", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_parameter_assignments(SV3_1aParser::List_of_parameter_assignmentsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_parameter_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_parameter_assignments", this, (parser_rule_context*) ctx);
 }
 
    void enterOrdered_parameter_assignment(SV3_1aParser::Ordered_parameter_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterOrdered_parameter_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOrdered_parameter_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitOrdered_parameter_assignment(SV3_1aParser::Ordered_parameter_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitOrdered_parameter_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOrdered_parameter_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterNamed_parameter_assignment(SV3_1aParser::Named_parameter_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterNamed_parameter_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNamed_parameter_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitNamed_parameter_assignment(SV3_1aParser::Named_parameter_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitNamed_parameter_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNamed_parameter_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterHierarchical_instance(SV3_1aParser::Hierarchical_instanceContext * ctx)   {
-PythonAPI::evalScript("enterHierarchical_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterHierarchical_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitHierarchical_instance(SV3_1aParser::Hierarchical_instanceContext * ctx)   {
-PythonAPI::evalScript("exitHierarchical_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitHierarchical_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterName_of_instance(SV3_1aParser::Name_of_instanceContext * ctx)   {
-PythonAPI::evalScript("enterName_of_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterName_of_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitName_of_instance(SV3_1aParser::Name_of_instanceContext * ctx)   {
-PythonAPI::evalScript("exitName_of_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitName_of_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_port_connections(SV3_1aParser::List_of_port_connectionsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_port_connections", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_port_connections", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_port_connections(SV3_1aParser::List_of_port_connectionsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_port_connections", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_port_connections", this, (parser_rule_context*) ctx);
 }
 
    void enterOrdered_port_connection(SV3_1aParser::Ordered_port_connectionContext * ctx)   {
-PythonAPI::evalScript("enterOrdered_port_connection", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOrdered_port_connection", this, (parser_rule_context*) ctx);
 }
 
    void exitOrdered_port_connection(SV3_1aParser::Ordered_port_connectionContext * ctx)   {
-PythonAPI::evalScript("exitOrdered_port_connection", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOrdered_port_connection", this, (parser_rule_context*) ctx);
 }
 
    void enterNamed_port_connection(SV3_1aParser::Named_port_connectionContext * ctx)   {
-PythonAPI::evalScript("enterNamed_port_connection", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNamed_port_connection", this, (parser_rule_context*) ctx);
 }
 
    void exitNamed_port_connection(SV3_1aParser::Named_port_connectionContext * ctx)   {
-PythonAPI::evalScript("exitNamed_port_connection", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNamed_port_connection", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_instantiation(SV3_1aParser::Interface_instantiationContext * ctx)   {
-PythonAPI::evalScript("enterInterface_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_instantiation(SV3_1aParser::Interface_instantiationContext * ctx)   {
-PythonAPI::evalScript("exitInterface_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void enterProgram_instantiation(SV3_1aParser::Program_instantiationContext * ctx)   {
-PythonAPI::evalScript("enterProgram_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProgram_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void exitProgram_instantiation(SV3_1aParser::Program_instantiationContext * ctx)   {
-PythonAPI::evalScript("exitProgram_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProgram_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void enterChecker_instantiation(SV3_1aParser::Checker_instantiationContext * ctx)   {
-PythonAPI::evalScript("enterChecker_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterChecker_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void exitChecker_instantiation(SV3_1aParser::Checker_instantiationContext * ctx)   {
-PythonAPI::evalScript("exitChecker_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitChecker_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_checker_port_connections(SV3_1aParser::List_of_checker_port_connectionsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_checker_port_connections", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_checker_port_connections", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_checker_port_connections(SV3_1aParser::List_of_checker_port_connectionsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_checker_port_connections", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_checker_port_connections", this, (parser_rule_context*) ctx);
 }
 
    void enterOrdered_checker_port_connection(SV3_1aParser::Ordered_checker_port_connectionContext * ctx)   {
-PythonAPI::evalScript("enterOrdered_checker_port_connection", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOrdered_checker_port_connection", this, (parser_rule_context*) ctx);
 }
 
    void exitOrdered_checker_port_connection(SV3_1aParser::Ordered_checker_port_connectionContext * ctx)   {
-PythonAPI::evalScript("exitOrdered_checker_port_connection", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOrdered_checker_port_connection", this, (parser_rule_context*) ctx);
 }
 
    void enterNamed_checker_port_connection(SV3_1aParser::Named_checker_port_connectionContext * ctx)   {
-PythonAPI::evalScript("enterNamed_checker_port_connection", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNamed_checker_port_connection", this, (parser_rule_context*) ctx);
 }
 
    void exitNamed_checker_port_connection(SV3_1aParser::Named_checker_port_connectionContext * ctx)   {
-PythonAPI::evalScript("exitNamed_checker_port_connection", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNamed_checker_port_connection", this, (parser_rule_context*) ctx);
 }
 
    void enterEndgenerate(SV3_1aParser::EndgenerateContext * ctx)   {
-PythonAPI::evalScript("enterEndgenerate", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndgenerate", this, (parser_rule_context*) ctx);
 }
 
    void exitEndgenerate(SV3_1aParser::EndgenerateContext * ctx)   {
-PythonAPI::evalScript("exitEndgenerate", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndgenerate", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerated_module_instantiation(SV3_1aParser::Generated_module_instantiationContext * ctx)   {
-PythonAPI::evalScript("enterGenerated_module_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerated_module_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerated_module_instantiation(SV3_1aParser::Generated_module_instantiationContext * ctx)   {
-PythonAPI::evalScript("exitGenerated_module_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerated_module_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_module_item(SV3_1aParser::Generate_module_itemContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_module_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_module_item", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_module_item(SV3_1aParser::Generate_module_itemContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_module_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_module_item", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_module_conditional_statement(SV3_1aParser::Generate_module_conditional_statementContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_module_conditional_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_module_conditional_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_module_conditional_statement(SV3_1aParser::Generate_module_conditional_statementContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_module_conditional_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_module_conditional_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_module_case_statement(SV3_1aParser::Generate_module_case_statementContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_module_case_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_module_case_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_module_case_statement(SV3_1aParser::Generate_module_case_statementContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_module_case_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_module_case_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterGenvar_module_case_item(SV3_1aParser::Genvar_module_case_itemContext * ctx)   {
-PythonAPI::evalScript("enterGenvar_module_case_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenvar_module_case_item", this, (parser_rule_context*) ctx);
 }
 
    void exitGenvar_module_case_item(SV3_1aParser::Genvar_module_case_itemContext * ctx)   {
-PythonAPI::evalScript("exitGenvar_module_case_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenvar_module_case_item", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_module_loop_statement(SV3_1aParser::Generate_module_loop_statementContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_module_loop_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_module_loop_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_module_loop_statement(SV3_1aParser::Generate_module_loop_statementContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_module_loop_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_module_loop_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterGenvar_assignment(SV3_1aParser::Genvar_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterGenvar_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenvar_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitGenvar_assignment(SV3_1aParser::Genvar_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitGenvar_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenvar_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterGenvar_decl_assignment(SV3_1aParser::Genvar_decl_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterGenvar_decl_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenvar_decl_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitGenvar_decl_assignment(SV3_1aParser::Genvar_decl_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitGenvar_decl_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenvar_decl_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_module_named_block(SV3_1aParser::Generate_module_named_blockContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_module_named_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_module_named_block", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_module_named_block(SV3_1aParser::Generate_module_named_blockContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_module_named_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_module_named_block", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_module_block(SV3_1aParser::Generate_module_blockContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_module_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_module_block", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_module_block(SV3_1aParser::Generate_module_blockContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_module_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_module_block", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerated_interface_instantiation(SV3_1aParser::Generated_interface_instantiationContext * ctx)   {
-PythonAPI::evalScript("enterGenerated_interface_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerated_interface_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerated_interface_instantiation(SV3_1aParser::Generated_interface_instantiationContext * ctx)   {
-PythonAPI::evalScript("exitGenerated_interface_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerated_interface_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_interface_item(SV3_1aParser::Generate_interface_itemContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_interface_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_interface_item", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_interface_item(SV3_1aParser::Generate_interface_itemContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_interface_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_interface_item", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_interface_conditional_statement(SV3_1aParser::Generate_interface_conditional_statementContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_interface_conditional_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_interface_conditional_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_interface_conditional_statement(SV3_1aParser::Generate_interface_conditional_statementContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_interface_conditional_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_interface_conditional_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_interface_case_statement(SV3_1aParser::Generate_interface_case_statementContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_interface_case_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_interface_case_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_interface_case_statement(SV3_1aParser::Generate_interface_case_statementContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_interface_case_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_interface_case_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterGenvar_interface_case_item(SV3_1aParser::Genvar_interface_case_itemContext * ctx)   {
-PythonAPI::evalScript("enterGenvar_interface_case_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenvar_interface_case_item", this, (parser_rule_context*) ctx);
 }
 
    void exitGenvar_interface_case_item(SV3_1aParser::Genvar_interface_case_itemContext * ctx)   {
-PythonAPI::evalScript("exitGenvar_interface_case_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenvar_interface_case_item", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_interface_loop_statement(SV3_1aParser::Generate_interface_loop_statementContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_interface_loop_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_interface_loop_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_interface_loop_statement(SV3_1aParser::Generate_interface_loop_statementContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_interface_loop_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_interface_loop_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_interface_named_block(SV3_1aParser::Generate_interface_named_blockContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_interface_named_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_interface_named_block", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_interface_named_block(SV3_1aParser::Generate_interface_named_blockContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_interface_named_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_interface_named_block", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_interface_block(SV3_1aParser::Generate_interface_blockContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_interface_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_interface_block", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_interface_block(SV3_1aParser::Generate_interface_blockContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_interface_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_interface_block", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_region(SV3_1aParser::Generate_regionContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_region", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_region", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_region(SV3_1aParser::Generate_regionContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_region", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_region", this, (parser_rule_context*) ctx);
 }
 
    void enterLoop_generate_construct(SV3_1aParser::Loop_generate_constructContext * ctx)   {
-PythonAPI::evalScript("enterLoop_generate_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLoop_generate_construct", this, (parser_rule_context*) ctx);
 }
 
    void exitLoop_generate_construct(SV3_1aParser::Loop_generate_constructContext * ctx)   {
-PythonAPI::evalScript("exitLoop_generate_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLoop_generate_construct", this, (parser_rule_context*) ctx);
 }
 
    void enterGenvar_initialization(SV3_1aParser::Genvar_initializationContext * ctx)   {
-PythonAPI::evalScript("enterGenvar_initialization", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenvar_initialization", this, (parser_rule_context*) ctx);
 }
 
    void exitGenvar_initialization(SV3_1aParser::Genvar_initializationContext * ctx)   {
-PythonAPI::evalScript("exitGenvar_initialization", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenvar_initialization", this, (parser_rule_context*) ctx);
 }
 
    void enterGenvar_iteration(SV3_1aParser::Genvar_iterationContext * ctx)   {
-PythonAPI::evalScript("enterGenvar_iteration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenvar_iteration", this, (parser_rule_context*) ctx);
 }
 
    void exitGenvar_iteration(SV3_1aParser::Genvar_iterationContext * ctx)   {
-PythonAPI::evalScript("exitGenvar_iteration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenvar_iteration", this, (parser_rule_context*) ctx);
 }
 
    void enterConditional_generate_construct(SV3_1aParser::Conditional_generate_constructContext * ctx)   {
-PythonAPI::evalScript("enterConditional_generate_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConditional_generate_construct", this, (parser_rule_context*) ctx);
 }
 
    void exitConditional_generate_construct(SV3_1aParser::Conditional_generate_constructContext * ctx)   {
-PythonAPI::evalScript("exitConditional_generate_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConditional_generate_construct", this, (parser_rule_context*) ctx);
 }
 
    void enterIf_generate_construct(SV3_1aParser::If_generate_constructContext * ctx)   {
-PythonAPI::evalScript("enterIf_generate_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIf_generate_construct", this, (parser_rule_context*) ctx);
 }
 
    void exitIf_generate_construct(SV3_1aParser::If_generate_constructContext * ctx)   {
-PythonAPI::evalScript("exitIf_generate_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIf_generate_construct", this, (parser_rule_context*) ctx);
 }
 
    void enterCase_generate_construct(SV3_1aParser::Case_generate_constructContext * ctx)   {
-PythonAPI::evalScript("enterCase_generate_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCase_generate_construct", this, (parser_rule_context*) ctx);
 }
 
    void exitCase_generate_construct(SV3_1aParser::Case_generate_constructContext * ctx)   {
-PythonAPI::evalScript("exitCase_generate_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCase_generate_construct", this, (parser_rule_context*) ctx);
 }
 
    void enterCase_generate_item(SV3_1aParser::Case_generate_itemContext * ctx)   {
-PythonAPI::evalScript("enterCase_generate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCase_generate_item", this, (parser_rule_context*) ctx);
 }
 
    void exitCase_generate_item(SV3_1aParser::Case_generate_itemContext * ctx)   {
-PythonAPI::evalScript("exitCase_generate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCase_generate_item", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_block(SV3_1aParser::Generate_blockContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_block", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_block(SV3_1aParser::Generate_blockContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_block", this, (parser_rule_context*) ctx);
 }
 
    void enterGenerate_item(SV3_1aParser::Generate_itemContext * ctx)   {
-PythonAPI::evalScript("enterGenerate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterGenerate_item", this, (parser_rule_context*) ctx);
 }
 
    void exitGenerate_item(SV3_1aParser::Generate_itemContext * ctx)   {
-PythonAPI::evalScript("exitGenerate_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitGenerate_item", this, (parser_rule_context*) ctx);
 }
 
    void enterUdp_nonansi_declaration(SV3_1aParser::Udp_nonansi_declarationContext * ctx)   {
-PythonAPI::evalScript("enterUdp_nonansi_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUdp_nonansi_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitUdp_nonansi_declaration(SV3_1aParser::Udp_nonansi_declarationContext * ctx)   {
-PythonAPI::evalScript("exitUdp_nonansi_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUdp_nonansi_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterUdp_ansi_declaration(SV3_1aParser::Udp_ansi_declarationContext * ctx)   {
-PythonAPI::evalScript("enterUdp_ansi_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUdp_ansi_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitUdp_ansi_declaration(SV3_1aParser::Udp_ansi_declarationContext * ctx)   {
-PythonAPI::evalScript("exitUdp_ansi_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUdp_ansi_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterEndprimitive(SV3_1aParser::EndprimitiveContext * ctx)   {
-PythonAPI::evalScript("enterEndprimitive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndprimitive", this, (parser_rule_context*) ctx);
 }
 
    void exitEndprimitive(SV3_1aParser::EndprimitiveContext * ctx)   {
-PythonAPI::evalScript("exitEndprimitive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndprimitive", this, (parser_rule_context*) ctx);
 }
 
    void enterUdp_declaration(SV3_1aParser::Udp_declarationContext * ctx)   {
-PythonAPI::evalScript("enterUdp_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUdp_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitUdp_declaration(SV3_1aParser::Udp_declarationContext * ctx)   {
-PythonAPI::evalScript("exitUdp_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUdp_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterUdp_port_list(SV3_1aParser::Udp_port_listContext * ctx)   {
-PythonAPI::evalScript("enterUdp_port_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUdp_port_list", this, (parser_rule_context*) ctx);
 }
 
    void exitUdp_port_list(SV3_1aParser::Udp_port_listContext * ctx)   {
-PythonAPI::evalScript("exitUdp_port_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUdp_port_list", this, (parser_rule_context*) ctx);
 }
 
    void enterUdp_declaration_port_list(SV3_1aParser::Udp_declaration_port_listContext * ctx)   {
-PythonAPI::evalScript("enterUdp_declaration_port_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUdp_declaration_port_list", this, (parser_rule_context*) ctx);
 }
 
    void exitUdp_declaration_port_list(SV3_1aParser::Udp_declaration_port_listContext * ctx)   {
-PythonAPI::evalScript("exitUdp_declaration_port_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUdp_declaration_port_list", this, (parser_rule_context*) ctx);
 }
 
    void enterUdp_port_declaration(SV3_1aParser::Udp_port_declarationContext * ctx)   {
-PythonAPI::evalScript("enterUdp_port_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUdp_port_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitUdp_port_declaration(SV3_1aParser::Udp_port_declarationContext * ctx)   {
-PythonAPI::evalScript("exitUdp_port_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUdp_port_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterUdp_output_declaration(SV3_1aParser::Udp_output_declarationContext * ctx)   {
-PythonAPI::evalScript("enterUdp_output_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUdp_output_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitUdp_output_declaration(SV3_1aParser::Udp_output_declarationContext * ctx)   {
-PythonAPI::evalScript("exitUdp_output_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUdp_output_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterUdp_input_declaration(SV3_1aParser::Udp_input_declarationContext * ctx)   {
-PythonAPI::evalScript("enterUdp_input_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUdp_input_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitUdp_input_declaration(SV3_1aParser::Udp_input_declarationContext * ctx)   {
-PythonAPI::evalScript("exitUdp_input_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUdp_input_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterUdp_reg_declaration(SV3_1aParser::Udp_reg_declarationContext * ctx)   {
-PythonAPI::evalScript("enterUdp_reg_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUdp_reg_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitUdp_reg_declaration(SV3_1aParser::Udp_reg_declarationContext * ctx)   {
-PythonAPI::evalScript("exitUdp_reg_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUdp_reg_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterUdp_body(SV3_1aParser::Udp_bodyContext * ctx)   {
-PythonAPI::evalScript("enterUdp_body", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUdp_body", this, (parser_rule_context*) ctx);
 }
 
    void exitUdp_body(SV3_1aParser::Udp_bodyContext * ctx)   {
-PythonAPI::evalScript("exitUdp_body", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUdp_body", this, (parser_rule_context*) ctx);
 }
 
    void enterEndtable(SV3_1aParser::EndtableContext * ctx)   {
-PythonAPI::evalScript("enterEndtable", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndtable", this, (parser_rule_context*) ctx);
 }
 
    void exitEndtable(SV3_1aParser::EndtableContext * ctx)   {
-PythonAPI::evalScript("exitEndtable", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndtable", this, (parser_rule_context*) ctx);
 }
 
    void enterCombinational_body(SV3_1aParser::Combinational_bodyContext * ctx)   {
-PythonAPI::evalScript("enterCombinational_body", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCombinational_body", this, (parser_rule_context*) ctx);
 }
 
    void exitCombinational_body(SV3_1aParser::Combinational_bodyContext * ctx)   {
-PythonAPI::evalScript("exitCombinational_body", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCombinational_body", this, (parser_rule_context*) ctx);
 }
 
    void enterCombinational_entry(SV3_1aParser::Combinational_entryContext * ctx)   {
-PythonAPI::evalScript("enterCombinational_entry", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCombinational_entry", this, (parser_rule_context*) ctx);
 }
 
    void exitCombinational_entry(SV3_1aParser::Combinational_entryContext * ctx)   {
-PythonAPI::evalScript("exitCombinational_entry", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCombinational_entry", this, (parser_rule_context*) ctx);
 }
 
    void enterSequential_body(SV3_1aParser::Sequential_bodyContext * ctx)   {
-PythonAPI::evalScript("enterSequential_body", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSequential_body", this, (parser_rule_context*) ctx);
 }
 
    void exitSequential_body(SV3_1aParser::Sequential_bodyContext * ctx)   {
-PythonAPI::evalScript("exitSequential_body", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSequential_body", this, (parser_rule_context*) ctx);
 }
 
    void enterUdp_initial_statement(SV3_1aParser::Udp_initial_statementContext * ctx)   {
-PythonAPI::evalScript("enterUdp_initial_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUdp_initial_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitUdp_initial_statement(SV3_1aParser::Udp_initial_statementContext * ctx)   {
-PythonAPI::evalScript("exitUdp_initial_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUdp_initial_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterInitVal_1Tickb0(SV3_1aParser::InitVal_1Tickb0Context * ctx)   {
-PythonAPI::evalScript("enterInitVal_1Tickb0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInitVal_1Tickb0", this, (parser_rule_context*) ctx);
 }
 
    void exitInitVal_1Tickb0(SV3_1aParser::InitVal_1Tickb0Context * ctx)   {
-PythonAPI::evalScript("exitInitVal_1Tickb0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInitVal_1Tickb0", this, (parser_rule_context*) ctx);
 }
 
    void enterInitVal_1Tickb1(SV3_1aParser::InitVal_1Tickb1Context * ctx)   {
-PythonAPI::evalScript("enterInitVal_1Tickb1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInitVal_1Tickb1", this, (parser_rule_context*) ctx);
 }
 
    void exitInitVal_1Tickb1(SV3_1aParser::InitVal_1Tickb1Context * ctx)   {
-PythonAPI::evalScript("exitInitVal_1Tickb1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInitVal_1Tickb1", this, (parser_rule_context*) ctx);
 }
 
    void enterInitVal_1TickB0(SV3_1aParser::InitVal_1TickB0Context * ctx)   {
-PythonAPI::evalScript("enterInitVal_1TickB0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInitVal_1TickB0", this, (parser_rule_context*) ctx);
 }
 
    void exitInitVal_1TickB0(SV3_1aParser::InitVal_1TickB0Context * ctx)   {
-PythonAPI::evalScript("exitInitVal_1TickB0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInitVal_1TickB0", this, (parser_rule_context*) ctx);
 }
 
    void enterInitVal_1TickB1(SV3_1aParser::InitVal_1TickB1Context * ctx)   {
-PythonAPI::evalScript("enterInitVal_1TickB1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInitVal_1TickB1", this, (parser_rule_context*) ctx);
 }
 
    void exitInitVal_1TickB1(SV3_1aParser::InitVal_1TickB1Context * ctx)   {
-PythonAPI::evalScript("exitInitVal_1TickB1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInitVal_1TickB1", this, (parser_rule_context*) ctx);
 }
 
    void enterInitVal_1Tickbx(SV3_1aParser::InitVal_1TickbxContext * ctx)   {
-PythonAPI::evalScript("enterInitVal_1Tickbx", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInitVal_1Tickbx", this, (parser_rule_context*) ctx);
 }
 
    void exitInitVal_1Tickbx(SV3_1aParser::InitVal_1TickbxContext * ctx)   {
-PythonAPI::evalScript("exitInitVal_1Tickbx", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInitVal_1Tickbx", this, (parser_rule_context*) ctx);
 }
 
    void enterInitVal_1TickbX(SV3_1aParser::InitVal_1TickbXContext * ctx)   {
-PythonAPI::evalScript("enterInitVal_1TickbX", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInitVal_1TickbX", this, (parser_rule_context*) ctx);
 }
 
    void exitInitVal_1TickbX(SV3_1aParser::InitVal_1TickbXContext * ctx)   {
-PythonAPI::evalScript("exitInitVal_1TickbX", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInitVal_1TickbX", this, (parser_rule_context*) ctx);
 }
 
    void enterInitVal_1TickBx(SV3_1aParser::InitVal_1TickBxContext * ctx)   {
-PythonAPI::evalScript("enterInitVal_1TickBx", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInitVal_1TickBx", this, (parser_rule_context*) ctx);
 }
 
    void exitInitVal_1TickBx(SV3_1aParser::InitVal_1TickBxContext * ctx)   {
-PythonAPI::evalScript("exitInitVal_1TickBx", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInitVal_1TickBx", this, (parser_rule_context*) ctx);
 }
 
    void enterInitVal_1TickBX(SV3_1aParser::InitVal_1TickBXContext * ctx)   {
-PythonAPI::evalScript("enterInitVal_1TickBX", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInitVal_1TickBX", this, (parser_rule_context*) ctx);
 }
 
    void exitInitVal_1TickBX(SV3_1aParser::InitVal_1TickBXContext * ctx)   {
-PythonAPI::evalScript("exitInitVal_1TickBX", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInitVal_1TickBX", this, (parser_rule_context*) ctx);
 }
 
    void enterInitVal_Integral(SV3_1aParser::InitVal_IntegralContext * ctx)   {
-PythonAPI::evalScript("enterInitVal_Integral", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInitVal_Integral", this, (parser_rule_context*) ctx);
 }
 
    void exitInitVal_Integral(SV3_1aParser::InitVal_IntegralContext * ctx)   {
-PythonAPI::evalScript("exitInitVal_Integral", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInitVal_Integral", this, (parser_rule_context*) ctx);
 }
 
    void enterSequential_entry(SV3_1aParser::Sequential_entryContext * ctx)   {
-PythonAPI::evalScript("enterSequential_entry", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSequential_entry", this, (parser_rule_context*) ctx);
 }
 
    void exitSequential_entry(SV3_1aParser::Sequential_entryContext * ctx)   {
-PythonAPI::evalScript("exitSequential_entry", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSequential_entry", this, (parser_rule_context*) ctx);
 }
 
    void enterSeq_input_list(SV3_1aParser::Seq_input_listContext * ctx)   {
-PythonAPI::evalScript("enterSeq_input_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSeq_input_list", this, (parser_rule_context*) ctx);
 }
 
    void exitSeq_input_list(SV3_1aParser::Seq_input_listContext * ctx)   {
-PythonAPI::evalScript("exitSeq_input_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSeq_input_list", this, (parser_rule_context*) ctx);
 }
 
    void enterLevel_input_list(SV3_1aParser::Level_input_listContext * ctx)   {
-PythonAPI::evalScript("enterLevel_input_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLevel_input_list", this, (parser_rule_context*) ctx);
 }
 
    void exitLevel_input_list(SV3_1aParser::Level_input_listContext * ctx)   {
-PythonAPI::evalScript("exitLevel_input_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLevel_input_list", this, (parser_rule_context*) ctx);
 }
 
    void enterEdge_input_list(SV3_1aParser::Edge_input_listContext * ctx)   {
-PythonAPI::evalScript("enterEdge_input_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEdge_input_list", this, (parser_rule_context*) ctx);
 }
 
    void exitEdge_input_list(SV3_1aParser::Edge_input_listContext * ctx)   {
-PythonAPI::evalScript("exitEdge_input_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEdge_input_list", this, (parser_rule_context*) ctx);
 }
 
    void enterEdge_indicator(SV3_1aParser::Edge_indicatorContext * ctx)   {
-PythonAPI::evalScript("enterEdge_indicator", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEdge_indicator", this, (parser_rule_context*) ctx);
 }
 
    void exitEdge_indicator(SV3_1aParser::Edge_indicatorContext * ctx)   {
-PythonAPI::evalScript("exitEdge_indicator", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEdge_indicator", this, (parser_rule_context*) ctx);
 }
 
    void enterNext_state(SV3_1aParser::Next_stateContext * ctx)   {
-PythonAPI::evalScript("enterNext_state", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNext_state", this, (parser_rule_context*) ctx);
 }
 
    void exitNext_state(SV3_1aParser::Next_stateContext * ctx)   {
-PythonAPI::evalScript("exitNext_state", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNext_state", this, (parser_rule_context*) ctx);
 }
 
    void enterOutput_symbol(SV3_1aParser::Output_symbolContext * ctx)   {
-PythonAPI::evalScript("enterOutput_symbol", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOutput_symbol", this, (parser_rule_context*) ctx);
 }
 
    void exitOutput_symbol(SV3_1aParser::Output_symbolContext * ctx)   {
-PythonAPI::evalScript("exitOutput_symbol", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOutput_symbol", this, (parser_rule_context*) ctx);
 }
 
    void enterLevel_symbol(SV3_1aParser::Level_symbolContext * ctx)   {
-PythonAPI::evalScript("enterLevel_symbol", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLevel_symbol", this, (parser_rule_context*) ctx);
 }
 
    void exitLevel_symbol(SV3_1aParser::Level_symbolContext * ctx)   {
-PythonAPI::evalScript("exitLevel_symbol", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLevel_symbol", this, (parser_rule_context*) ctx);
 }
 
    void enterEdge_symbol(SV3_1aParser::Edge_symbolContext * ctx)   {
-PythonAPI::evalScript("enterEdge_symbol", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEdge_symbol", this, (parser_rule_context*) ctx);
 }
 
    void exitEdge_symbol(SV3_1aParser::Edge_symbolContext * ctx)   {
-PythonAPI::evalScript("exitEdge_symbol", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEdge_symbol", this, (parser_rule_context*) ctx);
 }
 
    void enterUdp_instantiation(SV3_1aParser::Udp_instantiationContext * ctx)   {
-PythonAPI::evalScript("enterUdp_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUdp_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void exitUdp_instantiation(SV3_1aParser::Udp_instantiationContext * ctx)   {
-PythonAPI::evalScript("exitUdp_instantiation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUdp_instantiation", this, (parser_rule_context*) ctx);
 }
 
    void enterUdp_instance(SV3_1aParser::Udp_instanceContext * ctx)   {
-PythonAPI::evalScript("enterUdp_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUdp_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitUdp_instance(SV3_1aParser::Udp_instanceContext * ctx)   {
-PythonAPI::evalScript("exitUdp_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUdp_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterContinuous_assign(SV3_1aParser::Continuous_assignContext * ctx)   {
-PythonAPI::evalScript("enterContinuous_assign", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterContinuous_assign", this, (parser_rule_context*) ctx);
 }
 
    void exitContinuous_assign(SV3_1aParser::Continuous_assignContext * ctx)   {
-PythonAPI::evalScript("exitContinuous_assign", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitContinuous_assign", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_net_assignments(SV3_1aParser::List_of_net_assignmentsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_net_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_net_assignments", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_net_assignments(SV3_1aParser::List_of_net_assignmentsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_net_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_net_assignments", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_variable_assignments(SV3_1aParser::List_of_variable_assignmentsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_variable_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_variable_assignments", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_variable_assignments(SV3_1aParser::List_of_variable_assignmentsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_variable_assignments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_variable_assignments", this, (parser_rule_context*) ctx);
 }
 
    void enterNet_alias(SV3_1aParser::Net_aliasContext * ctx)   {
-PythonAPI::evalScript("enterNet_alias", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNet_alias", this, (parser_rule_context*) ctx);
 }
 
    void exitNet_alias(SV3_1aParser::Net_aliasContext * ctx)   {
-PythonAPI::evalScript("exitNet_alias", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNet_alias", this, (parser_rule_context*) ctx);
 }
 
    void enterNet_assignment(SV3_1aParser::Net_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterNet_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNet_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitNet_assignment(SV3_1aParser::Net_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitNet_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNet_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterInitial_construct(SV3_1aParser::Initial_constructContext * ctx)   {
-PythonAPI::evalScript("enterInitial_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInitial_construct", this, (parser_rule_context*) ctx);
 }
 
    void exitInitial_construct(SV3_1aParser::Initial_constructContext * ctx)   {
-PythonAPI::evalScript("exitInitial_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInitial_construct", this, (parser_rule_context*) ctx);
 }
 
    void enterAlways_construct(SV3_1aParser::Always_constructContext * ctx)   {
-PythonAPI::evalScript("enterAlways_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAlways_construct", this, (parser_rule_context*) ctx);
 }
 
    void exitAlways_construct(SV3_1aParser::Always_constructContext * ctx)   {
-PythonAPI::evalScript("exitAlways_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAlways_construct", this, (parser_rule_context*) ctx);
 }
 
    void enterAlwaysKeywd_Always(SV3_1aParser::AlwaysKeywd_AlwaysContext * ctx)   {
-PythonAPI::evalScript("enterAlwaysKeywd_Always", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAlwaysKeywd_Always", this, (parser_rule_context*) ctx);
 }
 
    void exitAlwaysKeywd_Always(SV3_1aParser::AlwaysKeywd_AlwaysContext * ctx)   {
-PythonAPI::evalScript("exitAlwaysKeywd_Always", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAlwaysKeywd_Always", this, (parser_rule_context*) ctx);
 }
 
    void enterAlwaysKeywd_Comb(SV3_1aParser::AlwaysKeywd_CombContext * ctx)   {
-PythonAPI::evalScript("enterAlwaysKeywd_Comb", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAlwaysKeywd_Comb", this, (parser_rule_context*) ctx);
 }
 
    void exitAlwaysKeywd_Comb(SV3_1aParser::AlwaysKeywd_CombContext * ctx)   {
-PythonAPI::evalScript("exitAlwaysKeywd_Comb", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAlwaysKeywd_Comb", this, (parser_rule_context*) ctx);
 }
 
    void enterAlwaysKeywd_Latch(SV3_1aParser::AlwaysKeywd_LatchContext * ctx)   {
-PythonAPI::evalScript("enterAlwaysKeywd_Latch", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAlwaysKeywd_Latch", this, (parser_rule_context*) ctx);
 }
 
    void exitAlwaysKeywd_Latch(SV3_1aParser::AlwaysKeywd_LatchContext * ctx)   {
-PythonAPI::evalScript("exitAlwaysKeywd_Latch", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAlwaysKeywd_Latch", this, (parser_rule_context*) ctx);
 }
 
    void enterAlwaysKeywd_FF(SV3_1aParser::AlwaysKeywd_FFContext * ctx)   {
-PythonAPI::evalScript("enterAlwaysKeywd_FF", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAlwaysKeywd_FF", this, (parser_rule_context*) ctx);
 }
 
    void exitAlwaysKeywd_FF(SV3_1aParser::AlwaysKeywd_FFContext * ctx)   {
-PythonAPI::evalScript("exitAlwaysKeywd_FF", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAlwaysKeywd_FF", this, (parser_rule_context*) ctx);
 }
 
    void enterBlocking_assignment(SV3_1aParser::Blocking_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterBlocking_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBlocking_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitBlocking_assignment(SV3_1aParser::Blocking_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitBlocking_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBlocking_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterOperator_assignment(SV3_1aParser::Operator_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterOperator_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOperator_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitOperator_assignment(SV3_1aParser::Operator_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitOperator_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOperator_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignOp_Assign(SV3_1aParser::AssignOp_AssignContext * ctx)   {
-PythonAPI::evalScript("enterAssignOp_Assign", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignOp_Assign", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignOp_Assign(SV3_1aParser::AssignOp_AssignContext * ctx)   {
-PythonAPI::evalScript("exitAssignOp_Assign", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignOp_Assign", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignOp_Add(SV3_1aParser::AssignOp_AddContext * ctx)   {
-PythonAPI::evalScript("enterAssignOp_Add", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignOp_Add", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignOp_Add(SV3_1aParser::AssignOp_AddContext * ctx)   {
-PythonAPI::evalScript("exitAssignOp_Add", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignOp_Add", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignOp_Sub(SV3_1aParser::AssignOp_SubContext * ctx)   {
-PythonAPI::evalScript("enterAssignOp_Sub", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignOp_Sub", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignOp_Sub(SV3_1aParser::AssignOp_SubContext * ctx)   {
-PythonAPI::evalScript("exitAssignOp_Sub", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignOp_Sub", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignOp_Mult(SV3_1aParser::AssignOp_MultContext * ctx)   {
-PythonAPI::evalScript("enterAssignOp_Mult", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignOp_Mult", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignOp_Mult(SV3_1aParser::AssignOp_MultContext * ctx)   {
-PythonAPI::evalScript("exitAssignOp_Mult", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignOp_Mult", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignOp_Div(SV3_1aParser::AssignOp_DivContext * ctx)   {
-PythonAPI::evalScript("enterAssignOp_Div", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignOp_Div", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignOp_Div(SV3_1aParser::AssignOp_DivContext * ctx)   {
-PythonAPI::evalScript("exitAssignOp_Div", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignOp_Div", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignOp_Modulo(SV3_1aParser::AssignOp_ModuloContext * ctx)   {
-PythonAPI::evalScript("enterAssignOp_Modulo", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignOp_Modulo", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignOp_Modulo(SV3_1aParser::AssignOp_ModuloContext * ctx)   {
-PythonAPI::evalScript("exitAssignOp_Modulo", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignOp_Modulo", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignOp_BitwAnd(SV3_1aParser::AssignOp_BitwAndContext * ctx)   {
-PythonAPI::evalScript("enterAssignOp_BitwAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignOp_BitwAnd", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignOp_BitwAnd(SV3_1aParser::AssignOp_BitwAndContext * ctx)   {
-PythonAPI::evalScript("exitAssignOp_BitwAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignOp_BitwAnd", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignOp_BitwOr(SV3_1aParser::AssignOp_BitwOrContext * ctx)   {
-PythonAPI::evalScript("enterAssignOp_BitwOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignOp_BitwOr", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignOp_BitwOr(SV3_1aParser::AssignOp_BitwOrContext * ctx)   {
-PythonAPI::evalScript("exitAssignOp_BitwOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignOp_BitwOr", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignOp_BitwXor(SV3_1aParser::AssignOp_BitwXorContext * ctx)   {
-PythonAPI::evalScript("enterAssignOp_BitwXor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignOp_BitwXor", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignOp_BitwXor(SV3_1aParser::AssignOp_BitwXorContext * ctx)   {
-PythonAPI::evalScript("exitAssignOp_BitwXor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignOp_BitwXor", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignOp_BitwLeftShift(SV3_1aParser::AssignOp_BitwLeftShiftContext * ctx)   {
-PythonAPI::evalScript("enterAssignOp_BitwLeftShift", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignOp_BitwLeftShift", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignOp_BitwLeftShift(SV3_1aParser::AssignOp_BitwLeftShiftContext * ctx)   {
-PythonAPI::evalScript("exitAssignOp_BitwLeftShift", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignOp_BitwLeftShift", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignOp_BitwRightShift(SV3_1aParser::AssignOp_BitwRightShiftContext * ctx)   {
-PythonAPI::evalScript("enterAssignOp_BitwRightShift", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignOp_BitwRightShift", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignOp_BitwRightShift(SV3_1aParser::AssignOp_BitwRightShiftContext * ctx)   {
-PythonAPI::evalScript("exitAssignOp_BitwRightShift", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignOp_BitwRightShift", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignOp_ArithShiftLeft(SV3_1aParser::AssignOp_ArithShiftLeftContext * ctx)   {
-PythonAPI::evalScript("enterAssignOp_ArithShiftLeft", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignOp_ArithShiftLeft", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignOp_ArithShiftLeft(SV3_1aParser::AssignOp_ArithShiftLeftContext * ctx)   {
-PythonAPI::evalScript("exitAssignOp_ArithShiftLeft", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignOp_ArithShiftLeft", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignOp_ArithShiftRight(SV3_1aParser::AssignOp_ArithShiftRightContext * ctx)   {
-PythonAPI::evalScript("enterAssignOp_ArithShiftRight", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignOp_ArithShiftRight", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignOp_ArithShiftRight(SV3_1aParser::AssignOp_ArithShiftRightContext * ctx)   {
-PythonAPI::evalScript("exitAssignOp_ArithShiftRight", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignOp_ArithShiftRight", this, (parser_rule_context*) ctx);
 }
 
    void enterNonblocking_assignment(SV3_1aParser::Nonblocking_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterNonblocking_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNonblocking_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitNonblocking_assignment(SV3_1aParser::Nonblocking_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitNonblocking_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNonblocking_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterProcedural_continuous_assignment(SV3_1aParser::Procedural_continuous_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterProcedural_continuous_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProcedural_continuous_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitProcedural_continuous_assignment(SV3_1aParser::Procedural_continuous_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitProcedural_continuous_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProcedural_continuous_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterVariable_assignment(SV3_1aParser::Variable_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterVariable_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterVariable_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitVariable_assignment(SV3_1aParser::Variable_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitVariable_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitVariable_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterAction_block(SV3_1aParser::Action_blockContext * ctx)   {
-PythonAPI::evalScript("enterAction_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAction_block", this, (parser_rule_context*) ctx);
 }
 
    void exitAction_block(SV3_1aParser::Action_blockContext * ctx)   {
-PythonAPI::evalScript("exitAction_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAction_block", this, (parser_rule_context*) ctx);
 }
 
    void enterSeq_block(SV3_1aParser::Seq_blockContext * ctx)   {
-PythonAPI::evalScript("enterSeq_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSeq_block", this, (parser_rule_context*) ctx);
 }
 
    void exitSeq_block(SV3_1aParser::Seq_blockContext * ctx)   {
-PythonAPI::evalScript("exitSeq_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSeq_block", this, (parser_rule_context*) ctx);
 }
 
    void enterPar_block(SV3_1aParser::Par_blockContext * ctx)   {
-PythonAPI::evalScript("enterPar_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPar_block", this, (parser_rule_context*) ctx);
 }
 
    void exitPar_block(SV3_1aParser::Par_blockContext * ctx)   {
-PythonAPI::evalScript("exitPar_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPar_block", this, (parser_rule_context*) ctx);
 }
 
    void enterJoin_keyword(SV3_1aParser::Join_keywordContext * ctx)   {
-PythonAPI::evalScript("enterJoin_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterJoin_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitJoin_keyword(SV3_1aParser::Join_keywordContext * ctx)   {
-PythonAPI::evalScript("exitJoin_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitJoin_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterJoin_any_keyword(SV3_1aParser::Join_any_keywordContext * ctx)   {
-PythonAPI::evalScript("enterJoin_any_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterJoin_any_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitJoin_any_keyword(SV3_1aParser::Join_any_keywordContext * ctx)   {
-PythonAPI::evalScript("exitJoin_any_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitJoin_any_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterJoin_none_keyword(SV3_1aParser::Join_none_keywordContext * ctx)   {
-PythonAPI::evalScript("enterJoin_none_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterJoin_none_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitJoin_none_keyword(SV3_1aParser::Join_none_keywordContext * ctx)   {
-PythonAPI::evalScript("exitJoin_none_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitJoin_none_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterStatement_or_null(SV3_1aParser::Statement_or_nullContext * ctx)   {
-PythonAPI::evalScript("enterStatement_or_null", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStatement_or_null", this, (parser_rule_context*) ctx);
 }
 
    void exitStatement_or_null(SV3_1aParser::Statement_or_nullContext * ctx)   {
-PythonAPI::evalScript("exitStatement_or_null", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStatement_or_null", this, (parser_rule_context*) ctx);
 }
 
    void enterStatement(SV3_1aParser::StatementContext * ctx)   {
-PythonAPI::evalScript("enterStatement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStatement", this, (parser_rule_context*) ctx);
 }
 
    void exitStatement(SV3_1aParser::StatementContext * ctx)   {
-PythonAPI::evalScript("exitStatement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStatement", this, (parser_rule_context*) ctx);
 }
 
    void enterStatement_item(SV3_1aParser::Statement_itemContext * ctx)   {
-PythonAPI::evalScript("enterStatement_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStatement_item", this, (parser_rule_context*) ctx);
 }
 
    void exitStatement_item(SV3_1aParser::Statement_itemContext * ctx)   {
-PythonAPI::evalScript("exitStatement_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStatement_item", this, (parser_rule_context*) ctx);
 }
 
    void enterFunction_statement_or_null(SV3_1aParser::Function_statement_or_nullContext * ctx)   {
-PythonAPI::evalScript("enterFunction_statement_or_null", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFunction_statement_or_null", this, (parser_rule_context*) ctx);
 }
 
    void exitFunction_statement_or_null(SV3_1aParser::Function_statement_or_nullContext * ctx)   {
-PythonAPI::evalScript("exitFunction_statement_or_null", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFunction_statement_or_null", this, (parser_rule_context*) ctx);
 }
 
    void enterProcedural_timing_control_statement(SV3_1aParser::Procedural_timing_control_statementContext * ctx)   {
-PythonAPI::evalScript("enterProcedural_timing_control_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProcedural_timing_control_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitProcedural_timing_control_statement(SV3_1aParser::Procedural_timing_control_statementContext * ctx)   {
-PythonAPI::evalScript("exitProcedural_timing_control_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProcedural_timing_control_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterDelay_or_event_control(SV3_1aParser::Delay_or_event_controlContext * ctx)   {
-PythonAPI::evalScript("enterDelay_or_event_control", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDelay_or_event_control", this, (parser_rule_context*) ctx);
 }
 
    void exitDelay_or_event_control(SV3_1aParser::Delay_or_event_controlContext * ctx)   {
-PythonAPI::evalScript("exitDelay_or_event_control", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDelay_or_event_control", this, (parser_rule_context*) ctx);
 }
 
    void enterDelay_control(SV3_1aParser::Delay_controlContext * ctx)   {
-PythonAPI::evalScript("enterDelay_control", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDelay_control", this, (parser_rule_context*) ctx);
 }
 
    void exitDelay_control(SV3_1aParser::Delay_controlContext * ctx)   {
-PythonAPI::evalScript("exitDelay_control", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDelay_control", this, (parser_rule_context*) ctx);
 }
 
    void enterEvent_control(SV3_1aParser::Event_controlContext * ctx)   {
-PythonAPI::evalScript("enterEvent_control", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEvent_control", this, (parser_rule_context*) ctx);
 }
 
    void exitEvent_control(SV3_1aParser::Event_controlContext * ctx)   {
-PythonAPI::evalScript("exitEvent_control", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEvent_control", this, (parser_rule_context*) ctx);
 }
 
    void enterEvent_expression(SV3_1aParser::Event_expressionContext * ctx)   {
-PythonAPI::evalScript("enterEvent_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEvent_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitEvent_expression(SV3_1aParser::Event_expressionContext * ctx)   {
-PythonAPI::evalScript("exitEvent_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEvent_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterProcedural_timing_control(SV3_1aParser::Procedural_timing_controlContext * ctx)   {
-PythonAPI::evalScript("enterProcedural_timing_control", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProcedural_timing_control", this, (parser_rule_context*) ctx);
 }
 
    void exitProcedural_timing_control(SV3_1aParser::Procedural_timing_controlContext * ctx)   {
-PythonAPI::evalScript("exitProcedural_timing_control", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProcedural_timing_control", this, (parser_rule_context*) ctx);
 }
 
    void enterJump_statement(SV3_1aParser::Jump_statementContext * ctx)   {
-PythonAPI::evalScript("enterJump_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterJump_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitJump_statement(SV3_1aParser::Jump_statementContext * ctx)   {
-PythonAPI::evalScript("exitJump_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitJump_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterFinal_construct(SV3_1aParser::Final_constructContext * ctx)   {
-PythonAPI::evalScript("enterFinal_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFinal_construct", this, (parser_rule_context*) ctx);
 }
 
    void exitFinal_construct(SV3_1aParser::Final_constructContext * ctx)   {
-PythonAPI::evalScript("exitFinal_construct", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFinal_construct", this, (parser_rule_context*) ctx);
 }
 
    void enterWait_statement(SV3_1aParser::Wait_statementContext * ctx)   {
-PythonAPI::evalScript("enterWait_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterWait_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitWait_statement(SV3_1aParser::Wait_statementContext * ctx)   {
-PythonAPI::evalScript("exitWait_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitWait_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterEvent_trigger(SV3_1aParser::Event_triggerContext * ctx)   {
-PythonAPI::evalScript("enterEvent_trigger", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEvent_trigger", this, (parser_rule_context*) ctx);
 }
 
    void exitEvent_trigger(SV3_1aParser::Event_triggerContext * ctx)   {
-PythonAPI::evalScript("exitEvent_trigger", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEvent_trigger", this, (parser_rule_context*) ctx);
 }
 
    void enterDisable_statement(SV3_1aParser::Disable_statementContext * ctx)   {
-PythonAPI::evalScript("enterDisable_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDisable_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitDisable_statement(SV3_1aParser::Disable_statementContext * ctx)   {
-PythonAPI::evalScript("exitDisable_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDisable_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterConditional_statement(SV3_1aParser::Conditional_statementContext * ctx)   {
-PythonAPI::evalScript("enterConditional_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConditional_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitConditional_statement(SV3_1aParser::Conditional_statementContext * ctx)   {
-PythonAPI::evalScript("exitConditional_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConditional_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterUnique_priority(SV3_1aParser::Unique_priorityContext * ctx)   {
-PythonAPI::evalScript("enterUnique_priority", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnique_priority", this, (parser_rule_context*) ctx);
 }
 
    void exitUnique_priority(SV3_1aParser::Unique_priorityContext * ctx)   {
-PythonAPI::evalScript("exitUnique_priority", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnique_priority", this, (parser_rule_context*) ctx);
 }
 
    void enterCond_predicate(SV3_1aParser::Cond_predicateContext * ctx)   {
-PythonAPI::evalScript("enterCond_predicate", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCond_predicate", this, (parser_rule_context*) ctx);
 }
 
    void exitCond_predicate(SV3_1aParser::Cond_predicateContext * ctx)   {
-PythonAPI::evalScript("exitCond_predicate", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCond_predicate", this, (parser_rule_context*) ctx);
 }
 
    void enterExpression_or_cond_pattern(SV3_1aParser::Expression_or_cond_patternContext * ctx)   {
-PythonAPI::evalScript("enterExpression_or_cond_pattern", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterExpression_or_cond_pattern", this, (parser_rule_context*) ctx);
 }
 
    void exitExpression_or_cond_pattern(SV3_1aParser::Expression_or_cond_patternContext * ctx)   {
-PythonAPI::evalScript("exitExpression_or_cond_pattern", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitExpression_or_cond_pattern", this, (parser_rule_context*) ctx);
 }
 
    void enterCase_statement(SV3_1aParser::Case_statementContext * ctx)   {
-PythonAPI::evalScript("enterCase_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCase_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitCase_statement(SV3_1aParser::Case_statementContext * ctx)   {
-PythonAPI::evalScript("exitCase_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCase_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterCaseKeyword_Case(SV3_1aParser::CaseKeyword_CaseContext * ctx)   {
-PythonAPI::evalScript("enterCaseKeyword_Case", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCaseKeyword_Case", this, (parser_rule_context*) ctx);
 }
 
    void exitCaseKeyword_Case(SV3_1aParser::CaseKeyword_CaseContext * ctx)   {
-PythonAPI::evalScript("exitCaseKeyword_Case", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCaseKeyword_Case", this, (parser_rule_context*) ctx);
 }
 
    void enterCaseKeyword_CaseZ(SV3_1aParser::CaseKeyword_CaseZContext * ctx)   {
-PythonAPI::evalScript("enterCaseKeyword_CaseZ", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCaseKeyword_CaseZ", this, (parser_rule_context*) ctx);
 }
 
    void exitCaseKeyword_CaseZ(SV3_1aParser::CaseKeyword_CaseZContext * ctx)   {
-PythonAPI::evalScript("exitCaseKeyword_CaseZ", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCaseKeyword_CaseZ", this, (parser_rule_context*) ctx);
 }
 
    void enterCaseKeyword_CaseX(SV3_1aParser::CaseKeyword_CaseXContext * ctx)   {
-PythonAPI::evalScript("enterCaseKeyword_CaseX", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCaseKeyword_CaseX", this, (parser_rule_context*) ctx);
 }
 
    void exitCaseKeyword_CaseX(SV3_1aParser::CaseKeyword_CaseXContext * ctx)   {
-PythonAPI::evalScript("exitCaseKeyword_CaseX", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCaseKeyword_CaseX", this, (parser_rule_context*) ctx);
 }
 
    void enterCase_item(SV3_1aParser::Case_itemContext * ctx)   {
-PythonAPI::evalScript("enterCase_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCase_item", this, (parser_rule_context*) ctx);
 }
 
    void exitCase_item(SV3_1aParser::Case_itemContext * ctx)   {
-PythonAPI::evalScript("exitCase_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCase_item", this, (parser_rule_context*) ctx);
 }
 
    void enterCase_pattern_item(SV3_1aParser::Case_pattern_itemContext * ctx)   {
-PythonAPI::evalScript("enterCase_pattern_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCase_pattern_item", this, (parser_rule_context*) ctx);
 }
 
    void exitCase_pattern_item(SV3_1aParser::Case_pattern_itemContext * ctx)   {
-PythonAPI::evalScript("exitCase_pattern_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCase_pattern_item", this, (parser_rule_context*) ctx);
 }
 
    void enterCase_inside_item(SV3_1aParser::Case_inside_itemContext * ctx)   {
-PythonAPI::evalScript("enterCase_inside_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCase_inside_item", this, (parser_rule_context*) ctx);
 }
 
    void exitCase_inside_item(SV3_1aParser::Case_inside_itemContext * ctx)   {
-PythonAPI::evalScript("exitCase_inside_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCase_inside_item", this, (parser_rule_context*) ctx);
 }
 
    void enterRandcase_statement(SV3_1aParser::Randcase_statementContext * ctx)   {
-PythonAPI::evalScript("enterRandcase_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRandcase_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitRandcase_statement(SV3_1aParser::Randcase_statementContext * ctx)   {
-PythonAPI::evalScript("exitRandcase_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRandcase_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterRandcase_item(SV3_1aParser::Randcase_itemContext * ctx)   {
-PythonAPI::evalScript("enterRandcase_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRandcase_item", this, (parser_rule_context*) ctx);
 }
 
    void exitRandcase_item(SV3_1aParser::Randcase_itemContext * ctx)   {
-PythonAPI::evalScript("exitRandcase_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRandcase_item", this, (parser_rule_context*) ctx);
 }
 
    void enterPattern(SV3_1aParser::PatternContext * ctx)   {
-PythonAPI::evalScript("enterPattern", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPattern", this, (parser_rule_context*) ctx);
 }
 
    void exitPattern(SV3_1aParser::PatternContext * ctx)   {
-PythonAPI::evalScript("exitPattern", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPattern", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignment_pattern(SV3_1aParser::Assignment_patternContext * ctx)   {
-PythonAPI::evalScript("enterAssignment_pattern", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignment_pattern", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignment_pattern(SV3_1aParser::Assignment_patternContext * ctx)   {
-PythonAPI::evalScript("exitAssignment_pattern", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignment_pattern", this, (parser_rule_context*) ctx);
 }
 
    void enterStructure_pattern_key(SV3_1aParser::Structure_pattern_keyContext * ctx)   {
-PythonAPI::evalScript("enterStructure_pattern_key", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStructure_pattern_key", this, (parser_rule_context*) ctx);
 }
 
    void exitStructure_pattern_key(SV3_1aParser::Structure_pattern_keyContext * ctx)   {
-PythonAPI::evalScript("exitStructure_pattern_key", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStructure_pattern_key", this, (parser_rule_context*) ctx);
 }
 
    void enterArray_pattern_key(SV3_1aParser::Array_pattern_keyContext * ctx)   {
-PythonAPI::evalScript("enterArray_pattern_key", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterArray_pattern_key", this, (parser_rule_context*) ctx);
 }
 
    void exitArray_pattern_key(SV3_1aParser::Array_pattern_keyContext * ctx)   {
-PythonAPI::evalScript("exitArray_pattern_key", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitArray_pattern_key", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignment_pattern_key(SV3_1aParser::Assignment_pattern_keyContext * ctx)   {
-PythonAPI::evalScript("enterAssignment_pattern_key", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignment_pattern_key", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignment_pattern_key(SV3_1aParser::Assignment_pattern_keyContext * ctx)   {
-PythonAPI::evalScript("exitAssignment_pattern_key", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignment_pattern_key", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignment_pattern_expression(SV3_1aParser::Assignment_pattern_expressionContext * ctx)   {
-PythonAPI::evalScript("enterAssignment_pattern_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignment_pattern_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignment_pattern_expression(SV3_1aParser::Assignment_pattern_expressionContext * ctx)   {
-PythonAPI::evalScript("exitAssignment_pattern_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignment_pattern_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignment_pattern_expression_type(SV3_1aParser::Assignment_pattern_expression_typeContext * ctx)   {
-PythonAPI::evalScript("enterAssignment_pattern_expression_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignment_pattern_expression_type", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignment_pattern_expression_type(SV3_1aParser::Assignment_pattern_expression_typeContext * ctx)   {
-PythonAPI::evalScript("exitAssignment_pattern_expression_type", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignment_pattern_expression_type", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_assignment_pattern_expression(SV3_1aParser::Constant_assignment_pattern_expressionContext * ctx)   {
-PythonAPI::evalScript("enterConstant_assignment_pattern_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_assignment_pattern_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_assignment_pattern_expression(SV3_1aParser::Constant_assignment_pattern_expressionContext * ctx)   {
-PythonAPI::evalScript("exitConstant_assignment_pattern_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_assignment_pattern_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignment_pattern_net_lvalue(SV3_1aParser::Assignment_pattern_net_lvalueContext * ctx)   {
-PythonAPI::evalScript("enterAssignment_pattern_net_lvalue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignment_pattern_net_lvalue", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignment_pattern_net_lvalue(SV3_1aParser::Assignment_pattern_net_lvalueContext * ctx)   {
-PythonAPI::evalScript("exitAssignment_pattern_net_lvalue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignment_pattern_net_lvalue", this, (parser_rule_context*) ctx);
 }
 
    void enterAssignment_pattern_variable_lvalue(SV3_1aParser::Assignment_pattern_variable_lvalueContext * ctx)   {
-PythonAPI::evalScript("enterAssignment_pattern_variable_lvalue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssignment_pattern_variable_lvalue", this, (parser_rule_context*) ctx);
 }
 
    void exitAssignment_pattern_variable_lvalue(SV3_1aParser::Assignment_pattern_variable_lvalueContext * ctx)   {
-PythonAPI::evalScript("exitAssignment_pattern_variable_lvalue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssignment_pattern_variable_lvalue", this, (parser_rule_context*) ctx);
 }
 
    void enterForever_keyword(SV3_1aParser::Forever_keywordContext * ctx)   {
-PythonAPI::evalScript("enterForever_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterForever_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitForever_keyword(SV3_1aParser::Forever_keywordContext * ctx)   {
-PythonAPI::evalScript("exitForever_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitForever_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterRepeat_keyword(SV3_1aParser::Repeat_keywordContext * ctx)   {
-PythonAPI::evalScript("enterRepeat_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRepeat_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitRepeat_keyword(SV3_1aParser::Repeat_keywordContext * ctx)   {
-PythonAPI::evalScript("exitRepeat_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRepeat_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterWhile_keyword(SV3_1aParser::While_keywordContext * ctx)   {
-PythonAPI::evalScript("enterWhile_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterWhile_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitWhile_keyword(SV3_1aParser::While_keywordContext * ctx)   {
-PythonAPI::evalScript("exitWhile_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitWhile_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterLoop_statement(SV3_1aParser::Loop_statementContext * ctx)   {
-PythonAPI::evalScript("enterLoop_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLoop_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitLoop_statement(SV3_1aParser::Loop_statementContext * ctx)   {
-PythonAPI::evalScript("exitLoop_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLoop_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterFor_initialization(SV3_1aParser::For_initializationContext * ctx)   {
-PythonAPI::evalScript("enterFor_initialization", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFor_initialization", this, (parser_rule_context*) ctx);
 }
 
    void exitFor_initialization(SV3_1aParser::For_initializationContext * ctx)   {
-PythonAPI::evalScript("exitFor_initialization", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFor_initialization", this, (parser_rule_context*) ctx);
 }
 
    void enterFor_variable_declaration(SV3_1aParser::For_variable_declarationContext * ctx)   {
-PythonAPI::evalScript("enterFor_variable_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFor_variable_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitFor_variable_declaration(SV3_1aParser::For_variable_declarationContext * ctx)   {
-PythonAPI::evalScript("exitFor_variable_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFor_variable_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterFor_step(SV3_1aParser::For_stepContext * ctx)   {
-PythonAPI::evalScript("enterFor_step", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFor_step", this, (parser_rule_context*) ctx);
 }
 
    void exitFor_step(SV3_1aParser::For_stepContext * ctx)   {
-PythonAPI::evalScript("exitFor_step", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFor_step", this, (parser_rule_context*) ctx);
 }
 
    void enterFor_step_assignment(SV3_1aParser::For_step_assignmentContext * ctx)   {
-PythonAPI::evalScript("enterFor_step_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFor_step_assignment", this, (parser_rule_context*) ctx);
 }
 
    void exitFor_step_assignment(SV3_1aParser::For_step_assignmentContext * ctx)   {
-PythonAPI::evalScript("exitFor_step_assignment", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFor_step_assignment", this, (parser_rule_context*) ctx);
 }
 
    void enterLoop_variables(SV3_1aParser::Loop_variablesContext * ctx)   {
-PythonAPI::evalScript("enterLoop_variables", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLoop_variables", this, (parser_rule_context*) ctx);
 }
 
    void exitLoop_variables(SV3_1aParser::Loop_variablesContext * ctx)   {
-PythonAPI::evalScript("exitLoop_variables", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLoop_variables", this, (parser_rule_context*) ctx);
 }
 
    void enterSubroutine_call_statement(SV3_1aParser::Subroutine_call_statementContext * ctx)   {
-PythonAPI::evalScript("enterSubroutine_call_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSubroutine_call_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitSubroutine_call_statement(SV3_1aParser::Subroutine_call_statementContext * ctx)   {
-PythonAPI::evalScript("exitSubroutine_call_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSubroutine_call_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterAssertion_item(SV3_1aParser::Assertion_itemContext * ctx)   {
-PythonAPI::evalScript("enterAssertion_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAssertion_item", this, (parser_rule_context*) ctx);
 }
 
    void exitAssertion_item(SV3_1aParser::Assertion_itemContext * ctx)   {
-PythonAPI::evalScript("exitAssertion_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAssertion_item", this, (parser_rule_context*) ctx);
 }
 
    void enterDeferred_immediate_assertion_item(SV3_1aParser::Deferred_immediate_assertion_itemContext * ctx)   {
-PythonAPI::evalScript("enterDeferred_immediate_assertion_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDeferred_immediate_assertion_item", this, (parser_rule_context*) ctx);
 }
 
    void exitDeferred_immediate_assertion_item(SV3_1aParser::Deferred_immediate_assertion_itemContext * ctx)   {
-PythonAPI::evalScript("exitDeferred_immediate_assertion_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDeferred_immediate_assertion_item", this, (parser_rule_context*) ctx);
 }
 
    void enterProcedural_assertion_statement(SV3_1aParser::Procedural_assertion_statementContext * ctx)   {
-PythonAPI::evalScript("enterProcedural_assertion_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProcedural_assertion_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitProcedural_assertion_statement(SV3_1aParser::Procedural_assertion_statementContext * ctx)   {
-PythonAPI::evalScript("exitProcedural_assertion_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProcedural_assertion_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterImmediate_assertion_statement(SV3_1aParser::Immediate_assertion_statementContext * ctx)   {
-PythonAPI::evalScript("enterImmediate_assertion_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterImmediate_assertion_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitImmediate_assertion_statement(SV3_1aParser::Immediate_assertion_statementContext * ctx)   {
-PythonAPI::evalScript("exitImmediate_assertion_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitImmediate_assertion_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterSimple_immediate_assertion_statement(SV3_1aParser::Simple_immediate_assertion_statementContext * ctx)   {
-PythonAPI::evalScript("enterSimple_immediate_assertion_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSimple_immediate_assertion_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitSimple_immediate_assertion_statement(SV3_1aParser::Simple_immediate_assertion_statementContext * ctx)   {
-PythonAPI::evalScript("exitSimple_immediate_assertion_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSimple_immediate_assertion_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterSimple_immediate_assert_statement(SV3_1aParser::Simple_immediate_assert_statementContext * ctx)   {
-PythonAPI::evalScript("enterSimple_immediate_assert_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSimple_immediate_assert_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitSimple_immediate_assert_statement(SV3_1aParser::Simple_immediate_assert_statementContext * ctx)   {
-PythonAPI::evalScript("exitSimple_immediate_assert_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSimple_immediate_assert_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterSimple_immediate_assume_statement(SV3_1aParser::Simple_immediate_assume_statementContext * ctx)   {
-PythonAPI::evalScript("enterSimple_immediate_assume_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSimple_immediate_assume_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitSimple_immediate_assume_statement(SV3_1aParser::Simple_immediate_assume_statementContext * ctx)   {
-PythonAPI::evalScript("exitSimple_immediate_assume_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSimple_immediate_assume_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterSimple_immediate_cover_statement(SV3_1aParser::Simple_immediate_cover_statementContext * ctx)   {
-PythonAPI::evalScript("enterSimple_immediate_cover_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSimple_immediate_cover_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitSimple_immediate_cover_statement(SV3_1aParser::Simple_immediate_cover_statementContext * ctx)   {
-PythonAPI::evalScript("exitSimple_immediate_cover_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSimple_immediate_cover_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterDeferred_immediate_assertion_statement(SV3_1aParser::Deferred_immediate_assertion_statementContext * ctx)   {
-PythonAPI::evalScript("enterDeferred_immediate_assertion_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDeferred_immediate_assertion_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitDeferred_immediate_assertion_statement(SV3_1aParser::Deferred_immediate_assertion_statementContext * ctx)   {
-PythonAPI::evalScript("exitDeferred_immediate_assertion_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDeferred_immediate_assertion_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterDeferred_immediate_assert_statement(SV3_1aParser::Deferred_immediate_assert_statementContext * ctx)   {
-PythonAPI::evalScript("enterDeferred_immediate_assert_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDeferred_immediate_assert_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitDeferred_immediate_assert_statement(SV3_1aParser::Deferred_immediate_assert_statementContext * ctx)   {
-PythonAPI::evalScript("exitDeferred_immediate_assert_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDeferred_immediate_assert_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterDeferred_immediate_assume_statement(SV3_1aParser::Deferred_immediate_assume_statementContext * ctx)   {
-PythonAPI::evalScript("enterDeferred_immediate_assume_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDeferred_immediate_assume_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitDeferred_immediate_assume_statement(SV3_1aParser::Deferred_immediate_assume_statementContext * ctx)   {
-PythonAPI::evalScript("exitDeferred_immediate_assume_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDeferred_immediate_assume_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterDeferred_immediate_cover_statement(SV3_1aParser::Deferred_immediate_cover_statementContext * ctx)   {
-PythonAPI::evalScript("enterDeferred_immediate_cover_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDeferred_immediate_cover_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitDeferred_immediate_cover_statement(SV3_1aParser::Deferred_immediate_cover_statementContext * ctx)   {
-PythonAPI::evalScript("exitDeferred_immediate_cover_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDeferred_immediate_cover_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterEndclocking(SV3_1aParser::EndclockingContext * ctx)   {
-PythonAPI::evalScript("enterEndclocking", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndclocking", this, (parser_rule_context*) ctx);
 }
 
    void exitEndclocking(SV3_1aParser::EndclockingContext * ctx)   {
-PythonAPI::evalScript("exitEndclocking", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndclocking", this, (parser_rule_context*) ctx);
 }
 
    void enterClocking_declaration(SV3_1aParser::Clocking_declarationContext * ctx)   {
-PythonAPI::evalScript("enterClocking_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClocking_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitClocking_declaration(SV3_1aParser::Clocking_declarationContext * ctx)   {
-PythonAPI::evalScript("exitClocking_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClocking_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterClocking_event(SV3_1aParser::Clocking_eventContext * ctx)   {
-PythonAPI::evalScript("enterClocking_event", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClocking_event", this, (parser_rule_context*) ctx);
 }
 
    void exitClocking_event(SV3_1aParser::Clocking_eventContext * ctx)   {
-PythonAPI::evalScript("exitClocking_event", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClocking_event", this, (parser_rule_context*) ctx);
 }
 
    void enterClocking_item(SV3_1aParser::Clocking_itemContext * ctx)   {
-PythonAPI::evalScript("enterClocking_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClocking_item", this, (parser_rule_context*) ctx);
 }
 
    void exitClocking_item(SV3_1aParser::Clocking_itemContext * ctx)   {
-PythonAPI::evalScript("exitClocking_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClocking_item", this, (parser_rule_context*) ctx);
 }
 
    void enterDefaultSkew_Intput(SV3_1aParser::DefaultSkew_IntputContext * ctx)   {
-PythonAPI::evalScript("enterDefaultSkew_Intput", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDefaultSkew_Intput", this, (parser_rule_context*) ctx);
 }
 
    void exitDefaultSkew_Intput(SV3_1aParser::DefaultSkew_IntputContext * ctx)   {
-PythonAPI::evalScript("exitDefaultSkew_Intput", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDefaultSkew_Intput", this, (parser_rule_context*) ctx);
 }
 
    void enterDefaultSkew_Output(SV3_1aParser::DefaultSkew_OutputContext * ctx)   {
-PythonAPI::evalScript("enterDefaultSkew_Output", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDefaultSkew_Output", this, (parser_rule_context*) ctx);
 }
 
    void exitDefaultSkew_Output(SV3_1aParser::DefaultSkew_OutputContext * ctx)   {
-PythonAPI::evalScript("exitDefaultSkew_Output", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDefaultSkew_Output", this, (parser_rule_context*) ctx);
 }
 
    void enterDefaultSkew_IntputOutput(SV3_1aParser::DefaultSkew_IntputOutputContext * ctx)   {
-PythonAPI::evalScript("enterDefaultSkew_IntputOutput", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDefaultSkew_IntputOutput", this, (parser_rule_context*) ctx);
 }
 
    void exitDefaultSkew_IntputOutput(SV3_1aParser::DefaultSkew_IntputOutputContext * ctx)   {
-PythonAPI::evalScript("exitDefaultSkew_IntputOutput", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDefaultSkew_IntputOutput", this, (parser_rule_context*) ctx);
 }
 
    void enterClockingDir_Input(SV3_1aParser::ClockingDir_InputContext * ctx)   {
-PythonAPI::evalScript("enterClockingDir_Input", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClockingDir_Input", this, (parser_rule_context*) ctx);
 }
 
    void exitClockingDir_Input(SV3_1aParser::ClockingDir_InputContext * ctx)   {
-PythonAPI::evalScript("exitClockingDir_Input", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClockingDir_Input", this, (parser_rule_context*) ctx);
 }
 
    void enterClockingDir_Output(SV3_1aParser::ClockingDir_OutputContext * ctx)   {
-PythonAPI::evalScript("enterClockingDir_Output", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClockingDir_Output", this, (parser_rule_context*) ctx);
 }
 
    void exitClockingDir_Output(SV3_1aParser::ClockingDir_OutputContext * ctx)   {
-PythonAPI::evalScript("exitClockingDir_Output", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClockingDir_Output", this, (parser_rule_context*) ctx);
 }
 
    void enterClockingDir_InputOutput(SV3_1aParser::ClockingDir_InputOutputContext * ctx)   {
-PythonAPI::evalScript("enterClockingDir_InputOutput", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClockingDir_InputOutput", this, (parser_rule_context*) ctx);
 }
 
    void exitClockingDir_InputOutput(SV3_1aParser::ClockingDir_InputOutputContext * ctx)   {
-PythonAPI::evalScript("exitClockingDir_InputOutput", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClockingDir_InputOutput", this, (parser_rule_context*) ctx);
 }
 
    void enterClockingDir_Inout(SV3_1aParser::ClockingDir_InoutContext * ctx)   {
-PythonAPI::evalScript("enterClockingDir_Inout", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClockingDir_Inout", this, (parser_rule_context*) ctx);
 }
 
    void exitClockingDir_Inout(SV3_1aParser::ClockingDir_InoutContext * ctx)   {
-PythonAPI::evalScript("exitClockingDir_Inout", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClockingDir_Inout", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_clocking_decl_assign(SV3_1aParser::List_of_clocking_decl_assignContext * ctx)   {
-PythonAPI::evalScript("enterList_of_clocking_decl_assign", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_clocking_decl_assign", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_clocking_decl_assign(SV3_1aParser::List_of_clocking_decl_assignContext * ctx)   {
-PythonAPI::evalScript("exitList_of_clocking_decl_assign", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_clocking_decl_assign", this, (parser_rule_context*) ctx);
 }
 
    void enterClocking_decl_assign(SV3_1aParser::Clocking_decl_assignContext * ctx)   {
-PythonAPI::evalScript("enterClocking_decl_assign", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClocking_decl_assign", this, (parser_rule_context*) ctx);
 }
 
    void exitClocking_decl_assign(SV3_1aParser::Clocking_decl_assignContext * ctx)   {
-PythonAPI::evalScript("exitClocking_decl_assign", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClocking_decl_assign", this, (parser_rule_context*) ctx);
 }
 
    void enterClocking_skew(SV3_1aParser::Clocking_skewContext * ctx)   {
-PythonAPI::evalScript("enterClocking_skew", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClocking_skew", this, (parser_rule_context*) ctx);
 }
 
    void exitClocking_skew(SV3_1aParser::Clocking_skewContext * ctx)   {
-PythonAPI::evalScript("exitClocking_skew", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClocking_skew", this, (parser_rule_context*) ctx);
 }
 
    void enterEdge_Posedge(SV3_1aParser::Edge_PosedgeContext * ctx)   {
-PythonAPI::evalScript("enterEdge_Posedge", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEdge_Posedge", this, (parser_rule_context*) ctx);
 }
 
    void exitEdge_Posedge(SV3_1aParser::Edge_PosedgeContext * ctx)   {
-PythonAPI::evalScript("exitEdge_Posedge", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEdge_Posedge", this, (parser_rule_context*) ctx);
 }
 
    void enterEdge_Negedge(SV3_1aParser::Edge_NegedgeContext * ctx)   {
-PythonAPI::evalScript("enterEdge_Negedge", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEdge_Negedge", this, (parser_rule_context*) ctx);
 }
 
    void exitEdge_Negedge(SV3_1aParser::Edge_NegedgeContext * ctx)   {
-PythonAPI::evalScript("exitEdge_Negedge", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEdge_Negedge", this, (parser_rule_context*) ctx);
 }
 
    void enterEdge_Edge(SV3_1aParser::Edge_EdgeContext * ctx)   {
-PythonAPI::evalScript("enterEdge_Edge", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEdge_Edge", this, (parser_rule_context*) ctx);
 }
 
    void exitEdge_Edge(SV3_1aParser::Edge_EdgeContext * ctx)   {
-PythonAPI::evalScript("exitEdge_Edge", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEdge_Edge", this, (parser_rule_context*) ctx);
 }
 
    void enterClocking_drive(SV3_1aParser::Clocking_driveContext * ctx)   {
-PythonAPI::evalScript("enterClocking_drive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClocking_drive", this, (parser_rule_context*) ctx);
 }
 
    void exitClocking_drive(SV3_1aParser::Clocking_driveContext * ctx)   {
-PythonAPI::evalScript("exitClocking_drive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClocking_drive", this, (parser_rule_context*) ctx);
 }
 
    void enterCycle_delay(SV3_1aParser::Cycle_delayContext * ctx)   {
-PythonAPI::evalScript("enterCycle_delay", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCycle_delay", this, (parser_rule_context*) ctx);
 }
 
    void exitCycle_delay(SV3_1aParser::Cycle_delayContext * ctx)   {
-PythonAPI::evalScript("exitCycle_delay", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCycle_delay", this, (parser_rule_context*) ctx);
 }
 
    void enterClockvar(SV3_1aParser::ClockvarContext * ctx)   {
-PythonAPI::evalScript("enterClockvar", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClockvar", this, (parser_rule_context*) ctx);
 }
 
    void exitClockvar(SV3_1aParser::ClockvarContext * ctx)   {
-PythonAPI::evalScript("exitClockvar", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClockvar", this, (parser_rule_context*) ctx);
 }
 
    void enterClockvar_expression(SV3_1aParser::Clockvar_expressionContext * ctx)   {
-PythonAPI::evalScript("enterClockvar_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterClockvar_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitClockvar_expression(SV3_1aParser::Clockvar_expressionContext * ctx)   {
-PythonAPI::evalScript("exitClockvar_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitClockvar_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterRandsequence_statement(SV3_1aParser::Randsequence_statementContext * ctx)   {
-PythonAPI::evalScript("enterRandsequence_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRandsequence_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitRandsequence_statement(SV3_1aParser::Randsequence_statementContext * ctx)   {
-PythonAPI::evalScript("exitRandsequence_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRandsequence_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterProduction(SV3_1aParser::ProductionContext * ctx)   {
-PythonAPI::evalScript("enterProduction", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProduction", this, (parser_rule_context*) ctx);
 }
 
    void exitProduction(SV3_1aParser::ProductionContext * ctx)   {
-PythonAPI::evalScript("exitProduction", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProduction", this, (parser_rule_context*) ctx);
 }
 
    void enterRs_rule(SV3_1aParser::Rs_ruleContext * ctx)   {
-PythonAPI::evalScript("enterRs_rule", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRs_rule", this, (parser_rule_context*) ctx);
 }
 
    void exitRs_rule(SV3_1aParser::Rs_ruleContext * ctx)   {
-PythonAPI::evalScript("exitRs_rule", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRs_rule", this, (parser_rule_context*) ctx);
 }
 
    void enterRs_production_list(SV3_1aParser::Rs_production_listContext * ctx)   {
-PythonAPI::evalScript("enterRs_production_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRs_production_list", this, (parser_rule_context*) ctx);
 }
 
    void exitRs_production_list(SV3_1aParser::Rs_production_listContext * ctx)   {
-PythonAPI::evalScript("exitRs_production_list", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRs_production_list", this, (parser_rule_context*) ctx);
 }
 
    void enterRs_code_block(SV3_1aParser::Rs_code_blockContext * ctx)   {
-PythonAPI::evalScript("enterRs_code_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRs_code_block", this, (parser_rule_context*) ctx);
 }
 
    void exitRs_code_block(SV3_1aParser::Rs_code_blockContext * ctx)   {
-PythonAPI::evalScript("exitRs_code_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRs_code_block", this, (parser_rule_context*) ctx);
 }
 
    void enterRs_prod(SV3_1aParser::Rs_prodContext * ctx)   {
-PythonAPI::evalScript("enterRs_prod", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRs_prod", this, (parser_rule_context*) ctx);
 }
 
    void exitRs_prod(SV3_1aParser::Rs_prodContext * ctx)   {
-PythonAPI::evalScript("exitRs_prod", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRs_prod", this, (parser_rule_context*) ctx);
 }
 
    void enterProduction_item(SV3_1aParser::Production_itemContext * ctx)   {
-PythonAPI::evalScript("enterProduction_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProduction_item", this, (parser_rule_context*) ctx);
 }
 
    void exitProduction_item(SV3_1aParser::Production_itemContext * ctx)   {
-PythonAPI::evalScript("exitProduction_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProduction_item", this, (parser_rule_context*) ctx);
 }
 
    void enterRs_if_else(SV3_1aParser::Rs_if_elseContext * ctx)   {
-PythonAPI::evalScript("enterRs_if_else", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRs_if_else", this, (parser_rule_context*) ctx);
 }
 
    void exitRs_if_else(SV3_1aParser::Rs_if_elseContext * ctx)   {
-PythonAPI::evalScript("exitRs_if_else", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRs_if_else", this, (parser_rule_context*) ctx);
 }
 
    void enterRs_repeat(SV3_1aParser::Rs_repeatContext * ctx)   {
-PythonAPI::evalScript("enterRs_repeat", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRs_repeat", this, (parser_rule_context*) ctx);
 }
 
    void exitRs_repeat(SV3_1aParser::Rs_repeatContext * ctx)   {
-PythonAPI::evalScript("exitRs_repeat", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRs_repeat", this, (parser_rule_context*) ctx);
 }
 
    void enterRs_case(SV3_1aParser::Rs_caseContext * ctx)   {
-PythonAPI::evalScript("enterRs_case", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRs_case", this, (parser_rule_context*) ctx);
 }
 
    void exitRs_case(SV3_1aParser::Rs_caseContext * ctx)   {
-PythonAPI::evalScript("exitRs_case", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRs_case", this, (parser_rule_context*) ctx);
 }
 
    void enterRs_case_item(SV3_1aParser::Rs_case_itemContext * ctx)   {
-PythonAPI::evalScript("enterRs_case_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRs_case_item", this, (parser_rule_context*) ctx);
 }
 
    void exitRs_case_item(SV3_1aParser::Rs_case_itemContext * ctx)   {
-PythonAPI::evalScript("exitRs_case_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRs_case_item", this, (parser_rule_context*) ctx);
 }
 
    void enterEndspecify(SV3_1aParser::EndspecifyContext * ctx)   {
-PythonAPI::evalScript("enterEndspecify", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndspecify", this, (parser_rule_context*) ctx);
 }
 
    void exitEndspecify(SV3_1aParser::EndspecifyContext * ctx)   {
-PythonAPI::evalScript("exitEndspecify", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndspecify", this, (parser_rule_context*) ctx);
 }
 
    void enterSpecify_block(SV3_1aParser::Specify_blockContext * ctx)   {
-PythonAPI::evalScript("enterSpecify_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSpecify_block", this, (parser_rule_context*) ctx);
 }
 
    void exitSpecify_block(SV3_1aParser::Specify_blockContext * ctx)   {
-PythonAPI::evalScript("exitSpecify_block", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSpecify_block", this, (parser_rule_context*) ctx);
 }
 
    void enterSpecify_item(SV3_1aParser::Specify_itemContext * ctx)   {
-PythonAPI::evalScript("enterSpecify_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSpecify_item", this, (parser_rule_context*) ctx);
 }
 
    void exitSpecify_item(SV3_1aParser::Specify_itemContext * ctx)   {
-PythonAPI::evalScript("exitSpecify_item", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSpecify_item", this, (parser_rule_context*) ctx);
 }
 
    void enterPulsestyle_declaration(SV3_1aParser::Pulsestyle_declarationContext * ctx)   {
-PythonAPI::evalScript("enterPulsestyle_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPulsestyle_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitPulsestyle_declaration(SV3_1aParser::Pulsestyle_declarationContext * ctx)   {
-PythonAPI::evalScript("exitPulsestyle_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPulsestyle_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterShowcancelled_declaration(SV3_1aParser::Showcancelled_declarationContext * ctx)   {
-PythonAPI::evalScript("enterShowcancelled_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterShowcancelled_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitShowcancelled_declaration(SV3_1aParser::Showcancelled_declarationContext * ctx)   {
-PythonAPI::evalScript("exitShowcancelled_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitShowcancelled_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterPath_declaration(SV3_1aParser::Path_declarationContext * ctx)   {
-PythonAPI::evalScript("enterPath_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPath_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitPath_declaration(SV3_1aParser::Path_declarationContext * ctx)   {
-PythonAPI::evalScript("exitPath_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPath_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterSimple_path_declaration(SV3_1aParser::Simple_path_declarationContext * ctx)   {
-PythonAPI::evalScript("enterSimple_path_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSimple_path_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitSimple_path_declaration(SV3_1aParser::Simple_path_declarationContext * ctx)   {
-PythonAPI::evalScript("exitSimple_path_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSimple_path_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterParallel_path_description(SV3_1aParser::Parallel_path_descriptionContext * ctx)   {
-PythonAPI::evalScript("enterParallel_path_description", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterParallel_path_description", this, (parser_rule_context*) ctx);
 }
 
    void exitParallel_path_description(SV3_1aParser::Parallel_path_descriptionContext * ctx)   {
-PythonAPI::evalScript("exitParallel_path_description", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitParallel_path_description", this, (parser_rule_context*) ctx);
 }
 
    void enterFull_path_description(SV3_1aParser::Full_path_descriptionContext * ctx)   {
-PythonAPI::evalScript("enterFull_path_description", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFull_path_description", this, (parser_rule_context*) ctx);
 }
 
    void exitFull_path_description(SV3_1aParser::Full_path_descriptionContext * ctx)   {
-PythonAPI::evalScript("exitFull_path_description", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFull_path_description", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_path_inputs(SV3_1aParser::List_of_path_inputsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_path_inputs", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_path_inputs", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_path_inputs(SV3_1aParser::List_of_path_inputsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_path_inputs", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_path_inputs", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_path_outputs(SV3_1aParser::List_of_path_outputsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_path_outputs", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_path_outputs", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_path_outputs(SV3_1aParser::List_of_path_outputsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_path_outputs", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_path_outputs", this, (parser_rule_context*) ctx);
 }
 
    void enterSpecify_input_terminal_descriptor(SV3_1aParser::Specify_input_terminal_descriptorContext * ctx)   {
-PythonAPI::evalScript("enterSpecify_input_terminal_descriptor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSpecify_input_terminal_descriptor", this, (parser_rule_context*) ctx);
 }
 
    void exitSpecify_input_terminal_descriptor(SV3_1aParser::Specify_input_terminal_descriptorContext * ctx)   {
-PythonAPI::evalScript("exitSpecify_input_terminal_descriptor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSpecify_input_terminal_descriptor", this, (parser_rule_context*) ctx);
 }
 
    void enterSpecify_output_terminal_descriptor(SV3_1aParser::Specify_output_terminal_descriptorContext * ctx)   {
-PythonAPI::evalScript("enterSpecify_output_terminal_descriptor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSpecify_output_terminal_descriptor", this, (parser_rule_context*) ctx);
 }
 
    void exitSpecify_output_terminal_descriptor(SV3_1aParser::Specify_output_terminal_descriptorContext * ctx)   {
-PythonAPI::evalScript("exitSpecify_output_terminal_descriptor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSpecify_output_terminal_descriptor", this, (parser_rule_context*) ctx);
 }
 
    void enterPath_delay_value(SV3_1aParser::Path_delay_valueContext * ctx)   {
-PythonAPI::evalScript("enterPath_delay_value", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPath_delay_value", this, (parser_rule_context*) ctx);
 }
 
    void exitPath_delay_value(SV3_1aParser::Path_delay_valueContext * ctx)   {
-PythonAPI::evalScript("exitPath_delay_value", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPath_delay_value", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_path_delay_expressions(SV3_1aParser::List_of_path_delay_expressionsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_path_delay_expressions", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_path_delay_expressions", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_path_delay_expressions(SV3_1aParser::List_of_path_delay_expressionsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_path_delay_expressions", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_path_delay_expressions", this, (parser_rule_context*) ctx);
 }
 
    void enterT_path_delay_expression(SV3_1aParser::T_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterT_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterT_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitT_path_delay_expression(SV3_1aParser::T_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitT_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitT_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterTrise_path_delay_expression(SV3_1aParser::Trise_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterTrise_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTrise_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitTrise_path_delay_expression(SV3_1aParser::Trise_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitTrise_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTrise_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterTfall_path_delay_expression(SV3_1aParser::Tfall_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterTfall_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTfall_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitTfall_path_delay_expression(SV3_1aParser::Tfall_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitTfall_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTfall_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterTz_path_delay_expression(SV3_1aParser::Tz_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterTz_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTz_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitTz_path_delay_expression(SV3_1aParser::Tz_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitTz_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTz_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterT01_path_delay_expression(SV3_1aParser::T01_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterT01_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterT01_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitT01_path_delay_expression(SV3_1aParser::T01_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitT01_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitT01_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterT10_path_delay_expression(SV3_1aParser::T10_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterT10_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterT10_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitT10_path_delay_expression(SV3_1aParser::T10_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitT10_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitT10_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterT0z_path_delay_expression(SV3_1aParser::T0z_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterT0z_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterT0z_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitT0z_path_delay_expression(SV3_1aParser::T0z_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitT0z_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitT0z_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterTz1_path_delay_expression(SV3_1aParser::Tz1_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterTz1_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTz1_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitTz1_path_delay_expression(SV3_1aParser::Tz1_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitTz1_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTz1_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterT1z_path_delay_expression(SV3_1aParser::T1z_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterT1z_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterT1z_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitT1z_path_delay_expression(SV3_1aParser::T1z_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitT1z_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitT1z_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterTz0_path_delay_expression(SV3_1aParser::Tz0_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterTz0_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTz0_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitTz0_path_delay_expression(SV3_1aParser::Tz0_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitTz0_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTz0_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterT0x_path_delay_expression(SV3_1aParser::T0x_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterT0x_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterT0x_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitT0x_path_delay_expression(SV3_1aParser::T0x_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitT0x_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitT0x_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterTx1_path_delay_expression(SV3_1aParser::Tx1_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterTx1_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTx1_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitTx1_path_delay_expression(SV3_1aParser::Tx1_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitTx1_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTx1_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterT1x_path_delay_expression(SV3_1aParser::T1x_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterT1x_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterT1x_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitT1x_path_delay_expression(SV3_1aParser::T1x_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitT1x_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitT1x_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterTx0_path_delay_expression(SV3_1aParser::Tx0_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterTx0_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTx0_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitTx0_path_delay_expression(SV3_1aParser::Tx0_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitTx0_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTx0_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterTxz_path_delay_expression(SV3_1aParser::Txz_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterTxz_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTxz_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitTxz_path_delay_expression(SV3_1aParser::Txz_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitTxz_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTxz_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterTzx_path_delay_expression(SV3_1aParser::Tzx_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterTzx_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTzx_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitTzx_path_delay_expression(SV3_1aParser::Tzx_path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitTzx_path_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTzx_path_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterPath_delay_expression(SV3_1aParser::Path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("enterPath_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPath_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitPath_delay_expression(SV3_1aParser::Path_delay_expressionContext * ctx)   {
-PythonAPI::evalScript("exitPath_delay_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPath_delay_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterEdge_sensitive_path_declaration(SV3_1aParser::Edge_sensitive_path_declarationContext * ctx)   {
-PythonAPI::evalScript("enterEdge_sensitive_path_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEdge_sensitive_path_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitEdge_sensitive_path_declaration(SV3_1aParser::Edge_sensitive_path_declarationContext * ctx)   {
-PythonAPI::evalScript("exitEdge_sensitive_path_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEdge_sensitive_path_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterParallel_edge_sensitive_path_description(SV3_1aParser::Parallel_edge_sensitive_path_descriptionContext * ctx)   {
-PythonAPI::evalScript("enterParallel_edge_sensitive_path_description", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterParallel_edge_sensitive_path_description", this, (parser_rule_context*) ctx);
 }
 
    void exitParallel_edge_sensitive_path_description(SV3_1aParser::Parallel_edge_sensitive_path_descriptionContext * ctx)   {
-PythonAPI::evalScript("exitParallel_edge_sensitive_path_description", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitParallel_edge_sensitive_path_description", this, (parser_rule_context*) ctx);
 }
 
    void enterFull_edge_sensitive_path_description(SV3_1aParser::Full_edge_sensitive_path_descriptionContext * ctx)   {
-PythonAPI::evalScript("enterFull_edge_sensitive_path_description", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterFull_edge_sensitive_path_description", this, (parser_rule_context*) ctx);
 }
 
    void exitFull_edge_sensitive_path_description(SV3_1aParser::Full_edge_sensitive_path_descriptionContext * ctx)   {
-PythonAPI::evalScript("exitFull_edge_sensitive_path_description", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitFull_edge_sensitive_path_description", this, (parser_rule_context*) ctx);
 }
 
    void enterState_dependent_path_declaration(SV3_1aParser::State_dependent_path_declarationContext * ctx)   {
-PythonAPI::evalScript("enterState_dependent_path_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterState_dependent_path_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitState_dependent_path_declaration(SV3_1aParser::State_dependent_path_declarationContext * ctx)   {
-PythonAPI::evalScript("exitState_dependent_path_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitState_dependent_path_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterSystem_timing_check(SV3_1aParser::System_timing_checkContext * ctx)   {
-PythonAPI::evalScript("enterSystem_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSystem_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void exitSystem_timing_check(SV3_1aParser::System_timing_checkContext * ctx)   {
-PythonAPI::evalScript("exitSystem_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSystem_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_setup_timing_check(SV3_1aParser::Dollar_setup_timing_checkContext * ctx)   {
-PythonAPI::evalScript("enterDollar_setup_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_setup_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_setup_timing_check(SV3_1aParser::Dollar_setup_timing_checkContext * ctx)   {
-PythonAPI::evalScript("exitDollar_setup_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_setup_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_hold_timing_check(SV3_1aParser::Dollar_hold_timing_checkContext * ctx)   {
-PythonAPI::evalScript("enterDollar_hold_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_hold_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_hold_timing_check(SV3_1aParser::Dollar_hold_timing_checkContext * ctx)   {
-PythonAPI::evalScript("exitDollar_hold_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_hold_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_setuphold_timing_check(SV3_1aParser::Dollar_setuphold_timing_checkContext * ctx)   {
-PythonAPI::evalScript("enterDollar_setuphold_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_setuphold_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_setuphold_timing_check(SV3_1aParser::Dollar_setuphold_timing_checkContext * ctx)   {
-PythonAPI::evalScript("exitDollar_setuphold_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_setuphold_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_recovery_timing_check(SV3_1aParser::Dollar_recovery_timing_checkContext * ctx)   {
-PythonAPI::evalScript("enterDollar_recovery_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_recovery_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_recovery_timing_check(SV3_1aParser::Dollar_recovery_timing_checkContext * ctx)   {
-PythonAPI::evalScript("exitDollar_recovery_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_recovery_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_removal_timing_check(SV3_1aParser::Dollar_removal_timing_checkContext * ctx)   {
-PythonAPI::evalScript("enterDollar_removal_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_removal_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_removal_timing_check(SV3_1aParser::Dollar_removal_timing_checkContext * ctx)   {
-PythonAPI::evalScript("exitDollar_removal_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_removal_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_recrem_timing_check(SV3_1aParser::Dollar_recrem_timing_checkContext * ctx)   {
-PythonAPI::evalScript("enterDollar_recrem_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_recrem_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_recrem_timing_check(SV3_1aParser::Dollar_recrem_timing_checkContext * ctx)   {
-PythonAPI::evalScript("exitDollar_recrem_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_recrem_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_skew_timing_check(SV3_1aParser::Dollar_skew_timing_checkContext * ctx)   {
-PythonAPI::evalScript("enterDollar_skew_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_skew_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_skew_timing_check(SV3_1aParser::Dollar_skew_timing_checkContext * ctx)   {
-PythonAPI::evalScript("exitDollar_skew_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_skew_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_timeskew_timing_check(SV3_1aParser::Dollar_timeskew_timing_checkContext * ctx)   {
-PythonAPI::evalScript("enterDollar_timeskew_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_timeskew_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_timeskew_timing_check(SV3_1aParser::Dollar_timeskew_timing_checkContext * ctx)   {
-PythonAPI::evalScript("exitDollar_timeskew_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_timeskew_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_fullskew_timing_check(SV3_1aParser::Dollar_fullskew_timing_checkContext * ctx)   {
-PythonAPI::evalScript("enterDollar_fullskew_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_fullskew_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_fullskew_timing_check(SV3_1aParser::Dollar_fullskew_timing_checkContext * ctx)   {
-PythonAPI::evalScript("exitDollar_fullskew_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_fullskew_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_period_timing_check(SV3_1aParser::Dollar_period_timing_checkContext * ctx)   {
-PythonAPI::evalScript("enterDollar_period_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_period_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_period_timing_check(SV3_1aParser::Dollar_period_timing_checkContext * ctx)   {
-PythonAPI::evalScript("exitDollar_period_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_period_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_width_timing_check(SV3_1aParser::Dollar_width_timing_checkContext * ctx)   {
-PythonAPI::evalScript("enterDollar_width_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_width_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_width_timing_check(SV3_1aParser::Dollar_width_timing_checkContext * ctx)   {
-PythonAPI::evalScript("exitDollar_width_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_width_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_nochange_timing_check(SV3_1aParser::Dollar_nochange_timing_checkContext * ctx)   {
-PythonAPI::evalScript("enterDollar_nochange_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_nochange_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_nochange_timing_check(SV3_1aParser::Dollar_nochange_timing_checkContext * ctx)   {
-PythonAPI::evalScript("exitDollar_nochange_timing_check", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_nochange_timing_check", this, (parser_rule_context*) ctx);
 }
 
    void enterDelayed_data(SV3_1aParser::Delayed_dataContext * ctx)   {
-PythonAPI::evalScript("enterDelayed_data", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDelayed_data", this, (parser_rule_context*) ctx);
 }
 
    void exitDelayed_data(SV3_1aParser::Delayed_dataContext * ctx)   {
-PythonAPI::evalScript("exitDelayed_data", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDelayed_data", this, (parser_rule_context*) ctx);
 }
 
    void enterDelayed_reference(SV3_1aParser::Delayed_referenceContext * ctx)   {
-PythonAPI::evalScript("enterDelayed_reference", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDelayed_reference", this, (parser_rule_context*) ctx);
 }
 
    void exitDelayed_reference(SV3_1aParser::Delayed_referenceContext * ctx)   {
-PythonAPI::evalScript("exitDelayed_reference", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDelayed_reference", this, (parser_rule_context*) ctx);
 }
 
    void enterEnd_edge_offset(SV3_1aParser::End_edge_offsetContext * ctx)   {
-PythonAPI::evalScript("enterEnd_edge_offset", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEnd_edge_offset", this, (parser_rule_context*) ctx);
 }
 
    void exitEnd_edge_offset(SV3_1aParser::End_edge_offsetContext * ctx)   {
-PythonAPI::evalScript("exitEnd_edge_offset", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEnd_edge_offset", this, (parser_rule_context*) ctx);
 }
 
    void enterEvent_based_flag(SV3_1aParser::Event_based_flagContext * ctx)   {
-PythonAPI::evalScript("enterEvent_based_flag", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEvent_based_flag", this, (parser_rule_context*) ctx);
 }
 
    void exitEvent_based_flag(SV3_1aParser::Event_based_flagContext * ctx)   {
-PythonAPI::evalScript("exitEvent_based_flag", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEvent_based_flag", this, (parser_rule_context*) ctx);
 }
 
    void enterNotifier(SV3_1aParser::NotifierContext * ctx)   {
-PythonAPI::evalScript("enterNotifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNotifier", this, (parser_rule_context*) ctx);
 }
 
    void exitNotifier(SV3_1aParser::NotifierContext * ctx)   {
-PythonAPI::evalScript("exitNotifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNotifier", this, (parser_rule_context*) ctx);
 }
 
    void enterReference_event(SV3_1aParser::Reference_eventContext * ctx)   {
-PythonAPI::evalScript("enterReference_event", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterReference_event", this, (parser_rule_context*) ctx);
 }
 
    void exitReference_event(SV3_1aParser::Reference_eventContext * ctx)   {
-PythonAPI::evalScript("exitReference_event", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitReference_event", this, (parser_rule_context*) ctx);
 }
 
    void enterRemain_active_flag(SV3_1aParser::Remain_active_flagContext * ctx)   {
-PythonAPI::evalScript("enterRemain_active_flag", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRemain_active_flag", this, (parser_rule_context*) ctx);
 }
 
    void exitRemain_active_flag(SV3_1aParser::Remain_active_flagContext * ctx)   {
-PythonAPI::evalScript("exitRemain_active_flag", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRemain_active_flag", this, (parser_rule_context*) ctx);
 }
 
    void enterStamptime_condition(SV3_1aParser::Stamptime_conditionContext * ctx)   {
-PythonAPI::evalScript("enterStamptime_condition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStamptime_condition", this, (parser_rule_context*) ctx);
 }
 
    void exitStamptime_condition(SV3_1aParser::Stamptime_conditionContext * ctx)   {
-PythonAPI::evalScript("exitStamptime_condition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStamptime_condition", this, (parser_rule_context*) ctx);
 }
 
    void enterStart_edge_offset(SV3_1aParser::Start_edge_offsetContext * ctx)   {
-PythonAPI::evalScript("enterStart_edge_offset", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStart_edge_offset", this, (parser_rule_context*) ctx);
 }
 
    void exitStart_edge_offset(SV3_1aParser::Start_edge_offsetContext * ctx)   {
-PythonAPI::evalScript("exitStart_edge_offset", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStart_edge_offset", this, (parser_rule_context*) ctx);
 }
 
    void enterThreshold(SV3_1aParser::ThresholdContext * ctx)   {
-PythonAPI::evalScript("enterThreshold", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterThreshold", this, (parser_rule_context*) ctx);
 }
 
    void exitThreshold(SV3_1aParser::ThresholdContext * ctx)   {
-PythonAPI::evalScript("exitThreshold", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitThreshold", this, (parser_rule_context*) ctx);
 }
 
    void enterTiming_check_limit(SV3_1aParser::Timing_check_limitContext * ctx)   {
-PythonAPI::evalScript("enterTiming_check_limit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTiming_check_limit", this, (parser_rule_context*) ctx);
 }
 
    void exitTiming_check_limit(SV3_1aParser::Timing_check_limitContext * ctx)   {
-PythonAPI::evalScript("exitTiming_check_limit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTiming_check_limit", this, (parser_rule_context*) ctx);
 }
 
    void enterTiming_check_event(SV3_1aParser::Timing_check_eventContext * ctx)   {
-PythonAPI::evalScript("enterTiming_check_event", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTiming_check_event", this, (parser_rule_context*) ctx);
 }
 
    void exitTiming_check_event(SV3_1aParser::Timing_check_eventContext * ctx)   {
-PythonAPI::evalScript("exitTiming_check_event", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTiming_check_event", this, (parser_rule_context*) ctx);
 }
 
    void enterControlled_timing_check_event(SV3_1aParser::Controlled_timing_check_eventContext * ctx)   {
-PythonAPI::evalScript("enterControlled_timing_check_event", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterControlled_timing_check_event", this, (parser_rule_context*) ctx);
 }
 
    void exitControlled_timing_check_event(SV3_1aParser::Controlled_timing_check_eventContext * ctx)   {
-PythonAPI::evalScript("exitControlled_timing_check_event", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitControlled_timing_check_event", this, (parser_rule_context*) ctx);
 }
 
    void enterTimingCheckEventControl_Posedge(SV3_1aParser::TimingCheckEventControl_PosedgeContext * ctx)   {
-PythonAPI::evalScript("enterTimingCheckEventControl_Posedge", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTimingCheckEventControl_Posedge", this, (parser_rule_context*) ctx);
 }
 
    void exitTimingCheckEventControl_Posedge(SV3_1aParser::TimingCheckEventControl_PosedgeContext * ctx)   {
-PythonAPI::evalScript("exitTimingCheckEventControl_Posedge", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTimingCheckEventControl_Posedge", this, (parser_rule_context*) ctx);
 }
 
    void enterTimingCheckEventControl_Negedge(SV3_1aParser::TimingCheckEventControl_NegedgeContext * ctx)   {
-PythonAPI::evalScript("enterTimingCheckEventControl_Negedge", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTimingCheckEventControl_Negedge", this, (parser_rule_context*) ctx);
 }
 
    void exitTimingCheckEventControl_Negedge(SV3_1aParser::TimingCheckEventControl_NegedgeContext * ctx)   {
-PythonAPI::evalScript("exitTimingCheckEventControl_Negedge", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTimingCheckEventControl_Negedge", this, (parser_rule_context*) ctx);
 }
 
    void enterTimingCheckEventControl_Edge(SV3_1aParser::TimingCheckEventControl_EdgeContext * ctx)   {
-PythonAPI::evalScript("enterTimingCheckEventControl_Edge", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTimingCheckEventControl_Edge", this, (parser_rule_context*) ctx);
 }
 
    void exitTimingCheckEventControl_Edge(SV3_1aParser::TimingCheckEventControl_EdgeContext * ctx)   {
-PythonAPI::evalScript("exitTimingCheckEventControl_Edge", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTimingCheckEventControl_Edge", this, (parser_rule_context*) ctx);
 }
 
    void enterSpecify_terminal_descriptor(SV3_1aParser::Specify_terminal_descriptorContext * ctx)   {
-PythonAPI::evalScript("enterSpecify_terminal_descriptor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSpecify_terminal_descriptor", this, (parser_rule_context*) ctx);
 }
 
    void exitSpecify_terminal_descriptor(SV3_1aParser::Specify_terminal_descriptorContext * ctx)   {
-PythonAPI::evalScript("exitSpecify_terminal_descriptor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSpecify_terminal_descriptor", this, (parser_rule_context*) ctx);
 }
 
    void enterEdge_control_specifier(SV3_1aParser::Edge_control_specifierContext * ctx)   {
-PythonAPI::evalScript("enterEdge_control_specifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEdge_control_specifier", this, (parser_rule_context*) ctx);
 }
 
    void exitEdge_control_specifier(SV3_1aParser::Edge_control_specifierContext * ctx)   {
-PythonAPI::evalScript("exitEdge_control_specifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEdge_control_specifier", this, (parser_rule_context*) ctx);
 }
 
    void enterEdge_descriptor(SV3_1aParser::Edge_descriptorContext * ctx)   {
-PythonAPI::evalScript("enterEdge_descriptor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEdge_descriptor", this, (parser_rule_context*) ctx);
 }
 
    void exitEdge_descriptor(SV3_1aParser::Edge_descriptorContext * ctx)   {
-PythonAPI::evalScript("exitEdge_descriptor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEdge_descriptor", this, (parser_rule_context*) ctx);
 }
 
    void enterTiming_check_condition(SV3_1aParser::Timing_check_conditionContext * ctx)   {
-PythonAPI::evalScript("enterTiming_check_condition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTiming_check_condition", this, (parser_rule_context*) ctx);
 }
 
    void exitTiming_check_condition(SV3_1aParser::Timing_check_conditionContext * ctx)   {
-PythonAPI::evalScript("exitTiming_check_condition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTiming_check_condition", this, (parser_rule_context*) ctx);
 }
 
    void enterScalar_timing_check_condition(SV3_1aParser::Scalar_timing_check_conditionContext * ctx)   {
-PythonAPI::evalScript("enterScalar_timing_check_condition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterScalar_timing_check_condition", this, (parser_rule_context*) ctx);
 }
 
    void exitScalar_timing_check_condition(SV3_1aParser::Scalar_timing_check_conditionContext * ctx)   {
-PythonAPI::evalScript("exitScalar_timing_check_condition", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitScalar_timing_check_condition", this, (parser_rule_context*) ctx);
 }
 
    void enterScalar_1Tickb0(SV3_1aParser::Scalar_1Tickb0Context * ctx)   {
-PythonAPI::evalScript("enterScalar_1Tickb0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterScalar_1Tickb0", this, (parser_rule_context*) ctx);
 }
 
    void exitScalar_1Tickb0(SV3_1aParser::Scalar_1Tickb0Context * ctx)   {
-PythonAPI::evalScript("exitScalar_1Tickb0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitScalar_1Tickb0", this, (parser_rule_context*) ctx);
 }
 
    void enterScalar_1Tickb1(SV3_1aParser::Scalar_1Tickb1Context * ctx)   {
-PythonAPI::evalScript("enterScalar_1Tickb1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterScalar_1Tickb1", this, (parser_rule_context*) ctx);
 }
 
    void exitScalar_1Tickb1(SV3_1aParser::Scalar_1Tickb1Context * ctx)   {
-PythonAPI::evalScript("exitScalar_1Tickb1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitScalar_1Tickb1", this, (parser_rule_context*) ctx);
 }
 
    void enterScalar_1TickB0(SV3_1aParser::Scalar_1TickB0Context * ctx)   {
-PythonAPI::evalScript("enterScalar_1TickB0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterScalar_1TickB0", this, (parser_rule_context*) ctx);
 }
 
    void exitScalar_1TickB0(SV3_1aParser::Scalar_1TickB0Context * ctx)   {
-PythonAPI::evalScript("exitScalar_1TickB0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitScalar_1TickB0", this, (parser_rule_context*) ctx);
 }
 
    void enterScalar_1TickB1(SV3_1aParser::Scalar_1TickB1Context * ctx)   {
-PythonAPI::evalScript("enterScalar_1TickB1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterScalar_1TickB1", this, (parser_rule_context*) ctx);
 }
 
    void exitScalar_1TickB1(SV3_1aParser::Scalar_1TickB1Context * ctx)   {
-PythonAPI::evalScript("exitScalar_1TickB1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitScalar_1TickB1", this, (parser_rule_context*) ctx);
 }
 
    void enterScalar_Tickb0(SV3_1aParser::Scalar_Tickb0Context * ctx)   {
-PythonAPI::evalScript("enterScalar_Tickb0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterScalar_Tickb0", this, (parser_rule_context*) ctx);
 }
 
    void exitScalar_Tickb0(SV3_1aParser::Scalar_Tickb0Context * ctx)   {
-PythonAPI::evalScript("exitScalar_Tickb0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitScalar_Tickb0", this, (parser_rule_context*) ctx);
 }
 
    void enterScalar_Tickb1(SV3_1aParser::Scalar_Tickb1Context * ctx)   {
-PythonAPI::evalScript("enterScalar_Tickb1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterScalar_Tickb1", this, (parser_rule_context*) ctx);
 }
 
    void exitScalar_Tickb1(SV3_1aParser::Scalar_Tickb1Context * ctx)   {
-PythonAPI::evalScript("exitScalar_Tickb1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitScalar_Tickb1", this, (parser_rule_context*) ctx);
 }
 
    void enterScalar_TickB0(SV3_1aParser::Scalar_TickB0Context * ctx)   {
-PythonAPI::evalScript("enterScalar_TickB0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterScalar_TickB0", this, (parser_rule_context*) ctx);
 }
 
    void exitScalar_TickB0(SV3_1aParser::Scalar_TickB0Context * ctx)   {
-PythonAPI::evalScript("exitScalar_TickB0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitScalar_TickB0", this, (parser_rule_context*) ctx);
 }
 
    void enterScalar_TickB1(SV3_1aParser::Scalar_TickB1Context * ctx)   {
-PythonAPI::evalScript("enterScalar_TickB1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterScalar_TickB1", this, (parser_rule_context*) ctx);
 }
 
    void exitScalar_TickB1(SV3_1aParser::Scalar_TickB1Context * ctx)   {
-PythonAPI::evalScript("exitScalar_TickB1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitScalar_TickB1", this, (parser_rule_context*) ctx);
 }
 
    void enterScalar_Integral(SV3_1aParser::Scalar_IntegralContext * ctx)   {
-PythonAPI::evalScript("enterScalar_Integral", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterScalar_Integral", this, (parser_rule_context*) ctx);
 }
 
    void exitScalar_Integral(SV3_1aParser::Scalar_IntegralContext * ctx)   {
-PythonAPI::evalScript("exitScalar_Integral", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitScalar_Integral", this, (parser_rule_context*) ctx);
 }
 
    void enterConcatenation(SV3_1aParser::ConcatenationContext * ctx)   {
-PythonAPI::evalScript("enterConcatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConcatenation", this, (parser_rule_context*) ctx);
 }
 
    void exitConcatenation(SV3_1aParser::ConcatenationContext * ctx)   {
-PythonAPI::evalScript("exitConcatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConcatenation", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_concatenation(SV3_1aParser::Constant_concatenationContext * ctx)   {
-PythonAPI::evalScript("enterConstant_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_concatenation(SV3_1aParser::Constant_concatenationContext * ctx)   {
-PythonAPI::evalScript("exitConstant_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void enterArray_member_label(SV3_1aParser::Array_member_labelContext * ctx)   {
-PythonAPI::evalScript("enterArray_member_label", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterArray_member_label", this, (parser_rule_context*) ctx);
 }
 
    void exitArray_member_label(SV3_1aParser::Array_member_labelContext * ctx)   {
-PythonAPI::evalScript("exitArray_member_label", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitArray_member_label", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_multiple_concatenation(SV3_1aParser::Constant_multiple_concatenationContext * ctx)   {
-PythonAPI::evalScript("enterConstant_multiple_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_multiple_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_multiple_concatenation(SV3_1aParser::Constant_multiple_concatenationContext * ctx)   {
-PythonAPI::evalScript("exitConstant_multiple_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_multiple_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_path_concatenation(SV3_1aParser::Module_path_concatenationContext * ctx)   {
-PythonAPI::evalScript("enterModule_path_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_path_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_path_concatenation(SV3_1aParser::Module_path_concatenationContext * ctx)   {
-PythonAPI::evalScript("exitModule_path_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_path_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_path_multiple_concatenation(SV3_1aParser::Module_path_multiple_concatenationContext * ctx)   {
-PythonAPI::evalScript("enterModule_path_multiple_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_path_multiple_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_path_multiple_concatenation(SV3_1aParser::Module_path_multiple_concatenationContext * ctx)   {
-PythonAPI::evalScript("exitModule_path_multiple_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_path_multiple_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void enterMultiple_concatenation(SV3_1aParser::Multiple_concatenationContext * ctx)   {
-PythonAPI::evalScript("enterMultiple_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterMultiple_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void exitMultiple_concatenation(SV3_1aParser::Multiple_concatenationContext * ctx)   {
-PythonAPI::evalScript("exitMultiple_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitMultiple_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void enterStreaming_concatenation(SV3_1aParser::Streaming_concatenationContext * ctx)   {
-PythonAPI::evalScript("enterStreaming_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStreaming_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void exitStreaming_concatenation(SV3_1aParser::Streaming_concatenationContext * ctx)   {
-PythonAPI::evalScript("exitStreaming_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStreaming_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void enterStream_operator(SV3_1aParser::Stream_operatorContext * ctx)   {
-PythonAPI::evalScript("enterStream_operator", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStream_operator", this, (parser_rule_context*) ctx);
 }
 
    void exitStream_operator(SV3_1aParser::Stream_operatorContext * ctx)   {
-PythonAPI::evalScript("exitStream_operator", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStream_operator", this, (parser_rule_context*) ctx);
 }
 
    void enterSlice_size(SV3_1aParser::Slice_sizeContext * ctx)   {
-PythonAPI::evalScript("enterSlice_size", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSlice_size", this, (parser_rule_context*) ctx);
 }
 
    void exitSlice_size(SV3_1aParser::Slice_sizeContext * ctx)   {
-PythonAPI::evalScript("exitSlice_size", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSlice_size", this, (parser_rule_context*) ctx);
 }
 
    void enterStream_concatenation(SV3_1aParser::Stream_concatenationContext * ctx)   {
-PythonAPI::evalScript("enterStream_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStream_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void exitStream_concatenation(SV3_1aParser::Stream_concatenationContext * ctx)   {
-PythonAPI::evalScript("exitStream_concatenation", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStream_concatenation", this, (parser_rule_context*) ctx);
 }
 
    void enterStream_expression(SV3_1aParser::Stream_expressionContext * ctx)   {
-PythonAPI::evalScript("enterStream_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterStream_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitStream_expression(SV3_1aParser::Stream_expressionContext * ctx)   {
-PythonAPI::evalScript("exitStream_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitStream_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterArray_range_expression(SV3_1aParser::Array_range_expressionContext * ctx)   {
-PythonAPI::evalScript("enterArray_range_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterArray_range_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitArray_range_expression(SV3_1aParser::Array_range_expressionContext * ctx)   {
-PythonAPI::evalScript("exitArray_range_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitArray_range_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterEmpty_queue(SV3_1aParser::Empty_queueContext * ctx)   {
-PythonAPI::evalScript("enterEmpty_queue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEmpty_queue", this, (parser_rule_context*) ctx);
 }
 
    void exitEmpty_queue(SV3_1aParser::Empty_queueContext * ctx)   {
-PythonAPI::evalScript("exitEmpty_queue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEmpty_queue", this, (parser_rule_context*) ctx);
 }
 
    void enterSubroutine_call(SV3_1aParser::Subroutine_callContext * ctx)   {
-PythonAPI::evalScript("enterSubroutine_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSubroutine_call", this, (parser_rule_context*) ctx);
 }
 
    void exitSubroutine_call(SV3_1aParser::Subroutine_callContext * ctx)   {
-PythonAPI::evalScript("exitSubroutine_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSubroutine_call", this, (parser_rule_context*) ctx);
 }
 
    void enterList_of_arguments(SV3_1aParser::List_of_argumentsContext * ctx)   {
-PythonAPI::evalScript("enterList_of_arguments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterList_of_arguments", this, (parser_rule_context*) ctx);
 }
 
    void exitList_of_arguments(SV3_1aParser::List_of_argumentsContext * ctx)   {
-PythonAPI::evalScript("exitList_of_arguments", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitList_of_arguments", this, (parser_rule_context*) ctx);
 }
 
    void enterMethod_call(SV3_1aParser::Method_callContext * ctx)   {
-PythonAPI::evalScript("enterMethod_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterMethod_call", this, (parser_rule_context*) ctx);
 }
 
    void exitMethod_call(SV3_1aParser::Method_callContext * ctx)   {
-PythonAPI::evalScript("exitMethod_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitMethod_call", this, (parser_rule_context*) ctx);
 }
 
    void enterMethod_call_body(SV3_1aParser::Method_call_bodyContext * ctx)   {
-PythonAPI::evalScript("enterMethod_call_body", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterMethod_call_body", this, (parser_rule_context*) ctx);
 }
 
    void exitMethod_call_body(SV3_1aParser::Method_call_bodyContext * ctx)   {
-PythonAPI::evalScript("exitMethod_call_body", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitMethod_call_body", this, (parser_rule_context*) ctx);
 }
 
    void enterBuilt_in_method_call(SV3_1aParser::Built_in_method_callContext * ctx)   {
-PythonAPI::evalScript("enterBuilt_in_method_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBuilt_in_method_call", this, (parser_rule_context*) ctx);
 }
 
    void exitBuilt_in_method_call(SV3_1aParser::Built_in_method_callContext * ctx)   {
-PythonAPI::evalScript("exitBuilt_in_method_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBuilt_in_method_call", this, (parser_rule_context*) ctx);
 }
 
    void enterArray_manipulation_call(SV3_1aParser::Array_manipulation_callContext * ctx)   {
-PythonAPI::evalScript("enterArray_manipulation_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterArray_manipulation_call", this, (parser_rule_context*) ctx);
 }
 
    void exitArray_manipulation_call(SV3_1aParser::Array_manipulation_callContext * ctx)   {
-PythonAPI::evalScript("exitArray_manipulation_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitArray_manipulation_call", this, (parser_rule_context*) ctx);
 }
 
    void enterRandomize_call(SV3_1aParser::Randomize_callContext * ctx)   {
-PythonAPI::evalScript("enterRandomize_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRandomize_call", this, (parser_rule_context*) ctx);
 }
 
    void exitRandomize_call(SV3_1aParser::Randomize_callContext * ctx)   {
-PythonAPI::evalScript("exitRandomize_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRandomize_call", this, (parser_rule_context*) ctx);
 }
 
    void enterMethod_call_root(SV3_1aParser::Method_call_rootContext * ctx)   {
-PythonAPI::evalScript("enterMethod_call_root", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterMethod_call_root", this, (parser_rule_context*) ctx);
 }
 
    void exitMethod_call_root(SV3_1aParser::Method_call_rootContext * ctx)   {
-PythonAPI::evalScript("exitMethod_call_root", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitMethod_call_root", this, (parser_rule_context*) ctx);
 }
 
    void enterArray_method_name(SV3_1aParser::Array_method_nameContext * ctx)   {
-PythonAPI::evalScript("enterArray_method_name", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterArray_method_name", this, (parser_rule_context*) ctx);
 }
 
    void exitArray_method_name(SV3_1aParser::Array_method_nameContext * ctx)   {
-PythonAPI::evalScript("exitArray_method_name", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitArray_method_name", this, (parser_rule_context*) ctx);
 }
 
    void enterUnique_call(SV3_1aParser::Unique_callContext * ctx)   {
-PythonAPI::evalScript("enterUnique_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnique_call", this, (parser_rule_context*) ctx);
 }
 
    void exitUnique_call(SV3_1aParser::Unique_callContext * ctx)   {
-PythonAPI::evalScript("exitUnique_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnique_call", this, (parser_rule_context*) ctx);
 }
 
    void enterAnd_call(SV3_1aParser::And_callContext * ctx)   {
-PythonAPI::evalScript("enterAnd_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAnd_call", this, (parser_rule_context*) ctx);
 }
 
    void exitAnd_call(SV3_1aParser::And_callContext * ctx)   {
-PythonAPI::evalScript("exitAnd_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAnd_call", this, (parser_rule_context*) ctx);
 }
 
    void enterOr_call(SV3_1aParser::Or_callContext * ctx)   {
-PythonAPI::evalScript("enterOr_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterOr_call", this, (parser_rule_context*) ctx);
 }
 
    void exitOr_call(SV3_1aParser::Or_callContext * ctx)   {
-PythonAPI::evalScript("exitOr_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitOr_call", this, (parser_rule_context*) ctx);
 }
 
    void enterXor_call(SV3_1aParser::Xor_callContext * ctx)   {
-PythonAPI::evalScript("enterXor_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterXor_call", this, (parser_rule_context*) ctx);
 }
 
    void exitXor_call(SV3_1aParser::Xor_callContext * ctx)   {
-PythonAPI::evalScript("exitXor_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitXor_call", this, (parser_rule_context*) ctx);
 }
 
    void enterInc_or_dec_expression(SV3_1aParser::Inc_or_dec_expressionContext * ctx)   {
-PythonAPI::evalScript("enterInc_or_dec_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInc_or_dec_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitInc_or_dec_expression(SV3_1aParser::Inc_or_dec_expressionContext * ctx)   {
-PythonAPI::evalScript("exitInc_or_dec_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInc_or_dec_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_expression(SV3_1aParser::Constant_expressionContext * ctx)   {
-PythonAPI::evalScript("enterConstant_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_expression(SV3_1aParser::Constant_expressionContext * ctx)   {
-PythonAPI::evalScript("exitConstant_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_mintypmax_expression(SV3_1aParser::Constant_mintypmax_expressionContext * ctx)   {
-PythonAPI::evalScript("enterConstant_mintypmax_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_mintypmax_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_mintypmax_expression(SV3_1aParser::Constant_mintypmax_expressionContext * ctx)   {
-PythonAPI::evalScript("exitConstant_mintypmax_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_mintypmax_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_param_expression(SV3_1aParser::Constant_param_expressionContext * ctx)   {
-PythonAPI::evalScript("enterConstant_param_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_param_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_param_expression(SV3_1aParser::Constant_param_expressionContext * ctx)   {
-PythonAPI::evalScript("exitConstant_param_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_param_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterParam_expression(SV3_1aParser::Param_expressionContext * ctx)   {
-PythonAPI::evalScript("enterParam_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterParam_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitParam_expression(SV3_1aParser::Param_expressionContext * ctx)   {
-PythonAPI::evalScript("exitParam_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitParam_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_range_expression(SV3_1aParser::Constant_range_expressionContext * ctx)   {
-PythonAPI::evalScript("enterConstant_range_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_range_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_range_expression(SV3_1aParser::Constant_range_expressionContext * ctx)   {
-PythonAPI::evalScript("exitConstant_range_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_range_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_part_select_range(SV3_1aParser::Constant_part_select_rangeContext * ctx)   {
-PythonAPI::evalScript("enterConstant_part_select_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_part_select_range", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_part_select_range(SV3_1aParser::Constant_part_select_rangeContext * ctx)   {
-PythonAPI::evalScript("exitConstant_part_select_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_part_select_range", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_range(SV3_1aParser::Constant_rangeContext * ctx)   {
-PythonAPI::evalScript("enterConstant_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_range", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_range(SV3_1aParser::Constant_rangeContext * ctx)   {
-PythonAPI::evalScript("exitConstant_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_range", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_indexed_range(SV3_1aParser::Constant_indexed_rangeContext * ctx)   {
-PythonAPI::evalScript("enterConstant_indexed_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_indexed_range", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_indexed_range(SV3_1aParser::Constant_indexed_rangeContext * ctx)   {
-PythonAPI::evalScript("exitConstant_indexed_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_indexed_range", this, (parser_rule_context*) ctx);
 }
 
    void enterExpression(SV3_1aParser::ExpressionContext * ctx)   {
-PythonAPI::evalScript("enterExpression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterExpression", this, (parser_rule_context*) ctx);
 }
 
    void exitExpression(SV3_1aParser::ExpressionContext * ctx)   {
-PythonAPI::evalScript("exitExpression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitExpression", this, (parser_rule_context*) ctx);
 }
 
    void enterTagged_union_expression(SV3_1aParser::Tagged_union_expressionContext * ctx)   {
-PythonAPI::evalScript("enterTagged_union_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTagged_union_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitTagged_union_expression(SV3_1aParser::Tagged_union_expressionContext * ctx)   {
-PythonAPI::evalScript("exitTagged_union_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTagged_union_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterValue_range(SV3_1aParser::Value_rangeContext * ctx)   {
-PythonAPI::evalScript("enterValue_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterValue_range", this, (parser_rule_context*) ctx);
 }
 
    void exitValue_range(SV3_1aParser::Value_rangeContext * ctx)   {
-PythonAPI::evalScript("exitValue_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitValue_range", this, (parser_rule_context*) ctx);
 }
 
    void enterMintypmax_expression(SV3_1aParser::Mintypmax_expressionContext * ctx)   {
-PythonAPI::evalScript("enterMintypmax_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterMintypmax_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitMintypmax_expression(SV3_1aParser::Mintypmax_expressionContext * ctx)   {
-PythonAPI::evalScript("exitMintypmax_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitMintypmax_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_path_expression(SV3_1aParser::Module_path_expressionContext * ctx)   {
-PythonAPI::evalScript("enterModule_path_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_path_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_path_expression(SV3_1aParser::Module_path_expressionContext * ctx)   {
-PythonAPI::evalScript("exitModule_path_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_path_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_path_mintypmax_expression(SV3_1aParser::Module_path_mintypmax_expressionContext * ctx)   {
-PythonAPI::evalScript("enterModule_path_mintypmax_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_path_mintypmax_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_path_mintypmax_expression(SV3_1aParser::Module_path_mintypmax_expressionContext * ctx)   {
-PythonAPI::evalScript("exitModule_path_mintypmax_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_path_mintypmax_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterRange_expression(SV3_1aParser::Range_expressionContext * ctx)   {
-PythonAPI::evalScript("enterRange_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRange_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitRange_expression(SV3_1aParser::Range_expressionContext * ctx)   {
-PythonAPI::evalScript("exitRange_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRange_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterPart_select_range(SV3_1aParser::Part_select_rangeContext * ctx)   {
-PythonAPI::evalScript("enterPart_select_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPart_select_range", this, (parser_rule_context*) ctx);
 }
 
    void exitPart_select_range(SV3_1aParser::Part_select_rangeContext * ctx)   {
-PythonAPI::evalScript("exitPart_select_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPart_select_range", this, (parser_rule_context*) ctx);
 }
 
    void enterIndexed_range(SV3_1aParser::Indexed_rangeContext * ctx)   {
-PythonAPI::evalScript("enterIndexed_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIndexed_range", this, (parser_rule_context*) ctx);
 }
 
    void exitIndexed_range(SV3_1aParser::Indexed_rangeContext * ctx)   {
-PythonAPI::evalScript("exitIndexed_range", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIndexed_range", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_primary(SV3_1aParser::Constant_primaryContext * ctx)   {
-PythonAPI::evalScript("enterConstant_primary", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_primary", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_primary(SV3_1aParser::Constant_primaryContext * ctx)   {
-PythonAPI::evalScript("exitConstant_primary", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_primary", this, (parser_rule_context*) ctx);
 }
 
    void enterModule_path_primary(SV3_1aParser::Module_path_primaryContext * ctx)   {
-PythonAPI::evalScript("enterModule_path_primary", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterModule_path_primary", this, (parser_rule_context*) ctx);
 }
 
    void exitModule_path_primary(SV3_1aParser::Module_path_primaryContext * ctx)   {
-PythonAPI::evalScript("exitModule_path_primary", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitModule_path_primary", this, (parser_rule_context*) ctx);
 }
 
    void enterComplex_func_call(SV3_1aParser::Complex_func_callContext * ctx)   {
-PythonAPI::evalScript("enterComplex_func_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterComplex_func_call", this, (parser_rule_context*) ctx);
 }
 
    void exitComplex_func_call(SV3_1aParser::Complex_func_callContext * ctx)   {
-PythonAPI::evalScript("exitComplex_func_call", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitComplex_func_call", this, (parser_rule_context*) ctx);
 }
 
    void enterPrimary(SV3_1aParser::PrimaryContext * ctx)   {
-PythonAPI::evalScript("enterPrimary", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPrimary", this, (parser_rule_context*) ctx);
 }
 
    void exitPrimary(SV3_1aParser::PrimaryContext * ctx)   {
-PythonAPI::evalScript("exitPrimary", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPrimary", this, (parser_rule_context*) ctx);
 }
 
    void enterThis_keyword(SV3_1aParser::This_keywordContext * ctx)   {
-PythonAPI::evalScript("enterThis_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterThis_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitThis_keyword(SV3_1aParser::This_keywordContext * ctx)   {
-PythonAPI::evalScript("exitThis_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitThis_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterSuper_keyword(SV3_1aParser::Super_keywordContext * ctx)   {
-PythonAPI::evalScript("enterSuper_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSuper_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitSuper_keyword(SV3_1aParser::Super_keywordContext * ctx)   {
-PythonAPI::evalScript("exitSuper_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSuper_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_keyword(SV3_1aParser::Dollar_keywordContext * ctx)   {
-PythonAPI::evalScript("enterDollar_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_keyword(SV3_1aParser::Dollar_keywordContext * ctx)   {
-PythonAPI::evalScript("exitDollar_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterDollar_root_keyword(SV3_1aParser::Dollar_root_keywordContext * ctx)   {
-PythonAPI::evalScript("enterDollar_root_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDollar_root_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitDollar_root_keyword(SV3_1aParser::Dollar_root_keywordContext * ctx)   {
-PythonAPI::evalScript("exitDollar_root_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDollar_root_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterThis_dot_super(SV3_1aParser::This_dot_superContext * ctx)   {
-PythonAPI::evalScript("enterThis_dot_super", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterThis_dot_super", this, (parser_rule_context*) ctx);
 }
 
    void exitThis_dot_super(SV3_1aParser::This_dot_superContext * ctx)   {
-PythonAPI::evalScript("exitThis_dot_super", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitThis_dot_super", this, (parser_rule_context*) ctx);
 }
 
    void enterNull_keyword(SV3_1aParser::Null_keywordContext * ctx)   {
-PythonAPI::evalScript("enterNull_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNull_keyword", this, (parser_rule_context*) ctx);
 }
 
    void exitNull_keyword(SV3_1aParser::Null_keywordContext * ctx)   {
-PythonAPI::evalScript("exitNull_keyword", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNull_keyword", this, (parser_rule_context*) ctx);
 }
 
    void enterTime_literal(SV3_1aParser::Time_literalContext * ctx)   {
-PythonAPI::evalScript("enterTime_literal", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTime_literal", this, (parser_rule_context*) ctx);
 }
 
    void exitTime_literal(SV3_1aParser::Time_literalContext * ctx)   {
-PythonAPI::evalScript("exitTime_literal", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTime_literal", this, (parser_rule_context*) ctx);
 }
 
    void enterTime_unit(SV3_1aParser::Time_unitContext * ctx)   {
-PythonAPI::evalScript("enterTime_unit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTime_unit", this, (parser_rule_context*) ctx);
 }
 
    void exitTime_unit(SV3_1aParser::Time_unitContext * ctx)   {
-PythonAPI::evalScript("exitTime_unit", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTime_unit", this, (parser_rule_context*) ctx);
 }
 
    void enterImplicit_class_handle(SV3_1aParser::Implicit_class_handleContext * ctx)   {
-PythonAPI::evalScript("enterImplicit_class_handle", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterImplicit_class_handle", this, (parser_rule_context*) ctx);
 }
 
    void exitImplicit_class_handle(SV3_1aParser::Implicit_class_handleContext * ctx)   {
-PythonAPI::evalScript("exitImplicit_class_handle", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitImplicit_class_handle", this, (parser_rule_context*) ctx);
 }
 
    void enterBit_select(SV3_1aParser::Bit_selectContext * ctx)   {
-PythonAPI::evalScript("enterBit_select", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBit_select", this, (parser_rule_context*) ctx);
 }
 
    void exitBit_select(SV3_1aParser::Bit_selectContext * ctx)   {
-PythonAPI::evalScript("exitBit_select", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBit_select", this, (parser_rule_context*) ctx);
 }
 
    void enterSelect(SV3_1aParser::SelectContext * ctx)   {
-PythonAPI::evalScript("enterSelect", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSelect", this, (parser_rule_context*) ctx);
 }
 
    void exitSelect(SV3_1aParser::SelectContext * ctx)   {
-PythonAPI::evalScript("exitSelect", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSelect", this, (parser_rule_context*) ctx);
 }
 
    void enterNonrange_select(SV3_1aParser::Nonrange_selectContext * ctx)   {
-PythonAPI::evalScript("enterNonrange_select", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNonrange_select", this, (parser_rule_context*) ctx);
 }
 
    void exitNonrange_select(SV3_1aParser::Nonrange_selectContext * ctx)   {
-PythonAPI::evalScript("exitNonrange_select", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNonrange_select", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_bit_select(SV3_1aParser::Constant_bit_selectContext * ctx)   {
-PythonAPI::evalScript("enterConstant_bit_select", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_bit_select", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_bit_select(SV3_1aParser::Constant_bit_selectContext * ctx)   {
-PythonAPI::evalScript("exitConstant_bit_select", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_bit_select", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_select(SV3_1aParser::Constant_selectContext * ctx)   {
-PythonAPI::evalScript("enterConstant_select", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_select", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_select(SV3_1aParser::Constant_selectContext * ctx)   {
-PythonAPI::evalScript("exitConstant_select", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_select", this, (parser_rule_context*) ctx);
 }
 
    void enterPrimary_literal(SV3_1aParser::Primary_literalContext * ctx)   {
-PythonAPI::evalScript("enterPrimary_literal", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPrimary_literal", this, (parser_rule_context*) ctx);
 }
 
    void exitPrimary_literal(SV3_1aParser::Primary_literalContext * ctx)   {
-PythonAPI::evalScript("exitPrimary_literal", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPrimary_literal", this, (parser_rule_context*) ctx);
 }
 
    void enterConstant_cast(SV3_1aParser::Constant_castContext * ctx)   {
-PythonAPI::evalScript("enterConstant_cast", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConstant_cast", this, (parser_rule_context*) ctx);
 }
 
    void exitConstant_cast(SV3_1aParser::Constant_castContext * ctx)   {
-PythonAPI::evalScript("exitConstant_cast", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConstant_cast", this, (parser_rule_context*) ctx);
 }
 
    void enterCast(SV3_1aParser::CastContext * ctx)   {
-PythonAPI::evalScript("enterCast", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCast", this, (parser_rule_context*) ctx);
 }
 
    void exitCast(SV3_1aParser::CastContext * ctx)   {
-PythonAPI::evalScript("exitCast", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCast", this, (parser_rule_context*) ctx);
 }
 
    void enterNet_lvalue(SV3_1aParser::Net_lvalueContext * ctx)   {
-PythonAPI::evalScript("enterNet_lvalue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNet_lvalue", this, (parser_rule_context*) ctx);
 }
 
    void exitNet_lvalue(SV3_1aParser::Net_lvalueContext * ctx)   {
-PythonAPI::evalScript("exitNet_lvalue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNet_lvalue", this, (parser_rule_context*) ctx);
 }
 
    void enterVariable_lvalue(SV3_1aParser::Variable_lvalueContext * ctx)   {
-PythonAPI::evalScript("enterVariable_lvalue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterVariable_lvalue", this, (parser_rule_context*) ctx);
 }
 
    void exitVariable_lvalue(SV3_1aParser::Variable_lvalueContext * ctx)   {
-PythonAPI::evalScript("exitVariable_lvalue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitVariable_lvalue", this, (parser_rule_context*) ctx);
 }
 
    void enterNonrange_variable_lvalue(SV3_1aParser::Nonrange_variable_lvalueContext * ctx)   {
-PythonAPI::evalScript("enterNonrange_variable_lvalue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNonrange_variable_lvalue", this, (parser_rule_context*) ctx);
 }
 
    void exitNonrange_variable_lvalue(SV3_1aParser::Nonrange_variable_lvalueContext * ctx)   {
-PythonAPI::evalScript("exitNonrange_variable_lvalue", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNonrange_variable_lvalue", this, (parser_rule_context*) ctx);
 }
 
    void enterUnary_Plus(SV3_1aParser::Unary_PlusContext * ctx)   {
-PythonAPI::evalScript("enterUnary_Plus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnary_Plus", this, (parser_rule_context*) ctx);
 }
 
    void exitUnary_Plus(SV3_1aParser::Unary_PlusContext * ctx)   {
-PythonAPI::evalScript("exitUnary_Plus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnary_Plus", this, (parser_rule_context*) ctx);
 }
 
    void enterUnary_Minus(SV3_1aParser::Unary_MinusContext * ctx)   {
-PythonAPI::evalScript("enterUnary_Minus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnary_Minus", this, (parser_rule_context*) ctx);
 }
 
    void exitUnary_Minus(SV3_1aParser::Unary_MinusContext * ctx)   {
-PythonAPI::evalScript("exitUnary_Minus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnary_Minus", this, (parser_rule_context*) ctx);
 }
 
    void enterUnary_Not(SV3_1aParser::Unary_NotContext * ctx)   {
-PythonAPI::evalScript("enterUnary_Not", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnary_Not", this, (parser_rule_context*) ctx);
 }
 
    void exitUnary_Not(SV3_1aParser::Unary_NotContext * ctx)   {
-PythonAPI::evalScript("exitUnary_Not", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnary_Not", this, (parser_rule_context*) ctx);
 }
 
    void enterUnary_Tilda(SV3_1aParser::Unary_TildaContext * ctx)   {
-PythonAPI::evalScript("enterUnary_Tilda", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnary_Tilda", this, (parser_rule_context*) ctx);
 }
 
    void exitUnary_Tilda(SV3_1aParser::Unary_TildaContext * ctx)   {
-PythonAPI::evalScript("exitUnary_Tilda", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnary_Tilda", this, (parser_rule_context*) ctx);
 }
 
    void enterUnary_BitwAnd(SV3_1aParser::Unary_BitwAndContext * ctx)   {
-PythonAPI::evalScript("enterUnary_BitwAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnary_BitwAnd", this, (parser_rule_context*) ctx);
 }
 
    void exitUnary_BitwAnd(SV3_1aParser::Unary_BitwAndContext * ctx)   {
-PythonAPI::evalScript("exitUnary_BitwAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnary_BitwAnd", this, (parser_rule_context*) ctx);
 }
 
    void enterUnary_ReductNand(SV3_1aParser::Unary_ReductNandContext * ctx)   {
-PythonAPI::evalScript("enterUnary_ReductNand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnary_ReductNand", this, (parser_rule_context*) ctx);
 }
 
    void exitUnary_ReductNand(SV3_1aParser::Unary_ReductNandContext * ctx)   {
-PythonAPI::evalScript("exitUnary_ReductNand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnary_ReductNand", this, (parser_rule_context*) ctx);
 }
 
    void enterUnary_BitwOr(SV3_1aParser::Unary_BitwOrContext * ctx)   {
-PythonAPI::evalScript("enterUnary_BitwOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnary_BitwOr", this, (parser_rule_context*) ctx);
 }
 
    void exitUnary_BitwOr(SV3_1aParser::Unary_BitwOrContext * ctx)   {
-PythonAPI::evalScript("exitUnary_BitwOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnary_BitwOr", this, (parser_rule_context*) ctx);
 }
 
    void enterUnary_ReductNor(SV3_1aParser::Unary_ReductNorContext * ctx)   {
-PythonAPI::evalScript("enterUnary_ReductNor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnary_ReductNor", this, (parser_rule_context*) ctx);
 }
 
    void exitUnary_ReductNor(SV3_1aParser::Unary_ReductNorContext * ctx)   {
-PythonAPI::evalScript("exitUnary_ReductNor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnary_ReductNor", this, (parser_rule_context*) ctx);
 }
 
    void enterUnary_BitwXor(SV3_1aParser::Unary_BitwXorContext * ctx)   {
-PythonAPI::evalScript("enterUnary_BitwXor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnary_BitwXor", this, (parser_rule_context*) ctx);
 }
 
    void exitUnary_BitwXor(SV3_1aParser::Unary_BitwXorContext * ctx)   {
-PythonAPI::evalScript("exitUnary_BitwXor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnary_BitwXor", this, (parser_rule_context*) ctx);
 }
 
    void enterUnary_ReductXnor1(SV3_1aParser::Unary_ReductXnor1Context * ctx)   {
-PythonAPI::evalScript("enterUnary_ReductXnor1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnary_ReductXnor1", this, (parser_rule_context*) ctx);
 }
 
    void exitUnary_ReductXnor1(SV3_1aParser::Unary_ReductXnor1Context * ctx)   {
-PythonAPI::evalScript("exitUnary_ReductXnor1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnary_ReductXnor1", this, (parser_rule_context*) ctx);
 }
 
    void enterUnary_ReductXnor2(SV3_1aParser::Unary_ReductXnor2Context * ctx)   {
-PythonAPI::evalScript("enterUnary_ReductXnor2", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnary_ReductXnor2", this, (parser_rule_context*) ctx);
 }
 
    void exitUnary_ReductXnor2(SV3_1aParser::Unary_ReductXnor2Context * ctx)   {
-PythonAPI::evalScript("exitUnary_ReductXnor2", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnary_ReductXnor2", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_Plus(SV3_1aParser::BinOp_PlusContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_Plus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_Plus", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_Plus(SV3_1aParser::BinOp_PlusContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_Plus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_Plus", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_Minus(SV3_1aParser::BinOp_MinusContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_Minus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_Minus", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_Minus(SV3_1aParser::BinOp_MinusContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_Minus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_Minus", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_Mult(SV3_1aParser::BinOp_MultContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_Mult", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_Mult", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_Mult(SV3_1aParser::BinOp_MultContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_Mult", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_Mult", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_Div(SV3_1aParser::BinOp_DivContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_Div", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_Div", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_Div(SV3_1aParser::BinOp_DivContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_Div", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_Div", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_Percent(SV3_1aParser::BinOp_PercentContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_Percent", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_Percent", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_Percent(SV3_1aParser::BinOp_PercentContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_Percent", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_Percent", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_Equiv(SV3_1aParser::BinOp_EquivContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_Equiv", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_Equiv", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_Equiv(SV3_1aParser::BinOp_EquivContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_Equiv", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_Equiv", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_Not(SV3_1aParser::BinOp_NotContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_Not", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_Not", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_Not(SV3_1aParser::BinOp_NotContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_Not", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_Not", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_FourStateLogicEqual(SV3_1aParser::BinOp_FourStateLogicEqualContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_FourStateLogicEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_FourStateLogicEqual", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_FourStateLogicEqual(SV3_1aParser::BinOp_FourStateLogicEqualContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_FourStateLogicEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_FourStateLogicEqual", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_FourStateLogicNotEqual(SV3_1aParser::BinOp_FourStateLogicNotEqualContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_FourStateLogicNotEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_FourStateLogicNotEqual", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_FourStateLogicNotEqual(SV3_1aParser::BinOp_FourStateLogicNotEqualContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_FourStateLogicNotEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_FourStateLogicNotEqual", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_WildEqual(SV3_1aParser::BinOp_WildEqualContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_WildEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_WildEqual", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_WildEqual(SV3_1aParser::BinOp_WildEqualContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_WildEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_WildEqual", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_WildNotEqual(SV3_1aParser::BinOp_WildNotEqualContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_WildNotEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_WildNotEqual", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_WildNotEqual(SV3_1aParser::BinOp_WildNotEqualContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_WildNotEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_WildNotEqual", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_LogicAnd(SV3_1aParser::BinOp_LogicAndContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_LogicAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_LogicAnd", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_LogicAnd(SV3_1aParser::BinOp_LogicAndContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_LogicAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_LogicAnd", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_LogicOr(SV3_1aParser::BinOp_LogicOrContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_LogicOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_LogicOr", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_LogicOr(SV3_1aParser::BinOp_LogicOrContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_LogicOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_LogicOr", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_MultMult(SV3_1aParser::BinOp_MultMultContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_MultMult", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_MultMult", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_MultMult(SV3_1aParser::BinOp_MultMultContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_MultMult", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_MultMult", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_Less(SV3_1aParser::BinOp_LessContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_Less", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_Less", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_Less(SV3_1aParser::BinOp_LessContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_Less", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_Less", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_LessEqual(SV3_1aParser::BinOp_LessEqualContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_LessEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_LessEqual", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_LessEqual(SV3_1aParser::BinOp_LessEqualContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_LessEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_LessEqual", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_Great(SV3_1aParser::BinOp_GreatContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_Great", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_Great", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_Great(SV3_1aParser::BinOp_GreatContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_Great", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_Great", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_GreatEqual(SV3_1aParser::BinOp_GreatEqualContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_GreatEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_GreatEqual", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_GreatEqual(SV3_1aParser::BinOp_GreatEqualContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_GreatEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_GreatEqual", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_BitwAnd(SV3_1aParser::BinOp_BitwAndContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_BitwAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_BitwAnd", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_BitwAnd(SV3_1aParser::BinOp_BitwAndContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_BitwAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_BitwAnd", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_BitwOr(SV3_1aParser::BinOp_BitwOrContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_BitwOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_BitwOr", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_BitwOr(SV3_1aParser::BinOp_BitwOrContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_BitwOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_BitwOr", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_BitwXor(SV3_1aParser::BinOp_BitwXorContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_BitwXor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_BitwXor", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_BitwXor(SV3_1aParser::BinOp_BitwXorContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_BitwXor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_BitwXor", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_ReductXnor1(SV3_1aParser::BinOp_ReductXnor1Context * ctx)   {
-PythonAPI::evalScript("enterBinOp_ReductXnor1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_ReductXnor1", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_ReductXnor1(SV3_1aParser::BinOp_ReductXnor1Context * ctx)   {
-PythonAPI::evalScript("exitBinOp_ReductXnor1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_ReductXnor1", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_ReductXnor2(SV3_1aParser::BinOp_ReductXnor2Context * ctx)   {
-PythonAPI::evalScript("enterBinOp_ReductXnor2", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_ReductXnor2", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_ReductXnor2(SV3_1aParser::BinOp_ReductXnor2Context * ctx)   {
-PythonAPI::evalScript("exitBinOp_ReductXnor2", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_ReductXnor2", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_ReductNor(SV3_1aParser::BinOp_ReductNorContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_ReductNor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_ReductNor", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_ReductNor(SV3_1aParser::BinOp_ReductNorContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_ReductNor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_ReductNor", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_ReductNand(SV3_1aParser::BinOp_ReductNandContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_ReductNand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_ReductNand", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_ReductNand(SV3_1aParser::BinOp_ReductNandContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_ReductNand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_ReductNand", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_ShiftRight(SV3_1aParser::BinOp_ShiftRightContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_ShiftRight", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_ShiftRight", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_ShiftRight(SV3_1aParser::BinOp_ShiftRightContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_ShiftRight", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_ShiftRight", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_ShiftLeft(SV3_1aParser::BinOp_ShiftLeftContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_ShiftLeft", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_ShiftLeft", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_ShiftLeft(SV3_1aParser::BinOp_ShiftLeftContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_ShiftLeft", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_ShiftLeft", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_ArithShiftRight(SV3_1aParser::BinOp_ArithShiftRightContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_ArithShiftRight", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_ArithShiftRight", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_ArithShiftRight(SV3_1aParser::BinOp_ArithShiftRightContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_ArithShiftRight", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_ArithShiftRight", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_ArithShiftLeft(SV3_1aParser::BinOp_ArithShiftLeftContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_ArithShiftLeft", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_ArithShiftLeft", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_ArithShiftLeft(SV3_1aParser::BinOp_ArithShiftLeftContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_ArithShiftLeft", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_ArithShiftLeft", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_Imply(SV3_1aParser::BinOp_ImplyContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_Imply", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_Imply", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_Imply(SV3_1aParser::BinOp_ImplyContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_Imply", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_Imply", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_Equivalence(SV3_1aParser::BinOp_EquivalenceContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_Equivalence", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_Equivalence", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_Equivalence(SV3_1aParser::BinOp_EquivalenceContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_Equivalence", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_Equivalence", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_WildcardEqual(SV3_1aParser::BinOp_WildcardEqualContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_WildcardEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_WildcardEqual", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_WildcardEqual(SV3_1aParser::BinOp_WildcardEqualContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_WildcardEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_WildcardEqual", this, (parser_rule_context*) ctx);
 }
 
    void enterBinOp_WildcardNotEqual(SV3_1aParser::BinOp_WildcardNotEqualContext * ctx)   {
-PythonAPI::evalScript("enterBinOp_WildcardNotEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinOp_WildcardNotEqual", this, (parser_rule_context*) ctx);
 }
 
    void exitBinOp_WildcardNotEqual(SV3_1aParser::BinOp_WildcardNotEqualContext * ctx)   {
-PythonAPI::evalScript("exitBinOp_WildcardNotEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinOp_WildcardNotEqual", this, (parser_rule_context*) ctx);
 }
 
    void enterIncDec_PlusPlus(SV3_1aParser::IncDec_PlusPlusContext * ctx)   {
-PythonAPI::evalScript("enterIncDec_PlusPlus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIncDec_PlusPlus", this, (parser_rule_context*) ctx);
 }
 
    void exitIncDec_PlusPlus(SV3_1aParser::IncDec_PlusPlusContext * ctx)   {
-PythonAPI::evalScript("exitIncDec_PlusPlus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIncDec_PlusPlus", this, (parser_rule_context*) ctx);
 }
 
    void enterIncDec_MinusMinus(SV3_1aParser::IncDec_MinusMinusContext * ctx)   {
-PythonAPI::evalScript("enterIncDec_MinusMinus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIncDec_MinusMinus", this, (parser_rule_context*) ctx);
 }
 
    void exitIncDec_MinusMinus(SV3_1aParser::IncDec_MinusMinusContext * ctx)   {
-PythonAPI::evalScript("exitIncDec_MinusMinus", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIncDec_MinusMinus", this, (parser_rule_context*) ctx);
 }
 
    void enterUnaryModOp_Not(SV3_1aParser::UnaryModOp_NotContext * ctx)   {
-PythonAPI::evalScript("enterUnaryModOp_Not", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnaryModOp_Not", this, (parser_rule_context*) ctx);
 }
 
    void exitUnaryModOp_Not(SV3_1aParser::UnaryModOp_NotContext * ctx)   {
-PythonAPI::evalScript("exitUnaryModOp_Not", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnaryModOp_Not", this, (parser_rule_context*) ctx);
 }
 
    void enterUnaryModOp_Tilda(SV3_1aParser::UnaryModOp_TildaContext * ctx)   {
-PythonAPI::evalScript("enterUnaryModOp_Tilda", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnaryModOp_Tilda", this, (parser_rule_context*) ctx);
 }
 
    void exitUnaryModOp_Tilda(SV3_1aParser::UnaryModOp_TildaContext * ctx)   {
-PythonAPI::evalScript("exitUnaryModOp_Tilda", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnaryModOp_Tilda", this, (parser_rule_context*) ctx);
 }
 
    void enterUnaryModOp_BitwAnd(SV3_1aParser::UnaryModOp_BitwAndContext * ctx)   {
-PythonAPI::evalScript("enterUnaryModOp_BitwAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnaryModOp_BitwAnd", this, (parser_rule_context*) ctx);
 }
 
    void exitUnaryModOp_BitwAnd(SV3_1aParser::UnaryModOp_BitwAndContext * ctx)   {
-PythonAPI::evalScript("exitUnaryModOp_BitwAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnaryModOp_BitwAnd", this, (parser_rule_context*) ctx);
 }
 
    void enterUnaryModOp_ReductNand(SV3_1aParser::UnaryModOp_ReductNandContext * ctx)   {
-PythonAPI::evalScript("enterUnaryModOp_ReductNand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnaryModOp_ReductNand", this, (parser_rule_context*) ctx);
 }
 
    void exitUnaryModOp_ReductNand(SV3_1aParser::UnaryModOp_ReductNandContext * ctx)   {
-PythonAPI::evalScript("exitUnaryModOp_ReductNand", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnaryModOp_ReductNand", this, (parser_rule_context*) ctx);
 }
 
    void enterUnaryModOp_BitwOr(SV3_1aParser::UnaryModOp_BitwOrContext * ctx)   {
-PythonAPI::evalScript("enterUnaryModOp_BitwOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnaryModOp_BitwOr", this, (parser_rule_context*) ctx);
 }
 
    void exitUnaryModOp_BitwOr(SV3_1aParser::UnaryModOp_BitwOrContext * ctx)   {
-PythonAPI::evalScript("exitUnaryModOp_BitwOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnaryModOp_BitwOr", this, (parser_rule_context*) ctx);
 }
 
    void enterUnaryModOp_ReductNor(SV3_1aParser::UnaryModOp_ReductNorContext * ctx)   {
-PythonAPI::evalScript("enterUnaryModOp_ReductNor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnaryModOp_ReductNor", this, (parser_rule_context*) ctx);
 }
 
    void exitUnaryModOp_ReductNor(SV3_1aParser::UnaryModOp_ReductNorContext * ctx)   {
-PythonAPI::evalScript("exitUnaryModOp_ReductNor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnaryModOp_ReductNor", this, (parser_rule_context*) ctx);
 }
 
    void enterUnaryModOp_BitwXor(SV3_1aParser::UnaryModOp_BitwXorContext * ctx)   {
-PythonAPI::evalScript("enterUnaryModOp_BitwXor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnaryModOp_BitwXor", this, (parser_rule_context*) ctx);
 }
 
    void exitUnaryModOp_BitwXor(SV3_1aParser::UnaryModOp_BitwXorContext * ctx)   {
-PythonAPI::evalScript("exitUnaryModOp_BitwXor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnaryModOp_BitwXor", this, (parser_rule_context*) ctx);
 }
 
    void enterUnaryModOp_ReductXNor1(SV3_1aParser::UnaryModOp_ReductXNor1Context * ctx)   {
-PythonAPI::evalScript("enterUnaryModOp_ReductXNor1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnaryModOp_ReductXNor1", this, (parser_rule_context*) ctx);
 }
 
    void exitUnaryModOp_ReductXNor1(SV3_1aParser::UnaryModOp_ReductXNor1Context * ctx)   {
-PythonAPI::evalScript("exitUnaryModOp_ReductXNor1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnaryModOp_ReductXNor1", this, (parser_rule_context*) ctx);
 }
 
    void enterUnaryModOp_ReductXnor2(SV3_1aParser::UnaryModOp_ReductXnor2Context * ctx)   {
-PythonAPI::evalScript("enterUnaryModOp_ReductXnor2", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnaryModOp_ReductXnor2", this, (parser_rule_context*) ctx);
 }
 
    void exitUnaryModOp_ReductXnor2(SV3_1aParser::UnaryModOp_ReductXnor2Context * ctx)   {
-PythonAPI::evalScript("exitUnaryModOp_ReductXnor2", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnaryModOp_ReductXnor2", this, (parser_rule_context*) ctx);
 }
 
    void enterBinModOp_Equiv(SV3_1aParser::BinModOp_EquivContext * ctx)   {
-PythonAPI::evalScript("enterBinModOp_Equiv", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinModOp_Equiv", this, (parser_rule_context*) ctx);
 }
 
    void exitBinModOp_Equiv(SV3_1aParser::BinModOp_EquivContext * ctx)   {
-PythonAPI::evalScript("exitBinModOp_Equiv", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinModOp_Equiv", this, (parser_rule_context*) ctx);
 }
 
    void enterBinModOp_NotEqual(SV3_1aParser::BinModOp_NotEqualContext * ctx)   {
-PythonAPI::evalScript("enterBinModOp_NotEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinModOp_NotEqual", this, (parser_rule_context*) ctx);
 }
 
    void exitBinModOp_NotEqual(SV3_1aParser::BinModOp_NotEqualContext * ctx)   {
-PythonAPI::evalScript("exitBinModOp_NotEqual", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinModOp_NotEqual", this, (parser_rule_context*) ctx);
 }
 
    void enterBinModOp_LogicAnd(SV3_1aParser::BinModOp_LogicAndContext * ctx)   {
-PythonAPI::evalScript("enterBinModOp_LogicAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinModOp_LogicAnd", this, (parser_rule_context*) ctx);
 }
 
    void exitBinModOp_LogicAnd(SV3_1aParser::BinModOp_LogicAndContext * ctx)   {
-PythonAPI::evalScript("exitBinModOp_LogicAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinModOp_LogicAnd", this, (parser_rule_context*) ctx);
 }
 
    void enterBinModOp_LogicOr(SV3_1aParser::BinModOp_LogicOrContext * ctx)   {
-PythonAPI::evalScript("enterBinModOp_LogicOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinModOp_LogicOr", this, (parser_rule_context*) ctx);
 }
 
    void exitBinModOp_LogicOr(SV3_1aParser::BinModOp_LogicOrContext * ctx)   {
-PythonAPI::evalScript("exitBinModOp_LogicOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinModOp_LogicOr", this, (parser_rule_context*) ctx);
 }
 
    void enterBinModOp_BitwAnd(SV3_1aParser::BinModOp_BitwAndContext * ctx)   {
-PythonAPI::evalScript("enterBinModOp_BitwAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinModOp_BitwAnd", this, (parser_rule_context*) ctx);
 }
 
    void exitBinModOp_BitwAnd(SV3_1aParser::BinModOp_BitwAndContext * ctx)   {
-PythonAPI::evalScript("exitBinModOp_BitwAnd", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinModOp_BitwAnd", this, (parser_rule_context*) ctx);
 }
 
    void enterBinModOp_BitwOr(SV3_1aParser::BinModOp_BitwOrContext * ctx)   {
-PythonAPI::evalScript("enterBinModOp_BitwOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinModOp_BitwOr", this, (parser_rule_context*) ctx);
 }
 
    void exitBinModOp_BitwOr(SV3_1aParser::BinModOp_BitwOrContext * ctx)   {
-PythonAPI::evalScript("exitBinModOp_BitwOr", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinModOp_BitwOr", this, (parser_rule_context*) ctx);
 }
 
    void enterBinModOp_BitwXor(SV3_1aParser::BinModOp_BitwXorContext * ctx)   {
-PythonAPI::evalScript("enterBinModOp_BitwXor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinModOp_BitwXor", this, (parser_rule_context*) ctx);
 }
 
    void exitBinModOp_BitwXor(SV3_1aParser::BinModOp_BitwXorContext * ctx)   {
-PythonAPI::evalScript("exitBinModOp_BitwXor", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinModOp_BitwXor", this, (parser_rule_context*) ctx);
 }
 
    void enterBinModOp_ReductXnor1(SV3_1aParser::BinModOp_ReductXnor1Context * ctx)   {
-PythonAPI::evalScript("enterBinModOp_ReductXnor1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinModOp_ReductXnor1", this, (parser_rule_context*) ctx);
 }
 
    void exitBinModOp_ReductXnor1(SV3_1aParser::BinModOp_ReductXnor1Context * ctx)   {
-PythonAPI::evalScript("exitBinModOp_ReductXnor1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinModOp_ReductXnor1", this, (parser_rule_context*) ctx);
 }
 
    void enterBinModOp_ReductXnor2(SV3_1aParser::BinModOp_ReductXnor2Context * ctx)   {
-PythonAPI::evalScript("enterBinModOp_ReductXnor2", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBinModOp_ReductXnor2", this, (parser_rule_context*) ctx);
 }
 
    void exitBinModOp_ReductXnor2(SV3_1aParser::BinModOp_ReductXnor2Context * ctx)   {
-PythonAPI::evalScript("exitBinModOp_ReductXnor2", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBinModOp_ReductXnor2", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_Integral(SV3_1aParser::Number_IntegralContext * ctx)   {
-PythonAPI::evalScript("enterNumber_Integral", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_Integral", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_Integral(SV3_1aParser::Number_IntegralContext * ctx)   {
-PythonAPI::evalScript("exitNumber_Integral", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_Integral", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_Real(SV3_1aParser::Number_RealContext * ctx)   {
-PythonAPI::evalScript("enterNumber_Real", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_Real", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_Real(SV3_1aParser::Number_RealContext * ctx)   {
-PythonAPI::evalScript("exitNumber_Real", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_Real", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_1Tickb0(SV3_1aParser::Number_1Tickb0Context * ctx)   {
-PythonAPI::evalScript("enterNumber_1Tickb0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_1Tickb0", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_1Tickb0(SV3_1aParser::Number_1Tickb0Context * ctx)   {
-PythonAPI::evalScript("exitNumber_1Tickb0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_1Tickb0", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_1Tickb1(SV3_1aParser::Number_1Tickb1Context * ctx)   {
-PythonAPI::evalScript("enterNumber_1Tickb1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_1Tickb1", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_1Tickb1(SV3_1aParser::Number_1Tickb1Context * ctx)   {
-PythonAPI::evalScript("exitNumber_1Tickb1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_1Tickb1", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_1TickB0(SV3_1aParser::Number_1TickB0Context * ctx)   {
-PythonAPI::evalScript("enterNumber_1TickB0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_1TickB0", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_1TickB0(SV3_1aParser::Number_1TickB0Context * ctx)   {
-PythonAPI::evalScript("exitNumber_1TickB0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_1TickB0", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_1TickB1(SV3_1aParser::Number_1TickB1Context * ctx)   {
-PythonAPI::evalScript("enterNumber_1TickB1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_1TickB1", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_1TickB1(SV3_1aParser::Number_1TickB1Context * ctx)   {
-PythonAPI::evalScript("exitNumber_1TickB1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_1TickB1", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_Tickb0(SV3_1aParser::Number_Tickb0Context * ctx)   {
-PythonAPI::evalScript("enterNumber_Tickb0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_Tickb0", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_Tickb0(SV3_1aParser::Number_Tickb0Context * ctx)   {
-PythonAPI::evalScript("exitNumber_Tickb0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_Tickb0", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_Tickb1(SV3_1aParser::Number_Tickb1Context * ctx)   {
-PythonAPI::evalScript("enterNumber_Tickb1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_Tickb1", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_Tickb1(SV3_1aParser::Number_Tickb1Context * ctx)   {
-PythonAPI::evalScript("exitNumber_Tickb1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_Tickb1", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_TickB0(SV3_1aParser::Number_TickB0Context * ctx)   {
-PythonAPI::evalScript("enterNumber_TickB0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_TickB0", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_TickB0(SV3_1aParser::Number_TickB0Context * ctx)   {
-PythonAPI::evalScript("exitNumber_TickB0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_TickB0", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_TickB1(SV3_1aParser::Number_TickB1Context * ctx)   {
-PythonAPI::evalScript("enterNumber_TickB1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_TickB1", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_TickB1(SV3_1aParser::Number_TickB1Context * ctx)   {
-PythonAPI::evalScript("exitNumber_TickB1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_TickB1", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_Tick0(SV3_1aParser::Number_Tick0Context * ctx)   {
-PythonAPI::evalScript("enterNumber_Tick0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_Tick0", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_Tick0(SV3_1aParser::Number_Tick0Context * ctx)   {
-PythonAPI::evalScript("exitNumber_Tick0", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_Tick0", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_Tick1(SV3_1aParser::Number_Tick1Context * ctx)   {
-PythonAPI::evalScript("enterNumber_Tick1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_Tick1", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_Tick1(SV3_1aParser::Number_Tick1Context * ctx)   {
-PythonAPI::evalScript("exitNumber_Tick1", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_Tick1", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_1Tickbx(SV3_1aParser::Number_1TickbxContext * ctx)   {
-PythonAPI::evalScript("enterNumber_1Tickbx", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_1Tickbx", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_1Tickbx(SV3_1aParser::Number_1TickbxContext * ctx)   {
-PythonAPI::evalScript("exitNumber_1Tickbx", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_1Tickbx", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_1TickbX(SV3_1aParser::Number_1TickbXContext * ctx)   {
-PythonAPI::evalScript("enterNumber_1TickbX", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_1TickbX", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_1TickbX(SV3_1aParser::Number_1TickbXContext * ctx)   {
-PythonAPI::evalScript("exitNumber_1TickbX", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_1TickbX", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_1TickBx(SV3_1aParser::Number_1TickBxContext * ctx)   {
-PythonAPI::evalScript("enterNumber_1TickBx", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_1TickBx", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_1TickBx(SV3_1aParser::Number_1TickBxContext * ctx)   {
-PythonAPI::evalScript("exitNumber_1TickBx", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_1TickBx", this, (parser_rule_context*) ctx);
 }
 
    void enterNumber_1TickBX(SV3_1aParser::Number_1TickBXContext * ctx)   {
-PythonAPI::evalScript("enterNumber_1TickBX", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNumber_1TickBX", this, (parser_rule_context*) ctx);
 }
 
    void exitNumber_1TickBX(SV3_1aParser::Number_1TickBXContext * ctx)   {
-PythonAPI::evalScript("exitNumber_1TickBX", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNumber_1TickBX", this, (parser_rule_context*) ctx);
 }
 
    void enterUnbased_unsized_literal(SV3_1aParser::Unbased_unsized_literalContext * ctx)   {
-PythonAPI::evalScript("enterUnbased_unsized_literal", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnbased_unsized_literal", this, (parser_rule_context*) ctx);
 }
 
    void exitUnbased_unsized_literal(SV3_1aParser::Unbased_unsized_literalContext * ctx)   {
-PythonAPI::evalScript("exitUnbased_unsized_literal", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnbased_unsized_literal", this, (parser_rule_context*) ctx);
 }
 
    void enterAttribute_instance(SV3_1aParser::Attribute_instanceContext * ctx)   {
-PythonAPI::evalScript("enterAttribute_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAttribute_instance", this, (parser_rule_context*) ctx);
 }
 
    void exitAttribute_instance(SV3_1aParser::Attribute_instanceContext * ctx)   {
-PythonAPI::evalScript("exitAttribute_instance", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAttribute_instance", this, (parser_rule_context*) ctx);
 }
 
    void enterAttr_spec(SV3_1aParser::Attr_specContext * ctx)   {
-PythonAPI::evalScript("enterAttr_spec", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAttr_spec", this, (parser_rule_context*) ctx);
 }
 
    void exitAttr_spec(SV3_1aParser::Attr_specContext * ctx)   {
-PythonAPI::evalScript("exitAttr_spec", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAttr_spec", this, (parser_rule_context*) ctx);
 }
 
    void enterAttr_name(SV3_1aParser::Attr_nameContext * ctx)   {
-PythonAPI::evalScript("enterAttr_name", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAttr_name", this, (parser_rule_context*) ctx);
 }
 
    void exitAttr_name(SV3_1aParser::Attr_nameContext * ctx)   {
-PythonAPI::evalScript("exitAttr_name", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAttr_name", this, (parser_rule_context*) ctx);
 }
 
    void enterHierarchical_identifier(SV3_1aParser::Hierarchical_identifierContext * ctx)   {
-PythonAPI::evalScript("enterHierarchical_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterHierarchical_identifier", this, (parser_rule_context*) ctx);
 }
 
    void exitHierarchical_identifier(SV3_1aParser::Hierarchical_identifierContext * ctx)   {
-PythonAPI::evalScript("exitHierarchical_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitHierarchical_identifier", this, (parser_rule_context*) ctx);
 }
 
    void enterIdentifier(SV3_1aParser::IdentifierContext * ctx)   {
-PythonAPI::evalScript("enterIdentifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterIdentifier", this, (parser_rule_context*) ctx);
 }
 
    void exitIdentifier(SV3_1aParser::IdentifierContext * ctx)   {
-PythonAPI::evalScript("exitIdentifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitIdentifier", this, (parser_rule_context*) ctx);
 }
 
    void enterInterface_identifier(SV3_1aParser::Interface_identifierContext * ctx)   {
-PythonAPI::evalScript("enterInterface_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInterface_identifier", this, (parser_rule_context*) ctx);
 }
 
    void exitInterface_identifier(SV3_1aParser::Interface_identifierContext * ctx)   {
-PythonAPI::evalScript("exitInterface_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInterface_identifier", this, (parser_rule_context*) ctx);
 }
 
    void enterPackage_scope(SV3_1aParser::Package_scopeContext * ctx)   {
-PythonAPI::evalScript("enterPackage_scope", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPackage_scope", this, (parser_rule_context*) ctx);
 }
 
    void exitPackage_scope(SV3_1aParser::Package_scopeContext * ctx)   {
-PythonAPI::evalScript("exitPackage_scope", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPackage_scope", this, (parser_rule_context*) ctx);
 }
 
    void enterPs_identifier(SV3_1aParser::Ps_identifierContext * ctx)   {
-PythonAPI::evalScript("enterPs_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPs_identifier", this, (parser_rule_context*) ctx);
 }
 
    void exitPs_identifier(SV3_1aParser::Ps_identifierContext * ctx)   {
-PythonAPI::evalScript("exitPs_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPs_identifier", this, (parser_rule_context*) ctx);
 }
 
    void enterPs_or_hierarchical_identifier(SV3_1aParser::Ps_or_hierarchical_identifierContext * ctx)   {
-PythonAPI::evalScript("enterPs_or_hierarchical_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPs_or_hierarchical_identifier", this, (parser_rule_context*) ctx);
 }
 
    void exitPs_or_hierarchical_identifier(SV3_1aParser::Ps_or_hierarchical_identifierContext * ctx)   {
-PythonAPI::evalScript("exitPs_or_hierarchical_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPs_or_hierarchical_identifier", this, (parser_rule_context*) ctx);
 }
 
    void enterPs_or_hierarchical_array_identifier(SV3_1aParser::Ps_or_hierarchical_array_identifierContext * ctx)   {
-PythonAPI::evalScript("enterPs_or_hierarchical_array_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPs_or_hierarchical_array_identifier", this, (parser_rule_context*) ctx);
 }
 
    void exitPs_or_hierarchical_array_identifier(SV3_1aParser::Ps_or_hierarchical_array_identifierContext * ctx)   {
-PythonAPI::evalScript("exitPs_or_hierarchical_array_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPs_or_hierarchical_array_identifier", this, (parser_rule_context*) ctx);
 }
 
    void enterPs_or_hierarchical_sequence_identifier(SV3_1aParser::Ps_or_hierarchical_sequence_identifierContext * ctx)   {
-PythonAPI::evalScript("enterPs_or_hierarchical_sequence_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPs_or_hierarchical_sequence_identifier", this, (parser_rule_context*) ctx);
 }
 
    void exitPs_or_hierarchical_sequence_identifier(SV3_1aParser::Ps_or_hierarchical_sequence_identifierContext * ctx)   {
-PythonAPI::evalScript("exitPs_or_hierarchical_sequence_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPs_or_hierarchical_sequence_identifier", this, (parser_rule_context*) ctx);
 }
 
    void enterPs_type_identifier(SV3_1aParser::Ps_type_identifierContext * ctx)   {
-PythonAPI::evalScript("enterPs_type_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPs_type_identifier", this, (parser_rule_context*) ctx);
 }
 
    void exitPs_type_identifier(SV3_1aParser::Ps_type_identifierContext * ctx)   {
-PythonAPI::evalScript("exitPs_type_identifier", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPs_type_identifier", this, (parser_rule_context*) ctx);
 }
 
    void enterSystem_task(SV3_1aParser::System_taskContext * ctx)   {
-PythonAPI::evalScript("enterSystem_task", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSystem_task", this, (parser_rule_context*) ctx);
 }
 
    void exitSystem_task(SV3_1aParser::System_taskContext * ctx)   {
-PythonAPI::evalScript("exitSystem_task", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSystem_task", this, (parser_rule_context*) ctx);
 }
 
    void enterSystem_task_names(SV3_1aParser::System_task_namesContext * ctx)   {
-PythonAPI::evalScript("enterSystem_task_names", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSystem_task_names", this, (parser_rule_context*) ctx);
 }
 
    void exitSystem_task_names(SV3_1aParser::System_task_namesContext * ctx)   {
-PythonAPI::evalScript("exitSystem_task_names", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSystem_task_names", this, (parser_rule_context*) ctx);
 }
 
    void enterTop_directives(SV3_1aParser::Top_directivesContext * ctx)   {
-PythonAPI::evalScript("enterTop_directives", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTop_directives", this, (parser_rule_context*) ctx);
 }
 
    void exitTop_directives(SV3_1aParser::Top_directivesContext * ctx)   {
-PythonAPI::evalScript("exitTop_directives", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTop_directives", this, (parser_rule_context*) ctx);
 }
 
    void enterPragma_directive(SV3_1aParser::Pragma_directiveContext * ctx)   {
-PythonAPI::evalScript("enterPragma_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPragma_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitPragma_directive(SV3_1aParser::Pragma_directiveContext * ctx)   {
-PythonAPI::evalScript("exitPragma_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPragma_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterPragma_expression(SV3_1aParser::Pragma_expressionContext * ctx)   {
-PythonAPI::evalScript("enterPragma_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPragma_expression", this, (parser_rule_context*) ctx);
 }
 
    void exitPragma_expression(SV3_1aParser::Pragma_expressionContext * ctx)   {
-PythonAPI::evalScript("exitPragma_expression", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPragma_expression", this, (parser_rule_context*) ctx);
 }
 
    void enterPragma_value(SV3_1aParser::Pragma_valueContext * ctx)   {
-PythonAPI::evalScript("enterPragma_value", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterPragma_value", this, (parser_rule_context*) ctx);
 }
 
    void exitPragma_value(SV3_1aParser::Pragma_valueContext * ctx)   {
-PythonAPI::evalScript("exitPragma_value", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitPragma_value", this, (parser_rule_context*) ctx);
 }
 
    void enterTimescale_directive(SV3_1aParser::Timescale_directiveContext * ctx)   {
-PythonAPI::evalScript("enterTimescale_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterTimescale_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitTimescale_directive(SV3_1aParser::Timescale_directiveContext * ctx)   {
-PythonAPI::evalScript("exitTimescale_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitTimescale_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterBegin_keywords_directive(SV3_1aParser::Begin_keywords_directiveContext * ctx)   {
-PythonAPI::evalScript("enterBegin_keywords_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterBegin_keywords_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitBegin_keywords_directive(SV3_1aParser::Begin_keywords_directiveContext * ctx)   {
-PythonAPI::evalScript("exitBegin_keywords_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitBegin_keywords_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterEnd_keywords_directive(SV3_1aParser::End_keywords_directiveContext * ctx)   {
-PythonAPI::evalScript("enterEnd_keywords_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEnd_keywords_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitEnd_keywords_directive(SV3_1aParser::End_keywords_directiveContext * ctx)   {
-PythonAPI::evalScript("exitEnd_keywords_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEnd_keywords_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterUnconnected_drive_directive(SV3_1aParser::Unconnected_drive_directiveContext * ctx)   {
-PythonAPI::evalScript("enterUnconnected_drive_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnconnected_drive_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitUnconnected_drive_directive(SV3_1aParser::Unconnected_drive_directiveContext * ctx)   {
-PythonAPI::evalScript("exitUnconnected_drive_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnconnected_drive_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterNounconnected_drive_directive(SV3_1aParser::Nounconnected_drive_directiveContext * ctx)   {
-PythonAPI::evalScript("enterNounconnected_drive_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNounconnected_drive_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitNounconnected_drive_directive(SV3_1aParser::Nounconnected_drive_directiveContext * ctx)   {
-PythonAPI::evalScript("exitNounconnected_drive_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNounconnected_drive_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterDefault_nettype_directive(SV3_1aParser::Default_nettype_directiveContext * ctx)   {
-PythonAPI::evalScript("enterDefault_nettype_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDefault_nettype_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitDefault_nettype_directive(SV3_1aParser::Default_nettype_directiveContext * ctx)   {
-PythonAPI::evalScript("exitDefault_nettype_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDefault_nettype_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterUselib_directive(SV3_1aParser::Uselib_directiveContext * ctx)   {
-PythonAPI::evalScript("enterUselib_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUselib_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitUselib_directive(SV3_1aParser::Uselib_directiveContext * ctx)   {
-PythonAPI::evalScript("exitUselib_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUselib_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterCelldefine_directive(SV3_1aParser::Celldefine_directiveContext * ctx)   {
-PythonAPI::evalScript("enterCelldefine_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCelldefine_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitCelldefine_directive(SV3_1aParser::Celldefine_directiveContext * ctx)   {
-PythonAPI::evalScript("exitCelldefine_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCelldefine_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterEndcelldefine_directive(SV3_1aParser::Endcelldefine_directiveContext * ctx)   {
-PythonAPI::evalScript("enterEndcelldefine_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndcelldefine_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitEndcelldefine_directive(SV3_1aParser::Endcelldefine_directiveContext * ctx)   {
-PythonAPI::evalScript("exitEndcelldefine_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndcelldefine_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterProtect_directive(SV3_1aParser::Protect_directiveContext * ctx)   {
-PythonAPI::evalScript("enterProtect_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProtect_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitProtect_directive(SV3_1aParser::Protect_directiveContext * ctx)   {
-PythonAPI::evalScript("exitProtect_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProtect_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterEndprotect_directive(SV3_1aParser::Endprotect_directiveContext * ctx)   {
-PythonAPI::evalScript("enterEndprotect_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndprotect_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitEndprotect_directive(SV3_1aParser::Endprotect_directiveContext * ctx)   {
-PythonAPI::evalScript("exitEndprotect_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndprotect_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterProtected_directive(SV3_1aParser::Protected_directiveContext * ctx)   {
-PythonAPI::evalScript("enterProtected_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterProtected_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitProtected_directive(SV3_1aParser::Protected_directiveContext * ctx)   {
-PythonAPI::evalScript("exitProtected_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitProtected_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterEndprotected_directive(SV3_1aParser::Endprotected_directiveContext * ctx)   {
-PythonAPI::evalScript("enterEndprotected_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndprotected_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitEndprotected_directive(SV3_1aParser::Endprotected_directiveContext * ctx)   {
-PythonAPI::evalScript("exitEndprotected_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndprotected_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterExpand_vectornets_directive(SV3_1aParser::Expand_vectornets_directiveContext * ctx)   {
-PythonAPI::evalScript("enterExpand_vectornets_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterExpand_vectornets_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitExpand_vectornets_directive(SV3_1aParser::Expand_vectornets_directiveContext * ctx)   {
-PythonAPI::evalScript("exitExpand_vectornets_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitExpand_vectornets_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterNoexpand_vectornets_directive(SV3_1aParser::Noexpand_vectornets_directiveContext * ctx)   {
-PythonAPI::evalScript("enterNoexpand_vectornets_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNoexpand_vectornets_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitNoexpand_vectornets_directive(SV3_1aParser::Noexpand_vectornets_directiveContext * ctx)   {
-PythonAPI::evalScript("exitNoexpand_vectornets_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNoexpand_vectornets_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterAutoexpand_vectornets_directive(SV3_1aParser::Autoexpand_vectornets_directiveContext * ctx)   {
-PythonAPI::evalScript("enterAutoexpand_vectornets_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAutoexpand_vectornets_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitAutoexpand_vectornets_directive(SV3_1aParser::Autoexpand_vectornets_directiveContext * ctx)   {
-PythonAPI::evalScript("exitAutoexpand_vectornets_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAutoexpand_vectornets_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterDisable_portfaults_directive(SV3_1aParser::Disable_portfaults_directiveContext * ctx)   {
-PythonAPI::evalScript("enterDisable_portfaults_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDisable_portfaults_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitDisable_portfaults_directive(SV3_1aParser::Disable_portfaults_directiveContext * ctx)   {
-PythonAPI::evalScript("exitDisable_portfaults_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDisable_portfaults_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterEnable_portfaults_directive(SV3_1aParser::Enable_portfaults_directiveContext * ctx)   {
-PythonAPI::evalScript("enterEnable_portfaults_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEnable_portfaults_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitEnable_portfaults_directive(SV3_1aParser::Enable_portfaults_directiveContext * ctx)   {
-PythonAPI::evalScript("exitEnable_portfaults_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEnable_portfaults_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterNosuppress_faults_directive(SV3_1aParser::Nosuppress_faults_directiveContext * ctx)   {
-PythonAPI::evalScript("enterNosuppress_faults_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNosuppress_faults_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitNosuppress_faults_directive(SV3_1aParser::Nosuppress_faults_directiveContext * ctx)   {
-PythonAPI::evalScript("exitNosuppress_faults_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNosuppress_faults_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterSuppress_faults_directive(SV3_1aParser::Suppress_faults_directiveContext * ctx)   {
-PythonAPI::evalScript("enterSuppress_faults_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSuppress_faults_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitSuppress_faults_directive(SV3_1aParser::Suppress_faults_directiveContext * ctx)   {
-PythonAPI::evalScript("exitSuppress_faults_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSuppress_faults_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterSigned_directive(SV3_1aParser::Signed_directiveContext * ctx)   {
-PythonAPI::evalScript("enterSigned_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSigned_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitSigned_directive(SV3_1aParser::Signed_directiveContext * ctx)   {
-PythonAPI::evalScript("exitSigned_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSigned_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterUnsigned_directive(SV3_1aParser::Unsigned_directiveContext * ctx)   {
-PythonAPI::evalScript("enterUnsigned_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUnsigned_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitUnsigned_directive(SV3_1aParser::Unsigned_directiveContext * ctx)   {
-PythonAPI::evalScript("exitUnsigned_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUnsigned_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterRemove_gatename_directive(SV3_1aParser::Remove_gatename_directiveContext * ctx)   {
-PythonAPI::evalScript("enterRemove_gatename_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRemove_gatename_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitRemove_gatename_directive(SV3_1aParser::Remove_gatename_directiveContext * ctx)   {
-PythonAPI::evalScript("exitRemove_gatename_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRemove_gatename_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterNoremove_gatenames_directive(SV3_1aParser::Noremove_gatenames_directiveContext * ctx)   {
-PythonAPI::evalScript("enterNoremove_gatenames_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNoremove_gatenames_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitNoremove_gatenames_directive(SV3_1aParser::Noremove_gatenames_directiveContext * ctx)   {
-PythonAPI::evalScript("exitNoremove_gatenames_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNoremove_gatenames_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterRemove_netname_directive(SV3_1aParser::Remove_netname_directiveContext * ctx)   {
-PythonAPI::evalScript("enterRemove_netname_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterRemove_netname_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitRemove_netname_directive(SV3_1aParser::Remove_netname_directiveContext * ctx)   {
-PythonAPI::evalScript("exitRemove_netname_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitRemove_netname_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterNoremove_netnames_directive(SV3_1aParser::Noremove_netnames_directiveContext * ctx)   {
-PythonAPI::evalScript("enterNoremove_netnames_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNoremove_netnames_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitNoremove_netnames_directive(SV3_1aParser::Noremove_netnames_directiveContext * ctx)   {
-PythonAPI::evalScript("exitNoremove_netnames_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNoremove_netnames_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterAccelerate_directive(SV3_1aParser::Accelerate_directiveContext * ctx)   {
-PythonAPI::evalScript("enterAccelerate_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterAccelerate_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitAccelerate_directive(SV3_1aParser::Accelerate_directiveContext * ctx)   {
-PythonAPI::evalScript("exitAccelerate_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitAccelerate_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterNoaccelerate_directive(SV3_1aParser::Noaccelerate_directiveContext * ctx)   {
-PythonAPI::evalScript("enterNoaccelerate_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterNoaccelerate_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitNoaccelerate_directive(SV3_1aParser::Noaccelerate_directiveContext * ctx)   {
-PythonAPI::evalScript("exitNoaccelerate_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitNoaccelerate_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterDefault_trireg_strenght_directive(SV3_1aParser::Default_trireg_strenght_directiveContext * ctx)   {
-PythonAPI::evalScript("enterDefault_trireg_strenght_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDefault_trireg_strenght_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitDefault_trireg_strenght_directive(SV3_1aParser::Default_trireg_strenght_directiveContext * ctx)   {
-PythonAPI::evalScript("exitDefault_trireg_strenght_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDefault_trireg_strenght_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterDefault_decay_time_directive(SV3_1aParser::Default_decay_time_directiveContext * ctx)   {
-PythonAPI::evalScript("enterDefault_decay_time_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDefault_decay_time_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitDefault_decay_time_directive(SV3_1aParser::Default_decay_time_directiveContext * ctx)   {
-PythonAPI::evalScript("exitDefault_decay_time_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDefault_decay_time_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterDelay_mode_distributed_directive(SV3_1aParser::Delay_mode_distributed_directiveContext * ctx)   {
-PythonAPI::evalScript("enterDelay_mode_distributed_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDelay_mode_distributed_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitDelay_mode_distributed_directive(SV3_1aParser::Delay_mode_distributed_directiveContext * ctx)   {
-PythonAPI::evalScript("exitDelay_mode_distributed_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDelay_mode_distributed_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterDelay_mode_path_directive(SV3_1aParser::Delay_mode_path_directiveContext * ctx)   {
-PythonAPI::evalScript("enterDelay_mode_path_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDelay_mode_path_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitDelay_mode_path_directive(SV3_1aParser::Delay_mode_path_directiveContext * ctx)   {
-PythonAPI::evalScript("exitDelay_mode_path_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDelay_mode_path_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterDelay_mode_unit_directive(SV3_1aParser::Delay_mode_unit_directiveContext * ctx)   {
-PythonAPI::evalScript("enterDelay_mode_unit_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDelay_mode_unit_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitDelay_mode_unit_directive(SV3_1aParser::Delay_mode_unit_directiveContext * ctx)   {
-PythonAPI::evalScript("exitDelay_mode_unit_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDelay_mode_unit_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterDelay_mode_zero_directive(SV3_1aParser::Delay_mode_zero_directiveContext * ctx)   {
-PythonAPI::evalScript("enterDelay_mode_zero_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDelay_mode_zero_directive", this, (parser_rule_context*) ctx);
 }
 
    void exitDelay_mode_zero_directive(SV3_1aParser::Delay_mode_zero_directiveContext * ctx)   {
-PythonAPI::evalScript("exitDelay_mode_zero_directive", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDelay_mode_zero_directive", this, (parser_rule_context*) ctx);
 }
 
    void enterSurelog_macro_not_defined(SV3_1aParser::Surelog_macro_not_definedContext * ctx)   {
-PythonAPI::evalScript("enterSurelog_macro_not_defined", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSurelog_macro_not_defined", this, (parser_rule_context*) ctx);
 }
 
    void exitSurelog_macro_not_defined(SV3_1aParser::Surelog_macro_not_definedContext * ctx)   {
-PythonAPI::evalScript("exitSurelog_macro_not_defined", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSurelog_macro_not_defined", this, (parser_rule_context*) ctx);
 }
 
    void enterSlline(SV3_1aParser::SllineContext * ctx)   {
-PythonAPI::evalScript("enterSlline", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterSlline", this, (parser_rule_context*) ctx);
 }
 
    void exitSlline(SV3_1aParser::SllineContext * ctx)   {
-PythonAPI::evalScript("exitSlline", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitSlline", this, (parser_rule_context*) ctx);
 }
 
    void enterEndconfig(SV3_1aParser::EndconfigContext * ctx)   {
-PythonAPI::evalScript("enterEndconfig", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEndconfig", this, (parser_rule_context*) ctx);
 }
 
    void exitEndconfig(SV3_1aParser::EndconfigContext * ctx)   {
-PythonAPI::evalScript("exitEndconfig", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEndconfig", this, (parser_rule_context*) ctx);
 }
 
    void enterConfig_declaration(SV3_1aParser::Config_declarationContext * ctx)   {
-PythonAPI::evalScript("enterConfig_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConfig_declaration", this, (parser_rule_context*) ctx);
 }
 
    void exitConfig_declaration(SV3_1aParser::Config_declarationContext * ctx)   {
-PythonAPI::evalScript("exitConfig_declaration", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConfig_declaration", this, (parser_rule_context*) ctx);
 }
 
    void enterDesign_statement(SV3_1aParser::Design_statementContext * ctx)   {
-PythonAPI::evalScript("enterDesign_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDesign_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitDesign_statement(SV3_1aParser::Design_statementContext * ctx)   {
-PythonAPI::evalScript("exitDesign_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDesign_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterConfig_rule_statement(SV3_1aParser::Config_rule_statementContext * ctx)   {
-PythonAPI::evalScript("enterConfig_rule_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterConfig_rule_statement", this, (parser_rule_context*) ctx);
 }
 
    void exitConfig_rule_statement(SV3_1aParser::Config_rule_statementContext * ctx)   {
-PythonAPI::evalScript("exitConfig_rule_statement", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitConfig_rule_statement", this, (parser_rule_context*) ctx);
 }
 
    void enterDefault_clause(SV3_1aParser::Default_clauseContext * ctx)   {
-PythonAPI::evalScript("enterDefault_clause", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterDefault_clause", this, (parser_rule_context*) ctx);
 }
 
    void exitDefault_clause(SV3_1aParser::Default_clauseContext * ctx)   {
-PythonAPI::evalScript("exitDefault_clause", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitDefault_clause", this, (parser_rule_context*) ctx);
 }
 
    void enterInst_clause(SV3_1aParser::Inst_clauseContext * ctx)   {
-PythonAPI::evalScript("enterInst_clause", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInst_clause", this, (parser_rule_context*) ctx);
 }
 
    void exitInst_clause(SV3_1aParser::Inst_clauseContext * ctx)   {
-PythonAPI::evalScript("exitInst_clause", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInst_clause", this, (parser_rule_context*) ctx);
 }
 
    void enterInst_name(SV3_1aParser::Inst_nameContext * ctx)   {
-PythonAPI::evalScript("enterInst_name", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterInst_name", this, (parser_rule_context*) ctx);
 }
 
    void exitInst_name(SV3_1aParser::Inst_nameContext * ctx)   {
-PythonAPI::evalScript("exitInst_name", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitInst_name", this, (parser_rule_context*) ctx);
 }
 
    void enterCell_clause(SV3_1aParser::Cell_clauseContext * ctx)   {
-PythonAPI::evalScript("enterCell_clause", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterCell_clause", this, (parser_rule_context*) ctx);
 }
 
    void exitCell_clause(SV3_1aParser::Cell_clauseContext * ctx)   {
-PythonAPI::evalScript("exitCell_clause", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitCell_clause", this, (parser_rule_context*) ctx);
 }
 
    void enterLiblist_clause(SV3_1aParser::Liblist_clauseContext * ctx)   {
-PythonAPI::evalScript("enterLiblist_clause", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterLiblist_clause", this, (parser_rule_context*) ctx);
 }
 
    void exitLiblist_clause(SV3_1aParser::Liblist_clauseContext * ctx)   {
-PythonAPI::evalScript("exitLiblist_clause", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitLiblist_clause", this, (parser_rule_context*) ctx);
 }
 
    void enterUse_clause_config(SV3_1aParser::Use_clause_configContext * ctx)   {
-PythonAPI::evalScript("enterUse_clause_config", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUse_clause_config", this, (parser_rule_context*) ctx);
 }
 
    void exitUse_clause_config(SV3_1aParser::Use_clause_configContext * ctx)   {
-PythonAPI::evalScript("exitUse_clause_config", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUse_clause_config", this, (parser_rule_context*) ctx);
 }
 
    void enterUse_clause(SV3_1aParser::Use_clauseContext * ctx)   {
-PythonAPI::evalScript("enterUse_clause", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterUse_clause", this, (parser_rule_context*) ctx);
 }
 
    void exitUse_clause(SV3_1aParser::Use_clauseContext * ctx)   {
-PythonAPI::evalScript("exitUse_clause", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitUse_clause", this, (parser_rule_context*) ctx);
 }
 
    void enterEveryRule(antlr4::ParserRuleContext * ctx)   {
-PythonAPI::evalScript("enterEveryRule", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("enterEveryRule", this, (parser_rule_context*) ctx);
 }
 
    void exitEveryRule(antlr4::ParserRuleContext * ctx)   {
-PythonAPI::evalScript("exitEveryRule", this, (ParserRuleContext*) ctx);
+PythonAPI::evalScript("exitEveryRule", this, (parser_rule_context*) ctx);
 }
 
    void visitTerminal(antlr4::tree::TerminalNode * node)   {
-PythonAPI::evalScript("visitTerminal", this, (ParserRuleContext*) node);
+PythonAPI::evalScript("visitTerminal", this, (parser_rule_context*) node);
 }
 
    void visitErrorNode(antlr4::tree::ErrorNode * node)   {
-PythonAPI::evalScript("visitErrorNode", this, (ParserRuleContext*) node);
+PythonAPI::evalScript("visitErrorNode", this, (parser_rule_context*) node);
 }
 
 
diff --git a/src/API/Surelog.cpp b/src/API/Surelog.cpp
new file mode 100644
index 0000000..7a5289a
--- /dev/null
+++ b/src/API/Surelog.cpp
@@ -0,0 +1,31 @@
+#include "CommandLine/CommandLineParser.h"
+#include "SourceCompile/SymbolTable.h"
+#include "SourceCompile/CompilationUnit.h"
+#include "SourceCompile/PreprocessFile.h"
+#include "SourceCompile/CompileSourceFile.h"
+#include "SourceCompile/Compiler.h"
+#include "ErrorReporting/ErrorContainer.h"
+#include "ErrorReporting/Report.h"
+#include "ErrorReporting/Waiver.h"
+
+#include "Surelog.h"
+
+SURELOG::scompiler* SURELOG::start_compiler (SURELOG::CommandLineParser* clp) {
+  Compiler* the_compiler = new SURELOG::Compiler(clp, clp->getErrorContainer(),
+						 clp->getSymbolTable());
+  bool status = the_compiler->compile();
+  if (!status)
+    return nullptr;
+  return (SURELOG::scompiler*) the_compiler;          
+}
+
+SURELOG::Design* SURELOG::get_design(SURELOG::scompiler* the_compiler) {
+  if (the_compiler)
+    return ((SURELOG::Compiler*) the_compiler)->getDesign();
+  return nullptr;
+}
+
+void SURELOG::shutdown_compiler(SURELOG::scompiler* the_compiler) {
+  delete (SURELOG::Compiler*) the_compiler;
+}
+
diff --git a/src/API/Surelog.h b/src/API/Surelog.h
new file mode 100644
index 0000000..0636f52
--- /dev/null
+++ b/src/API/Surelog.h
@@ -0,0 +1,34 @@
+/*
+ Copyright 2019 Alain Dargelas
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+/*
+ * File:   Surelog.h
+ * Author: alain
+ *
+ * Created on November 21, 2019, 10:09 PM
+ */
+
+#ifndef SURELOG_H
+#define SURELOG_H
+
+namespace SURELOG {
+  struct scompiler;
+  SURELOG::scompiler* start_compiler (SURELOG::CommandLineParser* clp); 
+  SURELOG::Design*    get_design(SURELOG::scompiler* compiler);
+  void       shutdown_compiler(SURELOG::scompiler* compiler);
+}  //
+
+#endif
diff --git a/src/API/generate_python_listener_api.tcl b/src/API/generate_python_listener_api.tcl
index b2669ab..a41967a 100755
--- a/src/API/generate_python_listener_api.tcl
+++ b/src/API/generate_python_listener_api.tcl
@@ -63,7 +63,7 @@
 puts $oid "    antlr4::CommonTokenStream* getTokenStream() { return m_tokens; }"
 puts $oid "    ~SV3_1aPythonListener();"
 puts $oid ""
-puts $oid " void logError(ErrorDefinition::ErrorType error, ParserRuleContext* ctx, std::string object, bool printColumn = false);"
+puts $oid " void logError(ErrorDefinition::ErrorType error, antlr4::ParserRuleContext* ctx, std::string object, bool printColumn = false);"
 puts $oid " void logError(ErrorDefinition::ErrorType, Location& loc, bool showDuplicates = false);"
 puts $oid " void logError(ErrorDefinition::ErrorType, Location& loc, Location& extraLoc, bool showDuplicates = false);"      
     
@@ -88,7 +88,7 @@
 	    set object "node"
 	}
 	puts $oid "$line  \{"
-        puts $oid "PythonAPI::evalScript(\"$ruleName\", this, (ParserRuleContext*) $object);"
+        puts $oid "PythonAPI::evalScript(\"$ruleName\", this, (parser_rule_context*) $object);"
 	puts $oid "\}"
         puts $oid ""
 
diff --git a/src/API/slapi_wrap.cxx b/src/API/slapi_wrap.cxx
index a9f81cb..43fbc70 100644
--- a/src/API/slapi_wrap.cxx
+++ b/src/API/slapi_wrap.cxx
@@ -3009,26 +3009,26 @@
 
 /* -------- TYPES TABLE (BEGIN) -------- */
 
-#define SWIGTYPE_p_ParserRuleContext swig_types[0]
-#define SWIGTYPE_p_SURELOG__ClassDefinition swig_types[1]
-#define SWIGTYPE_p_SURELOG__Design swig_types[2]
-#define SWIGTYPE_p_SURELOG__DesignComponent swig_types[3]
-#define SWIGTYPE_p_SURELOG__ErrorContainer swig_types[4]
-#define SWIGTYPE_p_SURELOG__FileContent swig_types[5]
-#define SWIGTYPE_p_SURELOG__ModuleDefinition swig_types[6]
-#define SWIGTYPE_p_SURELOG__ModuleInstance swig_types[7]
-#define SWIGTYPE_p_SURELOG__Package swig_types[8]
-#define SWIGTYPE_p_SURELOG__Program swig_types[9]
-#define SWIGTYPE_p_SURELOG__SV3_1aPythonListener swig_types[10]
-#define SWIGTYPE_p_VObjectType swig_types[11]
-#define SWIGTYPE_p_allocator_type swig_types[12]
+#define SWIGTYPE_p_SURELOG__ClassDefinition swig_types[0]
+#define SWIGTYPE_p_SURELOG__Design swig_types[1]
+#define SWIGTYPE_p_SURELOG__DesignComponent swig_types[2]
+#define SWIGTYPE_p_SURELOG__ErrorContainer swig_types[3]
+#define SWIGTYPE_p_SURELOG__FileContent swig_types[4]
+#define SWIGTYPE_p_SURELOG__ModuleDefinition swig_types[5]
+#define SWIGTYPE_p_SURELOG__ModuleInstance swig_types[6]
+#define SWIGTYPE_p_SURELOG__Package swig_types[7]
+#define SWIGTYPE_p_SURELOG__Program swig_types[8]
+#define SWIGTYPE_p_SURELOG__SV3_1aPythonListener swig_types[9]
+#define SWIGTYPE_p_VObjectType swig_types[10]
+#define SWIGTYPE_p_allocator_type swig_types[11]
+#define SWIGTYPE_p_antlr4__ParserRuleContext swig_types[12]
 #define SWIGTYPE_p_char swig_types[13]
 #define SWIGTYPE_p_difference_type swig_types[14]
 #define SWIGTYPE_p_p_PyObject swig_types[15]
 #define SWIGTYPE_p_size_type swig_types[16]
 #define SWIGTYPE_p_std__allocatorT_unsigned_int_t swig_types[17]
 #define SWIGTYPE_p_std__invalid_argument swig_types[18]
-#define SWIGTYPE_p_std__vectorT_ParserRuleContext_p_std__allocatorT_ParserRuleContext_p_t_t swig_types[19]
+#define SWIGTYPE_p_std__vectorT_antlr4__ParserRuleContext_p_std__allocatorT_antlr4__ParserRuleContext_p_t_t swig_types[19]
 #define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[20]
 #define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[21]
 #define SWIGTYPE_p_swig__SwigPyIterator swig_types[22]
@@ -8136,7 +8136,7 @@
 SWIGINTERN PyObject *_wrap_SLaddErrorContext__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SURELOG::SV3_1aPythonListener *arg1 = (SURELOG::SV3_1aPythonListener *) 0 ;
-  ParserRuleContext *arg2 = (ParserRuleContext *) 0 ;
+  antlr4::ParserRuleContext *arg2 = (antlr4::ParserRuleContext *) 0 ;
   char *arg3 = (char *) 0 ;
   char *arg4 = (char *) 0 ;
   bool arg5 ;
@@ -8164,11 +8164,11 @@
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SLaddErrorContext" "', argument " "1"" of type '" "SURELOG::SV3_1aPythonListener *""'"); 
   }
   arg1 = reinterpret_cast< SURELOG::SV3_1aPythonListener * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLaddErrorContext" "', argument " "2"" of type '" "ParserRuleContext *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLaddErrorContext" "', argument " "2"" of type '" "antlr4::ParserRuleContext *""'"); 
   }
-  arg2 = reinterpret_cast< ParserRuleContext * >(argp2);
+  arg2 = reinterpret_cast< antlr4::ParserRuleContext * >(argp2);
   res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
   if (!SWIG_IsOK(res3)) {
     SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SLaddErrorContext" "', argument " "3"" of type '" "char const *""'");
@@ -8199,7 +8199,7 @@
 SWIGINTERN PyObject *_wrap_SLaddErrorContext__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SURELOG::SV3_1aPythonListener *arg1 = (SURELOG::SV3_1aPythonListener *) 0 ;
-  ParserRuleContext *arg2 = (ParserRuleContext *) 0 ;
+  antlr4::ParserRuleContext *arg2 = (antlr4::ParserRuleContext *) 0 ;
   char *arg3 = (char *) 0 ;
   char *arg4 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -8223,11 +8223,11 @@
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SLaddErrorContext" "', argument " "1"" of type '" "SURELOG::SV3_1aPythonListener *""'"); 
   }
   arg1 = reinterpret_cast< SURELOG::SV3_1aPythonListener * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLaddErrorContext" "', argument " "2"" of type '" "ParserRuleContext *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLaddErrorContext" "', argument " "2"" of type '" "antlr4::ParserRuleContext *""'"); 
   }
-  arg2 = reinterpret_cast< ParserRuleContext * >(argp2);
+  arg2 = reinterpret_cast< antlr4::ParserRuleContext * >(argp2);
   res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
   if (!SWIG_IsOK(res3)) {
     SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SLaddErrorContext" "', argument " "3"" of type '" "char const *""'");
@@ -8269,7 +8269,7 @@
     _v = SWIG_CheckState(res);
     if (_v) {
       void *vptr = 0;
-      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ParserRuleContext, 0);
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_antlr4__ParserRuleContext, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
         int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
@@ -8291,7 +8291,7 @@
     _v = SWIG_CheckState(res);
     if (_v) {
       void *vptr = 0;
-      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ParserRuleContext, 0);
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_antlr4__ParserRuleContext, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
         int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
@@ -8316,8 +8316,8 @@
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'SLaddErrorContext'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    SURELOG::SLaddErrorContext(SURELOG::SV3_1aPythonListener *,ParserRuleContext *,char const *,char const *,bool)\n"
-    "    SURELOG::SLaddErrorContext(SURELOG::SV3_1aPythonListener *,ParserRuleContext *,char const *,char const *)\n");
+    "    SURELOG::SLaddErrorContext(SURELOG::SV3_1aPythonListener *,antlr4::ParserRuleContext *,char const *,char const *,bool)\n"
+    "    SURELOG::SLaddErrorContext(SURELOG::SV3_1aPythonListener *,antlr4::ParserRuleContext *,char const *,char const *)\n");
   return 0;
 }
 
@@ -8325,8 +8325,8 @@
 SWIGINTERN PyObject *_wrap_SLaddMLErrorContext__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SURELOG::SV3_1aPythonListener *arg1 = (SURELOG::SV3_1aPythonListener *) 0 ;
-  ParserRuleContext *arg2 = (ParserRuleContext *) 0 ;
-  ParserRuleContext *arg3 = (ParserRuleContext *) 0 ;
+  antlr4::ParserRuleContext *arg2 = (antlr4::ParserRuleContext *) 0 ;
+  antlr4::ParserRuleContext *arg3 = (antlr4::ParserRuleContext *) 0 ;
   char *arg4 = (char *) 0 ;
   char *arg5 = (char *) 0 ;
   char *arg6 = (char *) 0 ;
@@ -8362,16 +8362,16 @@
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SLaddMLErrorContext" "', argument " "1"" of type '" "SURELOG::SV3_1aPythonListener *""'"); 
   }
   arg1 = reinterpret_cast< SURELOG::SV3_1aPythonListener * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLaddMLErrorContext" "', argument " "2"" of type '" "ParserRuleContext *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLaddMLErrorContext" "', argument " "2"" of type '" "antlr4::ParserRuleContext *""'"); 
   }
-  arg2 = reinterpret_cast< ParserRuleContext * >(argp2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  arg2 = reinterpret_cast< antlr4::ParserRuleContext * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SLaddMLErrorContext" "', argument " "3"" of type '" "ParserRuleContext *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SLaddMLErrorContext" "', argument " "3"" of type '" "antlr4::ParserRuleContext *""'"); 
   }
-  arg3 = reinterpret_cast< ParserRuleContext * >(argp3);
+  arg3 = reinterpret_cast< antlr4::ParserRuleContext * >(argp3);
   res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
   if (!SWIG_IsOK(res4)) {
     SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "SLaddMLErrorContext" "', argument " "4"" of type '" "char const *""'");
@@ -8409,8 +8409,8 @@
 SWIGINTERN PyObject *_wrap_SLaddMLErrorContext__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SURELOG::SV3_1aPythonListener *arg1 = (SURELOG::SV3_1aPythonListener *) 0 ;
-  ParserRuleContext *arg2 = (ParserRuleContext *) 0 ;
-  ParserRuleContext *arg3 = (ParserRuleContext *) 0 ;
+  antlr4::ParserRuleContext *arg2 = (antlr4::ParserRuleContext *) 0 ;
+  antlr4::ParserRuleContext *arg3 = (antlr4::ParserRuleContext *) 0 ;
   char *arg4 = (char *) 0 ;
   char *arg5 = (char *) 0 ;
   char *arg6 = (char *) 0 ;
@@ -8442,16 +8442,16 @@
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SLaddMLErrorContext" "', argument " "1"" of type '" "SURELOG::SV3_1aPythonListener *""'"); 
   }
   arg1 = reinterpret_cast< SURELOG::SV3_1aPythonListener * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLaddMLErrorContext" "', argument " "2"" of type '" "ParserRuleContext *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLaddMLErrorContext" "', argument " "2"" of type '" "antlr4::ParserRuleContext *""'"); 
   }
-  arg2 = reinterpret_cast< ParserRuleContext * >(argp2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  arg2 = reinterpret_cast< antlr4::ParserRuleContext * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SLaddMLErrorContext" "', argument " "3"" of type '" "ParserRuleContext *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SLaddMLErrorContext" "', argument " "3"" of type '" "antlr4::ParserRuleContext *""'"); 
   }
-  arg3 = reinterpret_cast< ParserRuleContext * >(argp3);
+  arg3 = reinterpret_cast< antlr4::ParserRuleContext * >(argp3);
   res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
   if (!SWIG_IsOK(res4)) {
     SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "SLaddMLErrorContext" "', argument " "4"" of type '" "char const *""'");
@@ -8500,11 +8500,11 @@
     _v = SWIG_CheckState(res);
     if (_v) {
       void *vptr = 0;
-      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ParserRuleContext, 0);
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_antlr4__ParserRuleContext, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
         void *vptr = 0;
-        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_ParserRuleContext, 0);
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_antlr4__ParserRuleContext, 0);
         _v = SWIG_CheckState(res);
         if (_v) {
           int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
@@ -8531,11 +8531,11 @@
     _v = SWIG_CheckState(res);
     if (_v) {
       void *vptr = 0;
-      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ParserRuleContext, 0);
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_antlr4__ParserRuleContext, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
         void *vptr = 0;
-        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_ParserRuleContext, 0);
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_antlr4__ParserRuleContext, 0);
         _v = SWIG_CheckState(res);
         if (_v) {
           int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
@@ -8565,8 +8565,8 @@
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'SLaddMLErrorContext'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    SURELOG::SLaddMLErrorContext(SURELOG::SV3_1aPythonListener *,ParserRuleContext *,ParserRuleContext *,char const *,char const *,char const *,bool)\n"
-    "    SURELOG::SLaddMLErrorContext(SURELOG::SV3_1aPythonListener *,ParserRuleContext *,ParserRuleContext *,char const *,char const *,char const *)\n");
+    "    SURELOG::SLaddMLErrorContext(SURELOG::SV3_1aPythonListener *,antlr4::ParserRuleContext *,antlr4::ParserRuleContext *,char const *,char const *,char const *,bool)\n"
+    "    SURELOG::SLaddMLErrorContext(SURELOG::SV3_1aPythonListener *,antlr4::ParserRuleContext *,antlr4::ParserRuleContext *,char const *,char const *,char const *)\n");
   return 0;
 }
 
@@ -8691,7 +8691,7 @@
 SWIGINTERN PyObject *_wrap_SLgetFile__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SURELOG::SV3_1aPythonListener *arg1 = (SURELOG::SV3_1aPythonListener *) 0 ;
-  ParserRuleContext *arg2 = (ParserRuleContext *) 0 ;
+  antlr4::ParserRuleContext *arg2 = (antlr4::ParserRuleContext *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -8706,11 +8706,11 @@
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SLgetFile" "', argument " "1"" of type '" "SURELOG::SV3_1aPythonListener *""'"); 
   }
   arg1 = reinterpret_cast< SURELOG::SV3_1aPythonListener * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetFile" "', argument " "2"" of type '" "ParserRuleContext *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetFile" "', argument " "2"" of type '" "antlr4::ParserRuleContext *""'"); 
   }
-  arg2 = reinterpret_cast< ParserRuleContext * >(argp2);
+  arg2 = reinterpret_cast< antlr4::ParserRuleContext * >(argp2);
   result = SURELOG::SLgetFile(arg1,arg2);
   resultobj = SWIG_From_std_string(static_cast< std::string >(result));
   return resultobj;
@@ -8722,7 +8722,7 @@
 SWIGINTERN PyObject *_wrap_SLgetLine__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SURELOG::SV3_1aPythonListener *arg1 = (SURELOG::SV3_1aPythonListener *) 0 ;
-  ParserRuleContext *arg2 = (ParserRuleContext *) 0 ;
+  antlr4::ParserRuleContext *arg2 = (antlr4::ParserRuleContext *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -8737,11 +8737,11 @@
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SLgetLine" "', argument " "1"" of type '" "SURELOG::SV3_1aPythonListener *""'"); 
   }
   arg1 = reinterpret_cast< SURELOG::SV3_1aPythonListener * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetLine" "', argument " "2"" of type '" "ParserRuleContext *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetLine" "', argument " "2"" of type '" "antlr4::ParserRuleContext *""'"); 
   }
-  arg2 = reinterpret_cast< ParserRuleContext * >(argp2);
+  arg2 = reinterpret_cast< antlr4::ParserRuleContext * >(argp2);
   result = (int)SURELOG::SLgetLine(arg1,arg2);
   resultobj = SWIG_From_int(static_cast< int >(result));
   return resultobj;
@@ -8753,7 +8753,7 @@
 SWIGINTERN PyObject *_wrap_SLgetColumn(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SURELOG::SV3_1aPythonListener *arg1 = (SURELOG::SV3_1aPythonListener *) 0 ;
-  ParserRuleContext *arg2 = (ParserRuleContext *) 0 ;
+  antlr4::ParserRuleContext *arg2 = (antlr4::ParserRuleContext *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -8768,11 +8768,11 @@
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SLgetColumn" "', argument " "1"" of type '" "SURELOG::SV3_1aPythonListener *""'"); 
   }
   arg1 = reinterpret_cast< SURELOG::SV3_1aPythonListener * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetColumn" "', argument " "2"" of type '" "ParserRuleContext *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetColumn" "', argument " "2"" of type '" "antlr4::ParserRuleContext *""'"); 
   }
-  arg2 = reinterpret_cast< ParserRuleContext * >(argp2);
+  arg2 = reinterpret_cast< antlr4::ParserRuleContext * >(argp2);
   result = (int)SURELOG::SLgetColumn(arg1,arg2);
   resultobj = SWIG_From_int(static_cast< int >(result));
   return resultobj;
@@ -8784,7 +8784,7 @@
 SWIGINTERN PyObject *_wrap_SLgetText(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SURELOG::SV3_1aPythonListener *arg1 = (SURELOG::SV3_1aPythonListener *) 0 ;
-  ParserRuleContext *arg2 = (ParserRuleContext *) 0 ;
+  antlr4::ParserRuleContext *arg2 = (antlr4::ParserRuleContext *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -8799,11 +8799,11 @@
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SLgetText" "', argument " "1"" of type '" "SURELOG::SV3_1aPythonListener *""'"); 
   }
   arg1 = reinterpret_cast< SURELOG::SV3_1aPythonListener * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetText" "', argument " "2"" of type '" "ParserRuleContext *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetText" "', argument " "2"" of type '" "antlr4::ParserRuleContext *""'"); 
   }
-  arg2 = reinterpret_cast< ParserRuleContext * >(argp2);
+  arg2 = reinterpret_cast< antlr4::ParserRuleContext * >(argp2);
   result = SURELOG::SLgetText(arg1,arg2);
   resultobj = SWIG_From_std_string(static_cast< std::string >(result));
   return resultobj;
@@ -8815,7 +8815,7 @@
 SWIGINTERN PyObject *_wrap_SLgetTokens(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SURELOG::SV3_1aPythonListener *arg1 = (SURELOG::SV3_1aPythonListener *) 0 ;
-  ParserRuleContext *arg2 = (ParserRuleContext *) 0 ;
+  antlr4::ParserRuleContext *arg2 = (antlr4::ParserRuleContext *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -8830,11 +8830,11 @@
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SLgetTokens" "', argument " "1"" of type '" "SURELOG::SV3_1aPythonListener *""'"); 
   }
   arg1 = reinterpret_cast< SURELOG::SV3_1aPythonListener * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetTokens" "', argument " "2"" of type '" "ParserRuleContext *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetTokens" "', argument " "2"" of type '" "antlr4::ParserRuleContext *""'"); 
   }
-  arg2 = reinterpret_cast< ParserRuleContext * >(argp2);
+  arg2 = reinterpret_cast< antlr4::ParserRuleContext * >(argp2);
   result = SURELOG::SLgetTokens(arg1,arg2);
   resultobj = SWIG_NewPointerObj((new std::vector< std::string,std::allocator< std::string > >(static_cast< const std::vector< std::string,std::allocator< std::string > >& >(result))), SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
@@ -8846,14 +8846,14 @@
 SWIGINTERN PyObject *_wrap_SLgetParentContext(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SURELOG::SV3_1aPythonListener *arg1 = (SURELOG::SV3_1aPythonListener *) 0 ;
-  ParserRuleContext *arg2 = (ParserRuleContext *) 0 ;
+  antlr4::ParserRuleContext *arg2 = (antlr4::ParserRuleContext *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  ParserRuleContext *result = 0 ;
+  antlr4::ParserRuleContext *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:SLgetParentContext",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SURELOG__SV3_1aPythonListener, 0 |  0 );
@@ -8861,13 +8861,13 @@
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SLgetParentContext" "', argument " "1"" of type '" "SURELOG::SV3_1aPythonListener *""'"); 
   }
   arg1 = reinterpret_cast< SURELOG::SV3_1aPythonListener * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetParentContext" "', argument " "2"" of type '" "ParserRuleContext *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetParentContext" "', argument " "2"" of type '" "antlr4::ParserRuleContext *""'"); 
   }
-  arg2 = reinterpret_cast< ParserRuleContext * >(argp2);
-  result = (ParserRuleContext *)SURELOG::SLgetParentContext(arg1,arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  arg2 = reinterpret_cast< antlr4::ParserRuleContext * >(argp2);
+  result = (antlr4::ParserRuleContext *)SURELOG::SLgetParentContext(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -8877,14 +8877,14 @@
 SWIGINTERN PyObject *_wrap_SLgetChildrenContext(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SURELOG::SV3_1aPythonListener *arg1 = (SURELOG::SV3_1aPythonListener *) 0 ;
-  ParserRuleContext *arg2 = (ParserRuleContext *) 0 ;
+  antlr4::ParserRuleContext *arg2 = (antlr4::ParserRuleContext *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  SwigValueWrapper< std::vector< ParserRuleContext *,std::allocator< ParserRuleContext * > > > result;
+  SwigValueWrapper< std::vector< antlr4::ParserRuleContext *,std::allocator< antlr4::ParserRuleContext * > > > result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:SLgetChildrenContext",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SURELOG__SV3_1aPythonListener, 0 |  0 );
@@ -8892,13 +8892,13 @@
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SLgetChildrenContext" "', argument " "1"" of type '" "SURELOG::SV3_1aPythonListener *""'"); 
   }
   arg1 = reinterpret_cast< SURELOG::SV3_1aPythonListener * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ParserRuleContext, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_antlr4__ParserRuleContext, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetChildrenContext" "', argument " "2"" of type '" "ParserRuleContext *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SLgetChildrenContext" "', argument " "2"" of type '" "antlr4::ParserRuleContext *""'"); 
   }
-  arg2 = reinterpret_cast< ParserRuleContext * >(argp2);
+  arg2 = reinterpret_cast< antlr4::ParserRuleContext * >(argp2);
   result = SURELOG::SLgetChildrenContext(arg1,arg2);
-  resultobj = SWIG_NewPointerObj((new std::vector< ParserRuleContext *,std::allocator< ParserRuleContext * > >(static_cast< const std::vector< ParserRuleContext *,std::allocator< ParserRuleContext * > >& >(result))), SWIGTYPE_p_std__vectorT_ParserRuleContext_p_std__allocatorT_ParserRuleContext_p_t_t, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj((new std::vector< antlr4::ParserRuleContext *,std::allocator< antlr4::ParserRuleContext * > >(static_cast< const std::vector< antlr4::ParserRuleContext *,std::allocator< antlr4::ParserRuleContext * > >& >(result))), SWIGTYPE_p_std__vectorT_antlr4__ParserRuleContext_p_std__allocatorT_antlr4__ParserRuleContext_p_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -8977,7 +8977,7 @@
     _v = SWIG_CheckState(res);
     if (_v) {
       void *vptr = 0;
-      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ParserRuleContext, 0);
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_antlr4__ParserRuleContext, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
         return _wrap_SLgetFile__SWIG_0(self, args);
@@ -9003,7 +9003,7 @@
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'SLgetFile'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    SURELOG::SLgetFile(SURELOG::SV3_1aPythonListener *,ParserRuleContext *)\n"
+    "    SURELOG::SLgetFile(SURELOG::SV3_1aPythonListener *,antlr4::ParserRuleContext *)\n"
     "    SURELOG::SLgetFile(SURELOG::FileContent *,NodeId)\n");
   return 0;
 }
@@ -9152,7 +9152,7 @@
     _v = SWIG_CheckState(res);
     if (_v) {
       void *vptr = 0;
-      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ParserRuleContext, 0);
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_antlr4__ParserRuleContext, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
         return _wrap_SLgetLine__SWIG_0(self, args);
@@ -9178,7 +9178,7 @@
 fail:
   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'SLgetLine'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    SURELOG::SLgetLine(SURELOG::SV3_1aPythonListener *,ParserRuleContext *)\n"
+    "    SURELOG::SLgetLine(SURELOG::SV3_1aPythonListener *,antlr4::ParserRuleContext *)\n"
     "    SURELOG::SLgetLine(SURELOG::FileContent *,NodeId)\n");
   return 0;
 }
@@ -11110,7 +11110,6 @@
 
 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
 
-static swig_type_info _swigt__p_ParserRuleContext = {"_p_ParserRuleContext", "ParserRuleContext *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_SURELOG__ClassDefinition = {"_p_SURELOG__ClassDefinition", "SURELOG::ClassDefinition *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_SURELOG__Design = {"_p_SURELOG__Design", "SURELOG::Design *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_SURELOG__DesignComponent = {"_p_SURELOG__DesignComponent", "SURELOG::DesignComponent *", 0, 0, (void*)0, 0};
@@ -11123,13 +11122,14 @@
 static swig_type_info _swigt__p_SURELOG__SV3_1aPythonListener = {"_p_SURELOG__SV3_1aPythonListener", "SURELOG::SV3_1aPythonListener *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_VObjectType = {"_p_VObjectType", "VObjectType *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_allocator_type = {"_p_allocator_type", "allocator_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_antlr4__ParserRuleContext = {"_p_antlr4__ParserRuleContext", "antlr4::ParserRuleContext *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_difference_type = {"_p_difference_type", "difference_type *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_p_PyObject = {"_p_p_PyObject", "PyObject **", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_size_type = {"_p_size_type", "size_type *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__allocatorT_unsigned_int_t = {"_p_std__allocatorT_unsigned_int_t", "std::vector< unsigned int >::allocator_type *|std::allocator< unsigned int > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__invalid_argument = {"_p_std__invalid_argument", "std::invalid_argument *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorT_ParserRuleContext_p_std__allocatorT_ParserRuleContext_p_t_t = {"_p_std__vectorT_ParserRuleContext_p_std__allocatorT_ParserRuleContext_p_t_t", "std::vector< ParserRuleContext *,std::allocator< ParserRuleContext * > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_antlr4__ParserRuleContext_p_std__allocatorT_antlr4__ParserRuleContext_p_t_t = {"_p_std__vectorT_antlr4__ParserRuleContext_p_std__allocatorT_antlr4__ParserRuleContext_p_t_t", "std::vector< antlr4::ParserRuleContext *,std::allocator< antlr4::ParserRuleContext * > > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__vectorT_std__string_std__allocatorT_std__string_t_t = {"_p_std__vectorT_std__string_std__allocatorT_std__string_t_t", "std::vector< std::string,std::allocator< std::string > > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t = {"_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t", "std::vector< unsigned int,std::allocator< unsigned int > > *|SURELOG::UIntVector *|std::vector< unsigned int > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_swig__SwigPyIterator = {"_p_swig__SwigPyIterator", "swig::SwigPyIterator *", 0, 0, (void*)0, 0};
@@ -11137,7 +11137,6 @@
 static swig_type_info _swigt__p_value_type = {"_p_value_type", "value_type *", 0, 0, (void*)0, 0};
 
 static swig_type_info *swig_type_initial[] = {
-  &_swigt__p_ParserRuleContext,
   &_swigt__p_SURELOG__ClassDefinition,
   &_swigt__p_SURELOG__Design,
   &_swigt__p_SURELOG__DesignComponent,
@@ -11150,13 +11149,14 @@
   &_swigt__p_SURELOG__SV3_1aPythonListener,
   &_swigt__p_VObjectType,
   &_swigt__p_allocator_type,
+  &_swigt__p_antlr4__ParserRuleContext,
   &_swigt__p_char,
   &_swigt__p_difference_type,
   &_swigt__p_p_PyObject,
   &_swigt__p_size_type,
   &_swigt__p_std__allocatorT_unsigned_int_t,
   &_swigt__p_std__invalid_argument,
-  &_swigt__p_std__vectorT_ParserRuleContext_p_std__allocatorT_ParserRuleContext_p_t_t,
+  &_swigt__p_std__vectorT_antlr4__ParserRuleContext_p_std__allocatorT_antlr4__ParserRuleContext_p_t_t,
   &_swigt__p_std__vectorT_std__string_std__allocatorT_std__string_t_t,
   &_swigt__p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t,
   &_swigt__p_swig__SwigPyIterator,
@@ -11164,7 +11164,6 @@
   &_swigt__p_value_type,
 };
 
-static swig_cast_info _swigc__p_ParserRuleContext[] = {  {&_swigt__p_ParserRuleContext, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_SURELOG__ClassDefinition[] = {  {&_swigt__p_SURELOG__ClassDefinition, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_SURELOG__Design[] = {  {&_swigt__p_SURELOG__Design, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_SURELOG__DesignComponent[] = {  {&_swigt__p_SURELOG__DesignComponent, 0, 0, 0},{0, 0, 0, 0}};
@@ -11177,13 +11176,14 @@
 static swig_cast_info _swigc__p_SURELOG__SV3_1aPythonListener[] = {  {&_swigt__p_SURELOG__SV3_1aPythonListener, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_VObjectType[] = {  {&_swigt__p_VObjectType, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_allocator_type[] = {  {&_swigt__p_allocator_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_antlr4__ParserRuleContext[] = {  {&_swigt__p_antlr4__ParserRuleContext, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_difference_type[] = {  {&_swigt__p_difference_type, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_p_PyObject[] = {  {&_swigt__p_p_PyObject, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_size_type[] = {  {&_swigt__p_size_type, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__allocatorT_unsigned_int_t[] = {  {&_swigt__p_std__allocatorT_unsigned_int_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__invalid_argument[] = {  {&_swigt__p_std__invalid_argument, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorT_ParserRuleContext_p_std__allocatorT_ParserRuleContext_p_t_t[] = {  {&_swigt__p_std__vectorT_ParserRuleContext_p_std__allocatorT_ParserRuleContext_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_antlr4__ParserRuleContext_p_std__allocatorT_antlr4__ParserRuleContext_p_t_t[] = {  {&_swigt__p_std__vectorT_antlr4__ParserRuleContext_p_std__allocatorT_antlr4__ParserRuleContext_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__vectorT_std__string_std__allocatorT_std__string_t_t[] = {  {&_swigt__p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t[] = {  {&_swigt__p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_swig__SwigPyIterator[] = {  {&_swigt__p_swig__SwigPyIterator, 0, 0, 0},{0, 0, 0, 0}};
@@ -11191,7 +11191,6 @@
 static swig_cast_info _swigc__p_value_type[] = {  {&_swigt__p_value_type, 0, 0, 0},{0, 0, 0, 0}};
 
 static swig_cast_info *swig_cast_initial[] = {
-  _swigc__p_ParserRuleContext,
   _swigc__p_SURELOG__ClassDefinition,
   _swigc__p_SURELOG__Design,
   _swigc__p_SURELOG__DesignComponent,
@@ -11204,13 +11203,14 @@
   _swigc__p_SURELOG__SV3_1aPythonListener,
   _swigc__p_VObjectType,
   _swigc__p_allocator_type,
+  _swigc__p_antlr4__ParserRuleContext,
   _swigc__p_char,
   _swigc__p_difference_type,
   _swigc__p_p_PyObject,
   _swigc__p_size_type,
   _swigc__p_std__allocatorT_unsigned_int_t,
   _swigc__p_std__invalid_argument,
-  _swigc__p_std__vectorT_ParserRuleContext_p_std__allocatorT_ParserRuleContext_p_t_t,
+  _swigc__p_std__vectorT_antlr4__ParserRuleContext_p_std__allocatorT_antlr4__ParserRuleContext_p_t_t,
   _swigc__p_std__vectorT_std__string_std__allocatorT_std__string_t_t,
   _swigc__p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t,
   _swigc__p_swig__SwigPyIterator,
diff --git a/src/Design/Design.cpp b/src/Design/Design.cpp
index e7f32b5..c4b7c25 100644
--- a/src/Design/Design.cpp
+++ b/src/Design/Design.cpp
@@ -77,8 +77,7 @@
   std::string tree;
   ModuleInstance* tmp;
   std::queue<ModuleInstance*> queue;
-  ErrorContainer* errors = m_compiler->getErrorContainer();
-  SymbolTable* symbols = errors->getSymbolTable();
+  SymbolTable* symbols = m_errors->getSymbolTable();
   for (auto instance : m_topLevelModuleInstances) {
     queue.push(instance);
   }
@@ -103,31 +102,31 @@
     if (type == slUdp_instantiation) {
       type_s = "[UDP]";
       Error err(ErrorDefinition::ELAB_INSTANCE_PATH, loc);
-      errors->addError(err);
+      m_errors->addError(err);
     } else if (type == VObjectType::slModule_instantiation) {
       type_s = "[MOD]";
       Error err(ErrorDefinition::ELAB_INSTANCE_PATH, loc);
-      errors->addError(err);
+      m_errors->addError(err);
     } else if (type == VObjectType::slGate_instantiation) {
       type_s = "[GAT]";
       Error err(ErrorDefinition::ELAB_INSTANCE_PATH, loc);
-      errors->addError(err);
+      m_errors->addError(err);
     } else if (type == slInterface_instantiation) {
       type_s = "[I/F]";
       Error err(ErrorDefinition::ELAB_INTERFACE_INSTANCE_PATH, loc);
-      errors->addError(err);
+      m_errors->addError(err);
     } else if (type == slProgram_instantiation) {
       type_s = "[PRG]";
       Error err(ErrorDefinition::ELAB_PROGRAM_INSTANCE_PATH, loc);
-      errors->addError(err);
+      m_errors->addError(err);
     } else if (type == slModule_declaration) {
       type_s = "[TOP]";
       Error err(ErrorDefinition::ELAB_INSTANCE_PATH, loc);
-      errors->addError(err);
+      m_errors->addError(err);
     } else {
       type_s = "[SCO]";
       Error err(ErrorDefinition::ELAB_SCOPE_PATH, loc);
-      errors->addError(err);
+      m_errors->addError(err);
     }
     tree += type_s + " " + def + undef + " " + tmp->getFullPathName() + "\n";
   }
@@ -315,13 +314,13 @@
            previous->getLocation()->Line(previous->getNodeId()))) {
         Location loc1(
             fC->getFileId(nodeId), fC->Line(nodeId), 0,
-            m_compiler->getErrorContainer()->getSymbolTable()->registerSymbol(
+            m_errors->getSymbolTable()->registerSymbol(
                 previous->getFullName()));
         Location loc2(previous->getLocation()->getFileId(previous->getNodeId()),
                       previous->getLocation()->Line(previous->getNodeId()), 0,
                       0);
         Error err(ErrorDefinition::ELAB_MULTI_DEFPARAM_ON_OBJECT, loc1, loc2);
-        m_compiler->getErrorContainer()->addError(err);
+        m_errors->addError(err);
       }
     }
     addDefParam_(path, fC, nodeId, value, (*itr).second);
@@ -355,11 +354,11 @@
       Location loc(
           parent->getLocation()->getFileId(parent->getNodeId()),
           parent->getLocation()->Line(parent->getNodeId()), 0,
-          m_compiler->getErrorContainer()->getSymbolTable()->registerSymbol(
+          m_errors->getSymbolTable()->registerSymbol(
               parent->getFullName()));
 
       Error err(ErrorDefinition::ELAB_UNMATCHED_DEFPARAM, loc);
-      m_compiler->getErrorContainer()->addError(err);
+      m_errors->addError(err);
     }
     for (auto param : parent->getChildren()) {
       checkDefParamUsage(param.second);
diff --git a/src/Design/Design.h b/src/Design/Design.h
index d22dba4..fbbb6e2 100644
--- a/src/Design/Design.h
+++ b/src/Design/Design.h
@@ -35,8 +35,8 @@
 
 class Design {
  public:
-  Design(Compiler* compiler, LibrarySet* librarySet, ConfigSet* configSet)
-      : m_compiler(compiler),
+  Design(ErrorContainer* errors, LibrarySet* librarySet, ConfigSet* configSet)
+      : m_errors(errors),
         m_librarySet(librarySet),
         m_configSet(configSet) {}
   Design(const Design& orig);
@@ -124,7 +124,7 @@
   void addClassDefinition(std::string className, ClassDefinition* classDef);
   ClassDefinition* getClassDefinition(std::string name);
 
-  Compiler* getCompiler() { return m_compiler; }
+  ErrorContainer* getErrorContainer() { return m_errors; }
 
   void orderPackages();
 
@@ -135,7 +135,7 @@
                     NodeId nodeId, Value* value, DefParam* parent);
   DefParam* getDefParam_(std::vector<std::string>& path, DefParam* parent);
 
-  Compiler* m_compiler;
+  ErrorContainer* m_errors;
   LibrarySet* m_librarySet;
   ConfigSet* m_configSet;
   FileIdDesignContentMap m_fileContents;
diff --git a/src/Design/FileContent.cpp b/src/Design/FileContent.cpp
index c5aa6f0..df296f1 100644
--- a/src/Design/FileContent.cpp
+++ b/src/Design/FileContent.cpp
@@ -30,6 +30,7 @@
 #include <queue>
 #include <iostream>
 #include <stack>
+#include <string.h>
 
 using namespace SURELOG;
 
diff --git a/src/ErrorReporting/ErrorContainer.cpp b/src/ErrorReporting/ErrorContainer.cpp
index ec5ff0e..56423f8 100644
--- a/src/ErrorReporting/ErrorContainer.cpp
+++ b/src/ErrorReporting/ErrorContainer.cpp
@@ -20,7 +20,7 @@
  *
  * Created on March 5, 2017, 11:12 PM
  */
-
+#include "Python.h"
 #include "ErrorReporting/ErrorContainer.h"
 #include <mutex>
 #include <iostream>
@@ -252,7 +252,7 @@
         args.push_back(location);
         args.push_back(text);
         tmp = PythonAPI::evalScript("__main__", "SLformatMsg", args,
-                                    m_interpState);
+                                    (PyThreadState*) m_interpState);
       }
     }
   }
diff --git a/src/ErrorReporting/ErrorContainer.h b/src/ErrorReporting/ErrorContainer.h
index 7046138..ac99184 100644
--- a/src/ErrorReporting/ErrorContainer.h
+++ b/src/ErrorReporting/ErrorContainer.h
@@ -28,12 +28,11 @@
 #include <set>
 #include "ErrorReporting/ErrorDefinition.h"
 #include "ErrorReporting/Error.h"
-#include "Python.h"
 
 namespace SURELOG {
 
 class CommandLineParser;
-
+ 
 class ErrorContainer {
  public:
   class Stats {
@@ -74,7 +73,7 @@
   SymbolTable* getSymbolTable() { return m_symbolTable; }
   std::tuple<std::string, bool, bool> createErrorMessage(
       Error& error, bool reentrantPython = true);
-  void setPythonInterp(PyThreadState* interpState) {
+  void setPythonInterp(void* interpState) {
     m_interpState = interpState;
   }
 
@@ -86,7 +85,7 @@
   CommandLineParser* m_clp;
   bool m_reportedFatalErrorLogFile;
   SymbolTable* m_symbolTable;
-  PyThreadState* m_interpState;
+  void* m_interpState;
 };
 
 };  // namespace SURELOG
diff --git a/src/Expression/ExprBuilder.cpp b/src/Expression/ExprBuilder.cpp
index 6e68a21..50791ff 100644
--- a/src/Expression/ExprBuilder.cpp
+++ b/src/Expression/ExprBuilder.cpp
@@ -24,7 +24,8 @@
 
 #include <iostream>
 #include <sstream>
-
+#include <string.h>
+#include <math.h>
 #include "ErrorReporting/ErrorContainer.h"
 #include "Expression/ExprBuilder.h"
 #include "SourceCompile/VObjectTypes.h"
diff --git a/src/SourceCompile/CompileSourceFile.h b/src/SourceCompile/CompileSourceFile.h
index 34f188c..26f8dd5 100644
--- a/src/SourceCompile/CompileSourceFile.h
+++ b/src/SourceCompile/CompileSourceFile.h
@@ -23,6 +23,7 @@
 
 #ifndef COMPILESOURCEFILE_H
 #define COMPILESOURCEFILE_H
+#include "Python.h"
 #include <string>
 #include <vector>
 
diff --git a/src/SourceCompile/Compiler.cpp b/src/SourceCompile/Compiler.cpp
index 0fb79f5..6ed52ec 100644
--- a/src/SourceCompile/Compiler.cpp
+++ b/src/SourceCompile/Compiler.cpp
@@ -735,7 +735,7 @@
 bool Compiler::parseLibrariesDef_() {
   m_librarySet = new LibrarySet();
   m_configSet = new ConfigSet();
-  m_design = new Design(this, m_librarySet, m_configSet);
+  m_design = new Design(getErrorContainer(), m_librarySet, m_configSet);
   ParseLibraryDef* libParser = new ParseLibraryDef(
       m_commandLineParser, m_errors, m_symbolTable, m_librarySet, m_configSet);
   return libParser->parseLibrariesDefinition();
diff --git a/src/Utils/ParseUtils.h b/src/Utils/ParseUtils.h
index 6edaee9..254d333 100644
--- a/src/Utils/ParseUtils.h
+++ b/src/Utils/ParseUtils.h
@@ -23,13 +23,15 @@
 
 #ifndef PARSEUTILS_H
 #define PARSEUTILS_H
-
+#include "antlr4-runtime.h"
+#include "ParserRuleContext.h"
+using namespace antlr4;
 namespace SURELOG {
 
 class ParseUtils {
  public:
   static std::pair<int, int> getLineColumn(CommonTokenStream* stream,
-                                           ParserRuleContext* context);
+                                           antlr4::ParserRuleContext* context);
 
   static std::pair<int, int> getLineColumn(tree::TerminalNode* node);
 
diff --git a/src/hellosureworld.cpp b/src/hellosureworld.cpp
index 62b8403..c371b21 100644
--- a/src/hellosureworld.cpp
+++ b/src/hellosureworld.cpp
@@ -24,7 +24,8 @@
 // Example of usage:
 // cd tests/UnitElabBlock
 // hellosureworld top.v -parse -mutestdout
-
+#include <iostream>
+#include <functional>
 #include "surelog.h"
 
 int main(int argc, const char** argv) {
@@ -39,11 +40,9 @@
   errors->printMessages(clp->muteStdout());
   SURELOG::Design* design = NULL;
   if (success && (!clp->help())) {
-    SURELOG::Compiler* compiler =
-        new SURELOG::Compiler(clp, errors, symbolTable);
-    success = compiler->compile();
-    design = compiler->getDesign();
-    delete compiler;
+    SURELOG::scompiler* compiler = SURELOG::start_compiler(clp);
+    design = SURELOG::get_design(compiler);
+    SURELOG::shutdown_compiler(compiler);
     auto stats = errors->getErrorStats();
     code = (!success) | stats.nbFatal | stats.nbSyntax | stats.nbError;
   }
diff --git a/src/main.cpp b/src/main.cpp
index 554eaa8..1f8f794 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -21,23 +21,11 @@
  * Created on January 15, 2017, 12:15 AM
  */
 
-#include <cstdlib>
 #include <iostream>
 #include <string>
-#include<stdio.h>
-#include<sys/types.h>
-#include <unistd.h>
-#include "CommandLine/CommandLineParser.h"
-#include "SourceCompile/SymbolTable.h"
-#include "SourceCompile/CompilationUnit.h"
-#include "SourceCompile/PreprocessFile.h"
-#include "SourceCompile/CompileSourceFile.h"
-#include "SourceCompile/Compiler.h"
-#include "ErrorReporting/ErrorContainer.h"
+
+#include "surelog.h"
 #include "ErrorReporting/Report.h"
-#include "ErrorReporting/Waiver.h"
-#include "antlr4-runtime.h"
-using namespace antlr4;
 #include "API/PythonAPI.h"
 
 unsigned int executeCompilation(int argc, const char ** argv, bool diff_comp_mode, bool fileunit)
@@ -52,11 +40,10 @@
   errors->printMessages (clp->muteStdout ());
   if (success && (!clp->help()))
     {
-      SURELOG::Compiler* compiler = new SURELOG::Compiler (clp, errors, symbolTable);
-      success = compiler->compile ();
-      if (!success)
+      SURELOG::scompiler* compiler = SURELOG::start_compiler(clp);  
+      if (!compiler)
         codedReturn |= 1;
-      delete compiler;
+      SURELOG::shutdown_compiler(compiler);
     }
   SURELOG::ErrorContainer::Stats stats;
   if (!clp->help()) {
diff --git a/src/surelog.h b/src/surelog.h
index bcf78d4..56c86bb 100644
--- a/src/surelog.h
+++ b/src/surelog.h
@@ -14,25 +14,23 @@
  limitations under the License.
  */
 
+#ifndef SURELOG_PUBLIC_H
+#define SURELOG_PUBLIC_H
+
 // Header file for Surelog library
 
-// Compilation control classes
 #include "CommandLine/CommandLineParser.h"
 #include "SourceCompile/SymbolTable.h"
-#include "SourceCompile/CompilationUnit.h"
-#include "SourceCompile/PreprocessFile.h"
-#include "SourceCompile/CompileSourceFile.h"
-#include "SourceCompile/Compiler.h"
 #include "ErrorReporting/ErrorContainer.h"
-#include "ErrorReporting/Report.h"
 #include "ErrorReporting/Waiver.h"
 
-// Antlr headers
-#include "antlr4-runtime.h"
-using namespace antlr4;
-
-// Python API (optional - needed to be enabled early in the main with PythonAPI::init if needed)
+#ifdef PYTHON_NEEDED
+// Python API (optional - needed to be enabled early in the main
+//             with PythonAPI::init if needed)
 #include "API/PythonAPI.h"
+// Limited C-like API
+#include "API/SLAPI.h"
+#endif
 
 // Full C++ DataModel API
 #include "Common/ClockingBlockHolder.h"
@@ -76,10 +74,6 @@
 #include "Expression/ExprBuilder.h"
 #include "Expression/Expr.h"
 #include "Expression/Value.h"
+#include "API/Surelog.h"
 
-// Limited C-like API
-#include "API/SLAPI.h"
-
-
-
-
+#endif