|
User Guide
|
Go to the documentation of this file.
24 setup_symbol(&node, NmodlType::prime_name);
28 setup_symbol(&node, NmodlType::argument);
32 setup_symbol(&node, NmodlType::read_ion_var);
36 setup_symbol(&node, NmodlType::write_ion_var);
40 setup_symbol(&node, NmodlType::nonspecific_cur_var);
44 setup_symbol(&node, NmodlType::electrode_cur_var);
48 setup_symbol(&node, NmodlType::range_var);
52 setup_symbol(&node, NmodlType::global_var);
56 setup_symbol(&node, NmodlType::pointer_var);
60 setup_symbol(&node, NmodlType::random_var);
64 setup_symbol(&node, NmodlType::bbcore_pointer_var);
68 setup_symbol(&node, NmodlType::extern_var);
72 setup_symbol_table_for_global_block(&node);
76 setup_symbol_table_for_global_block(&node);
80 setup_symbol_table_for_global_block(&node);
84 setup_symbol_table_for_global_block(&node);
104 add_model_symbol_with_property(&node, NmodlType::derivative_block);
105 setup_symbol_table_for_scoped_block(&node, node.
get_node_name());
109 add_model_symbol_with_property(&node, NmodlType::linear_block);
110 setup_symbol_table_for_scoped_block(&node, node.
get_node_name());
114 add_model_symbol_with_property(&node, NmodlType::non_linear_block);
115 setup_symbol_table_for_scoped_block(&node, node.
get_node_name());
119 add_model_symbol_with_property(&node, NmodlType::discrete_block);
120 setup_symbol_table_for_scoped_block(&node, node.
get_node_name());
124 add_model_symbol_with_property(&node, NmodlType::function_table_block);
125 setup_symbol_table_for_scoped_block(&node, node.
get_node_name());
129 add_model_symbol_with_property(&node, NmodlType::function_block);
130 setup_symbol_table_for_scoped_block(&node, node.
get_node_name());
134 add_model_symbol_with_property(&node, NmodlType::procedure_block);
135 setup_symbol_table_for_scoped_block(&node, node.
get_node_name());
167 add_model_symbol_with_property(&node, NmodlType::kinetic_block);
168 setup_symbol_table_for_scoped_block(&node, node.
get_node_name());
172 setup_symbol_table_for_global_block(&node);
176 setup_symbol_table_for_global_block(&node);
180 setup_symbol_table_for_global_block(&node);
184 setup_symbol(&node, NmodlType::local_var);
188 setup_symbol(&node, NmodlType::constant_var);
192 setup_symbol(&node, NmodlType::unit_def);
196 setup_symbol(&node, NmodlType::factor_def);
200 setup_symbol(&node, NmodlType::define);
204 setup_symbol(&node, NmodlType::param_assign);
208 setup_symbol(&node, NmodlType::assigned_definition);
212 setup_symbol(&node, NmodlType::useion);
216 setup_symbol_table_for_program_block(&node);
236 add_model_symbol_with_property(&node, NmodlType::longitudinal_diffusion_block);
237 setup_symbol_table_for_scoped_block(&node, node.
get_node_name());
void visit_function_block(ast::FunctionBlock &node) override
visit node of type ast::FunctionBlock
void visit_kinetic_block(ast::KineticBlock &node) override
visit node of type ast::KineticBlock
Represents a BEFORE block in NMODL.
Represents a variable in the ast::ConstantBlock.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void visit_global_var(ast::GlobalVar &node) override
visit node of type ast::GlobalVar
Represents a block to be executed before or after another block.
void visit_solve_block(ast::SolveBlock &node) override
visit node of type ast::SolveBlock
void visit_unit_def(ast::UnitDef &node) override
visit node of type ast::UnitDef
void visit_local_var(ast::LocalVar &node) override
visit node of type ast::LocalVar
std::string get_node_name() const override
Return name of the node.
Represents a statement in ASSIGNED or STATE block.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void visit_unit_block(ast::UnitBlock &node) override
visit node of type ast::UnitBlock
Represent a single variable of type BBCOREPOINTER.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void visit_independent_block(ast::IndependentBlock &node) override
visit node of type ast::IndependentBlock
std::string get_node_name() const override
Return name of the node.
void visit_initial_block(ast::InitialBlock &node) override
visit node of type ast::InitialBlock
void visit_define(ast::Define &node) override
visit node of type ast::Define
void visit_discrete_block(ast::DiscreteBlock &node) override
visit node of type ast::DiscreteBlock
encapsulates code generation backend implementations
void visit_statement_block(ast::StatementBlock &node) override
visit node of type ast::StatementBlock
Represents a DEFINE statement in NMODL.
void visit_for_netcon(ast::ForNetcon &node) override
visit node of type ast::ForNetcon
Represents a block used for variable timestep integration (CVODE) of DERIVATIVE blocks.
Implement classes for representing symbol table at block and file scope.
void visit_neuron_block(ast::NeuronBlock &node) override
visit node of type ast::NeuronBlock
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void visit_derivative_block(ast::DerivativeBlock &node) override
visit node of type ast::DerivativeBlock
void visit_electrode_cur_var(ast::ElectrodeCurVar &node) override
visit node of type ast::ElectrodeCurVar
Single variable of type RANDOM.
void visit_ba_block(ast::BABlock &node) override
visit node of type ast::BABlock
std::string get_node_name() const override
Return name of the node.
Represents a ASSIGNED block in the NMODL.
Represent newton solver solution block based on Eigen.
void visit_program(ast::Program &node) override
visit node of type ast::Program
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_name() const override
Return name of the node.
Represents a INITIAL block in the NMODL.
void visit_param_assign(ast::ParamAssign &node) override
visit node of type ast::ParamAssign
std::string get_node_name() const override
Return name of the node.
void visit_longitudinal_diffusion_block(ast::LongitudinalDiffusionBlock &node) override
visit node of type ast::LongitudinalDiffusionBlock
void visit_factor_def(ast::FactorDef &node) override
visit node of type ast::FactorDef
void visit_cvode_block(ast::CvodeBlock &node) override
visit node of type ast::CvodeBlock
Represents a BREAKPOINT block in NMODL.
void visit_function_table_block(ast::FunctionTableBlock &node) override
visit node of type ast::FunctionTableBlock
void visit_useion(ast::Useion &node) override
visit node of type ast::Useion
void visit_destructor_block(ast::DestructorBlock &node) override
visit node of type ast::DestructorBlock
Represents a DESTRUCTOR block in the NMODL.
void visit_after_block(ast::AfterBlock &node) override
visit node of type ast::AfterBlock
Represents a CONSTRUCTOR block in the NMODL.
Extracts information required for LONGITUDINAL_DIFFUSION for each KINETIC block.
void visit_eigen_newton_solver_block(ast::EigenNewtonSolverBlock &node) override
visit node of type ast::EigenNewtonSolverBlock
std::string get_node_name() const override
Return name of the node.
std::string get_node_name() const override
Return name of the node.
Represents USEION statement in NMODL.
void visit_argument(ast::Argument &node) override
visit node of type ast::Argument
void visit_nonspecific_cur_var(ast::NonspecificCurVar &node) override
visit node of type ast::NonspecificCurVar
void visit_assigned_definition(ast::AssignedDefinition &node) override
visit node of type ast::AssignedDefinition
void visit_nrn_state_block(ast::NrnStateBlock &node) override
visit node of type ast::NrnStateBlock
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
Represent CONSTANT block in the mod file.
Represents a prime variable (for ODE)
Represents DERIVATIVE block in the NMODL.
void visit_extern_var(ast::ExternVar &node) override
visit node of type ast::ExternVar
void visit_bbcore_pointer_var(ast::BbcorePointerVar &node) override
visit node of type ast::BbcorePointerVar
Represent linear solver solution block based on Eigen.
void visit_range_var(ast::RangeVar &node) override
visit node of type ast::RangeVar
std::string get_node_name() const override
Return name of the node.
void visit_random_var(ast::RandomVar &node) override
visit node of type ast::RandomVar
void visit_state_block(ast::StateBlock &node) override
visit node of type ast::StateBlock
void visit_breakpoint_block(ast::BreakpointBlock &node) override
visit node of type ast::BreakpointBlock
void visit_pointer_var(ast::PointerVar &node) override
visit node of type ast::PointerVar
Represents a STATE block in the NMODL.
void visit_constant_var(ast::ConstantVar &node) override
visit node of type ast::ConstantVar
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void visit_assigned_block(ast::AssignedBlock &node) override
visit node of type ast::AssignedBlock
void visit_read_ion_var(ast::ReadIonVar &node) override
visit node of type ast::ReadIonVar
Represents the coreneuron nrn_state callback function.
void visit_constant_block(ast::ConstantBlock &node) override
visit node of type ast::ConstantBlock
Represents block encapsulating list of statements.
void visit_write_ion_var(ast::WriteIonVar &node) override
visit node of type ast::WriteIonVar
NmodlType
NMODL variable properties.
Represents an argument to functions and procedures.
void visit_param_block(ast::ParamBlock &node) override
visit node of type ast::ParamBlock
Represents LINEAR block in the NMODL.
void visit_net_receive_block(ast::NetReceiveBlock &node) override
visit node of type ast::NetReceiveBlock
void visit_eigen_linear_solver_block(ast::EigenLinearSolverBlock &node) override
visit node of type ast::EigenLinearSolverBlock
Represents NONLINEAR block in the NMODL.
void visit_before_block(ast::BeforeBlock &node) override
visit node of type ast::BeforeBlock
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void visit_constructor_block(ast::ConstructorBlock &node) override
visit node of type ast::ConstructorBlock
Represents a INDEPENDENT block in the NMODL.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void visit_prime_name(ast::PrimeName &node) override
visit node of type ast::PrimeName
Represents top level AST node for whole NMODL input.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
Represents a AFTER block in NMODL.
void visit_procedure_block(ast::ProcedureBlock &node) override
visit node of type ast::ProcedureBlock
THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
Represent NEURON block in the mod file.
Represents a PARAMETER block in the NMODL.
void visit_non_linear_block(ast::NonLinearBlock &node) override
visit node of type ast::NonLinearBlock
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
std::string get_node_name() const override
Return name of the node.
std::string get_node_type_name() const noexcept override
Return type (ast::AstNodeType) of ast node as std::string.
void visit_linear_block(ast::LinearBlock &node) override
visit node of type ast::LinearBlock