NEURON
symtab_visitor.cpp
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 #include "symtab/symbol_table.hpp"
15 
16 
17 namespace nmodl {
18 namespace visitor {
19 
20 using namespace ast;
22 
24  setup_symbol(&node, NmodlType::prime_name);
25 }
26 
28  setup_symbol(&node, NmodlType::argument);
29 }
30 
32  setup_symbol(&node, NmodlType::read_ion_var);
33 }
34 
36  setup_symbol(&node, NmodlType::write_ion_var);
37 }
38 
40  setup_symbol(&node, NmodlType::nonspecific_cur_var);
41 }
42 
44  setup_symbol(&node, NmodlType::electrode_cur_var);
45 }
46 
48  setup_symbol(&node, NmodlType::range_var);
49 }
50 
52  setup_symbol(&node, NmodlType::global_var);
53 }
54 
56  setup_symbol(&node, NmodlType::pointer_var);
57 }
58 
60  setup_symbol(&node, NmodlType::random_var);
61 }
62 
64  setup_symbol(&node, NmodlType::bbcore_pointer_var);
65 }
66 
68  setup_symbol(&node, NmodlType::extern_var);
69 }
70 
72  setup_symbol_table_for_global_block(&node);
73 }
74 
76  setup_symbol_table_for_global_block(&node);
77 }
78 
80  setup_symbol_table_for_global_block(&node);
81 }
82 
84  setup_symbol_table_for_global_block(&node);
85 }
86 
88  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
89 }
90 
92  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
93 }
94 
96  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
97 }
98 
100  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
101 }
102 
104  add_model_symbol_with_property(&node, NmodlType::derivative_block);
105  setup_symbol_table_for_scoped_block(&node, node.get_node_name());
106 }
107 
109  add_model_symbol_with_property(&node, NmodlType::linear_block);
110  setup_symbol_table_for_scoped_block(&node, node.get_node_name());
111 }
112 
114  add_model_symbol_with_property(&node, NmodlType::non_linear_block);
115  setup_symbol_table_for_scoped_block(&node, node.get_node_name());
116 }
117 
119  add_model_symbol_with_property(&node, NmodlType::discrete_block);
120  setup_symbol_table_for_scoped_block(&node, node.get_node_name());
121 }
122 
124  add_model_symbol_with_property(&node, NmodlType::function_table_block);
125  setup_symbol_table_for_scoped_block(&node, node.get_node_name());
126 }
127 
129  add_model_symbol_with_property(&node, NmodlType::function_block);
130  setup_symbol_table_for_scoped_block(&node, node.get_node_name());
131 }
132 
134  add_model_symbol_with_property(&node, NmodlType::procedure_block);
135  setup_symbol_table_for_scoped_block(&node, node.get_node_name());
136 }
137 
139  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
140 }
141 
143  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
144 }
145 
147  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
148 }
149 
151  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
152 }
153 
155  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
156 }
157 
159  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
160 }
161 
163  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
164 }
165 
167  add_model_symbol_with_property(&node, NmodlType::kinetic_block);
168  setup_symbol_table_for_scoped_block(&node, node.get_node_name());
169 }
170 
172  setup_symbol_table_for_global_block(&node);
173 }
174 
176  setup_symbol_table_for_global_block(&node);
177 }
178 
180  setup_symbol_table_for_global_block(&node);
181 }
182 
184  setup_symbol(&node, NmodlType::local_var);
185 }
186 
188  setup_symbol(&node, NmodlType::constant_var);
189 }
190 
192  setup_symbol(&node, NmodlType::unit_def);
193 }
194 
196  setup_symbol(&node, NmodlType::factor_def);
197 }
198 
200  setup_symbol(&node, NmodlType::define);
201 }
202 
204  setup_symbol(&node, NmodlType::param_assign);
205 }
206 
208  setup_symbol(&node, NmodlType::assigned_definition);
209 }
210 
212  setup_symbol(&node, NmodlType::useion);
213 }
214 
216  setup_symbol_table_for_program_block(&node);
217 }
218 
220  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
221 }
222 
224  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
225 }
226 
228  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
229 }
230 
232  setup_symbol_table_for_scoped_block(&node, node.get_node_type_name());
233 }
234 
236  add_model_symbol_with_property(&node, NmodlType::longitudinal_diffusion_block);
237  setup_symbol_table_for_scoped_block(&node, node.get_node_name());
238 }
239 
240 
241 } // namespace visitor
242 } // namespace nmodl
243 
Represents a AFTER block in NMODL.
Definition: after_block.hpp:51
Represents an argument to functions and procedures.
Definition: argument.hpp:48
Represents a ASSIGNED block in the NMODL.
Represents a statement in ASSIGNED or STATE block.
Represents a block to be executed before or after another block.
Definition: ba_block.hpp:40
Represent a single variable of type BBCOREPOINTER.
Represents a BEFORE block in NMODL.
Represents a BREAKPOINT block in NMODL.
Represent CONSTANT block in the mod file.
Represents a variable in the ast::ConstantBlock.
Represents a CONSTRUCTOR block in the NMODL.
Represents a block used for variable timestep integration (CVODE) of DERIVATIVE blocks.
Definition: cvode_block.hpp:38
Represents a DEFINE statement in NMODL.
Definition: define.hpp:38
Represents DERIVATIVE block in the NMODL.
Represents a DESTRUCTOR block in the NMODL.
Represent linear solver solution block based on Eigen.
Represent newton solver solution block based on Eigen.
Represents a INDEPENDENT block in the NMODL.
Represents a INITIAL block in the NMODL.
Represents LINEAR block in the NMODL.
Extracts information required for LONGITUDINAL_DIFFUSION for each KINETIC block.
Represent NEURON block in the mod file.
Represents NONLINEAR block in the NMODL.
Represents the coreneuron nrn_state callback function.
Represents a PARAMETER block in the NMODL.
Definition: param_block.hpp:53
Represents a prime variable (for ODE)
Definition: prime_name.hpp:48
Represents top level AST node for whole NMODL input.
Definition: program.hpp:39
Single variable of type RANDOM.
Definition: random_var.hpp:38
Represents a STATE block in the NMODL.
Definition: state_block.hpp:52
Represents block encapsulating list of statements.
Represents USEION statement in NMODL.
Definition: useion.hpp:40
void visit_bbcore_pointer_var(ast::BbcorePointerVar &node) override
visit node of type ast::BbcorePointerVar
void visit_non_linear_block(ast::NonLinearBlock &node) override
visit node of type ast::NonLinearBlock
void visit_local_var(ast::LocalVar &node) override
visit node of type ast::LocalVar
void visit_neuron_block(ast::NeuronBlock &node) override
visit node of type ast::NeuronBlock
void visit_solve_block(ast::SolveBlock &node) override
visit node of type ast::SolveBlock
void visit_factor_def(ast::FactorDef &node) override
visit node of type ast::FactorDef
void visit_program(ast::Program &node) override
visit node of type ast::Program
void visit_for_netcon(ast::ForNetcon &node) override
visit node of type ast::ForNetcon
void visit_pointer_var(ast::PointerVar &node) override
visit node of type ast::PointerVar
void visit_eigen_newton_solver_block(ast::EigenNewtonSolverBlock &node) override
visit node of type ast::EigenNewtonSolverBlock
void visit_function_table_block(ast::FunctionTableBlock &node) override
visit node of type ast::FunctionTableBlock
void visit_independent_block(ast::IndependentBlock &node) override
visit node of type ast::IndependentBlock
void visit_unit_def(ast::UnitDef &node) override
visit node of type ast::UnitDef
void visit_longitudinal_diffusion_block(ast::LongitudinalDiffusionBlock &node) override
visit node of type ast::LongitudinalDiffusionBlock
void visit_useion(ast::Useion &node) override
visit node of type ast::Useion
void visit_before_block(ast::BeforeBlock &node) override
visit node of type ast::BeforeBlock
void visit_kinetic_block(ast::KineticBlock &node) override
visit node of type ast::KineticBlock
void visit_constructor_block(ast::ConstructorBlock &node) override
visit node of type ast::ConstructorBlock
void visit_extern_var(ast::ExternVar &node) override
visit node of type ast::ExternVar
void visit_eigen_linear_solver_block(ast::EigenLinearSolverBlock &node) override
visit node of type ast::EigenLinearSolverBlock
void visit_net_receive_block(ast::NetReceiveBlock &node) override
visit node of type ast::NetReceiveBlock
void visit_read_ion_var(ast::ReadIonVar &node) override
visit node of type ast::ReadIonVar
void visit_constant_var(ast::ConstantVar &node) override
visit node of type ast::ConstantVar
void visit_nrn_state_block(ast::NrnStateBlock &node) override
visit node of type ast::NrnStateBlock
void visit_ba_block(ast::BABlock &node) override
visit node of type ast::BABlock
void visit_linear_block(ast::LinearBlock &node) override
visit node of type ast::LinearBlock
void visit_breakpoint_block(ast::BreakpointBlock &node) override
visit node of type ast::BreakpointBlock
void visit_nonspecific_cur_var(ast::NonspecificCurVar &node) override
visit node of type ast::NonspecificCurVar
void visit_state_block(ast::StateBlock &node) override
visit node of type ast::StateBlock
void visit_argument(ast::Argument &node) override
visit node of type ast::Argument
void visit_electrode_cur_var(ast::ElectrodeCurVar &node) override
visit node of type ast::ElectrodeCurVar
void visit_initial_block(ast::InitialBlock &node) override
visit node of type ast::InitialBlock
void visit_global_var(ast::GlobalVar &node) override
visit node of type ast::GlobalVar
void visit_function_block(ast::FunctionBlock &node) override
visit node of type ast::FunctionBlock
void visit_after_block(ast::AfterBlock &node) override
visit node of type ast::AfterBlock
void visit_range_var(ast::RangeVar &node) override
visit node of type ast::RangeVar
void visit_param_assign(ast::ParamAssign &node) override
visit node of type ast::ParamAssign
void visit_constant_block(ast::ConstantBlock &node) override
visit node of type ast::ConstantBlock
void visit_param_block(ast::ParamBlock &node) override
visit node of type ast::ParamBlock
void visit_derivative_block(ast::DerivativeBlock &node) override
visit node of type ast::DerivativeBlock
void visit_unit_block(ast::UnitBlock &node) override
visit node of type ast::UnitBlock
void visit_write_ion_var(ast::WriteIonVar &node) override
visit node of type ast::WriteIonVar
void visit_assigned_block(ast::AssignedBlock &node) override
visit node of type ast::AssignedBlock
void visit_random_var(ast::RandomVar &node) override
visit node of type ast::RandomVar
void visit_cvode_block(ast::CvodeBlock &node) override
visit node of type ast::CvodeBlock
void visit_discrete_block(ast::DiscreteBlock &node) override
visit node of type ast::DiscreteBlock
void visit_assigned_definition(ast::AssignedDefinition &node) override
visit node of type ast::AssignedDefinition
void visit_procedure_block(ast::ProcedureBlock &node) override
visit node of type ast::ProcedureBlock
void visit_destructor_block(ast::DestructorBlock &node) override
visit node of type ast::DestructorBlock
void visit_statement_block(ast::StatementBlock &node) override
visit node of type ast::StatementBlock
void visit_prime_name(ast::PrimeName &node) override
visit node of type ast::PrimeName
void visit_define(ast::Define &node) override
visit node of type ast::Define
NmodlType
NMODL variable properties.
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
List * useion
Definition: nocpout.cpp:125
static Node * node(Object *)
Definition: netcvode.cpp:291
Implement classes for representing symbol table at block and file scope.
THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.