User Guide
nmodl_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  * \file
16  * \brief \copybrief nmodl::visitor::NmodlPrintVisitor
17  */
18 
19 #include <set>
20 
21 #include "visitors/visitor.hpp"
23 
24 namespace nmodl {
25 namespace visitor {
26 
27 /**
28  * \addtogroup visitor_classes
29  * \{
30  */
31 
32 /**
33  * \class NmodlPrintVisitor
34  * \brief %Visitor for printing AST back to NMODL
35  *
36  * \note AstNodeType::INDEPENDENT_BLOCK representation in the AST has
37  * been trimmed as the `INDEPENDENT {}` block is now deprecated
38  * and considered an unused construct in MOD files. If a user
39  * attempts to print a MOD file containing an INDEPENDENT block,
40  * it will be skipped, and a comment will be added to indicate
41  * the deprecation.
42  */
43 
45  private:
46  std::unique_ptr<printer::NMODLPrinter> printer;
47 
48  /// node types to exclude while printing
49  std::set<ast::AstNodeType> exclude_types;
50 
51  /// check if node is to be excluded while printing
52  bool is_exclude_type(ast::AstNodeType type) const {
53  return exclude_types.find(type) != exclude_types.end();
54  }
55 
56  public:
58  : printer(new printer::NMODLPrinter()) {}
59 
60  NmodlPrintVisitor(std::string filename)
61  : printer(new printer::NMODLPrinter(filename)) {}
62 
63  NmodlPrintVisitor(std::ostream& stream)
64  : printer(new printer::NMODLPrinter(stream)) {}
65 
66  NmodlPrintVisitor(std::ostream& stream, const std::set<ast::AstNodeType>& types)
67  : printer(new printer::NMODLPrinter(stream))
68  , exclude_types(types){}
69 
70  // clang-format off
71  virtual void visit_node(const ast::Node& node) override;
72  virtual void visit_statement(const ast::Statement& node) override;
73  virtual void visit_expression(const ast::Expression& node) override;
74  virtual void visit_block(const ast::Block& node) override;
75  virtual void visit_identifier(const ast::Identifier& node) override;
76  virtual void visit_number(const ast::Number& node) override;
77  virtual void visit_string(const ast::String& node) override;
78  virtual void visit_integer(const ast::Integer& node) override;
79  virtual void visit_float(const ast::Float& node) override;
80  virtual void visit_double(const ast::Double& node) override;
81  virtual void visit_boolean(const ast::Boolean& node) override;
82  virtual void visit_name(const ast::Name& node) override;
83  virtual void visit_prime_name(const ast::PrimeName& node) override;
84  virtual void visit_indexed_name(const ast::IndexedName& node) override;
85  virtual void visit_var_name(const ast::VarName& node) override;
86  virtual void visit_argument(const ast::Argument& node) override;
87  virtual void visit_react_var_name(const ast::ReactVarName& node) override;
88  virtual void visit_read_ion_var(const ast::ReadIonVar& node) override;
89  virtual void visit_write_ion_var(const ast::WriteIonVar& node) override;
90  virtual void visit_nonspecific_cur_var(const ast::NonspecificCurVar& node) override;
91  virtual void visit_electrode_cur_var(const ast::ElectrodeCurVar& node) override;
92  virtual void visit_range_var(const ast::RangeVar& node) override;
93  virtual void visit_global_var(const ast::GlobalVar& node) override;
94  virtual void visit_pointer_var(const ast::PointerVar& node) override;
95  virtual void visit_random_var(const ast::RandomVar& node) override;
96  virtual void visit_bbcore_pointer_var(const ast::BbcorePointerVar& node) override;
97  virtual void visit_extern_var(const ast::ExternVar& node) override;
98  virtual void visit_param_block(const ast::ParamBlock& node) override;
99  virtual void visit_independent_block(const ast::IndependentBlock& node) override;
100  virtual void visit_assigned_block(const ast::AssignedBlock& node) override;
101  virtual void visit_state_block(const ast::StateBlock& node) override;
102  virtual void visit_initial_block(const ast::InitialBlock& node) override;
103  virtual void visit_constructor_block(const ast::ConstructorBlock& node) override;
104  virtual void visit_destructor_block(const ast::DestructorBlock& node) override;
105  virtual void visit_statement_block(const ast::StatementBlock& node) override;
106  virtual void visit_derivative_block(const ast::DerivativeBlock& node) override;
107  virtual void visit_linear_block(const ast::LinearBlock& node) override;
108  virtual void visit_non_linear_block(const ast::NonLinearBlock& node) override;
109  virtual void visit_discrete_block(const ast::DiscreteBlock& node) override;
110  virtual void visit_function_table_block(const ast::FunctionTableBlock& node) override;
111  virtual void visit_function_block(const ast::FunctionBlock& node) override;
112  virtual void visit_procedure_block(const ast::ProcedureBlock& node) override;
113  virtual void visit_net_receive_block(const ast::NetReceiveBlock& node) override;
114  virtual void visit_solve_block(const ast::SolveBlock& node) override;
115  virtual void visit_breakpoint_block(const ast::BreakpointBlock& node) override;
116  virtual void visit_before_block(const ast::BeforeBlock& node) override;
117  virtual void visit_after_block(const ast::AfterBlock& node) override;
118  virtual void visit_ba_block(const ast::BABlock& node) override;
119  virtual void visit_for_netcon(const ast::ForNetcon& node) override;
120  virtual void visit_kinetic_block(const ast::KineticBlock& node) override;
121  virtual void visit_unit_block(const ast::UnitBlock& node) override;
122  virtual void visit_constant_block(const ast::ConstantBlock& node) override;
123  virtual void visit_neuron_block(const ast::NeuronBlock& node) override;
124  virtual void visit_unit(const ast::Unit& node) override;
125  virtual void visit_double_unit(const ast::DoubleUnit& node) override;
126  virtual void visit_local_var(const ast::LocalVar& node) override;
127  virtual void visit_limits(const ast::Limits& node) override;
128  virtual void visit_number_range(const ast::NumberRange& node) override;
129  virtual void visit_constant_var(const ast::ConstantVar& node) override;
130  virtual void visit_binary_operator(const ast::BinaryOperator& node) override;
131  virtual void visit_unary_operator(const ast::UnaryOperator& node) override;
132  virtual void visit_reaction_operator(const ast::ReactionOperator& node) override;
133  virtual void visit_paren_expression(const ast::ParenExpression& node) override;
134  virtual void visit_binary_expression(const ast::BinaryExpression& node) override;
135  virtual void visit_diff_eq_expression(const ast::DiffEqExpression& node) override;
136  virtual void visit_unary_expression(const ast::UnaryExpression& node) override;
137  virtual void visit_non_lin_equation(const ast::NonLinEquation& node) override;
138  virtual void visit_lin_equation(const ast::LinEquation& node) override;
139  virtual void visit_function_call(const ast::FunctionCall& node) override;
140  virtual void visit_watch(const ast::Watch& node) override;
141  virtual void visit_ba_block_type(const ast::BABlockType& node) override;
142  virtual void visit_unit_def(const ast::UnitDef& node) override;
143  virtual void visit_factor_def(const ast::FactorDef& node) override;
144  virtual void visit_valence(const ast::Valence& node) override;
145  virtual void visit_unit_state(const ast::UnitState& node) override;
146  virtual void visit_local_list_statement(const ast::LocalListStatement& node) override;
147  virtual void visit_model(const ast::Model& node) override;
148  virtual void visit_define(const ast::Define& node) override;
149  virtual void visit_include(const ast::Include& node) override;
150  virtual void visit_param_assign(const ast::ParamAssign& node) override;
151  virtual void visit_assigned_definition(const ast::AssignedDefinition& node) override;
152  virtual void visit_conductance_hint(const ast::ConductanceHint& node) override;
153  virtual void visit_expression_statement(const ast::ExpressionStatement& node) override;
154  virtual void visit_protect_statement(const ast::ProtectStatement& node) override;
155  virtual void visit_from_statement(const ast::FromStatement& node) override;
156  virtual void visit_while_statement(const ast::WhileStatement& node) override;
157  virtual void visit_if_statement(const ast::IfStatement& node) override;
158  virtual void visit_else_if_statement(const ast::ElseIfStatement& node) override;
159  virtual void visit_else_statement(const ast::ElseStatement& node) override;
160  virtual void visit_watch_statement(const ast::WatchStatement& node) override;
161  virtual void visit_mutex_lock(const ast::MutexLock& node) override;
162  virtual void visit_mutex_unlock(const ast::MutexUnlock& node) override;
163  virtual void visit_conserve(const ast::Conserve& node) override;
164  virtual void visit_compartment(const ast::Compartment& node) override;
165  virtual void visit_lon_difuse(const ast::LonDifuse& node) override;
166  virtual void visit_reaction_statement(const ast::ReactionStatement& node) override;
167  virtual void visit_lag_statement(const ast::LagStatement& node) override;
168  virtual void visit_constant_statement(const ast::ConstantStatement& node) override;
169  virtual void visit_table_statement(const ast::TableStatement& node) override;
170  virtual void visit_suffix(const ast::Suffix& node) override;
171  virtual void visit_useion(const ast::Useion& node) override;
172  virtual void visit_nonspecific(const ast::Nonspecific& node) override;
173  virtual void visit_electrode_current(const ast::ElectrodeCurrent& node) override;
174  virtual void visit_range(const ast::Range& node) override;
175  virtual void visit_global(const ast::Global& node) override;
176  virtual void visit_random_var_list(const ast::RandomVarList& node) override;
177  virtual void visit_pointer(const ast::Pointer& node) override;
178  virtual void visit_bbcore_pointer(const ast::BbcorePointer& node) override;
179  virtual void visit_external(const ast::External& node) override;
180  virtual void visit_thread_safe(const ast::ThreadSafe& node) override;
181  virtual void visit_verbatim(const ast::Verbatim& node) override;
182  virtual void visit_line_comment(const ast::LineComment& node) override;
183  virtual void visit_block_comment(const ast::BlockComment& node) override;
184  virtual void visit_ontology_statement(const ast::OntologyStatement& node) override;
185  virtual void visit_program(const ast::Program& node) override;
186  virtual void visit_nrn_state_block(const ast::NrnStateBlock& node) override;
187  virtual void visit_eigen_newton_solver_block(const ast::EigenNewtonSolverBlock& node) override;
188  virtual void visit_eigen_linear_solver_block(const ast::EigenLinearSolverBlock& node) override;
189  virtual void visit_wrapped_expression(const ast::WrappedExpression& node) override;
190  virtual void visit_derivimplicit_callback(const ast::DerivimplicitCallback& node) override;
191  virtual void visit_solution_expression(const ast::SolutionExpression& node) override;
192  virtual void visit_update_dt(const ast::UpdateDt& node) override;
193  // clang-format on
194 
195  template <typename T>
196  void visit_element(const std::vector<T>& elements,
197  const std::string& separator,
198  bool program,
199  bool statement);
200 };
201 
202 /** \} */ // end of visitor_classes
203 
204 } // namespace visitor
205 } // namespace nmodl
206 
nmodl::visitor::ConstVisitor
Abstract base class for all constant visitors implementation.
Definition: visitor.hpp:298
nmodl::ast::LonDifuse
Represent LONGITUDINAL_DIFFUSION statement in NMODL.
Definition: lon_difuse.hpp:39
nmodl::ast::ParamAssign
TODO.
Definition: param_assign.hpp:38
nmodl::ast::BeforeBlock
Represents a BEFORE block in NMODL.
Definition: before_block.hpp:38
nmodl::ast::ConstantVar
Represents a variable in the ast::ConstantBlock.
Definition: constant_var.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_wrapped_expression
virtual void visit_wrapped_expression(const ast::WrappedExpression &node) override
visit node of type ast::WrappedExpression
Definition: nmodl_visitor.cpp:1928
nmodl::ast::UnaryOperator
TODO.
Definition: unary_operator.hpp:38
nmodl::ast::SolveBlock
TODO.
Definition: solve_block.hpp:38
nmodl::ast::Include
Represents an INCLUDE statement in NMODL.
Definition: include.hpp:39
nmodl::ast::Unit
TODO.
Definition: unit.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_boolean
virtual void visit_boolean(const ast::Boolean &node) override
visit node of type ast::Boolean
Definition: nmodl_visitor.cpp:130
nmodl::visitor::NmodlPrintVisitor::visit_double_unit
virtual void visit_double_unit(const ast::DoubleUnit &node) override
visit node of type ast::DoubleUnit
Definition: nmodl_visitor.cpp:810
nmodl::ast::Node
Base class for all AST node.
Definition: node.hpp:40
nmodl::ast::BABlock
Represents a block to be executed before or after another block.
Definition: ba_block.hpp:40
nmodl::ast::Verbatim
Represents a C code block.
Definition: verbatim.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_random_var
virtual void visit_random_var(const ast::RandomVar &node) override
visit node of type ast::RandomVar
Definition: nmodl_visitor.cpp:320
nmodl::visitor::NmodlPrintVisitor::visit_electrode_cur_var
virtual void visit_electrode_cur_var(const ast::ElectrodeCurVar &node) override
visit node of type ast::ElectrodeCurVar
Definition: nmodl_visitor.cpp:276
nmodl::visitor::NmodlPrintVisitor::visit_after_block
virtual void visit_after_block(const ast::AfterBlock &node) override
visit node of type ast::AfterBlock
Definition: nmodl_visitor.cpp:688
nmodl::visitor::NmodlPrintVisitor::visit_breakpoint_block
virtual void visit_breakpoint_block(const ast::BreakpointBlock &node) override
visit node of type ast::BreakpointBlock
Definition: nmodl_visitor.cpp:662
nmodl::visitor::NmodlPrintVisitor::visit_reaction_statement
virtual void visit_reaction_statement(const ast::ReactionStatement &node) override
visit node of type ast::ReactionStatement
Definition: nmodl_visitor.cpp:1529
nmodl::visitor::NmodlPrintVisitor::visit_paren_expression
virtual void visit_paren_expression(const ast::ParenExpression &node) override
visit node of type ast::ParenExpression
Definition: nmodl_visitor.cpp:931
nmodl::visitor::NmodlPrintVisitor::visit_unary_expression
virtual void visit_unary_expression(const ast::UnaryExpression &node) override
visit node of type ast::UnaryExpression
Definition: nmodl_visitor.cpp:975
nmodl::visitor::NmodlPrintVisitor::visit_global
virtual void visit_global(const ast::Global &node) override
visit node of type ast::Global
Definition: nmodl_visitor.cpp:1704
nmodl::ast::Identifier
Base class for all identifiers.
Definition: identifier.hpp:41
nmodl::visitor::NmodlPrintVisitor::visit_for_netcon
virtual void visit_for_netcon(const ast::ForNetcon &node) override
visit node of type ast::ForNetcon
Definition: nmodl_visitor.cpp:717
nmodl::visitor::NmodlPrintVisitor::visit_bbcore_pointer_var
virtual void visit_bbcore_pointer_var(const ast::BbcorePointerVar &node) override
visit node of type ast::BbcorePointerVar
Definition: nmodl_visitor.cpp:331
nmodl::visitor::NmodlPrintVisitor::NmodlPrintVisitor
NmodlPrintVisitor(std::ostream &stream, const std::set< ast::AstNodeType > &types)
Definition: nmodl_visitor.hpp:66
nmodl::ast::DiffEqExpression
Represents differential equation in DERIVATIVE block.
Definition: diff_eq_expression.hpp:38
nmodl::ast::AssignedDefinition
Represents a statement in ASSIGNED or STATE block.
Definition: assigned_definition.hpp:38
nmodl::ast::FactorDef
TODO.
Definition: factor_def.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_else_if_statement
virtual void visit_else_if_statement(const ast::ElseIfStatement &node) override
visit node of type ast::ElseIfStatement
Definition: nmodl_visitor.cpp:1395
nmodl::ast::Watch
TODO.
Definition: watch.hpp:38
nmodl::ast::Double
Represents a double variable.
Definition: double.hpp:53
nmodl::ast::FunctionBlock
TODO.
Definition: function_block.hpp:39
nmodl::visitor::NmodlPrintVisitor::visit_diff_eq_expression
virtual void visit_diff_eq_expression(const ast::DiffEqExpression &node) override
visit node of type ast::DiffEqExpression
Definition: nmodl_visitor.cpp:964
nmodl::ast::Range
Represents RANGE variables statement in NMODL.
Definition: range.hpp:39
nmodl::ast::PointerVar
TODO.
Definition: pointer_var.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_thread_safe
virtual void visit_thread_safe(const ast::ThreadSafe &node) override
visit node of type ast::ThreadSafe
Definition: nmodl_visitor.cpp:1764
nmodl::ast::NonLinEquation
TODO.
Definition: non_lin_equation.hpp:38
nmodl::ast::RandomVarList
Represents RANDOM statement in NMODL.
Definition: random_var_list.hpp:47
nmodl::ast::BbcorePointerVar
Represent a single variable of type BBCOREPOINTER.
Definition: bbcore_pointer_var.hpp:39
nmodl::visitor::NmodlPrintVisitor::visit_from_statement
virtual void visit_from_statement(const ast::FromStatement &node) override
visit node of type ast::FromStatement
Definition: nmodl_visitor.cpp:1318
nmodl::visitor::NmodlPrintVisitor::visit_unit_block
virtual void visit_unit_block(const ast::UnitBlock &node) override
visit node of type ast::UnitBlock
Definition: nmodl_visitor.cpp:755
nmodl::visitor::NmodlPrintVisitor::visit_factor_def
virtual void visit_factor_def(const ast::FactorDef &node) override
visit node of type ast::FactorDef
Definition: nmodl_visitor.cpp:1080
nmodl::ast::NetReceiveBlock
TODO.
Definition: net_receive_block.hpp:39
nmodl::ast::FunctionTableBlock
TODO.
Definition: function_table_block.hpp:39
nmodl::ast::Conserve
Represent CONSERVE statement in NMODL.
Definition: conserve.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_unit_state
virtual void visit_unit_state(const ast::UnitState &node) override
visit node of type ast::UnitState
Definition: nmodl_visitor.cpp:1131
nmodl::visitor::NmodlPrintVisitor::visit_independent_block
virtual void visit_independent_block(const ast::IndependentBlock &node) override
visit node of type ast::IndependentBlock
Definition: nmodl_visitor.cpp:367
nmodl::ast::DoubleUnit
TODO.
Definition: double_unit.hpp:38
nmodl::ast::UnitBlock
TODO.
Definition: unit_block.hpp:39
nmodl::ast::BlockComment
Represents a multi-line comment in NMODL.
Definition: block_comment.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_destructor_block
virtual void visit_destructor_block(const ast::DestructorBlock &node) override
visit node of type ast::DestructorBlock
Definition: nmodl_visitor.cpp:438
nmodl::visitor::NmodlPrintVisitor::visit_discrete_block
virtual void visit_discrete_block(const ast::DiscreteBlock &node) override
visit node of type ast::DiscreteBlock
Definition: nmodl_visitor.cpp:530
nmodl::ast::ConductanceHint
Represents CONDUCTANCE statement in NMODL.
Definition: conductance_hint.hpp:46
nmodl::visitor::NmodlPrintVisitor::visit_mutex_lock
virtual void visit_mutex_lock(const ast::MutexLock &node) override
visit node of type ast::MutexLock
Definition: nmodl_visitor.cpp:1440
nmodl::visitor::NmodlPrintVisitor::visit_model
virtual void visit_model(const ast::Model &node) override
visit node of type ast::Model
Definition: nmodl_visitor.cpp:1156
nmodl::visitor::NmodlPrintVisitor::visit_block_comment
virtual void visit_block_comment(const ast::BlockComment &node) override
visit node of type ast::BlockComment
Definition: nmodl_visitor.cpp:1797
nmodl
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
nmodl::visitor::NmodlPrintVisitor::visit_argument
virtual void visit_argument(const ast::Argument &node) override
visit node of type ast::Argument
Definition: nmodl_visitor.cpp:210
nmodl::ast::Model
TODO.
Definition: model.hpp:38
nmodl::ast::ReactVarName
TODO.
Definition: react_var_name.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_state_block
virtual void visit_state_block(const ast::StateBlock &node) override
visit node of type ast::StateBlock
Definition: nmodl_visitor.cpp:396
nmodl::ast::Define
Represents a DEFINE statement in NMODL.
Definition: define.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_verbatim
virtual void visit_verbatim(const ast::Verbatim &node) override
visit node of type ast::Verbatim
Definition: nmodl_visitor.cpp:1773
nmodl::ast::MutexLock
Represent MUTEXLOCK statement in NMODL.
Definition: mutex_lock.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_function_block
virtual void visit_function_block(const ast::FunctionBlock &node) override
visit node of type ast::FunctionBlock
Definition: nmodl_visitor.cpp:569
nmodl::ast::WriteIonVar
TODO.
Definition: write_ion_var.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_string
virtual void visit_string(const ast::String &node) override
visit node of type ast::String
Definition: nmodl_visitor.cpp:71
nmodl::ast::WhileStatement
TODO.
Definition: while_statement.hpp:38
nmodl::ast::Valence
TODO.
Definition: valence.hpp:38
nmodl::ast::TableStatement
Represents TABLE statement in NMODL.
Definition: table_statement.hpp:39
nmodl::visitor::NmodlPrintVisitor::visit_reaction_operator
virtual void visit_reaction_operator(const ast::ReactionOperator &node) override
visit node of type ast::ReactionOperator
Definition: nmodl_visitor.cpp:918
nmodl::visitor::NmodlPrintVisitor::visit_identifier
virtual void visit_identifier(const ast::Identifier &node) override
visit node of type ast::Identifier
Definition: nmodl_visitor.cpp:55
nmodl::visitor::NmodlPrintVisitor::visit_random_var_list
virtual void visit_random_var_list(const ast::RandomVarList &node) override
visit node of type ast::RandomVarList
Definition: nmodl_visitor.cpp:1716
nmodl::ast::VarName
Represents a variable.
Definition: var_name.hpp:43
nmodl::ast::ExternVar
TODO.
Definition: extern_var.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_range_var
virtual void visit_range_var(const ast::RangeVar &node) override
visit node of type ast::RangeVar
Definition: nmodl_visitor.cpp:287
nmodl::ast::Integer
Represents an integer variable.
Definition: integer.hpp:49
nmodl::ast::Suffix
Represents SUFFIX statement in NMODL.
Definition: suffix.hpp:38
nmodl::ast::ElseIfStatement
TODO.
Definition: else_if_statement.hpp:38
nmodl::ast::RandomVar
Single variable of type RANDOM.
Definition: random_var.hpp:38
visitor.hpp
nmodl::visitor::NmodlPrintVisitor::visit_statement_block
virtual void visit_statement_block(const ast::StatementBlock &node) override
visit node of type ast::StatementBlock
Definition: nmodl_visitor.cpp:452
nmodl::visitor::NmodlPrintVisitor::visit_external
virtual void visit_external(const ast::External &node) override
visit node of type ast::External
Definition: nmodl_visitor.cpp:1752
nmodl::ast::AssignedBlock
Represents a ASSIGNED block in the NMODL.
Definition: assigned_block.hpp:54
nmodl::ast::RangeVar
TODO.
Definition: range_var.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_line_comment
virtual void visit_line_comment(const ast::LineComment &node) override
visit node of type ast::LineComment
Definition: nmodl_visitor.cpp:1786
nmodl::visitor::NmodlPrintVisitor::visit_local_list_statement
virtual void visit_local_list_statement(const ast::LocalListStatement &node) override
visit node of type ast::LocalListStatement
Definition: nmodl_visitor.cpp:1144
nmodl::ast::EigenNewtonSolverBlock
Represent newton solver solution block based on Eigen.
Definition: eigen_newton_solver_block.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_indexed_name
virtual void visit_indexed_name(const ast::IndexedName &node) override
visit node of type ast::IndexedName
Definition: nmodl_visitor.cpp:170
nmodl::visitor::NmodlPrintVisitor::visit_derivative_block
virtual void visit_derivative_block(const ast::DerivativeBlock &node) override
visit node of type ast::DerivativeBlock
Definition: nmodl_visitor.cpp:465
nmodl::ast::AstNodeType
AstNodeType
Enum type for every AST node type.
Definition: ast_decl.hpp:164
nmodl::visitor::NmodlPrintVisitor::visit_derivimplicit_callback
virtual void visit_derivimplicit_callback(const ast::DerivimplicitCallback &node) override
visit node of type ast::DerivimplicitCallback
Definition: nmodl_visitor.cpp:1939
nmodl::visitor::NmodlPrintVisitor::visit_name
virtual void visit_name(const ast::Name &node) override
visit node of type ast::Name
Definition: nmodl_visitor.cpp:143
nmodl::visitor::NmodlPrintVisitor::visit_write_ion_var
virtual void visit_write_ion_var(const ast::WriteIonVar &node) override
visit node of type ast::WriteIonVar
Definition: nmodl_visitor.cpp:254
nmodl::visitor::NmodlPrintVisitor::visit_protect_statement
virtual void visit_protect_statement(const ast::ProtectStatement &node) override
visit node of type ast::ProtectStatement
Definition: nmodl_visitor.cpp:1306
nmodl::ast::ReactionOperator
TODO.
Definition: reaction_operator.hpp:38
nmodl::ast::ExpressionStatement
TODO.
Definition: expression_statement.hpp:38
nmodl::ast::Block
Base class for all block scoped nodes.
Definition: block.hpp:41
nmodl::visitor::NmodlPrintVisitor::visit_constructor_block
virtual void visit_constructor_block(const ast::ConstructorBlock &node) override
visit node of type ast::ConstructorBlock
Definition: nmodl_visitor.cpp:424
nmodl::visitor::NmodlPrintVisitor::visit_net_receive_block
virtual void visit_net_receive_block(const ast::NetReceiveBlock &node) override
visit node of type ast::NetReceiveBlock
Definition: nmodl_visitor.cpp:620
nmodl::ast::InitialBlock
Represents a INITIAL block in the NMODL.
Definition: initial_block.hpp:49
nmodl::visitor::NmodlPrintVisitor::visit_program
virtual void visit_program(const ast::Program &node) override
visit node of type ast::Program
Definition: nmodl_visitor.cpp:1822
nmodl::visitor::NmodlPrintVisitor::visit_statement
virtual void visit_statement(const ast::Statement &node) override
visit node of type ast::Statement
Definition: nmodl_visitor.cpp:31
nmodl::ast::DiscreteBlock
TODO.
Definition: discrete_block.hpp:38
nmodl::ast::GlobalVar
TODO.
Definition: global_var.hpp:38
nmodl::visitor::NmodlPrintVisitor::NmodlPrintVisitor
NmodlPrintVisitor(std::ostream &stream)
Definition: nmodl_visitor.hpp:63
nmodl::ast::LocalListStatement
TODO.
Definition: local_list_statement.hpp:39
nmodl::visitor::NmodlPrintVisitor::visit_linear_block
virtual void visit_linear_block(const ast::LinearBlock &node) override
visit node of type ast::LinearBlock
Definition: nmodl_visitor.cpp:483
nmodl::ast::UnitDef
TODO.
Definition: unit_def.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_node
virtual void visit_node(const ast::Node &node) override
visit node of type ast::Node
Definition: nmodl_visitor.cpp:23
nmodl::visitor::NmodlPrintVisitor::visit_solution_expression
virtual void visit_solution_expression(const ast::SolutionExpression &node) override
visit node of type ast::SolutionExpression
Definition: nmodl_visitor.cpp:1950
nmodl::ast::WatchStatement
Represent WATCH statement in NMODL.
Definition: watch_statement.hpp:39
nmodl::ast::LineComment
Represents a one line comment in NMODL.
Definition: line_comment.hpp:38
nmodl::ast::ReadIonVar
TODO.
Definition: read_ion_var.hpp:38
nmodl::ast::Float
Represents a float variable.
Definition: float.hpp:44
nmodl::ast::BreakpointBlock
Represents a BREAKPOINT block in NMODL.
Definition: breakpoint_block.hpp:53
nmodl::ast::UnitState
TODO.
Definition: unit_state.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_ontology_statement
virtual void visit_ontology_statement(const ast::OntologyStatement &node) override
visit node of type ast::OntologyStatement
Definition: nmodl_visitor.cpp:1810
nmodl::visitor::NmodlPrintVisitor::visit_constant_block
virtual void visit_constant_block(const ast::ConstantBlock &node) override
visit node of type ast::ConstantBlock
Definition: nmodl_visitor.cpp:769
nmodl::visitor::NmodlPrintVisitor::visit_double
virtual void visit_double(const ast::Double &node) override
visit node of type ast::Double
Definition: nmodl_visitor.cpp:116
nmodl::ast::IndexedName
Represents specific element of an array variable.
Definition: indexed_name.hpp:48
nmodl::visitor::NmodlPrintVisitor::NmodlPrintVisitor
NmodlPrintVisitor(std::string filename)
Definition: nmodl_visitor.hpp:60
nmodl::visitor::NmodlPrintVisitor::visit_pointer
virtual void visit_pointer(const ast::Pointer &node) override
visit node of type ast::Pointer
Definition: nmodl_visitor.cpp:1728
nmodl::visitor::NmodlPrintVisitor::visit_unary_operator
virtual void visit_unary_operator(const ast::UnaryOperator &node) override
visit node of type ast::UnaryOperator
Definition: nmodl_visitor.cpp:905
nmodl::ast::FunctionCall
TODO.
Definition: function_call.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_float
virtual void visit_float(const ast::Float &node) override
visit node of type ast::Float
Definition: nmodl_visitor.cpp:102
nmodl::ast::DestructorBlock
Represents a DESTRUCTOR block in the NMODL.
Definition: destructor_block.hpp:53
nmodl::visitor::NmodlPrintVisitor::visit_read_ion_var
virtual void visit_read_ion_var(const ast::ReadIonVar &node) override
visit node of type ast::ReadIonVar
Definition: nmodl_visitor.cpp:243
nmodl::visitor::NmodlPrintVisitor::visit_update_dt
virtual void visit_update_dt(const ast::UpdateDt &node) override
visit node of type ast::UpdateDt
Definition: nmodl_visitor.cpp:1964
nmodl::ast::ProtectStatement
TODO.
Definition: protect_statement.hpp:38
nmodl::ast::ConstructorBlock
Represents a CONSTRUCTOR block in the NMODL.
Definition: constructor_block.hpp:51
nmodl::visitor::NmodlPrintVisitor::visit_non_lin_equation
virtual void visit_non_lin_equation(const ast::NonLinEquation &node) override
visit node of type ast::NonLinEquation
Definition: nmodl_visitor.cpp:989
nmodl::visitor::NmodlPrintVisitor::visit_procedure_block
virtual void visit_procedure_block(const ast::ProcedureBlock &node) override
visit node of type ast::ProcedureBlock
Definition: nmodl_visitor.cpp:595
nmodl::ast::MutexUnlock
Represent MUTEXUNLOCK statement in NMODL.
Definition: mutex_unlock.hpp:38
nmodl::visitor::NmodlPrintVisitor
Visitor for printing AST back to NMODL
Definition: nmodl_visitor.hpp:44
nmodl::visitor::NmodlPrintVisitor::visit_constant_var
virtual void visit_constant_var(const ast::ConstantVar &node) override
visit node of type ast::ConstantVar
Definition: nmodl_visitor.cpp:871
nmodl::visitor::NmodlPrintVisitor::visit_watch
virtual void visit_watch(const ast::Watch &node) override
visit node of type ast::Watch
Definition: nmodl_visitor.cpp:1035
nmodl::ast::Useion
Represents USEION statement in NMODL.
Definition: useion.hpp:40
nmodl::visitor::NmodlPrintVisitor::visit_binary_operator
virtual void visit_binary_operator(const ast::BinaryOperator &node) override
visit node of type ast::BinaryOperator
Definition: nmodl_visitor.cpp:892
nmodl::visitor::NmodlPrintVisitor::visit_extern_var
virtual void visit_extern_var(const ast::ExternVar &node) override
visit node of type ast::ExternVar
Definition: nmodl_visitor.cpp:342
nmodl::visitor::NmodlPrintVisitor::visit_integer
virtual void visit_integer(const ast::Integer &node) override
visit node of type ast::Integer
Definition: nmodl_visitor.cpp:84
nmodl::visitor::NmodlPrintVisitor::visit_neuron_block
virtual void visit_neuron_block(const ast::NeuronBlock &node) override
visit node of type ast::NeuronBlock
Definition: nmodl_visitor.cpp:783
nmodl::visitor::NmodlPrintVisitor::visit_before_block
virtual void visit_before_block(const ast::BeforeBlock &node) override
visit node of type ast::BeforeBlock
Definition: nmodl_visitor.cpp:676
nmodl::ast::UnaryExpression
TODO.
Definition: unary_expression.hpp:39
nmodl::visitor::NmodlPrintVisitor::visit_unit
virtual void visit_unit(const ast::Unit &node) override
visit node of type ast::Unit
Definition: nmodl_visitor.cpp:797
nmodl::visitor::NmodlPrintVisitor::visit_electrode_current
virtual void visit_electrode_current(const ast::ElectrodeCurrent &node) override
visit node of type ast::ElectrodeCurrent
Definition: nmodl_visitor.cpp:1680
nmodl::visitor::NmodlPrintVisitor::visit_element
void visit_element(const std::vector< T > &elements, const std::string &separator, bool program, bool statement)
Helper function to visit vector elements.
Definition: nmodl_visitor_helper.ipp:28
nmodl::ast::Global
Represents GLOBAL statement in NMODL.
Definition: global.hpp:39
nmodl::ast::ConstantBlock
Represent CONSTANT block in the mod file.
Definition: constant_block.hpp:50
nmodl::visitor::NmodlPrintVisitor::visit_global_var
virtual void visit_global_var(const ast::GlobalVar &node) override
visit node of type ast::GlobalVar
Definition: nmodl_visitor.cpp:298
nmodl::ast::PrimeName
Represents a prime variable (for ODE)
Definition: prime_name.hpp:48
nmodl::visitor::NmodlPrintVisitor::visit_nonspecific
virtual void visit_nonspecific(const ast::Nonspecific &node) override
visit node of type ast::Nonspecific
Definition: nmodl_visitor.cpp:1668
nmodl::visitor::NmodlPrintVisitor::visit_param_assign
virtual void visit_param_assign(const ast::ParamAssign &node) override
visit node of type ast::ParamAssign
Definition: nmodl_visitor.cpp:1199
nmodl::ast::DerivativeBlock
Represents DERIVATIVE block in the NMODL.
Definition: derivative_block.hpp:49
nmodl::visitor::NmodlPrintVisitor::visit_unit_def
virtual void visit_unit_def(const ast::UnitDef &node) override
visit node of type ast::UnitDef
Definition: nmodl_visitor.cpp:1065
nmodl::visitor::NmodlPrintVisitor::exclude_types
std::set< ast::AstNodeType > exclude_types
node types to exclude while printing
Definition: nmodl_visitor.hpp:49
nmodl::visitor::NmodlPrintVisitor::visit_expression_statement
virtual void visit_expression_statement(const ast::ExpressionStatement &node) override
visit node of type ast::ExpressionStatement
Definition: nmodl_visitor.cpp:1295
nmodl::ast::IfStatement
TODO.
Definition: if_statement.hpp:39
nmodl::ast::Boolean
Represents a boolean variable.
Definition: boolean.hpp:42
nmodl::ast::KineticBlock
TODO.
Definition: kinetic_block.hpp:39
nmodl::visitor::NmodlPrintVisitor::visit_compartment
virtual void visit_compartment(const ast::Compartment &node) override
visit node of type ast::Compartment
Definition: nmodl_visitor.cpp:1475
nmodl::ast::EigenLinearSolverBlock
Represent linear solver solution block based on Eigen.
Definition: eigen_linear_solver_block.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_include
virtual void visit_include(const ast::Include &node) override
visit node of type ast::Include
Definition: nmodl_visitor.cpp:1184
nmodl::ast::LocalVar
TODO.
Definition: local_var.hpp:38
nmodl::ast::LagStatement
Represents a LAG statement in the mod file.
Definition: lag_statement.hpp:47
nmodl::ast::Compartment
Represent COMPARTMENT statement in NMODL.
Definition: compartment.hpp:39
nmodl::ast::UpdateDt
Statement to indicate a change in timestep in a given block.
Definition: update_dt.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_useion
virtual void visit_useion(const ast::Useion &node) override
visit node of type ast::Useion
Definition: nmodl_visitor.cpp:1633
nmodl::visitor::NmodlPrintVisitor::visit_bbcore_pointer
virtual void visit_bbcore_pointer(const ast::BbcorePointer &node) override
visit node of type ast::BbcorePointer
Definition: nmodl_visitor.cpp:1740
nmodl::visitor::NmodlPrintVisitor::visit_prime_name
virtual void visit_prime_name(const ast::PrimeName &node) override
visit node of type ast::PrimeName
Definition: nmodl_visitor.cpp:154
nmodl::visitor::NmodlPrintVisitor::visit_nrn_state_block
virtual void visit_nrn_state_block(const ast::NrnStateBlock &node) override
visit node of type ast::NrnStateBlock
Definition: nmodl_visitor.cpp:1833
nmodl::ast::Statement
TODO.
Definition: statement.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_suffix
virtual void visit_suffix(const ast::Suffix &node) override
visit node of type ast::Suffix
Definition: nmodl_visitor.cpp:1618
nmodl::ast::NumberRange
TODO.
Definition: number_range.hpp:38
nmodl::ast::StateBlock
Represents a STATE block in the NMODL.
Definition: state_block.hpp:52
nmodl::visitor::NmodlPrintVisitor::visit_expression
virtual void visit_expression(const ast::Expression &node) override
visit node of type ast::Expression
Definition: nmodl_visitor.cpp:39
nmodl_printer.hpp
Helper class for printing AST back to NMDOL test.
nmodl::visitor::NmodlPrintVisitor::printer
std::unique_ptr< printer::NMODLPrinter > printer
Definition: nmodl_visitor.hpp:46
nmodl::visitor::NmodlPrintVisitor::visit_lon_difuse
virtual void visit_lon_difuse(const ast::LonDifuse &node) override
visit node of type ast::LonDifuse
Definition: nmodl_visitor.cpp:1502
nmodl::ast::NrnStateBlock
Represents the coreneuron nrn_state callback function.
Definition: nrn_state_block.hpp:39
nmodl::ast::StatementBlock
Represents block encapsulating list of statements.
Definition: statement_block.hpp:53
nmodl::visitor::NmodlPrintVisitor::visit_number_range
virtual void visit_number_range(const ast::NumberRange &node) override
visit node of type ast::NumberRange
Definition: nmodl_visitor.cpp:854
nmodl::visitor::NmodlPrintVisitor::visit_pointer_var
virtual void visit_pointer_var(const ast::PointerVar &node) override
visit node of type ast::PointerVar
Definition: nmodl_visitor.cpp:309
nmodl::visitor::NmodlPrintVisitor::visit_assigned_definition
virtual void visit_assigned_definition(const ast::AssignedDefinition &node) override
visit node of type ast::AssignedDefinition
Definition: nmodl_visitor.cpp:1228
nmodl::ast::OntologyStatement
Represents CURIE information in NMODL.
Definition: ontology_statement.hpp:38
nmodl::ast::External
This construct is deprecated and no longer supported in the NMODL.
Definition: external.hpp:39
nmodl::visitor::NmodlPrintVisitor::visit_define
virtual void visit_define(const ast::Define &node) override
visit node of type ast::Define
Definition: nmodl_visitor.cpp:1168
nmodl::ast::ForNetcon
TODO.
Definition: for_netcon.hpp:39
nmodl::ast::Argument
Represents an argument to functions and procedures.
Definition: argument.hpp:48
nmodl::visitor::NmodlPrintVisitor::visit_while_statement
virtual void visit_while_statement(const ast::WhileStatement &node) override
visit node of type ast::WhileStatement
Definition: nmodl_visitor.cpp:1349
nmodl::visitor::NmodlPrintVisitor::is_exclude_type
bool is_exclude_type(ast::AstNodeType type) const
check if node is to be excluded while printing
Definition: nmodl_visitor.hpp:52
nmodl::ast::ParenExpression
TODO.
Definition: paren_expression.hpp:38
nmodl::ast::LinearBlock
Represents LINEAR block in the NMODL.
Definition: linear_block.hpp:53
nmodl::visitor::NmodlPrintVisitor::visit_ba_block_type
virtual void visit_ba_block_type(const ast::BABlockType &node) override
visit node of type ast::BABlockType
Definition: nmodl_visitor.cpp:1052
nmodl::ast::DerivimplicitCallback
Represent a callback to NEURON's derivimplicit solver.
Definition: derivimplicit_callback.hpp:38
nmodl::ast::ProcedureBlock
TODO.
Definition: procedure_block.hpp:39
nmodl::visitor::NmodlPrintVisitor::visit_ba_block
virtual void visit_ba_block(const ast::BABlock &node) override
visit node of type ast::BABlock
Definition: nmodl_visitor.cpp:700
nmodl::visitor::NmodlPrintVisitor::visit_kinetic_block
virtual void visit_kinetic_block(const ast::KineticBlock &node) override
visit node of type ast::KineticBlock
Definition: nmodl_visitor.cpp:734
nmodl::ast::ReactionStatement
TODO.
Definition: reaction_statement.hpp:39
nmodl::ast::ConstantStatement
Represent statement in CONSTANT block of NMODL.
Definition: constant_statement.hpp:40
nmodl::ast::BinaryOperator
Operator used in ast::BinaryExpression.
Definition: binary_operator.hpp:38
nmodl::ast::BABlockType
Type to represent different block types for before/after block.
Definition: ba_block_type.hpp:42
nmodl::ast::NonLinearBlock
Represents NONLINEAR block in the NMODL.
Definition: non_linear_block.hpp:50
nmodl::visitor::NmodlPrintVisitor::visit_conductance_hint
virtual void visit_conductance_hint(const ast::ConductanceHint &node) override
visit node of type ast::ConductanceHint
Definition: nmodl_visitor.cpp:1277
nmodl::visitor::NmodlPrintVisitor::visit_local_var
virtual void visit_local_var(const ast::LocalVar &node) override
visit node of type ast::LocalVar
Definition: nmodl_visitor.cpp:826
nmodl::ast::SolutionExpression
Represent solution of a block in the AST.
Definition: solution_expression.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_if_statement
virtual void visit_if_statement(const ast::IfStatement &node) override
visit node of type ast::IfStatement
Definition: nmodl_visitor.cpp:1368
nmodl::ast::ElectrodeCurVar
TODO.
Definition: electrode_cur_var.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_valence
virtual void visit_valence(const ast::Valence &node) override
visit node of type ast::Valence
Definition: nmodl_visitor.cpp:1115
nmodl::visitor::NmodlPrintVisitor::visit_var_name
virtual void visit_var_name(const ast::VarName &node) override
visit node of type ast::VarName
Definition: nmodl_visitor.cpp:186
nmodl::visitor::NmodlPrintVisitor::visit_watch_statement
virtual void visit_watch_statement(const ast::WatchStatement &node) override
visit node of type ast::WatchStatement
Definition: nmodl_visitor.cpp:1428
nmodl::ast::LinEquation
TODO.
Definition: lin_equation.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_lag_statement
virtual void visit_lag_statement(const ast::LagStatement &node) override
visit node of type ast::LagStatement
Definition: nmodl_visitor.cpp:1561
nmodl::visitor::NmodlPrintVisitor::visit_range
virtual void visit_range(const ast::Range &node) override
visit node of type ast::Range
Definition: nmodl_visitor.cpp:1692
nmodl::visitor::NmodlPrintVisitor::NmodlPrintVisitor
NmodlPrintVisitor()
Definition: nmodl_visitor.hpp:57
nmodl::ast::IndependentBlock
Represents a INDEPENDENT block in the NMODL.
Definition: independent_block.hpp:46
nmodl::visitor::NmodlPrintVisitor::visit_eigen_linear_solver_block
virtual void visit_eigen_linear_solver_block(const ast::EigenLinearSolverBlock &node) override
visit node of type ast::EigenLinearSolverBlock
Definition: nmodl_visitor.cpp:1889
nmodl::ast::BbcorePointer
Represents BBCOREPOINTER statement in NMODL.
Definition: bbcore_pointer.hpp:47
nmodl::ast::Nonspecific
Represents NONSPECIFIC_CURRENT variables statement in NMODL.
Definition: nonspecific.hpp:39
nmodl::visitor::NmodlPrintVisitor::visit_conserve
virtual void visit_conserve(const ast::Conserve &node) override
visit node of type ast::Conserve
Definition: nmodl_visitor.cpp:1458
nmodl::ast::Name
Represents a name.
Definition: name.hpp:44
nmodl::visitor::NmodlPrintVisitor::visit_function_call
virtual void visit_function_call(const ast::FunctionCall &node) override
visit node of type ast::FunctionCall
Definition: nmodl_visitor.cpp:1021
nmodl::visitor::NmodlPrintVisitor::visit_table_statement
virtual void visit_table_statement(const ast::TableStatement &node) override
visit node of type ast::TableStatement
Definition: nmodl_visitor.cpp:1588
nmodl::ast::Program
Represents top level AST node for whole NMODL input.
Definition: program.hpp:39
nmodl::ast::AfterBlock
Represents a AFTER block in NMODL.
Definition: after_block.hpp:51
nmodl::ast::Number
Base class for all numbers.
Definition: number.hpp:39
nmodl::ast::ThreadSafe
Represents THREADSAFE statement in NMODL.
Definition: thread_safe.hpp:38
nmodl::ast::Expression
Base class for all expressions in the NMODL.
Definition: expression.hpp:43
nmodl::ast::Pointer
Represents POINTER statement in NMODL.
Definition: pointer.hpp:39
nmodl::ast::ElseStatement
TODO.
Definition: else_statement.hpp:38
nmodl::ast::ElectrodeCurrent
Represents ELECTRODE_CURRENT variables statement in NMODL.
Definition: electrode_current.hpp:39
nmodl::ast::NeuronBlock
Represent NEURON block in the mod file.
Definition: neuron_block.hpp:53
nmodl::visitor::NmodlPrintVisitor::visit_function_table_block
virtual void visit_function_table_block(const ast::FunctionTableBlock &node) override
visit node of type ast::FunctionTableBlock
Definition: nmodl_visitor.cpp:548
nmodl::visitor::NmodlPrintVisitor::visit_non_linear_block
virtual void visit_non_linear_block(const ast::NonLinearBlock &node) override
visit node of type ast::NonLinearBlock
Definition: nmodl_visitor.cpp:507
nmodl::visitor::NmodlPrintVisitor::visit_solve_block
virtual void visit_solve_block(const ast::SolveBlock &node) override
visit node of type ast::SolveBlock
Definition: nmodl_visitor.cpp:637
nmodl::ast::BinaryExpression
Represents binary expression in the NMODL.
Definition: binary_expression.hpp:52
nmodl::ast::ParamBlock
Represents a PARAMETER block in the NMODL.
Definition: param_block.hpp:53
nmodl::visitor::NmodlPrintVisitor::visit_mutex_unlock
virtual void visit_mutex_unlock(const ast::MutexUnlock &node) override
visit node of type ast::MutexUnlock
Definition: nmodl_visitor.cpp:1449
nmodl::visitor::NmodlPrintVisitor::visit_limits
virtual void visit_limits(const ast::Limits &node) override
visit node of type ast::Limits
Definition: nmodl_visitor.cpp:837
nmodl::ast::NonspecificCurVar
TODO.
Definition: nonspecific_cur_var.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_assigned_block
virtual void visit_assigned_block(const ast::AssignedBlock &node) override
visit node of type ast::AssignedBlock
Definition: nmodl_visitor.cpp:382
nmodl::visitor::NmodlPrintVisitor::visit_number
virtual void visit_number(const ast::Number &node) override
visit node of type ast::Number
Definition: nmodl_visitor.cpp:63
nmodl::visitor::NmodlPrintVisitor::visit_param_block
virtual void visit_param_block(const ast::ParamBlock &node) override
visit node of type ast::ParamBlock
Definition: nmodl_visitor.cpp:353
nmodl::visitor::NmodlPrintVisitor::visit_else_statement
virtual void visit_else_statement(const ast::ElseStatement &node) override
visit node of type ast::ElseStatement
Definition: nmodl_visitor.cpp:1414
nmodl::visitor::NmodlPrintVisitor::visit_initial_block
virtual void visit_initial_block(const ast::InitialBlock &node) override
visit node of type ast::InitialBlock
Definition: nmodl_visitor.cpp:410
nmodl::visitor::NmodlPrintVisitor::visit_eigen_newton_solver_block
virtual void visit_eigen_newton_solver_block(const ast::EigenNewtonSolverBlock &node) override
visit node of type ast::EigenNewtonSolverBlock
Definition: nmodl_visitor.cpp:1845
nmodl::visitor::NmodlPrintVisitor::visit_react_var_name
virtual void visit_react_var_name(const ast::ReactVarName &node) override
visit node of type ast::ReactVarName
Definition: nmodl_visitor.cpp:226
nmodl::visitor::NmodlPrintVisitor::visit_block
virtual void visit_block(const ast::Block &node) override
visit node of type ast::Block
Definition: nmodl_visitor.cpp:47
nmodl::visitor::NmodlPrintVisitor::visit_lin_equation
virtual void visit_lin_equation(const ast::LinEquation &node) override
visit node of type ast::LinEquation
Definition: nmodl_visitor.cpp:1005
nmodl::ast::String
Represents a string.
Definition: string.hpp:52
nmodl::ast::Limits
TODO.
Definition: limits.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_binary_expression
virtual void visit_binary_expression(const ast::BinaryExpression &node) override
visit node of type ast::BinaryExpression
Definition: nmodl_visitor.cpp:944
nmodl::visitor::NmodlPrintVisitor::visit_nonspecific_cur_var
virtual void visit_nonspecific_cur_var(const ast::NonspecificCurVar &node) override
visit node of type ast::NonspecificCurVar
Definition: nmodl_visitor.cpp:265
nmodl::ast::WrappedExpression
Wrap any other expression type.
Definition: wrapped_expression.hpp:38
nmodl::ast::FromStatement
TODO.
Definition: from_statement.hpp:38
nmodl::visitor::NmodlPrintVisitor::visit_constant_statement
virtual void visit_constant_statement(const ast::ConstantStatement &node) override
visit node of type ast::ConstantStatement
Definition: nmodl_visitor.cpp:1577