24 printer->add_node(
"Node");
29 printer->add_node(
"Statement");
34 printer->add_node(
"Expression");
39 printer->add_node(
"Block");
44 printer->add_node(
"Identifier");
49 printer->add_node(
"Number");
53 printer->push_block(
node.get_node_type_name());
57 node.visit_children(*
this);
60 printer->add_node(ss.str());
65 printer->push_block(
node.get_node_type_name());
69 node.visit_children(*
this);
70 if(!
node.get_macro()) {
73 printer->add_node(ss.str());
79 printer->push_block(
node.get_node_type_name());
83 node.visit_children(*
this);
86 printer->add_node(ss.str());
91 printer->push_block(
node.get_node_type_name());
95 node.visit_children(*
this);
98 printer->add_node(ss.str());
103 printer->push_block(
node.get_node_type_name());
107 node.visit_children(*
this);
108 std::stringstream ss;
110 printer->add_node(ss.str());
111 printer->pop_block();
115 printer->push_block(
node.get_node_type_name());
119 node.visit_children(*
this);
120 printer->pop_block();
124 printer->push_block(
node.get_node_type_name());
128 node.visit_children(*
this);
129 printer->pop_block();
133 printer->push_block(
node.get_node_type_name());
137 node.visit_children(*
this);
138 printer->pop_block();
142 printer->push_block(
node.get_node_type_name());
146 node.visit_children(*
this);
147 printer->pop_block();
151 printer->push_block(
node.get_node_type_name());
155 node.visit_children(*
this);
156 printer->pop_block();
160 printer->push_block(
node.get_node_type_name());
164 node.visit_children(*
this);
165 printer->pop_block();
169 printer->push_block(
node.get_node_type_name());
173 node.visit_children(*
this);
174 printer->pop_block();
178 printer->push_block(
node.get_node_type_name());
182 node.visit_children(*
this);
183 printer->pop_block();
187 printer->push_block(
node.get_node_type_name());
191 node.visit_children(*
this);
192 printer->pop_block();
196 printer->push_block(
node.get_node_type_name());
200 node.visit_children(*
this);
201 printer->pop_block();
205 printer->push_block(
node.get_node_type_name());
209 node.visit_children(*
this);
210 printer->pop_block();
214 printer->push_block(
node.get_node_type_name());
218 node.visit_children(*
this);
219 printer->pop_block();
223 printer->push_block(
node.get_node_type_name());
227 node.visit_children(*
this);
228 printer->pop_block();
232 printer->push_block(
node.get_node_type_name());
236 node.visit_children(*
this);
237 printer->pop_block();
241 printer->push_block(
node.get_node_type_name());
245 node.visit_children(*
this);
246 printer->pop_block();
250 printer->push_block(
node.get_node_type_name());
254 node.visit_children(*
this);
255 printer->pop_block();
259 printer->push_block(
node.get_node_type_name());
263 node.visit_children(*
this);
264 printer->pop_block();
268 printer->push_block(
node.get_node_type_name());
272 node.visit_children(*
this);
273 printer->pop_block();
277 printer->push_block(
node.get_node_type_name());
281 node.visit_children(*
this);
282 printer->pop_block();
286 printer->push_block(
node.get_node_type_name());
290 node.visit_children(*
this);
291 printer->pop_block();
295 printer->push_block(
node.get_node_type_name());
299 node.visit_children(*
this);
300 printer->pop_block();
304 printer->push_block(
node.get_node_type_name());
308 node.visit_children(*
this);
309 printer->pop_block();
313 printer->push_block(
node.get_node_type_name());
317 node.visit_children(*
this);
318 printer->pop_block();
322 printer->push_block(
node.get_node_type_name());
326 node.visit_children(*
this);
327 printer->pop_block();
331 printer->push_block(
node.get_node_type_name());
335 node.visit_children(*
this);
336 printer->pop_block();
340 printer->push_block(
node.get_node_type_name());
344 node.visit_children(*
this);
345 printer->pop_block();
349 printer->push_block(
node.get_node_type_name());
353 node.visit_children(*
this);
354 printer->pop_block();
358 printer->push_block(
node.get_node_type_name());
362 node.visit_children(*
this);
363 printer->pop_block();
367 printer->push_block(
node.get_node_type_name());
371 node.visit_children(*
this);
372 printer->pop_block();
376 printer->push_block(
node.get_node_type_name());
380 node.visit_children(*
this);
381 printer->pop_block();
385 printer->push_block(
node.get_node_type_name());
389 node.visit_children(*
this);
390 printer->pop_block();
394 printer->push_block(
node.get_node_type_name());
398 node.visit_children(*
this);
399 printer->pop_block();
403 printer->push_block(
node.get_node_type_name());
407 node.visit_children(*
this);
408 printer->pop_block();
412 printer->push_block(
node.get_node_type_name());
416 node.visit_children(*
this);
417 printer->pop_block();
421 printer->push_block(
node.get_node_type_name());
425 node.visit_children(*
this);
426 printer->pop_block();
430 printer->push_block(
node.get_node_type_name());
434 node.visit_children(*
this);
435 printer->pop_block();
439 printer->push_block(
node.get_node_type_name());
443 node.visit_children(*
this);
444 printer->pop_block();
448 printer->push_block(
node.get_node_type_name());
452 node.visit_children(*
this);
453 printer->pop_block();
457 printer->push_block(
node.get_node_type_name());
461 node.visit_children(*
this);
462 printer->pop_block();
466 printer->push_block(
node.get_node_type_name());
470 node.visit_children(*
this);
471 printer->pop_block();
475 printer->push_block(
node.get_node_type_name());
479 node.visit_children(*
this);
480 printer->pop_block();
484 printer->push_block(
node.get_node_type_name());
488 node.visit_children(*
this);
489 printer->pop_block();
493 printer->push_block(
node.get_node_type_name());
497 node.visit_children(*
this);
498 printer->pop_block();
502 printer->push_block(
node.get_node_type_name());
506 node.visit_children(*
this);
507 printer->pop_block();
511 printer->push_block(
node.get_node_type_name());
515 node.visit_children(*
this);
516 printer->pop_block();
520 printer->push_block(
node.get_node_type_name());
524 node.visit_children(*
this);
525 printer->pop_block();
529 printer->push_block(
node.get_node_type_name());
533 node.visit_children(*
this);
534 printer->pop_block();
538 printer->push_block(
node.get_node_type_name());
542 node.visit_children(*
this);
543 printer->pop_block();
547 printer->push_block(
node.get_node_type_name());
551 node.visit_children(*
this);
552 std::stringstream ss;
554 printer->add_node(ss.str());
555 printer->pop_block();
559 printer->push_block(
node.get_node_type_name());
563 node.visit_children(*
this);
564 std::stringstream ss;
566 printer->add_node(ss.str());
567 printer->pop_block();
571 printer->push_block(
node.get_node_type_name());
575 node.visit_children(*
this);
576 std::stringstream ss;
578 printer->add_node(ss.str());
579 printer->pop_block();
583 printer->push_block(
node.get_node_type_name());
587 node.visit_children(*
this);
588 printer->pop_block();
592 printer->push_block(
node.get_node_type_name());
596 node.visit_children(*
this);
597 printer->pop_block();
601 printer->push_block(
node.get_node_type_name());
605 node.visit_children(*
this);
606 printer->pop_block();
610 printer->push_block(
node.get_node_type_name());
614 node.visit_children(*
this);
615 printer->pop_block();
619 printer->push_block(
node.get_node_type_name());
623 node.visit_children(*
this);
624 printer->pop_block();
628 printer->push_block(
node.get_node_type_name());
632 node.visit_children(*
this);
633 printer->pop_block();
637 printer->push_block(
node.get_node_type_name());
641 node.visit_children(*
this);
642 printer->pop_block();
646 printer->push_block(
node.get_node_type_name());
650 node.visit_children(*
this);
651 printer->pop_block();
655 printer->push_block(
node.get_node_type_name());
659 node.visit_children(*
this);
660 std::stringstream ss;
662 printer->add_node(ss.str());
663 printer->pop_block();
667 printer->push_block(
node.get_node_type_name());
671 node.visit_children(*
this);
672 printer->pop_block();
676 printer->push_block(
node.get_node_type_name());
680 node.visit_children(*
this);
681 printer->pop_block();
685 printer->push_block(
node.get_node_type_name());
689 node.visit_children(*
this);
690 printer->pop_block();
694 printer->push_block(
node.get_node_type_name());
698 node.visit_children(*
this);
699 std::stringstream ss;
701 printer->add_node(ss.str());
702 printer->pop_block();
706 printer->push_block(
node.get_node_type_name());
710 node.visit_children(*
this);
711 printer->pop_block();
715 printer->push_block(
node.get_node_type_name());
719 node.visit_children(*
this);
720 printer->pop_block();
724 printer->push_block(
node.get_node_type_name());
728 node.visit_children(*
this);
729 printer->pop_block();
733 printer->push_block(
node.get_node_type_name());
737 node.visit_children(*
this);
738 printer->pop_block();
742 printer->push_block(
node.get_node_type_name());
746 node.visit_children(*
this);
747 printer->pop_block();
751 printer->push_block(
node.get_node_type_name());
755 node.visit_children(*
this);
756 printer->pop_block();
760 printer->push_block(
node.get_node_type_name());
764 node.visit_children(*
this);
765 printer->pop_block();
769 printer->push_block(
node.get_node_type_name());
773 node.visit_children(*
this);
774 printer->pop_block();
778 printer->push_block(
node.get_node_type_name());
782 node.visit_children(*
this);
783 printer->pop_block();
787 printer->push_block(
node.get_node_type_name());
791 node.visit_children(*
this);
792 printer->pop_block();
796 printer->push_block(
node.get_node_type_name());
800 node.visit_children(*
this);
801 printer->pop_block();
805 printer->push_block(
node.get_node_type_name());
809 node.visit_children(*
this);
810 printer->pop_block();
814 printer->push_block(
node.get_node_type_name());
818 node.visit_children(*
this);
819 printer->pop_block();
823 printer->push_block(
node.get_node_type_name());
827 node.visit_children(*
this);
828 printer->pop_block();
832 printer->push_block(
node.get_node_type_name());
836 node.visit_children(*
this);
837 printer->pop_block();
842 printer->add_node(
"MutexLock");
847 printer->add_node(
"MutexUnlock");
851 printer->push_block(
node.get_node_type_name());
855 node.visit_children(*
this);
856 printer->pop_block();
860 printer->push_block(
node.get_node_type_name());
864 node.visit_children(*
this);
865 printer->pop_block();
869 printer->push_block(
node.get_node_type_name());
873 node.visit_children(*
this);
874 printer->pop_block();
878 printer->push_block(
node.get_node_type_name());
882 node.visit_children(*
this);
883 printer->pop_block();
887 printer->push_block(
node.get_node_type_name());
891 node.visit_children(*
this);
892 printer->pop_block();
896 printer->push_block(
node.get_node_type_name());
900 node.visit_children(*
this);
901 printer->pop_block();
905 printer->push_block(
node.get_node_type_name());
909 node.visit_children(*
this);
910 printer->pop_block();
914 printer->push_block(
node.get_node_type_name());
918 node.visit_children(*
this);
919 printer->pop_block();
923 printer->push_block(
node.get_node_type_name());
927 node.visit_children(*
this);
928 printer->pop_block();
932 printer->push_block(
node.get_node_type_name());
936 node.visit_children(*
this);
937 printer->pop_block();
941 printer->push_block(
node.get_node_type_name());
945 node.visit_children(*
this);
946 printer->pop_block();
950 printer->push_block(
node.get_node_type_name());
954 node.visit_children(*
this);
955 printer->pop_block();
959 printer->push_block(
node.get_node_type_name());
963 node.visit_children(*
this);
964 printer->pop_block();
968 printer->push_block(
node.get_node_type_name());
972 node.visit_children(*
this);
973 printer->pop_block();
977 printer->push_block(
node.get_node_type_name());
981 node.visit_children(*
this);
982 printer->pop_block();
986 printer->push_block(
node.get_node_type_name());
990 node.visit_children(*
this);
991 printer->pop_block();
995 printer->push_block(
node.get_node_type_name());
999 node.visit_children(*
this);
1000 printer->pop_block();
1005 printer->add_node(
"ThreadSafe");
1009 printer->push_block(
node.get_node_type_name());
1013 node.visit_children(*
this);
1014 printer->pop_block();
1018 printer->push_block(
node.get_node_type_name());
1022 node.visit_children(*
this);
1023 printer->pop_block();
1027 printer->push_block(
node.get_node_type_name());
1031 node.visit_children(*
this);
1032 printer->pop_block();
1036 printer->push_block(
node.get_node_type_name());
1040 node.visit_children(*
this);
1041 printer->pop_block();
1045 printer->push_block(
node.get_node_type_name());
1049 node.visit_children(*
this);
1050 printer->pop_block();
1051 if (
node.get_parent() ==
nullptr) {
1057 printer->push_block(
node.get_node_type_name());
1061 node.visit_children(*
this);
1062 printer->pop_block();
1066 printer->push_block(
node.get_node_type_name());
1070 node.visit_children(*
this);
1071 printer->pop_block();
1075 printer->push_block(
node.get_node_type_name());
1079 node.visit_children(*
this);
1080 printer->pop_block();
1084 printer->push_block(
node.get_node_type_name());
1088 node.visit_children(*
this);
1089 printer->pop_block();
1093 printer->push_block(
node.get_node_type_name());
1097 node.visit_children(*
this);
1098 printer->pop_block();
1102 printer->push_block(
node.get_node_type_name());
1106 node.visit_children(*
this);
1107 printer->pop_block();
1111 printer->push_block(
node.get_node_type_name());
1115 node.visit_children(*
this);
1116 printer->pop_block();
1120 printer->push_block(
node.get_node_type_name());
1124 node.visit_children(*
this);
1125 printer->pop_block();
1129 printer->push_block(
node.get_node_type_name());
1133 node.visit_children(*
this);
1134 printer->pop_block();
Auto generated AST classes declaration.
Represents a AFTER block in NMODL.
Represents an argument to functions and procedures.
Represents a ASSIGNED block in the NMODL.
Represents a statement in ASSIGNED or STATE block.
Represents a block to be executed before or after another block.
Type to represent different block types for before/after block.
Represents BBCOREPOINTER statement in NMODL.
Represent a single variable of type BBCOREPOINTER.
Represents a BEFORE block in NMODL.
Represents binary expression in the NMODL.
Operator used in ast::BinaryExpression.
Base class for all block scoped nodes.
Represents a boolean variable.
Represents a BREAKPOINT block in NMODL.
Represent COMPARTMENT statement in NMODL.
Represents CONDUCTANCE statement in NMODL.
Represent CONSERVE statement in NMODL.
Represent CONSTANT block in the mod file.
Represent statement in CONSTANT block of NMODL.
Represents a variable in the ast::ConstantBlock.
Represents a CONSTRUCTOR block in the NMODL.
Represents a block used for variable timestep integration (CVODE) of DERIVATIVE blocks.
Represents a DEFINE statement in NMODL.
Represents DERIVATIVE block in the NMODL.
Represent a callback to NEURON's derivimplicit solver.
Represents a DESTRUCTOR block in the NMODL.
Represents differential equation in DERIVATIVE block.
Represents a double variable.
Represent linear solver solution block based on Eigen.
Represent newton solver solution block based on Eigen.
Represents ELECTRODE_CURRENT variables statement in NMODL.
Base class for all expressions in the NMODL.
This construct is deprecated and no longer supported in the NMODL.
Represents a float variable.
Represents GLOBAL statement in NMODL.
Base class for all identifiers.
Represents an INCLUDE statement in NMODL.
Represents a INDEPENDENT block in the NMODL.
Represents specific element of an array variable.
Represents a INITIAL block in the NMODL.
Represents an integer variable.
Represents a LAG statement in the mod file.
One equation in a system of equations tha collectively form a LINEAR block.
Represents LINEAR block in the NMODL.
Represent LONGITUDINAL_DIFFUSION statement in NMODL.
Extracts information required for LONGITUDINAL_DIFFUSION for each KINETIC block.
Represent MUTEXLOCK statement in NMODL.
Represent MUTEXUNLOCK statement in NMODL.
Represent NEURON block in the mod file.
Base class for all AST node.
One equation in a system of equations that collectively make a NONLINEAR block.
Represents NONLINEAR block in the NMODL.
Represents NONSPECIFIC_CURRENT variables statement in NMODL.
Represents the coreneuron nrn_state callback function.
Base class for all numbers.
Represents CURIE information in NMODL.
Represents a PARAMETER block in the NMODL.
Represents POINTER statement in NMODL.
Represents a prime variable (for ODE)
Represents top level AST node for whole NMODL input.
Single variable of type RANDOM.
Represents RANDOM statement in NMODL.
Represents RANGE variables statement in NMODL.
Represent solution of a block in the AST.
Represents a STATE block in the NMODL.
Represents block encapsulating list of statements.
Represents SUFFIX statement in NMODL.
Represents TABLE statement in NMODL.
Represents THREADSAFE statement in NMODL.
Statement to indicate a change in timestep in a given block.
Represents USEION statement in NMODL.
Represents a C code block.
Represent WATCH statement in NMODL.
Wrap any other expression type.
void visit_wrapped_expression(const ast::WrappedExpression &node) override
visit node of type ast::WrappedExpression
void visit_program(const ast::Program &node) override
visit node of type ast::Program
void visit_ontology_statement(const ast::OntologyStatement &node) override
visit node of type ast::OntologyStatement
void visit_expression_statement(const ast::ExpressionStatement &node) override
visit node of type ast::ExpressionStatement
void visit_var_name(const ast::VarName &node) override
visit node of type ast::VarName
void visit_eigen_linear_solver_block(const ast::EigenLinearSolverBlock &node) override
visit node of type ast::EigenLinearSolverBlock
void visit_nonspecific_cur_var(const ast::NonspecificCurVar &node) override
visit node of type ast::NonspecificCurVar
void visit_assigned_block(const ast::AssignedBlock &node) override
visit node of type ast::AssignedBlock
void visit_external(const ast::External &node) override
visit node of type ast::External
void visit_read_ion_var(const ast::ReadIonVar &node) override
visit node of type ast::ReadIonVar
void visit_define(const ast::Define &node) override
visit node of type ast::Define
void visit_protect_statement(const ast::ProtectStatement &node) override
visit node of type ast::ProtectStatement
void visit_react_var_name(const ast::ReactVarName &node) override
visit node of type ast::ReactVarName
void visit_nrn_state_block(const ast::NrnStateBlock &node) override
visit node of type ast::NrnStateBlock
void visit_linear_block(const ast::LinearBlock &node) override
visit node of type ast::LinearBlock
void visit_include(const ast::Include &node) override
visit node of type ast::Include
void visit_expression(const ast::Expression &node) override
visit node of type ast::Expression
void visit_compartment(const ast::Compartment &node) override
visit node of type ast::Compartment
void visit_global_var(const ast::GlobalVar &node) override
visit node of type ast::GlobalVar
void visit_reaction_operator(const ast::ReactionOperator &node) override
visit node of type ast::ReactionOperator
void visit_mutex_unlock(const ast::MutexUnlock &node) override
visit node of type ast::MutexUnlock
void visit_non_linear_block(const ast::NonLinearBlock &node) override
visit node of type ast::NonLinearBlock
void visit_cvode_block(const ast::CvodeBlock &node) override
visit node of type ast::CvodeBlock
void visit_model(const ast::Model &node) override
visit node of type ast::Model
void visit_block(const ast::Block &node) override
visit node of type ast::Block
void visit_unary_operator(const ast::UnaryOperator &node) override
visit node of type ast::UnaryOperator
void visit_verbatim(const ast::Verbatim &node) override
visit node of type ast::Verbatim
void visit_write_ion_var(const ast::WriteIonVar &node) override
visit node of type ast::WriteIonVar
void visit_boolean(const ast::Boolean &node) override
visit node of type ast::Boolean
void visit_reaction_statement(const ast::ReactionStatement &node) override
visit node of type ast::ReactionStatement
void visit_local_list_statement(const ast::LocalListStatement &node) override
visit node of type ast::LocalListStatement
void visit_kinetic_block(const ast::KineticBlock &node) override
visit node of type ast::KineticBlock
void visit_prime_name(const ast::PrimeName &node) override
visit node of type ast::PrimeName
void visit_ba_block(const ast::BABlock &node) override
visit node of type ast::BABlock
void visit_watch(const ast::Watch &node) override
visit node of type ast::Watch
void visit_procedure_block(const ast::ProcedureBlock &node) override
visit node of type ast::ProcedureBlock
void visit_electrode_current(const ast::ElectrodeCurrent &node) override
visit node of type ast::ElectrodeCurrent
void visit_solve_block(const ast::SolveBlock &node) override
visit node of type ast::SolveBlock
void visit_conserve(const ast::Conserve &node) override
visit node of type ast::Conserve
void visit_for_netcon(const ast::ForNetcon &node) override
visit node of type ast::ForNetcon
void visit_unit_block(const ast::UnitBlock &node) override
visit node of type ast::UnitBlock
void visit_suffix(const ast::Suffix &node) override
visit node of type ast::Suffix
void visit_statement(const ast::Statement &node) override
visit node of type ast::Statement
void visit_identifier(const ast::Identifier &node) override
visit node of type ast::Identifier
void visit_after_block(const ast::AfterBlock &node) override
visit node of type ast::AfterBlock
void visit_mutex_lock(const ast::MutexLock &node) override
visit node of type ast::MutexLock
void visit_longitudinal_diffusion_block(const ast::LongitudinalDiffusionBlock &node) override
visit node of type ast::LongitudinalDiffusionBlock
void visit_valence(const ast::Valence &node) override
visit node of type ast::Valence
void visit_bbcore_pointer_var(const ast::BbcorePointerVar &node) override
visit node of type ast::BbcorePointerVar
void visit_independent_block(const ast::IndependentBlock &node) override
visit node of type ast::IndependentBlock
void visit_table_statement(const ast::TableStatement &node) override
visit node of type ast::TableStatement
void visit_non_lin_equation(const ast::NonLinEquation &node) override
visit node of type ast::NonLinEquation
void visit_param_assign(const ast::ParamAssign &node) override
visit node of type ast::ParamAssign
void visit_ba_block_type(const ast::BABlockType &node) override
visit node of type ast::BABlockType
void visit_eigen_newton_solver_block(const ast::EigenNewtonSolverBlock &node) override
visit node of type ast::EigenNewtonSolverBlock
void visit_lag_statement(const ast::LagStatement &node) override
visit node of type ast::LagStatement
void visit_local_var(const ast::LocalVar &node) override
visit node of type ast::LocalVar
void visit_number(const ast::Number &node) override
visit node of type ast::Number
void visit_diff_eq_expression(const ast::DiffEqExpression &node) override
visit node of type ast::DiffEqExpression
void visit_number_range(const ast::NumberRange &node) override
visit node of type ast::NumberRange
void visit_destructor_block(const ast::DestructorBlock &node) override
visit node of type ast::DestructorBlock
void visit_node(const ast::Node &node) override
visit node of type ast::Node
void visit_constant_block(const ast::ConstantBlock &node) override
visit node of type ast::ConstantBlock
void visit_lon_diffuse(const ast::LonDiffuse &node) override
visit node of type ast::LonDiffuse
void visit_range(const ast::Range &node) override
visit node of type ast::Range
void visit_statement_block(const ast::StatementBlock &node) override
visit node of type ast::StatementBlock
void visit_from_statement(const ast::FromStatement &node) override
visit node of type ast::FromStatement
void visit_derivative_block(const ast::DerivativeBlock &node) override
visit node of type ast::DerivativeBlock
void visit_block_comment(const ast::BlockComment &node) override
visit node of type ast::BlockComment
void visit_line_comment(const ast::LineComment &node) override
visit node of type ast::LineComment
void visit_conductance_hint(const ast::ConductanceHint &node) override
visit node of type ast::ConductanceHint
void visit_watch_statement(const ast::WatchStatement &node) override
visit node of type ast::WatchStatement
void visit_unit_def(const ast::UnitDef &node) override
visit node of type ast::UnitDef
void visit_function_table_block(const ast::FunctionTableBlock &node) override
visit node of type ast::FunctionTableBlock
void visit_unary_expression(const ast::UnaryExpression &node) override
visit node of type ast::UnaryExpression
void visit_solution_expression(const ast::SolutionExpression &node) override
visit node of type ast::SolutionExpression
void visit_limits(const ast::Limits &node) override
visit node of type ast::Limits
void visit_factor_def(const ast::FactorDef &node) override
visit node of type ast::FactorDef
void visit_constant_var(const ast::ConstantVar &node) override
visit node of type ast::ConstantVar
void visit_else_statement(const ast::ElseStatement &node) override
visit node of type ast::ElseStatement
void visit_binary_operator(const ast::BinaryOperator &node) override
visit node of type ast::BinaryOperator
void visit_double_unit(const ast::DoubleUnit &node) override
visit node of type ast::DoubleUnit
void visit_nonspecific(const ast::Nonspecific &node) override
visit node of type ast::Nonspecific
void visit_if_statement(const ast::IfStatement &node) override
visit node of type ast::IfStatement
void visit_indexed_name(const ast::IndexedName &node) override
visit node of type ast::IndexedName
void visit_name(const ast::Name &node) override
visit node of type ast::Name
void visit_float(const ast::Float &node) override
visit node of type ast::Float
void visit_useion(const ast::Useion &node) override
visit node of type ast::Useion
void visit_random_var(const ast::RandomVar &node) override
visit node of type ast::RandomVar
void visit_constructor_block(const ast::ConstructorBlock &node) override
visit node of type ast::ConstructorBlock
void visit_state_block(const ast::StateBlock &node) override
visit node of type ast::StateBlock
void visit_net_receive_block(const ast::NetReceiveBlock &node) override
visit node of type ast::NetReceiveBlock
void visit_lin_equation(const ast::LinEquation &node) override
visit node of type ast::LinEquation
void visit_integer(const ast::Integer &node) override
visit node of type ast::Integer
void visit_initial_block(const ast::InitialBlock &node) override
visit node of type ast::InitialBlock
void visit_function_call(const ast::FunctionCall &node) override
visit node of type ast::FunctionCall
void visit_function_block(const ast::FunctionBlock &node) override
visit node of type ast::FunctionBlock
void visit_unit_state(const ast::UnitState &node) override
visit node of type ast::UnitState
void visit_unit(const ast::Unit &node) override
visit node of type ast::Unit
void visit_before_block(const ast::BeforeBlock &node) override
visit node of type ast::BeforeBlock
void visit_assigned_definition(const ast::AssignedDefinition &node) override
visit node of type ast::AssignedDefinition
void visit_pointer_var(const ast::PointerVar &node) override
visit node of type ast::PointerVar
void visit_paren_expression(const ast::ParenExpression &node) override
visit node of type ast::ParenExpression
void visit_bbcore_pointer(const ast::BbcorePointer &node) override
visit node of type ast::BbcorePointer
void visit_random_var_list(const ast::RandomVarList &node) override
visit node of type ast::RandomVarList
void visit_thread_safe(const ast::ThreadSafe &node) override
visit node of type ast::ThreadSafe
void visit_argument(const ast::Argument &node) override
visit node of type ast::Argument
void visit_electrode_cur_var(const ast::ElectrodeCurVar &node) override
visit node of type ast::ElectrodeCurVar
void visit_breakpoint_block(const ast::BreakpointBlock &node) override
visit node of type ast::BreakpointBlock
void visit_double(const ast::Double &node) override
visit node of type ast::Double
void visit_neuron_block(const ast::NeuronBlock &node) override
visit node of type ast::NeuronBlock
void visit_extern_var(const ast::ExternVar &node) override
visit node of type ast::ExternVar
void visit_binary_expression(const ast::BinaryExpression &node) override
visit node of type ast::BinaryExpression
void visit_update_dt(const ast::UpdateDt &node) override
visit node of type ast::UpdateDt
void visit_else_if_statement(const ast::ElseIfStatement &node) override
visit node of type ast::ElseIfStatement
void visit_global(const ast::Global &node) override
visit node of type ast::Global
void visit_range_var(const ast::RangeVar &node) override
visit node of type ast::RangeVar
void visit_while_statement(const ast::WhileStatement &node) override
visit node of type ast::WhileStatement
void visit_string(const ast::String &node) override
visit node of type ast::String
void visit_derivimplicit_callback(const ast::DerivimplicitCallback &node) override
visit node of type ast::DerivimplicitCallback
void visit_param_block(const ast::ParamBlock &node) override
visit node of type ast::ParamBlock
void visit_constant_statement(const ast::ConstantStatement &node) override
visit node of type ast::ConstantStatement
void visit_pointer(const ast::Pointer &node) override
visit node of type ast::Pointer
void visit_discrete_block(const ast::DiscreteBlock &node) override
visit node of type ast::DiscreteBlock
THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
encapsulates code generation backend implementations
std::string to_nmodl(const ast::Ast &node, const std::set< ast::AstNodeType > &exclude_types)
Given AST node, return the NMODL string representation.
static Node * node(Object *)
Utility functions for visitors implementation.