23 for (
const auto& derivative_block: derivative_blocks) {
24 const auto& block = std::dynamic_pointer_cast<ast::DerivativeBlock>(derivative_block);
27 node.visit_children(*
this);
31 const auto&
name =
node.get_block_name()->get_node_name();
32 const auto& method =
node.get_method();
34 node.set_method(std::make_shared<ast::Name>(
37 node.visit_children(*
this);
THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
Represents top level AST node for whole NMODL input.
std::unordered_set< std::string > derivative_block_names
void visit_solve_block(ast::SolveBlock &node) override
visit node of type ast::SolveBlock
void visit_program(ast::Program &node) override
visit node of type ast::Program
Auto generated AST classes declaration.
@ DERIVATIVE_BLOCK
type of ast::DerivativeBlock
Auto generated AST classes declaration.
static constexpr char DERIVIMPLICIT_METHOD[]
derivimplicit method in nmodl
encapsulates code generation backend implementations
std::vector< std::shared_ptr< const ast::Ast > > collect_nodes(const ast::Ast &node, const std::vector< ast::AstNodeType > &types)
traverse node recursively and collect nodes of given types
static Node * node(Object *)
Auto generated AST classes declaration.
Auto generated AST classes declaration.
Visitor for adding an explicit method to a SOLVE block which has an implicit one
Auto generated AST classes declaration.
Utility functions for visitors implementation.