User Guide
after_cvode_to_cnexp_visitor.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2023 Blue Brain Project, EPFL.
3  * See the top-level LICENSE file for details.
4  *
5  * SPDX-License-Identifier: Apache-2.0
6  */
7 
8 #pragma once
9 
10 /**
11  * \file
12  * \brief \copybrief nmodl::visitor::AfterCVodeToCnexpVisitor
13  */
14 
15 #include <sstream>
16 #include <string>
17 #include <utility>
18 #include <vector>
19 
20 #include "visitors/ast_visitor.hpp"
21 
22 namespace nmodl {
23 namespace visitor {
24 
25 /**
26  * \addtogroup visitor_classes
27  * \{
28  */
29 
30 /**
31  * \class AfterCVodeToCnexpVisitor
32  * \brief Visitor to change usage of after_cvode solver to cnexp
33  *
34  * `CVODE` is not supported in CoreNEURON. If MOD file has `after_cvode` solver then
35  * we can treat that as `cnexp`. In order to re-use existing passes, in this visitor we
36  * replace `after_cvode` with `cnexp`.
37  */
38 
40  public:
41  /// \name Ctor & dtor
42  /// \{
43 
44  /// Default constructor
45  AfterCVodeToCnexpVisitor() = default;
46 
47  /// \}
48  void visit_solve_block(ast::SolveBlock& node) override;
49 };
50 
51 /** \} */ // end of visitor_classes
52 
53 } // namespace visitor
54 } // namespace nmodl
nmodl::ast::SolveBlock
TODO.
Definition: solve_block.hpp:38
nmodl::visitor::AfterCVodeToCnexpVisitor::visit_solve_block
void visit_solve_block(ast::SolveBlock &node) override
visit node of type ast::SolveBlock
Definition: after_cvode_to_cnexp_visitor.cpp:19
nmodl::visitor::AfterCVodeToCnexpVisitor::AfterCVodeToCnexpVisitor
AfterCVodeToCnexpVisitor()=default
Default constructor.
nmodl
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
nmodl::visitor::AstVisitor
Concrete visitor for all AST classes.
Definition: ast_visitor.hpp:37
nmodl::visitor::AfterCVodeToCnexpVisitor
Visitor to change usage of after_cvode solver to cnexp.
Definition: after_cvode_to_cnexp_visitor.hpp:39
ast_visitor.hpp
Concrete visitor for all AST classes.