NEURON
after_cvode_to_cnexp_visitor.cpp
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 
9 
10 #include "ast/name.hpp"
11 #include "ast/solve_block.hpp"
12 #include "ast/string.hpp"
14 #include "utils/logger.hpp"
15 
16 namespace nmodl {
17 namespace visitor {
18 
20  const auto& method = node.get_method();
21  if (method != nullptr && method->get_node_name() == codegen::naming::AFTER_CVODE_METHOD) {
22  logger->warn("CVode solver of {} in {} replaced with cnexp solver",
23  node.get_block_name()->get_node_name(),
24  method->get_token()->position());
25  node.set_method(std::make_shared<ast::Name>(
26  std::make_shared<ast::String>(codegen::naming::CNEXP_METHOD)));
27  }
28 }
29 
30 } // namespace visitor
31 } // namespace nmodl
Visitor to change usage of after_cvode solver to cnexp.
void visit_solve_block(ast::SolveBlock &node) override
visit node of type ast::SolveBlock
Auto generated AST classes declaration.
static constexpr char CNEXP_METHOD[]
cnexp method in nmodl
static constexpr char AFTER_CVODE_METHOD[]
cvode method in nmodl
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
logger_type logger
Definition: logger.cpp:34
static Node * node(Object *)
Definition: netcvode.cpp:291
Auto generated AST classes declaration.
Auto generated AST classes declaration.