NEURON
solve_without_method_visitor.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2025 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::SolveWithoutMethodVisitor
13  */
14 
15 #include "visitors/ast_visitor.hpp"
16 
17 #include <string>
18 #include <unordered_set>
19 
20 
21 namespace nmodl {
22 namespace visitor {
23 
24 /**
25  * \addtogroup visitor_classes
26  * \{
27  */
28 
29 /**
30  * \class SolveWithoutMethodVisitor
31  * \brief %Visitor for adding an explicit method to a SOLVE block which has an implicit one
32  */
34  private:
35  std::unordered_set<std::string> derivative_block_names;
36 
37  public:
38  void visit_program(ast::Program& node) override;
39  void visit_solve_block(ast::SolveBlock& node) override;
40 };
41 
42 /** \} */ // end of visitor_classes
43 
44 } // namespace visitor
45 } // namespace nmodl
Concrete visitor for all AST classes.
Represents top level AST node for whole NMODL input.
Definition: program.hpp:39
Concrete visitor for all AST classes.
Definition: ast_visitor.hpp:37
Visitor for adding an explicit method to a SOLVE block which has an implicit one
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
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
static Node * node(Object *)
Definition: netcvode.cpp:291