|  | 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