User Guide
checkparent_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::test::CheckParentVisitor
21  */
22 
23 #include "visitors/ast_visitor.hpp"
24 
25 namespace nmodl {
26 namespace visitor {
27 namespace test {
28 
29 /**
30  * @ingroup visitor_classes
31  * @{
32  */
33 
34 /**
35  * \class CheckParentVisitor
36  * \brief %Visitor for checking parents of ast nodes
37  *
38  * The visitor goes down the tree (parent -> children) marking down in
39  * parent who is the parent of the node he is visiting.
40  * Once check_parent(ast::Ast* node) verified that the current node has
41  * the correct parent, we set the current node as parent and go down
42  * the tree. Once all the children were checked we set the parent of the
43  * current node as parent (it was checked before) and return.
44  */
46  private:
47  /**
48  * \brief Keeps track of the parents while going down the tree
49  */
50  const ast::Ast* parent = nullptr;
51  /**
52  * \brief Flag to activate the parent check on the root node
53  *
54  * This flag tells to the visitor to check (or not check) if the
55  * root node, from which we start the visit, is the root node and
56  * thus, it should have nullptr parent
57  */
58  const bool is_root_with_null_parent = false;
59 
60  /**
61  * \brief Check the parent, throw an error if not
62  */
63  void check_parent(const ast::Ast& node) const;
64 
65  public:
66 
67  /**
68  * \brief Standard constructor
69  *
70  * If \a is_root_with_null_parent is set to true, also the initial
71  * node is checked to be sure that is really the root (parent == nullptr)
72  */
75 
76  /**
77  * \brief A small wrapper to have a nicer call in parser.cpp
78  * \return 0
79  */
80  int check_ast(const ast::Ast& node);
81 
82  protected:
83 
84  /**
85  * \brief Go through the tree while checking the parents
86  */
87  void visit_node(const ast::Node& node) override;
88  /**
89  * \brief Go through the tree while checking the parents
90  */
91  void visit_statement(const ast::Statement& node) override;
92  /**
93  * \brief Go through the tree while checking the parents
94  */
95  void visit_expression(const ast::Expression& node) override;
96  /**
97  * \brief Go through the tree while checking the parents
98  */
99  void visit_block(const ast::Block& node) override;
100  /**
101  * \brief Go through the tree while checking the parents
102  */
103  void visit_identifier(const ast::Identifier& node) override;
104  /**
105  * \brief Go through the tree while checking the parents
106  */
107  void visit_number(const ast::Number& node) override;
108  /**
109  * \brief Go through the tree while checking the parents
110  */
111  void visit_string(const ast::String& node) override;
112  /**
113  * \brief Go through the tree while checking the parents
114  */
115  void visit_integer(const ast::Integer& node) override;
116  /**
117  * \brief Go through the tree while checking the parents
118  */
119  void visit_float(const ast::Float& node) override;
120  /**
121  * \brief Go through the tree while checking the parents
122  */
123  void visit_double(const ast::Double& node) override;
124  /**
125  * \brief Go through the tree while checking the parents
126  */
127  void visit_boolean(const ast::Boolean& node) override;
128  /**
129  * \brief Go through the tree while checking the parents
130  */
131  void visit_name(const ast::Name& node) override;
132  /**
133  * \brief Go through the tree while checking the parents
134  */
135  void visit_prime_name(const ast::PrimeName& node) override;
136  /**
137  * \brief Go through the tree while checking the parents
138  */
139  void visit_indexed_name(const ast::IndexedName& node) override;
140  /**
141  * \brief Go through the tree while checking the parents
142  */
143  void visit_var_name(const ast::VarName& node) override;
144  /**
145  * \brief Go through the tree while checking the parents
146  */
147  void visit_argument(const ast::Argument& node) override;
148  /**
149  * \brief Go through the tree while checking the parents
150  */
151  void visit_react_var_name(const ast::ReactVarName& node) override;
152  /**
153  * \brief Go through the tree while checking the parents
154  */
155  void visit_read_ion_var(const ast::ReadIonVar& node) override;
156  /**
157  * \brief Go through the tree while checking the parents
158  */
159  void visit_write_ion_var(const ast::WriteIonVar& node) override;
160  /**
161  * \brief Go through the tree while checking the parents
162  */
163  void visit_nonspecific_cur_var(const ast::NonspecificCurVar& node) override;
164  /**
165  * \brief Go through the tree while checking the parents
166  */
167  void visit_electrode_cur_var(const ast::ElectrodeCurVar& node) override;
168  /**
169  * \brief Go through the tree while checking the parents
170  */
171  void visit_range_var(const ast::RangeVar& node) override;
172  /**
173  * \brief Go through the tree while checking the parents
174  */
175  void visit_global_var(const ast::GlobalVar& node) override;
176  /**
177  * \brief Go through the tree while checking the parents
178  */
179  void visit_pointer_var(const ast::PointerVar& node) override;
180  /**
181  * \brief Go through the tree while checking the parents
182  */
183  void visit_random_var(const ast::RandomVar& node) override;
184  /**
185  * \brief Go through the tree while checking the parents
186  */
187  void visit_bbcore_pointer_var(const ast::BbcorePointerVar& node) override;
188  /**
189  * \brief Go through the tree while checking the parents
190  */
191  void visit_extern_var(const ast::ExternVar& node) override;
192  /**
193  * \brief Go through the tree while checking the parents
194  */
195  void visit_param_block(const ast::ParamBlock& node) override;
196  /**
197  * \brief Go through the tree while checking the parents
198  */
199  void visit_independent_block(const ast::IndependentBlock& node) override;
200  /**
201  * \brief Go through the tree while checking the parents
202  */
203  void visit_assigned_block(const ast::AssignedBlock& node) override;
204  /**
205  * \brief Go through the tree while checking the parents
206  */
207  void visit_state_block(const ast::StateBlock& node) override;
208  /**
209  * \brief Go through the tree while checking the parents
210  */
211  void visit_initial_block(const ast::InitialBlock& node) override;
212  /**
213  * \brief Go through the tree while checking the parents
214  */
215  void visit_constructor_block(const ast::ConstructorBlock& node) override;
216  /**
217  * \brief Go through the tree while checking the parents
218  */
219  void visit_destructor_block(const ast::DestructorBlock& node) override;
220  /**
221  * \brief Go through the tree while checking the parents
222  */
223  void visit_statement_block(const ast::StatementBlock& node) override;
224  /**
225  * \brief Go through the tree while checking the parents
226  */
227  void visit_derivative_block(const ast::DerivativeBlock& node) override;
228  /**
229  * \brief Go through the tree while checking the parents
230  */
231  void visit_linear_block(const ast::LinearBlock& node) override;
232  /**
233  * \brief Go through the tree while checking the parents
234  */
235  void visit_non_linear_block(const ast::NonLinearBlock& node) override;
236  /**
237  * \brief Go through the tree while checking the parents
238  */
239  void visit_discrete_block(const ast::DiscreteBlock& node) override;
240  /**
241  * \brief Go through the tree while checking the parents
242  */
243  void visit_function_table_block(const ast::FunctionTableBlock& node) override;
244  /**
245  * \brief Go through the tree while checking the parents
246  */
247  void visit_function_block(const ast::FunctionBlock& node) override;
248  /**
249  * \brief Go through the tree while checking the parents
250  */
251  void visit_procedure_block(const ast::ProcedureBlock& node) override;
252  /**
253  * \brief Go through the tree while checking the parents
254  */
255  void visit_net_receive_block(const ast::NetReceiveBlock& node) override;
256  /**
257  * \brief Go through the tree while checking the parents
258  */
259  void visit_solve_block(const ast::SolveBlock& node) override;
260  /**
261  * \brief Go through the tree while checking the parents
262  */
263  void visit_breakpoint_block(const ast::BreakpointBlock& node) override;
264  /**
265  * \brief Go through the tree while checking the parents
266  */
267  void visit_before_block(const ast::BeforeBlock& node) override;
268  /**
269  * \brief Go through the tree while checking the parents
270  */
271  void visit_after_block(const ast::AfterBlock& node) override;
272  /**
273  * \brief Go through the tree while checking the parents
274  */
275  void visit_ba_block(const ast::BABlock& node) override;
276  /**
277  * \brief Go through the tree while checking the parents
278  */
279  void visit_for_netcon(const ast::ForNetcon& node) override;
280  /**
281  * \brief Go through the tree while checking the parents
282  */
283  void visit_kinetic_block(const ast::KineticBlock& node) override;
284  /**
285  * \brief Go through the tree while checking the parents
286  */
287  void visit_unit_block(const ast::UnitBlock& node) override;
288  /**
289  * \brief Go through the tree while checking the parents
290  */
291  void visit_constant_block(const ast::ConstantBlock& node) override;
292  /**
293  * \brief Go through the tree while checking the parents
294  */
295  void visit_neuron_block(const ast::NeuronBlock& node) override;
296  /**
297  * \brief Go through the tree while checking the parents
298  */
299  void visit_unit(const ast::Unit& node) override;
300  /**
301  * \brief Go through the tree while checking the parents
302  */
303  void visit_double_unit(const ast::DoubleUnit& node) override;
304  /**
305  * \brief Go through the tree while checking the parents
306  */
307  void visit_local_var(const ast::LocalVar& node) override;
308  /**
309  * \brief Go through the tree while checking the parents
310  */
311  void visit_limits(const ast::Limits& node) override;
312  /**
313  * \brief Go through the tree while checking the parents
314  */
315  void visit_number_range(const ast::NumberRange& node) override;
316  /**
317  * \brief Go through the tree while checking the parents
318  */
319  void visit_constant_var(const ast::ConstantVar& node) override;
320  /**
321  * \brief Go through the tree while checking the parents
322  */
323  void visit_binary_operator(const ast::BinaryOperator& node) override;
324  /**
325  * \brief Go through the tree while checking the parents
326  */
327  void visit_unary_operator(const ast::UnaryOperator& node) override;
328  /**
329  * \brief Go through the tree while checking the parents
330  */
331  void visit_reaction_operator(const ast::ReactionOperator& node) override;
332  /**
333  * \brief Go through the tree while checking the parents
334  */
335  void visit_paren_expression(const ast::ParenExpression& node) override;
336  /**
337  * \brief Go through the tree while checking the parents
338  */
339  void visit_binary_expression(const ast::BinaryExpression& node) override;
340  /**
341  * \brief Go through the tree while checking the parents
342  */
343  void visit_diff_eq_expression(const ast::DiffEqExpression& node) override;
344  /**
345  * \brief Go through the tree while checking the parents
346  */
347  void visit_unary_expression(const ast::UnaryExpression& node) override;
348  /**
349  * \brief Go through the tree while checking the parents
350  */
351  void visit_non_lin_equation(const ast::NonLinEquation& node) override;
352  /**
353  * \brief Go through the tree while checking the parents
354  */
355  void visit_lin_equation(const ast::LinEquation& node) override;
356  /**
357  * \brief Go through the tree while checking the parents
358  */
359  void visit_function_call(const ast::FunctionCall& node) override;
360  /**
361  * \brief Go through the tree while checking the parents
362  */
363  void visit_watch(const ast::Watch& node) override;
364  /**
365  * \brief Go through the tree while checking the parents
366  */
367  void visit_ba_block_type(const ast::BABlockType& node) override;
368  /**
369  * \brief Go through the tree while checking the parents
370  */
371  void visit_unit_def(const ast::UnitDef& node) override;
372  /**
373  * \brief Go through the tree while checking the parents
374  */
375  void visit_factor_def(const ast::FactorDef& node) override;
376  /**
377  * \brief Go through the tree while checking the parents
378  */
379  void visit_valence(const ast::Valence& node) override;
380  /**
381  * \brief Go through the tree while checking the parents
382  */
383  void visit_unit_state(const ast::UnitState& node) override;
384  /**
385  * \brief Go through the tree while checking the parents
386  */
387  void visit_local_list_statement(const ast::LocalListStatement& node) override;
388  /**
389  * \brief Go through the tree while checking the parents
390  */
391  void visit_model(const ast::Model& node) override;
392  /**
393  * \brief Go through the tree while checking the parents
394  */
395  void visit_define(const ast::Define& node) override;
396  /**
397  * \brief Go through the tree while checking the parents
398  */
399  void visit_include(const ast::Include& node) override;
400  /**
401  * \brief Go through the tree while checking the parents
402  */
403  void visit_param_assign(const ast::ParamAssign& node) override;
404  /**
405  * \brief Go through the tree while checking the parents
406  */
407  void visit_assigned_definition(const ast::AssignedDefinition& node) override;
408  /**
409  * \brief Go through the tree while checking the parents
410  */
411  void visit_conductance_hint(const ast::ConductanceHint& node) override;
412  /**
413  * \brief Go through the tree while checking the parents
414  */
415  void visit_expression_statement(const ast::ExpressionStatement& node) override;
416  /**
417  * \brief Go through the tree while checking the parents
418  */
419  void visit_protect_statement(const ast::ProtectStatement& node) override;
420  /**
421  * \brief Go through the tree while checking the parents
422  */
423  void visit_from_statement(const ast::FromStatement& node) override;
424  /**
425  * \brief Go through the tree while checking the parents
426  */
427  void visit_while_statement(const ast::WhileStatement& node) override;
428  /**
429  * \brief Go through the tree while checking the parents
430  */
431  void visit_if_statement(const ast::IfStatement& node) override;
432  /**
433  * \brief Go through the tree while checking the parents
434  */
435  void visit_else_if_statement(const ast::ElseIfStatement& node) override;
436  /**
437  * \brief Go through the tree while checking the parents
438  */
439  void visit_else_statement(const ast::ElseStatement& node) override;
440  /**
441  * \brief Go through the tree while checking the parents
442  */
443  void visit_watch_statement(const ast::WatchStatement& node) override;
444  /**
445  * \brief Go through the tree while checking the parents
446  */
447  void visit_mutex_lock(const ast::MutexLock& node) override;
448  /**
449  * \brief Go through the tree while checking the parents
450  */
451  void visit_mutex_unlock(const ast::MutexUnlock& node) override;
452  /**
453  * \brief Go through the tree while checking the parents
454  */
455  void visit_conserve(const ast::Conserve& node) override;
456  /**
457  * \brief Go through the tree while checking the parents
458  */
459  void visit_compartment(const ast::Compartment& node) override;
460  /**
461  * \brief Go through the tree while checking the parents
462  */
463  void visit_lon_difuse(const ast::LonDifuse& node) override;
464  /**
465  * \brief Go through the tree while checking the parents
466  */
467  void visit_reaction_statement(const ast::ReactionStatement& node) override;
468  /**
469  * \brief Go through the tree while checking the parents
470  */
471  void visit_lag_statement(const ast::LagStatement& node) override;
472  /**
473  * \brief Go through the tree while checking the parents
474  */
475  void visit_constant_statement(const ast::ConstantStatement& node) override;
476  /**
477  * \brief Go through the tree while checking the parents
478  */
479  void visit_table_statement(const ast::TableStatement& node) override;
480  /**
481  * \brief Go through the tree while checking the parents
482  */
483  void visit_suffix(const ast::Suffix& node) override;
484  /**
485  * \brief Go through the tree while checking the parents
486  */
487  void visit_useion(const ast::Useion& node) override;
488  /**
489  * \brief Go through the tree while checking the parents
490  */
491  void visit_nonspecific(const ast::Nonspecific& node) override;
492  /**
493  * \brief Go through the tree while checking the parents
494  */
495  void visit_electrode_current(const ast::ElectrodeCurrent& node) override;
496  /**
497  * \brief Go through the tree while checking the parents
498  */
499  void visit_range(const ast::Range& node) override;
500  /**
501  * \brief Go through the tree while checking the parents
502  */
503  void visit_global(const ast::Global& node) override;
504  /**
505  * \brief Go through the tree while checking the parents
506  */
507  void visit_random_var_list(const ast::RandomVarList& node) override;
508  /**
509  * \brief Go through the tree while checking the parents
510  */
511  void visit_pointer(const ast::Pointer& node) override;
512  /**
513  * \brief Go through the tree while checking the parents
514  */
515  void visit_bbcore_pointer(const ast::BbcorePointer& node) override;
516  /**
517  * \brief Go through the tree while checking the parents
518  */
519  void visit_external(const ast::External& node) override;
520  /**
521  * \brief Go through the tree while checking the parents
522  */
523  void visit_thread_safe(const ast::ThreadSafe& node) override;
524  /**
525  * \brief Go through the tree while checking the parents
526  */
527  void visit_verbatim(const ast::Verbatim& node) override;
528  /**
529  * \brief Go through the tree while checking the parents
530  */
531  void visit_line_comment(const ast::LineComment& node) override;
532  /**
533  * \brief Go through the tree while checking the parents
534  */
535  void visit_block_comment(const ast::BlockComment& node) override;
536  /**
537  * \brief Go through the tree while checking the parents
538  */
539  void visit_ontology_statement(const ast::OntologyStatement& node) override;
540  /**
541  * \brief Go through the tree while checking the parents
542  */
543  void visit_program(const ast::Program& node) override;
544  /**
545  * \brief Go through the tree while checking the parents
546  */
547  void visit_nrn_state_block(const ast::NrnStateBlock& node) override;
548  /**
549  * \brief Go through the tree while checking the parents
550  */
552  /**
553  * \brief Go through the tree while checking the parents
554  */
556  /**
557  * \brief Go through the tree while checking the parents
558  */
559  void visit_wrapped_expression(const ast::WrappedExpression& node) override;
560  /**
561  * \brief Go through the tree while checking the parents
562  */
563  void visit_derivimplicit_callback(const ast::DerivimplicitCallback& node) override;
564  /**
565  * \brief Go through the tree while checking the parents
566  */
567  void visit_solution_expression(const ast::SolutionExpression& node) override;
568  /**
569  * \brief Go through the tree while checking the parents
570  */
571  void visit_update_dt(const ast::UpdateDt& node) override;
572 };
573 
574 /** @} */ // end of visitor_classes
575 
576 } // namespace test
577 } // namespace visitor
578 } // namespace nmodl
nmodl::visitor::test::CheckParentVisitor::visit_constructor_block
void visit_constructor_block(const ast::ConstructorBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:501
nmodl::ast::LonDifuse
Represent LONGITUDINAL_DIFFUSION statement in NMODL.
Definition: lon_difuse.hpp:39
nmodl::visitor::test::CheckParentVisitor::CheckParentVisitor
CheckParentVisitor(bool is_root_with_null_parent=true)
Standard constructor.
Definition: checkparent_visitor.hpp:73
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::test::CheckParentVisitor::visit_node
void visit_node(const ast::Node &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:53
nmodl::ast::UnaryOperator
TODO.
Definition: unary_operator.hpp:38
nmodl::ast::SolveBlock
TODO.
Definition: solve_block.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_before_block
void visit_before_block(const ast::BeforeBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:683
nmodl::ast::Include
Represents an INCLUDE statement in NMODL.
Definition: include.hpp:39
nmodl::ast::Unit
TODO.
Definition: unit.hpp:38
nmodl::visitor::test::CheckParentVisitor::is_root_with_null_parent
const bool is_root_with_null_parent
Flag to activate the parent check on the root node.
Definition: checkparent_visitor.hpp:58
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::test::CheckParentVisitor::visit_function_table_block
void visit_function_table_block(const ast::FunctionTableBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:599
nmodl::visitor::test::CheckParentVisitor::visit_mutex_lock
void visit_mutex_lock(const ast::MutexLock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1313
nmodl::visitor::test::CheckParentVisitor::visit_argument
void visit_argument(const ast::Argument &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:263
nmodl::ast::Identifier
Base class for all identifiers.
Definition: identifier.hpp:41
nmodl::visitor::test::CheckParentVisitor::visit_unit_block
void visit_unit_block(const ast::UnitBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:753
nmodl::visitor::test::CheckParentVisitor::visit_program
void visit_program(const ast::Program &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1649
nmodl::visitor::test::CheckParentVisitor::visit_if_statement
void visit_if_statement(const ast::IfStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1257
nmodl::visitor::test::CheckParentVisitor::visit_eigen_linear_solver_block
void visit_eigen_linear_solver_block(const ast::EigenLinearSolverBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1691
nmodl::visitor::ConstAstVisitor
Concrete constant visitor for all AST classes.
Definition: ast_visitor.hpp:166
nmodl::ast::DiffEqExpression
Represents differential equation in DERIVATIVE block.
Definition: diff_eq_expression.hpp:38
nmodl::ast::Ast
Base class for all Abstract Syntax Tree node types.
Definition: ast.hpp:69
nmodl::ast::AssignedDefinition
Represents a statement in ASSIGNED or STATE block.
Definition: assigned_definition.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_param_assign
void visit_param_assign(const ast::ParamAssign &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1159
nmodl::ast::FactorDef
TODO.
Definition: factor_def.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_react_var_name
void visit_react_var_name(const ast::ReactVarName &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:277
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::ast::Range
Represents RANGE variables statement in NMODL.
Definition: range.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_electrode_current
void visit_electrode_current(const ast::ElectrodeCurrent &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1481
nmodl::visitor::test::CheckParentVisitor::visit_procedure_block
void visit_procedure_block(const ast::ProcedureBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:627
nmodl::ast::PointerVar
TODO.
Definition: pointer_var.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_factor_def
void visit_factor_def(const ast::FactorDef &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1061
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::test::CheckParentVisitor::visit_verbatim
void visit_verbatim(const ast::Verbatim &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1593
nmodl::visitor::test::CheckParentVisitor::visit_range_var
void visit_range_var(const ast::RangeVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:347
nmodl::visitor::test::CheckParentVisitor::visit_string
void visit_string(const ast::String &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:137
nmodl::ast::NetReceiveBlock
TODO.
Definition: net_receive_block.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_else_statement
void visit_else_statement(const ast::ElseStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1285
nmodl::visitor::test::CheckParentVisitor::visit_while_statement
void visit_while_statement(const ast::WhileStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1243
nmodl::ast::FunctionTableBlock
TODO.
Definition: function_table_block.hpp:39
nmodl::ast::Conserve
Represent CONSERVE statement in NMODL.
Definition: conserve.hpp:38
nmodl::ast::DoubleUnit
TODO.
Definition: double_unit.hpp:38
nmodl::ast::UnitBlock
TODO.
Definition: unit_block.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_extern_var
void visit_extern_var(const ast::ExternVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:417
nmodl::ast::BlockComment
Represents a multi-line comment in NMODL.
Definition: block_comment.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_constant_block
void visit_constant_block(const ast::ConstantBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:767
nmodl::ast::ConductanceHint
Represents CONDUCTANCE statement in NMODL.
Definition: conductance_hint.hpp:46
nmodl::visitor::test::CheckParentVisitor::visit_mutex_unlock
void visit_mutex_unlock(const ast::MutexUnlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1327
nmodl::visitor::test::CheckParentVisitor::visit_statement
void visit_statement(const ast::Statement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:67
nmodl::visitor::test::CheckParentVisitor::parent
const ast::Ast * parent
Keeps track of the parents while going down the tree.
Definition: checkparent_visitor.hpp:50
nmodl::visitor::test::CheckParentVisitor::visit_function_call
void visit_function_call(const ast::FunctionCall &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1005
nmodl
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
nmodl::visitor::test::CheckParentVisitor::visit_nonspecific_cur_var
void visit_nonspecific_cur_var(const ast::NonspecificCurVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:319
nmodl::visitor::test::CheckParentVisitor::visit_line_comment
void visit_line_comment(const ast::LineComment &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1607
nmodl::visitor::test::CheckParentVisitor::visit_kinetic_block
void visit_kinetic_block(const ast::KineticBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:739
nmodl::ast::Model
TODO.
Definition: model.hpp:38
nmodl::ast::ReactVarName
TODO.
Definition: react_var_name.hpp:38
nmodl::ast::Define
Represents a DEFINE statement in NMODL.
Definition: define.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_double_unit
void visit_double_unit(const ast::DoubleUnit &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:809
nmodl::visitor::test::CheckParentVisitor::visit_unit_def
void visit_unit_def(const ast::UnitDef &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1047
nmodl::visitor::test::CheckParentVisitor::visit_external
void visit_external(const ast::External &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1565
nmodl::visitor::test::CheckParentVisitor::visit_name
void visit_name(const ast::Name &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:207
nmodl::visitor::test::CheckParentVisitor::visit_for_netcon
void visit_for_netcon(const ast::ForNetcon &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:725
nmodl::ast::MutexLock
Represent MUTEXLOCK statement in NMODL.
Definition: mutex_lock.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_lin_equation
void visit_lin_equation(const ast::LinEquation &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:991
nmodl::ast::WriteIonVar
TODO.
Definition: write_ion_var.hpp:38
nmodl::ast::WhileStatement
TODO.
Definition: while_statement.hpp:38
nmodl::ast::Valence
TODO.
Definition: valence.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_indexed_name
void visit_indexed_name(const ast::IndexedName &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:235
nmodl::visitor::test::CheckParentVisitor::visit_ontology_statement
void visit_ontology_statement(const ast::OntologyStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1635
nmodl::ast::TableStatement
Represents TABLE statement in NMODL.
Definition: table_statement.hpp:39
nmodl::ast::VarName
Represents a variable.
Definition: var_name.hpp:43
nmodl::ast::ExternVar
TODO.
Definition: extern_var.hpp:38
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
nmodl::visitor::test::CheckParentVisitor::visit_random_var
void visit_random_var(const ast::RandomVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:389
nmodl::visitor::test::CheckParentVisitor::visit_lag_statement
void visit_lag_statement(const ast::LagStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1397
nmodl::visitor::test::CheckParentVisitor::visit_assigned_definition
void visit_assigned_definition(const ast::AssignedDefinition &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1173
nmodl::visitor::test::CheckParentVisitor::visit_linear_block
void visit_linear_block(const ast::LinearBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:557
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::test::CheckParentVisitor::visit_float
void visit_float(const ast::Float &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:165
nmodl::visitor::test::CheckParentVisitor::visit_protect_statement
void visit_protect_statement(const ast::ProtectStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1215
nmodl::ast::EigenNewtonSolverBlock
Represent newton solver solution block based on Eigen.
Definition: eigen_newton_solver_block.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_var_name
void visit_var_name(const ast::VarName &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:249
nmodl::visitor::test::CheckParentVisitor::check_parent
void check_parent(const ast::Ast &node) const
Check the parent, throw an error if not.
Definition: checkparent_visitor.cpp:34
nmodl::visitor::test::CheckParentVisitor::visit_identifier
void visit_identifier(const ast::Identifier &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:109
nmodl::visitor::test::CheckParentVisitor::visit_binary_operator
void visit_binary_operator(const ast::BinaryOperator &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:879
nmodl::visitor::test::CheckParentVisitor::visit_solve_block
void visit_solve_block(const ast::SolveBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:655
nmodl::visitor::test::CheckParentVisitor::visit_suffix
void visit_suffix(const ast::Suffix &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1439
nmodl::ast::ReactionOperator
TODO.
Definition: reaction_operator.hpp:38
nmodl::ast::ExpressionStatement
TODO.
Definition: expression_statement.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_model
void visit_model(const ast::Model &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1117
nmodl::ast::Block
Base class for all block scoped nodes.
Definition: block.hpp:41
nmodl::ast::InitialBlock
Represents a INITIAL block in the NMODL.
Definition: initial_block.hpp:49
nmodl::ast::DiscreteBlock
TODO.
Definition: discrete_block.hpp:38
nmodl::ast::GlobalVar
TODO.
Definition: global_var.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_bbcore_pointer_var
void visit_bbcore_pointer_var(const ast::BbcorePointerVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:403
nmodl::ast::LocalListStatement
TODO.
Definition: local_list_statement.hpp:39
nmodl::visitor::test::CheckParentVisitor
Visitor for checking parents of ast nodes
Definition: checkparent_visitor.hpp:45
nmodl::ast::UnitDef
TODO.
Definition: unit_def.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_breakpoint_block
void visit_breakpoint_block(const ast::BreakpointBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:669
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::ast::IndexedName
Represents specific element of an array variable.
Definition: indexed_name.hpp:48
nmodl::visitor::test::CheckParentVisitor::visit_bbcore_pointer
void visit_bbcore_pointer(const ast::BbcorePointer &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1551
nmodl::ast::FunctionCall
TODO.
Definition: function_call.hpp:38
nmodl::ast::DestructorBlock
Represents a DESTRUCTOR block in the NMODL.
Definition: destructor_block.hpp:53
nmodl::visitor::test::CheckParentVisitor::visit_read_ion_var
void visit_read_ion_var(const ast::ReadIonVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:291
nmodl::visitor::test::CheckParentVisitor::visit_destructor_block
void visit_destructor_block(const ast::DestructorBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:515
nmodl::visitor::test::CheckParentVisitor::visit_conductance_hint
void visit_conductance_hint(const ast::ConductanceHint &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1187
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::test::CheckParentVisitor::visit_valence
void visit_valence(const ast::Valence &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1075
nmodl::visitor::test::CheckParentVisitor::visit_else_if_statement
void visit_else_if_statement(const ast::ElseIfStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1271
nmodl::ast::MutexUnlock
Represent MUTEXUNLOCK statement in NMODL.
Definition: mutex_unlock.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_initial_block
void visit_initial_block(const ast::InitialBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:487
nmodl::visitor::test::CheckParentVisitor::visit_derivative_block
void visit_derivative_block(const ast::DerivativeBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:543
nmodl::visitor::test::CheckParentVisitor::visit_include
void visit_include(const ast::Include &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1145
nmodl::visitor::test::CheckParentVisitor::visit_electrode_cur_var
void visit_electrode_cur_var(const ast::ElectrodeCurVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:333
nmodl::visitor::test::CheckParentVisitor::check_ast
int check_ast(const ast::Ast &node)
A small wrapper to have a nicer call in parser.cpp.
Definition: checkparent_visitor.cpp:25
nmodl::ast::Useion
Represents USEION statement in NMODL.
Definition: useion.hpp:40
nmodl::visitor::test::CheckParentVisitor::visit_paren_expression
void visit_paren_expression(const ast::ParenExpression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:921
nmodl::visitor::test::CheckParentVisitor::visit_write_ion_var
void visit_write_ion_var(const ast::WriteIonVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:305
nmodl::visitor::test::CheckParentVisitor::visit_local_var
void visit_local_var(const ast::LocalVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:823
nmodl::ast::UnaryExpression
TODO.
Definition: unary_expression.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_statement_block
void visit_statement_block(const ast::StatementBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:529
nmodl::visitor::test::CheckParentVisitor::visit_unit
void visit_unit(const ast::Unit &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:795
nmodl::visitor::test::CheckParentVisitor::visit_useion
void visit_useion(const ast::Useion &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1453
nmodl::visitor::test::CheckParentVisitor::visit_integer
void visit_integer(const ast::Integer &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:151
nmodl::visitor::test::CheckParentVisitor::visit_ba_block
void visit_ba_block(const ast::BABlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:711
nmodl::ast::Global
Represents GLOBAL statement in NMODL.
Definition: global.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_independent_block
void visit_independent_block(const ast::IndependentBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:445
nmodl::visitor::test::CheckParentVisitor::visit_number
void visit_number(const ast::Number &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:123
nmodl::visitor::test::CheckParentVisitor::visit_global_var
void visit_global_var(const ast::GlobalVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:361
nmodl::visitor::test::CheckParentVisitor::visit_neuron_block
void visit_neuron_block(const ast::NeuronBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:781
nmodl::ast::ConstantBlock
Represent CONSTANT block in the mod file.
Definition: constant_block.hpp:50
nmodl::visitor::test::CheckParentVisitor::visit_constant_statement
void visit_constant_statement(const ast::ConstantStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1411
nmodl::visitor::test::CheckParentVisitor::visit_reaction_operator
void visit_reaction_operator(const ast::ReactionOperator &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:907
nmodl::ast::PrimeName
Represents a prime variable (for ODE)
Definition: prime_name.hpp:48
nmodl::visitor::test::CheckParentVisitor::visit_number_range
void visit_number_range(const ast::NumberRange &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:851
nmodl::ast::DerivativeBlock
Represents DERIVATIVE block in the NMODL.
Definition: derivative_block.hpp:49
nmodl::ast::IfStatement
TODO.
Definition: if_statement.hpp:39
nmodl::ast::Boolean
Represents a boolean variable.
Definition: boolean.hpp:42
nmodl::visitor::test::CheckParentVisitor::visit_diff_eq_expression
void visit_diff_eq_expression(const ast::DiffEqExpression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:949
nmodl::visitor::test::CheckParentVisitor::visit_conserve
void visit_conserve(const ast::Conserve &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1341
nmodl::ast::KineticBlock
TODO.
Definition: kinetic_block.hpp:39
nmodl::ast::EigenLinearSolverBlock
Represent linear solver solution block based on Eigen.
Definition: eigen_linear_solver_block.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_function_block
void visit_function_block(const ast::FunctionBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:613
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::test::CheckParentVisitor::visit_solution_expression
void visit_solution_expression(const ast::SolutionExpression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1733
nmodl::visitor::test::CheckParentVisitor::visit_after_block
void visit_after_block(const ast::AfterBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:697
nmodl::visitor::test::CheckParentVisitor::visit_prime_name
void visit_prime_name(const ast::PrimeName &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:221
nmodl::ast::Statement
TODO.
Definition: statement.hpp:38
nmodl::ast::NumberRange
TODO.
Definition: number_range.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_wrapped_expression
void visit_wrapped_expression(const ast::WrappedExpression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1705
nmodl::ast::StateBlock
Represents a STATE block in the NMODL.
Definition: state_block.hpp:52
nmodl::visitor::test::CheckParentVisitor::visit_random_var_list
void visit_random_var_list(const ast::RandomVarList &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1523
nmodl::visitor::test::CheckParentVisitor::visit_nonspecific
void visit_nonspecific(const ast::Nonspecific &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1467
nmodl::visitor::test::CheckParentVisitor::visit_block
void visit_block(const ast::Block &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:95
nmodl::visitor::test::CheckParentVisitor::visit_binary_expression
void visit_binary_expression(const ast::BinaryExpression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:935
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::test::CheckParentVisitor::visit_unary_operator
void visit_unary_operator(const ast::UnaryOperator &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:893
nmodl::visitor::test::CheckParentVisitor::visit_watch_statement
void visit_watch_statement(const ast::WatchStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1299
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::ast::ForNetcon
TODO.
Definition: for_netcon.hpp:39
nmodl::ast::Argument
Represents an argument to functions and procedures.
Definition: argument.hpp:48
nmodl::visitor::test::CheckParentVisitor::visit_constant_var
void visit_constant_var(const ast::ConstantVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:865
nmodl::visitor::test::CheckParentVisitor::visit_unit_state
void visit_unit_state(const ast::UnitState &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1089
nmodl::ast::ParenExpression
TODO.
Definition: paren_expression.hpp:38
nmodl::ast::LinearBlock
Represents LINEAR block in the NMODL.
Definition: linear_block.hpp:53
nmodl::ast::DerivimplicitCallback
Represent a callback to NEURON's derivimplicit solver.
Definition: derivimplicit_callback.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_state_block
void visit_state_block(const ast::StateBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:473
nmodl::ast::ProcedureBlock
TODO.
Definition: procedure_block.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_ba_block_type
void visit_ba_block_type(const ast::BABlockType &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1033
nmodl::visitor::test::CheckParentVisitor::visit_define
void visit_define(const ast::Define &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1131
nmodl::visitor::test::CheckParentVisitor::visit_range
void visit_range(const ast::Range &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1495
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::visitor::test::CheckParentVisitor::visit_update_dt
void visit_update_dt(const ast::UpdateDt &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1747
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::ast::SolutionExpression
Represent solution of a block in the AST.
Definition: solution_expression.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_expression
void visit_expression(const ast::Expression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:81
nmodl::ast::ElectrodeCurVar
TODO.
Definition: electrode_cur_var.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_from_statement
void visit_from_statement(const ast::FromStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1229
nmodl::ast::LinEquation
TODO.
Definition: lin_equation.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_pointer
void visit_pointer(const ast::Pointer &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1537
nmodl::ast::IndependentBlock
Represents a INDEPENDENT block in the NMODL.
Definition: independent_block.hpp:46
nmodl::visitor::test::CheckParentVisitor::visit_eigen_newton_solver_block
void visit_eigen_newton_solver_block(const ast::EigenNewtonSolverBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1677
nmodl::visitor::test::CheckParentVisitor::visit_compartment
void visit_compartment(const ast::Compartment &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1355
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::test::CheckParentVisitor::visit_expression_statement
void visit_expression_statement(const ast::ExpressionStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1201
nmodl::visitor::test::CheckParentVisitor::visit_table_statement
void visit_table_statement(const ast::TableStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1425
nmodl::ast::Name
Represents a name.
Definition: name.hpp:44
nmodl::visitor::test::CheckParentVisitor::visit_thread_safe
void visit_thread_safe(const ast::ThreadSafe &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1579
nmodl::visitor::test::CheckParentVisitor::visit_nrn_state_block
void visit_nrn_state_block(const ast::NrnStateBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1663
nmodl::visitor::test::CheckParentVisitor::visit_derivimplicit_callback
void visit_derivimplicit_callback(const ast::DerivimplicitCallback &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1719
nmodl::visitor::test::CheckParentVisitor::visit_net_receive_block
void visit_net_receive_block(const ast::NetReceiveBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:641
nmodl::ast::Program
Represents top level AST node for whole NMODL input.
Definition: program.hpp:39
nmodl::visitor::test::CheckParentVisitor::visit_unary_expression
void visit_unary_expression(const ast::UnaryExpression &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:963
nmodl::visitor::test::CheckParentVisitor::visit_discrete_block
void visit_discrete_block(const ast::DiscreteBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:585
nmodl::visitor::test::CheckParentVisitor::visit_global
void visit_global(const ast::Global &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1509
nmodl::visitor::test::CheckParentVisitor::visit_assigned_block
void visit_assigned_block(const ast::AssignedBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:459
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::visitor::test::CheckParentVisitor::visit_watch
void visit_watch(const ast::Watch &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1019
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::test::CheckParentVisitor::visit_double
void visit_double(const ast::Double &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:179
nmodl::visitor::test::CheckParentVisitor::visit_non_lin_equation
void visit_non_lin_equation(const ast::NonLinEquation &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:977
nmodl::visitor::test::CheckParentVisitor::visit_param_block
void visit_param_block(const ast::ParamBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:431
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::test::CheckParentVisitor::visit_boolean
void visit_boolean(const ast::Boolean &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:193
nmodl::ast::NonspecificCurVar
TODO.
Definition: nonspecific_cur_var.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_pointer_var
void visit_pointer_var(const ast::PointerVar &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:375
nmodl::visitor::test::CheckParentVisitor::visit_local_list_statement
void visit_local_list_statement(const ast::LocalListStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1103
nmodl::visitor::test::CheckParentVisitor::visit_block_comment
void visit_block_comment(const ast::BlockComment &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1621
nmodl::visitor::test::CheckParentVisitor::visit_reaction_statement
void visit_reaction_statement(const ast::ReactionStatement &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1383
nmodl::visitor::test::CheckParentVisitor::visit_non_linear_block
void visit_non_linear_block(const ast::NonLinearBlock &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:571
nmodl::ast::String
Represents a string.
Definition: string.hpp:52
nmodl::ast::Limits
TODO.
Definition: limits.hpp:38
nmodl::ast::WrappedExpression
Wrap any other expression type.
Definition: wrapped_expression.hpp:38
nmodl::ast::FromStatement
TODO.
Definition: from_statement.hpp:38
nmodl::visitor::test::CheckParentVisitor::visit_limits
void visit_limits(const ast::Limits &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:837
nmodl::visitor::test::CheckParentVisitor::visit_lon_difuse
void visit_lon_difuse(const ast::LonDifuse &node) override
Go through the tree while checking the parents.
Definition: checkparent_visitor.cpp:1369
ast_visitor.hpp
Concrete visitor for all AST classes.