User Guide
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
nmodl::ast::SolveBlock
TODO.
Definition: solve_block.hpp:38
nmodl::codegen::naming::CNEXP_METHOD
static constexpr char CNEXP_METHOD[]
cnexp method in nmodl
Definition: codegen_naming.hpp:30
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::ast::SolveBlock::set_method
void set_method(std::shared_ptr< Name > &&method)
Setter for member variable SolveBlock::method (rvalue reference)
Definition: ast.cpp:4599
nmodl
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
name.hpp
Auto generated AST classes declaration.
nmodl::logger
logger_type logger
Definition: logger.cpp:34
codegen_naming.hpp
string.hpp
Auto generated AST classes declaration.
nmodl::ast::SolveBlock::get_block_name
std::shared_ptr< Name > get_block_name() const noexcept
Getter for member variable SolveBlock::block_name.
Definition: solve_block.hpp:177
nmodl::ast::SolveBlock::get_method
std::shared_ptr< Name > get_method() const noexcept
Getter for member variable SolveBlock::method.
Definition: solve_block.hpp:186
solve_block.hpp
Auto generated AST classes declaration.
after_cvode_to_cnexp_visitor.hpp
Visitor to change usage of after_cvode solver to cnexp.
logger.hpp
Implement logger based on spdlog library.
nmodl::codegen::naming::AFTER_CVODE_METHOD
static constexpr char AFTER_CVODE_METHOD[]
cvode method in nmodl
Definition: codegen_naming.hpp:33