NEURON
ast_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 ///
9 /// THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
10 ///
11 
12 #pragma once
13 
14 /**
15  *
16  * \dir
17  * \brief Auto generated visitors
18  *
19  * \file
20  * \brief \copybrief nmodl::visitor::AstVisitor
21  */
22 
23 #include "visitors/visitor.hpp"
24 
25 
26 namespace nmodl {
27 namespace visitor {
28 
29 /**
30  * \ingroup visitor_classes
31  * \{
32  */
33 
34 /**
35  * \brief Concrete visitor for all AST classes
36  */
37 class AstVisitor: public Visitor {
38  public:
39  void visit_node(ast::Node& node) override;
40  void visit_statement(ast::Statement& node) override;
41  void visit_expression(ast::Expression& node) override;
42  void visit_block(ast::Block& node) override;
43  void visit_identifier(ast::Identifier& node) override;
44  void visit_number(ast::Number& node) override;
45  void visit_string(ast::String& node) override;
46  void visit_integer(ast::Integer& node) override;
47  void visit_float(ast::Float& node) override;
48  void visit_double(ast::Double& node) override;
49  void visit_boolean(ast::Boolean& node) override;
50  void visit_name(ast::Name& node) override;
51  void visit_prime_name(ast::PrimeName& node) override;
53  void visit_var_name(ast::VarName& node) override;
54  void visit_argument(ast::Argument& node) override;
56  void visit_read_ion_var(ast::ReadIonVar& node) override;
60  void visit_range_var(ast::RangeVar& node) override;
61  void visit_global_var(ast::GlobalVar& node) override;
62  void visit_pointer_var(ast::PointerVar& node) override;
63  void visit_random_var(ast::RandomVar& node) override;
65  void visit_extern_var(ast::ExternVar& node) override;
66  void visit_param_block(ast::ParamBlock& node) override;
69  void visit_state_block(ast::StateBlock& node) override;
82  void visit_solve_block(ast::SolveBlock& node) override;
85  void visit_after_block(ast::AfterBlock& node) override;
86  void visit_ba_block(ast::BABlock& node) override;
87  void visit_for_netcon(ast::ForNetcon& node) override;
89  void visit_unit_block(ast::UnitBlock& node) override;
92  void visit_unit(ast::Unit& node) override;
93  void visit_double_unit(ast::DoubleUnit& node) override;
94  void visit_local_var(ast::LocalVar& node) override;
95  void visit_limits(ast::Limits& node) override;
106  void visit_lin_equation(ast::LinEquation& node) override;
108  void visit_watch(ast::Watch& node) override;
109  void visit_ba_block_type(ast::BABlockType& node) override;
110  void visit_unit_def(ast::UnitDef& node) override;
111  void visit_factor_def(ast::FactorDef& node) override;
112  void visit_valence(ast::Valence& node) override;
113  void visit_unit_state(ast::UnitState& node) override;
115  void visit_model(ast::Model& node) override;
116  void visit_define(ast::Define& node) override;
117  void visit_include(ast::Include& node) override;
118  void visit_param_assign(ast::ParamAssign& node) override;
125  void visit_if_statement(ast::IfStatement& node) override;
129  void visit_mutex_lock(ast::MutexLock& node) override;
130  void visit_mutex_unlock(ast::MutexUnlock& node) override;
131  void visit_conserve(ast::Conserve& node) override;
132  void visit_compartment(ast::Compartment& node) override;
133  void visit_lon_diffuse(ast::LonDiffuse& node) override;
138  void visit_suffix(ast::Suffix& node) override;
139  void visit_useion(ast::Useion& node) override;
140  void visit_nonspecific(ast::Nonspecific& node) override;
142  void visit_range(ast::Range& node) override;
143  void visit_global(ast::Global& node) override;
145  void visit_pointer(ast::Pointer& node) override;
147  void visit_external(ast::External& node) override;
148  void visit_thread_safe(ast::ThreadSafe& node) override;
149  void visit_verbatim(ast::Verbatim& node) override;
150  void visit_line_comment(ast::LineComment& node) override;
153  void visit_program(ast::Program& node) override;
157  void visit_cvode_block(ast::CvodeBlock& node) override;
162  void visit_update_dt(ast::UpdateDt& node) override;
163 };
164 
165 /**
166  * \brief Concrete constant visitor for all AST classes
167  */
169  public:
170  void visit_node(const ast::Node& node) override;
171  void visit_statement(const ast::Statement& node) override;
172  void visit_expression(const ast::Expression& node) override;
173  void visit_block(const ast::Block& node) override;
174  void visit_identifier(const ast::Identifier& node) override;
175  void visit_number(const ast::Number& node) override;
176  void visit_string(const ast::String& node) override;
177  void visit_integer(const ast::Integer& node) override;
178  void visit_float(const ast::Float& node) override;
179  void visit_double(const ast::Double& node) override;
180  void visit_boolean(const ast::Boolean& node) override;
181  void visit_name(const ast::Name& node) override;
182  void visit_prime_name(const ast::PrimeName& node) override;
183  void visit_indexed_name(const ast::IndexedName& node) override;
184  void visit_var_name(const ast::VarName& node) override;
185  void visit_argument(const ast::Argument& node) override;
186  void visit_react_var_name(const ast::ReactVarName& node) override;
187  void visit_read_ion_var(const ast::ReadIonVar& node) override;
188  void visit_write_ion_var(const ast::WriteIonVar& node) override;
190  void visit_electrode_cur_var(const ast::ElectrodeCurVar& node) override;
191  void visit_range_var(const ast::RangeVar& node) override;
192  void visit_global_var(const ast::GlobalVar& node) override;
193  void visit_pointer_var(const ast::PointerVar& node) override;
194  void visit_random_var(const ast::RandomVar& node) override;
196  void visit_extern_var(const ast::ExternVar& node) override;
197  void visit_param_block(const ast::ParamBlock& node) override;
198  void visit_independent_block(const ast::IndependentBlock& node) override;
199  void visit_assigned_block(const ast::AssignedBlock& node) override;
200  void visit_state_block(const ast::StateBlock& node) override;
201  void visit_initial_block(const ast::InitialBlock& node) override;
202  void visit_constructor_block(const ast::ConstructorBlock& node) override;
203  void visit_destructor_block(const ast::DestructorBlock& node) override;
204  void visit_statement_block(const ast::StatementBlock& node) override;
205  void visit_derivative_block(const ast::DerivativeBlock& node) override;
206  void visit_linear_block(const ast::LinearBlock& node) override;
207  void visit_non_linear_block(const ast::NonLinearBlock& node) override;
208  void visit_discrete_block(const ast::DiscreteBlock& node) override;
210  void visit_function_block(const ast::FunctionBlock& node) override;
211  void visit_procedure_block(const ast::ProcedureBlock& node) override;
212  void visit_net_receive_block(const ast::NetReceiveBlock& node) override;
213  void visit_solve_block(const ast::SolveBlock& node) override;
214  void visit_breakpoint_block(const ast::BreakpointBlock& node) override;
215  void visit_before_block(const ast::BeforeBlock& node) override;
216  void visit_after_block(const ast::AfterBlock& node) override;
217  void visit_ba_block(const ast::BABlock& node) override;
218  void visit_for_netcon(const ast::ForNetcon& node) override;
219  void visit_kinetic_block(const ast::KineticBlock& node) override;
220  void visit_unit_block(const ast::UnitBlock& node) override;
221  void visit_constant_block(const ast::ConstantBlock& node) override;
222  void visit_neuron_block(const ast::NeuronBlock& node) override;
223  void visit_unit(const ast::Unit& node) override;
224  void visit_double_unit(const ast::DoubleUnit& node) override;
225  void visit_local_var(const ast::LocalVar& node) override;
226  void visit_limits(const ast::Limits& node) override;
227  void visit_number_range(const ast::NumberRange& node) override;
228  void visit_constant_var(const ast::ConstantVar& node) override;
229  void visit_binary_operator(const ast::BinaryOperator& node) override;
230  void visit_unary_operator(const ast::UnaryOperator& node) override;
231  void visit_reaction_operator(const ast::ReactionOperator& node) override;
232  void visit_paren_expression(const ast::ParenExpression& node) override;
233  void visit_binary_expression(const ast::BinaryExpression& node) override;
235  void visit_unary_expression(const ast::UnaryExpression& node) override;
236  void visit_non_lin_equation(const ast::NonLinEquation& node) override;
237  void visit_lin_equation(const ast::LinEquation& node) override;
238  void visit_function_call(const ast::FunctionCall& node) override;
239  void visit_watch(const ast::Watch& node) override;
240  void visit_ba_block_type(const ast::BABlockType& node) override;
241  void visit_unit_def(const ast::UnitDef& node) override;
242  void visit_factor_def(const ast::FactorDef& node) override;
243  void visit_valence(const ast::Valence& node) override;
244  void visit_unit_state(const ast::UnitState& node) override;
246  void visit_model(const ast::Model& node) override;
247  void visit_define(const ast::Define& node) override;
248  void visit_include(const ast::Include& node) override;
249  void visit_param_assign(const ast::ParamAssign& node) override;
251  void visit_conductance_hint(const ast::ConductanceHint& node) override;
253  void visit_protect_statement(const ast::ProtectStatement& node) override;
254  void visit_from_statement(const ast::FromStatement& node) override;
255  void visit_while_statement(const ast::WhileStatement& node) override;
256  void visit_if_statement(const ast::IfStatement& node) override;
257  void visit_else_if_statement(const ast::ElseIfStatement& node) override;
258  void visit_else_statement(const ast::ElseStatement& node) override;
259  void visit_watch_statement(const ast::WatchStatement& node) override;
260  void visit_mutex_lock(const ast::MutexLock& node) override;
261  void visit_mutex_unlock(const ast::MutexUnlock& node) override;
262  void visit_conserve(const ast::Conserve& node) override;
263  void visit_compartment(const ast::Compartment& node) override;
264  void visit_lon_diffuse(const ast::LonDiffuse& node) override;
266  void visit_lag_statement(const ast::LagStatement& node) override;
268  void visit_table_statement(const ast::TableStatement& node) override;
269  void visit_suffix(const ast::Suffix& node) override;
270  void visit_useion(const ast::Useion& node) override;
271  void visit_nonspecific(const ast::Nonspecific& node) override;
272  void visit_electrode_current(const ast::ElectrodeCurrent& node) override;
273  void visit_range(const ast::Range& node) override;
274  void visit_global(const ast::Global& node) override;
275  void visit_random_var_list(const ast::RandomVarList& node) override;
276  void visit_pointer(const ast::Pointer& node) override;
277  void visit_bbcore_pointer(const ast::BbcorePointer& node) override;
278  void visit_external(const ast::External& node) override;
279  void visit_thread_safe(const ast::ThreadSafe& node) override;
280  void visit_verbatim(const ast::Verbatim& node) override;
281  void visit_line_comment(const ast::LineComment& node) override;
282  void visit_block_comment(const ast::BlockComment& node) override;
284  void visit_program(const ast::Program& node) override;
285  void visit_nrn_state_block(const ast::NrnStateBlock& node) override;
288  void visit_cvode_block(const ast::CvodeBlock& node) override;
293  void visit_update_dt(const ast::UpdateDt& node) override;
294 };
295 
296 /** \} */ // end of visitor_classes
297 
298 } // namespace visitor
299 } // namespace nmodl
300 
Represents a AFTER block in NMODL.
Definition: after_block.hpp:51
Represents an argument to functions and procedures.
Definition: argument.hpp:48
Represents a ASSIGNED block in the NMODL.
Represents a statement in ASSIGNED or STATE block.
Represents a block to be executed before or after another block.
Definition: ba_block.hpp:40
Type to represent different block types for before/after block.
Represents BBCOREPOINTER statement in NMODL.
Represent a single variable of type BBCOREPOINTER.
Represents a BEFORE block in NMODL.
Represents binary expression in the NMODL.
Operator used in ast::BinaryExpression.
Represents a multi-line comment in NMODL.
Base class for all block scoped nodes.
Definition: block.hpp:41
Represents a boolean variable.
Definition: boolean.hpp:42
Represents a BREAKPOINT block in NMODL.
Represent COMPARTMENT statement in NMODL.
Definition: compartment.hpp:39
Represents CONDUCTANCE statement in NMODL.
Represent CONSERVE statement in NMODL.
Definition: conserve.hpp:38
Represent CONSTANT block in the mod file.
Represent statement in CONSTANT block of NMODL.
Represents a variable in the ast::ConstantBlock.
Represents a CONSTRUCTOR block in the NMODL.
Represents a block used for variable timestep integration (CVODE) of DERIVATIVE blocks.
Definition: cvode_block.hpp:38
Represents a DEFINE statement in NMODL.
Definition: define.hpp:38
Represents DERIVATIVE block in the NMODL.
Represent a callback to NEURON's derivimplicit solver.
Represents a DESTRUCTOR block in the NMODL.
Represents differential equation in DERIVATIVE block.
Represents a double variable.
Definition: double.hpp:53
Represent linear solver solution block based on Eigen.
Represent newton solver solution block based on Eigen.
Represents ELECTRODE_CURRENT variables statement in NMODL.
Base class for all expressions in the NMODL.
Definition: expression.hpp:43
This construct is deprecated and no longer supported in the NMODL.
Definition: external.hpp:39
Represents a float variable.
Definition: float.hpp:44
Represents GLOBAL statement in NMODL.
Definition: global.hpp:39
Base class for all identifiers.
Definition: identifier.hpp:41
Represents an INCLUDE statement in NMODL.
Definition: include.hpp:39
Represents a INDEPENDENT block in the NMODL.
Represents specific element of an array variable.
Represents a INITIAL block in the NMODL.
Represents an integer variable.
Definition: integer.hpp:49
Represents a LAG statement in the mod file.
One equation in a system of equations tha collectively form a LINEAR block.
Represents a one line comment in NMODL.
Represents LINEAR block in the NMODL.
Represent LONGITUDINAL_DIFFUSION statement in NMODL.
Definition: lon_diffuse.hpp:39
Extracts information required for LONGITUDINAL_DIFFUSION for each KINETIC block.
Represent MUTEXLOCK statement in NMODL.
Definition: mutex_lock.hpp:38
Represent MUTEXUNLOCK statement in NMODL.
Represents a name.
Definition: name.hpp:44
Represent NEURON block in the mod file.
Base class for all AST node.
Definition: node.hpp:40
One equation in a system of equations that collectively make a NONLINEAR block.
Represents NONLINEAR block in the NMODL.
Represents NONSPECIFIC_CURRENT variables statement in NMODL.
Definition: nonspecific.hpp:39
Represents the coreneuron nrn_state callback function.
Base class for all numbers.
Definition: number.hpp:39
Represents CURIE information in NMODL.
Represents a PARAMETER block in the NMODL.
Definition: param_block.hpp:53
Represents POINTER statement in NMODL.
Definition: pointer.hpp:39
Represents a prime variable (for ODE)
Definition: prime_name.hpp:48
Represents top level AST node for whole NMODL input.
Definition: program.hpp:39
Single variable of type RANDOM.
Definition: random_var.hpp:38
Represents RANDOM statement in NMODL.
Represents RANGE variables statement in NMODL.
Definition: range.hpp:39
Represent solution of a block in the AST.
Represents a STATE block in the NMODL.
Definition: state_block.hpp:52
Represents block encapsulating list of statements.
Represents a string.
Definition: string.hpp:52
Represents SUFFIX statement in NMODL.
Definition: suffix.hpp:38
Represents TABLE statement in NMODL.
Represents THREADSAFE statement in NMODL.
Definition: thread_safe.hpp:38
Statement to indicate a change in timestep in a given block.
Definition: update_dt.hpp:38
Represents USEION statement in NMODL.
Definition: useion.hpp:40
Represents a variable.
Definition: var_name.hpp:43
Represents a C code block.
Definition: verbatim.hpp:38
Represent WATCH statement in NMODL.
Wrap any other expression type.
Concrete visitor for all AST classes.
Definition: ast_visitor.hpp:37
void visit_independent_block(ast::IndependentBlock &node) override
visit node of type ast::IndependentBlock
void visit_discrete_block(ast::DiscreteBlock &node) override
visit node of type ast::DiscreteBlock
void visit_nonspecific_cur_var(ast::NonspecificCurVar &node) override
visit node of type ast::NonspecificCurVar
Definition: ast_visitor.cpp:79
void visit_string(ast::String &node) override
visit node of type ast::String
Definition: ast_visitor.cpp:40
void visit_unary_expression(ast::UnaryExpression &node) override
visit node of type ast::UnaryExpression
void visit_constant_statement(ast::ConstantStatement &node) override
visit node of type ast::ConstantStatement
void visit_random_var_list(ast::RandomVarList &node) override
visit node of type ast::RandomVarList
void visit_bbcore_pointer_var(ast::BbcorePointerVar &node) override
visit node of type ast::BbcorePointerVar
Definition: ast_visitor.cpp:97
void visit_mutex_unlock(ast::MutexUnlock &node) override
visit node of type ast::MutexUnlock
void visit_global(ast::Global &node) override
visit node of type ast::Global
void visit_ba_block_type(ast::BABlockType &node) override
visit node of type ast::BABlockType
void visit_double_unit(ast::DoubleUnit &node) override
visit node of type ast::DoubleUnit
void visit_param_assign(ast::ParamAssign &node) override
visit node of type ast::ParamAssign
void visit_name(ast::Name &node) override
visit node of type ast::Name
Definition: ast_visitor.cpp:55
void visit_non_lin_equation(ast::NonLinEquation &node) override
visit node of type ast::NonLinEquation
void visit_mutex_lock(ast::MutexLock &node) override
visit node of type ast::MutexLock
void visit_else_if_statement(ast::ElseIfStatement &node) override
visit node of type ast::ElseIfStatement
void visit_initial_block(ast::InitialBlock &node) override
visit node of type ast::InitialBlock
void visit_write_ion_var(ast::WriteIonVar &node) override
visit node of type ast::WriteIonVar
Definition: ast_visitor.cpp:76
void visit_define(ast::Define &node) override
visit node of type ast::Define
void visit_cvode_block(ast::CvodeBlock &node) override
visit node of type ast::CvodeBlock
void visit_number_range(ast::NumberRange &node) override
visit node of type ast::NumberRange
void visit_valence(ast::Valence &node) override
visit node of type ast::Valence
void visit_before_block(ast::BeforeBlock &node) override
visit node of type ast::BeforeBlock
void visit_statement_block(ast::StatementBlock &node) override
visit node of type ast::StatementBlock
void visit_limits(ast::Limits &node) override
visit node of type ast::Limits
void visit_pointer_var(ast::PointerVar &node) override
visit node of type ast::PointerVar
Definition: ast_visitor.cpp:91
void visit_diff_eq_expression(ast::DiffEqExpression &node) override
visit node of type ast::DiffEqExpression
void visit_function_table_block(ast::FunctionTableBlock &node) override
visit node of type ast::FunctionTableBlock
void visit_argument(ast::Argument &node) override
visit node of type ast::Argument
Definition: ast_visitor.cpp:67
void visit_include(ast::Include &node) override
visit node of type ast::Include
void visit_number(ast::Number &node) override
visit node of type ast::Number
Definition: ast_visitor.cpp:37
void visit_conductance_hint(ast::ConductanceHint &node) override
visit node of type ast::ConductanceHint
void visit_function_block(ast::FunctionBlock &node) override
visit node of type ast::FunctionBlock
void visit_useion(ast::Useion &node) override
visit node of type ast::Useion
void visit_assigned_block(ast::AssignedBlock &node) override
visit node of type ast::AssignedBlock
void visit_local_var(ast::LocalVar &node) override
visit node of type ast::LocalVar
void visit_boolean(ast::Boolean &node) override
visit node of type ast::Boolean
Definition: ast_visitor.cpp:52
void visit_expression_statement(ast::ExpressionStatement &node) override
visit node of type ast::ExpressionStatement
void visit_integer(ast::Integer &node) override
visit node of type ast::Integer
Definition: ast_visitor.cpp:43
void visit_solve_block(ast::SolveBlock &node) override
visit node of type ast::SolveBlock
void visit_identifier(ast::Identifier &node) override
visit node of type ast::Identifier
Definition: ast_visitor.cpp:34
void visit_reaction_statement(ast::ReactionStatement &node) override
visit node of type ast::ReactionStatement
void visit_else_statement(ast::ElseStatement &node) override
visit node of type ast::ElseStatement
void visit_procedure_block(ast::ProcedureBlock &node) override
visit node of type ast::ProcedureBlock
void visit_constant_block(ast::ConstantBlock &node) override
visit node of type ast::ConstantBlock
void visit_external(ast::External &node) override
visit node of type ast::External
void visit_assigned_definition(ast::AssignedDefinition &node) override
visit node of type ast::AssignedDefinition
void visit_double(ast::Double &node) override
visit node of type ast::Double
Definition: ast_visitor.cpp:49
void visit_update_dt(ast::UpdateDt &node) override
visit node of type ast::UpdateDt
void visit_range_var(ast::RangeVar &node) override
visit node of type ast::RangeVar
Definition: ast_visitor.cpp:85
void visit_compartment(ast::Compartment &node) override
visit node of type ast::Compartment
void visit_electrode_cur_var(ast::ElectrodeCurVar &node) override
visit node of type ast::ElectrodeCurVar
Definition: ast_visitor.cpp:82
void visit_protect_statement(ast::ProtectStatement &node) override
visit node of type ast::ProtectStatement
void visit_extern_var(ast::ExternVar &node) override
visit node of type ast::ExternVar
void visit_thread_safe(ast::ThreadSafe &node) override
visit node of type ast::ThreadSafe
void visit_breakpoint_block(ast::BreakpointBlock &node) override
visit node of type ast::BreakpointBlock
void visit_solution_expression(ast::SolutionExpression &node) override
visit node of type ast::SolutionExpression
void visit_for_netcon(ast::ForNetcon &node) override
visit node of type ast::ForNetcon
void visit_destructor_block(ast::DestructorBlock &node) override
visit node of type ast::DestructorBlock
void visit_var_name(ast::VarName &node) override
visit node of type ast::VarName
Definition: ast_visitor.cpp:64
void visit_table_statement(ast::TableStatement &node) override
visit node of type ast::TableStatement
void visit_random_var(ast::RandomVar &node) override
visit node of type ast::RandomVar
Definition: ast_visitor.cpp:94
void visit_local_list_statement(ast::LocalListStatement &node) override
visit node of type ast::LocalListStatement
void visit_pointer(ast::Pointer &node) override
visit node of type ast::Pointer
void visit_unit_state(ast::UnitState &node) override
visit node of type ast::UnitState
void visit_indexed_name(ast::IndexedName &node) override
visit node of type ast::IndexedName
Definition: ast_visitor.cpp:61
void visit_block_comment(ast::BlockComment &node) override
visit node of type ast::BlockComment
void visit_block(ast::Block &node) override
visit node of type ast::Block
Definition: ast_visitor.cpp:31
void visit_longitudinal_diffusion_block(ast::LongitudinalDiffusionBlock &node) override
visit node of type ast::LongitudinalDiffusionBlock
void visit_ba_block(ast::BABlock &node) override
visit node of type ast::BABlock
void visit_eigen_linear_solver_block(ast::EigenLinearSolverBlock &node) override
visit node of type ast::EigenLinearSolverBlock
void visit_react_var_name(ast::ReactVarName &node) override
visit node of type ast::ReactVarName
Definition: ast_visitor.cpp:70
void visit_constant_var(ast::ConstantVar &node) override
visit node of type ast::ConstantVar
void visit_net_receive_block(ast::NetReceiveBlock &node) override
visit node of type ast::NetReceiveBlock
void visit_lag_statement(ast::LagStatement &node) override
visit node of type ast::LagStatement
void visit_unit_def(ast::UnitDef &node) override
visit node of type ast::UnitDef
void visit_expression(ast::Expression &node) override
visit node of type ast::Expression
Definition: ast_visitor.cpp:28
void visit_unit_block(ast::UnitBlock &node) override
visit node of type ast::UnitBlock
void visit_line_comment(ast::LineComment &node) override
visit node of type ast::LineComment
void visit_paren_expression(ast::ParenExpression &node) override
visit node of type ast::ParenExpression
void visit_watch(ast::Watch &node) override
visit node of type ast::Watch
void visit_derivative_block(ast::DerivativeBlock &node) override
visit node of type ast::DerivativeBlock
void visit_binary_expression(ast::BinaryExpression &node) override
visit node of type ast::BinaryExpression
void visit_derivimplicit_callback(ast::DerivimplicitCallback &node) override
visit node of type ast::DerivimplicitCallback
void visit_unary_operator(ast::UnaryOperator &node) override
visit node of type ast::UnaryOperator
void visit_program(ast::Program &node) override
visit node of type ast::Program
void visit_electrode_current(ast::ElectrodeCurrent &node) override
visit node of type ast::ElectrodeCurrent
void visit_reaction_operator(ast::ReactionOperator &node) override
visit node of type ast::ReactionOperator
void visit_wrapped_expression(ast::WrappedExpression &node) override
visit node of type ast::WrappedExpression
void visit_function_call(ast::FunctionCall &node) override
visit node of type ast::FunctionCall
void visit_verbatim(ast::Verbatim &node) override
visit node of type ast::Verbatim
void visit_kinetic_block(ast::KineticBlock &node) override
visit node of type ast::KineticBlock
void visit_nrn_state_block(ast::NrnStateBlock &node) override
visit node of type ast::NrnStateBlock
void visit_watch_statement(ast::WatchStatement &node) override
visit node of type ast::WatchStatement
void visit_lon_diffuse(ast::LonDiffuse &node) override
visit node of type ast::LonDiffuse
void visit_float(ast::Float &node) override
visit node of type ast::Float
Definition: ast_visitor.cpp:46
void visit_eigen_newton_solver_block(ast::EigenNewtonSolverBlock &node) override
visit node of type ast::EigenNewtonSolverBlock
void visit_global_var(ast::GlobalVar &node) override
visit node of type ast::GlobalVar
Definition: ast_visitor.cpp:88
void visit_conserve(ast::Conserve &node) override
visit node of type ast::Conserve
void visit_range(ast::Range &node) override
visit node of type ast::Range
void visit_binary_operator(ast::BinaryOperator &node) override
visit node of type ast::BinaryOperator
void visit_node(ast::Node &node) override
visit node of type ast::Node
Definition: ast_visitor.cpp:22
void visit_state_block(ast::StateBlock &node) override
visit node of type ast::StateBlock
void visit_while_statement(ast::WhileStatement &node) override
visit node of type ast::WhileStatement
void visit_lin_equation(ast::LinEquation &node) override
visit node of type ast::LinEquation
void visit_read_ion_var(ast::ReadIonVar &node) override
visit node of type ast::ReadIonVar
Definition: ast_visitor.cpp:73
void visit_prime_name(ast::PrimeName &node) override
visit node of type ast::PrimeName
Definition: ast_visitor.cpp:58
void visit_statement(ast::Statement &node) override
visit node of type ast::Statement
Definition: ast_visitor.cpp:25
void visit_after_block(ast::AfterBlock &node) override
visit node of type ast::AfterBlock
void visit_suffix(ast::Suffix &node) override
visit node of type ast::Suffix
void visit_if_statement(ast::IfStatement &node) override
visit node of type ast::IfStatement
void visit_nonspecific(ast::Nonspecific &node) override
visit node of type ast::Nonspecific
void visit_model(ast::Model &node) override
visit node of type ast::Model
void visit_factor_def(ast::FactorDef &node) override
visit node of type ast::FactorDef
void visit_ontology_statement(ast::OntologyStatement &node) override
visit node of type ast::OntologyStatement
void visit_linear_block(ast::LinearBlock &node) override
visit node of type ast::LinearBlock
void visit_from_statement(ast::FromStatement &node) override
visit node of type ast::FromStatement
void visit_neuron_block(ast::NeuronBlock &node) override
visit node of type ast::NeuronBlock
void visit_non_linear_block(ast::NonLinearBlock &node) override
visit node of type ast::NonLinearBlock
void visit_constructor_block(ast::ConstructorBlock &node) override
visit node of type ast::ConstructorBlock
void visit_param_block(ast::ParamBlock &node) override
visit node of type ast::ParamBlock
void visit_bbcore_pointer(ast::BbcorePointer &node) override
visit node of type ast::BbcorePointer
void visit_unit(ast::Unit &node) override
visit node of type ast::Unit
Concrete constant visitor for all AST classes.
void visit_define(const ast::Define &node) override
visit node of type ast::Define
void visit_suffix(const ast::Suffix &node) override
visit node of type ast::Suffix
void visit_useion(const ast::Useion &node) override
visit node of type ast::Useion
void visit_global_var(const ast::GlobalVar &node) override
visit node of type ast::GlobalVar
void visit_discrete_block(const ast::DiscreteBlock &node) override
visit node of type ast::DiscreteBlock
void visit_number(const ast::Number &node) override
visit node of type ast::Number
void visit_random_var_list(const ast::RandomVarList &node) override
visit node of type ast::RandomVarList
void visit_float(const ast::Float &node) override
visit node of type ast::Float
void visit_nonspecific_cur_var(const ast::NonspecificCurVar &node) override
visit node of type ast::NonspecificCurVar
void visit_conductance_hint(const ast::ConductanceHint &node) override
visit node of type ast::ConductanceHint
void visit_react_var_name(const ast::ReactVarName &node) override
visit node of type ast::ReactVarName
void visit_number_range(const ast::NumberRange &node) override
visit node of type ast::NumberRange
void visit_nrn_state_block(const ast::NrnStateBlock &node) override
visit node of type ast::NrnStateBlock
void visit_watch_statement(const ast::WatchStatement &node) override
visit node of type ast::WatchStatement
void visit_verbatim(const ast::Verbatim &node) override
visit node of type ast::Verbatim
void visit_read_ion_var(const ast::ReadIonVar &node) override
visit node of type ast::ReadIonVar
void visit_eigen_linear_solver_block(const ast::EigenLinearSolverBlock &node) override
visit node of type ast::EigenLinearSolverBlock
void visit_global(const ast::Global &node) override
visit node of type ast::Global
void visit_solution_expression(const ast::SolutionExpression &node) override
visit node of type ast::SolutionExpression
void visit_pointer(const ast::Pointer &node) override
visit node of type ast::Pointer
void visit_range(const ast::Range &node) override
visit node of type ast::Range
void visit_range_var(const ast::RangeVar &node) override
visit node of type ast::RangeVar
void visit_bbcore_pointer(const ast::BbcorePointer &node) override
visit node of type ast::BbcorePointer
void visit_unary_expression(const ast::UnaryExpression &node) override
visit node of type ast::UnaryExpression
void visit_thread_safe(const ast::ThreadSafe &node) override
visit node of type ast::ThreadSafe
void visit_unit_def(const ast::UnitDef &node) override
visit node of type ast::UnitDef
void visit_paren_expression(const ast::ParenExpression &node) override
visit node of type ast::ParenExpression
void visit_pointer_var(const ast::PointerVar &node) override
visit node of type ast::PointerVar
void visit_external(const ast::External &node) override
visit node of type ast::External
void visit_independent_block(const ast::IndependentBlock &node) override
visit node of type ast::IndependentBlock
void visit_compartment(const ast::Compartment &node) override
visit node of type ast::Compartment
void visit_wrapped_expression(const ast::WrappedExpression &node) override
visit node of type ast::WrappedExpression
void visit_electrode_current(const ast::ElectrodeCurrent &node) override
visit node of type ast::ElectrodeCurrent
void visit_random_var(const ast::RandomVar &node) override
visit node of type ast::RandomVar
void visit_ontology_statement(const ast::OntologyStatement &node) override
visit node of type ast::OntologyStatement
void visit_param_block(const ast::ParamBlock &node) override
visit node of type ast::ParamBlock
void visit_node(const ast::Node &node) override
visit node of type ast::Node
void visit_longitudinal_diffusion_block(const ast::LongitudinalDiffusionBlock &node) override
visit node of type ast::LongitudinalDiffusionBlock
void visit_program(const ast::Program &node) override
visit node of type ast::Program
void visit_if_statement(const ast::IfStatement &node) override
visit node of type ast::IfStatement
void visit_bbcore_pointer_var(const ast::BbcorePointerVar &node) override
visit node of type ast::BbcorePointerVar
void visit_var_name(const ast::VarName &node) override
visit node of type ast::VarName
void visit_argument(const ast::Argument &node) override
visit node of type ast::Argument
void visit_kinetic_block(const ast::KineticBlock &node) override
visit node of type ast::KineticBlock
void visit_state_block(const ast::StateBlock &node) override
visit node of type ast::StateBlock
void visit_procedure_block(const ast::ProcedureBlock &node) override
visit node of type ast::ProcedureBlock
void visit_write_ion_var(const ast::WriteIonVar &node) override
visit node of type ast::WriteIonVar
void visit_constant_var(const ast::ConstantVar &node) override
visit node of type ast::ConstantVar
void visit_string(const ast::String &node) override
visit node of type ast::String
void visit_function_table_block(const ast::FunctionTableBlock &node) override
visit node of type ast::FunctionTableBlock
void visit_diff_eq_expression(const ast::DiffEqExpression &node) override
visit node of type ast::DiffEqExpression
void visit_local_var(const ast::LocalVar &node) override
visit node of type ast::LocalVar
void visit_linear_block(const ast::LinearBlock &node) override
visit node of type ast::LinearBlock
void visit_breakpoint_block(const ast::BreakpointBlock &node) override
visit node of type ast::BreakpointBlock
void visit_after_block(const ast::AfterBlock &node) override
visit node of type ast::AfterBlock
void visit_watch(const ast::Watch &node) override
visit node of type ast::Watch
void visit_for_netcon(const ast::ForNetcon &node) override
visit node of type ast::ForNetcon
void visit_identifier(const ast::Identifier &node) override
visit node of type ast::Identifier
void visit_solve_block(const ast::SolveBlock &node) override
visit node of type ast::SolveBlock
void visit_param_assign(const ast::ParamAssign &node) override
visit node of type ast::ParamAssign
void visit_double_unit(const ast::DoubleUnit &node) override
visit node of type ast::DoubleUnit
void visit_limits(const ast::Limits &node) override
visit node of type ast::Limits
void visit_expression(const ast::Expression &node) override
visit node of type ast::Expression
void visit_prime_name(const ast::PrimeName &node) override
visit node of type ast::PrimeName
void visit_mutex_lock(const ast::MutexLock &node) override
visit node of type ast::MutexLock
void visit_include(const ast::Include &node) override
visit node of type ast::Include
void visit_eigen_newton_solver_block(const ast::EigenNewtonSolverBlock &node) override
visit node of type ast::EigenNewtonSolverBlock
void visit_block_comment(const ast::BlockComment &node) override
visit node of type ast::BlockComment
void visit_boolean(const ast::Boolean &node) override
visit node of type ast::Boolean
void visit_lin_equation(const ast::LinEquation &node) override
visit node of type ast::LinEquation
void visit_else_if_statement(const ast::ElseIfStatement &node) override
visit node of type ast::ElseIfStatement
void visit_integer(const ast::Integer &node) override
visit node of type ast::Integer
void visit_assigned_definition(const ast::AssignedDefinition &node) override
visit node of type ast::AssignedDefinition
void visit_unit_state(const ast::UnitState &node) override
visit node of type ast::UnitState
void visit_cvode_block(const ast::CvodeBlock &node) override
visit node of type ast::CvodeBlock
void visit_table_statement(const ast::TableStatement &node) override
visit node of type ast::TableStatement
void visit_lag_statement(const ast::LagStatement &node) override
visit node of type ast::LagStatement
void visit_model(const ast::Model &node) override
visit node of type ast::Model
void visit_neuron_block(const ast::NeuronBlock &node) override
visit node of type ast::NeuronBlock
void visit_while_statement(const ast::WhileStatement &node) override
visit node of type ast::WhileStatement
void visit_conserve(const ast::Conserve &node) override
visit node of type ast::Conserve
void visit_reaction_operator(const ast::ReactionOperator &node) override
visit node of type ast::ReactionOperator
void visit_expression_statement(const ast::ExpressionStatement &node) override
visit node of type ast::ExpressionStatement
void visit_factor_def(const ast::FactorDef &node) override
visit node of type ast::FactorDef
void visit_from_statement(const ast::FromStatement &node) override
visit node of type ast::FromStatement
void visit_mutex_unlock(const ast::MutexUnlock &node) override
visit node of type ast::MutexUnlock
void visit_function_block(const ast::FunctionBlock &node) override
visit node of type ast::FunctionBlock
void visit_net_receive_block(const ast::NetReceiveBlock &node) override
visit node of type ast::NetReceiveBlock
void visit_electrode_cur_var(const ast::ElectrodeCurVar &node) override
visit node of type ast::ElectrodeCurVar
void visit_update_dt(const ast::UpdateDt &node) override
visit node of type ast::UpdateDt
void visit_constant_statement(const ast::ConstantStatement &node) override
visit node of type ast::ConstantStatement
void visit_extern_var(const ast::ExternVar &node) override
visit node of type ast::ExternVar
void visit_unary_operator(const ast::UnaryOperator &node) override
visit node of type ast::UnaryOperator
void visit_initial_block(const ast::InitialBlock &node) override
visit node of type ast::InitialBlock
void visit_non_linear_block(const ast::NonLinearBlock &node) override
visit node of type ast::NonLinearBlock
void visit_indexed_name(const ast::IndexedName &node) override
visit node of type ast::IndexedName
void visit_constructor_block(const ast::ConstructorBlock &node) override
visit node of type ast::ConstructorBlock
void visit_assigned_block(const ast::AssignedBlock &node) override
visit node of type ast::AssignedBlock
void visit_statement(const ast::Statement &node) override
visit node of type ast::Statement
void visit_unit(const ast::Unit &node) override
visit node of type ast::Unit
void visit_double(const ast::Double &node) override
visit node of type ast::Double
void visit_derivimplicit_callback(const ast::DerivimplicitCallback &node) override
visit node of type ast::DerivimplicitCallback
void visit_binary_expression(const ast::BinaryExpression &node) override
visit node of type ast::BinaryExpression
void visit_function_call(const ast::FunctionCall &node) override
visit node of type ast::FunctionCall
void visit_block(const ast::Block &node) override
visit node of type ast::Block
void visit_valence(const ast::Valence &node) override
visit node of type ast::Valence
void visit_local_list_statement(const ast::LocalListStatement &node) override
visit node of type ast::LocalListStatement
void visit_reaction_statement(const ast::ReactionStatement &node) override
visit node of type ast::ReactionStatement
void visit_ba_block(const ast::BABlock &node) override
visit node of type ast::BABlock
void visit_ba_block_type(const ast::BABlockType &node) override
visit node of type ast::BABlockType
void visit_nonspecific(const ast::Nonspecific &node) override
visit node of type ast::Nonspecific
void visit_else_statement(const ast::ElseStatement &node) override
visit node of type ast::ElseStatement
void visit_lon_diffuse(const ast::LonDiffuse &node) override
visit node of type ast::LonDiffuse
void visit_binary_operator(const ast::BinaryOperator &node) override
visit node of type ast::BinaryOperator
void visit_before_block(const ast::BeforeBlock &node) override
visit node of type ast::BeforeBlock
void visit_name(const ast::Name &node) override
visit node of type ast::Name
void visit_constant_block(const ast::ConstantBlock &node) override
visit node of type ast::ConstantBlock
void visit_protect_statement(const ast::ProtectStatement &node) override
visit node of type ast::ProtectStatement
void visit_statement_block(const ast::StatementBlock &node) override
visit node of type ast::StatementBlock
void visit_line_comment(const ast::LineComment &node) override
visit node of type ast::LineComment
void visit_destructor_block(const ast::DestructorBlock &node) override
visit node of type ast::DestructorBlock
void visit_non_lin_equation(const ast::NonLinEquation &node) override
visit node of type ast::NonLinEquation
void visit_derivative_block(const ast::DerivativeBlock &node) override
visit node of type ast::DerivativeBlock
void visit_unit_block(const ast::UnitBlock &node) override
visit node of type ast::UnitBlock
Abstract base class for all constant visitors implementation.
Definition: visitor.hpp:302
Abstract base class for all visitors implementation.
Definition: visitor.hpp:39
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
static Node * node(Object *)
Definition: netcvode.cpp:291