![Logo](logo.png) |
User Guide
|
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.
void visit_global_var(ast::GlobalVar &node) override
visit node of type ast::GlobalVar
Base class for all AST node.
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
SymtabVisitor(const std::string &filename, bool update=false)
void visit_local_var(ast::LocalVar &node) override
visit node of type ast::LocalVar
Base class for all Abstract Syntax Tree node types.
Represents a statement in ASSIGNED or STATE block.
void add_model_symbol_with_property(ast::Node *node, symtab::syminfo::NmodlType property)
void visit_unit_block(ast::UnitBlock &node) override
visit node of type ast::UnitBlock
Represent a single variable of type BBCOREPOINTER.
std::unique_ptr< printer::JSONPrinter > printer
void visit_independent_block(ast::IndependentBlock &node) override
visit node of type ast::IndependentBlock
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
SymtabVisitor(std::ostream &os, bool update=false)
Represents a DEFINE statement in NMODL.
void visit_for_netcon(ast::ForNetcon &node) override
visit node of type ast::ForNetcon
SymtabVisitor(bool update=false)
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
void visit_derivative_block(ast::DerivativeBlock &node) override
visit node of type ast::DerivativeBlock
Represents TABLE statement in NMODL.
void visit_electrode_cur_var(ast::ElectrodeCurVar &node) override
visit node of type ast::ElectrodeCurVar
Single variable of type RANDOM.
Concrete visitor for constructing symbol table from AST.
void visit_ba_block(ast::BABlock &node) override
visit node of type ast::BABlock
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
void visit_table_statement(ast::TableStatement &node) override
Visit table statement and update symbol in symbol table.
Represents a INITIAL block in the NMODL.
void visit_param_assign(ast::ParamAssign &node) override
visit node of type ast::ParamAssign
void setup_symbol_table_for_program_block(ast::Program *node)
Symtab visitor could be called multiple times, after optimization passes, in which case we have to th...
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
Helper class for printing AST in JSON form.
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 setup_symbol_table(ast::Ast *node, const std::string &name, bool is_global)
void visit_destructor_block(ast::DestructorBlock &node) override
visit node of type ast::DestructorBlock
void setup_symbol(ast::Node *node, symtab::syminfo::NmodlType property)
helper function to setup/insert symbol into symbol table for the ast nodes which are of variable type...
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.
symtab::ModelSymbolTable * modsymtab
void visit_eigen_newton_solver_block(ast::EigenNewtonSolverBlock &node) override
visit node of type ast::EigenNewtonSolverBlock
void setup_symbol_table_for_scoped_block(ast::Node *node, const std::string &name)
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
Concrete visitor for all AST classes.
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
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
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
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
void visit_constructor_block(ast::ConstructorBlock &node) override
visit node of type ast::ConstructorBlock
Represents a INDEPENDENT block in the NMODL.
std::set< std::string > block_to_solve
void visit_prime_name(ast::PrimeName &node) override
visit node of type ast::PrimeName
Represents top level AST node for whole NMODL input.
Represents a AFTER block in NMODL.
void visit_procedure_block(ast::ProcedureBlock &node) override
visit node of type ast::ProcedureBlock
Represent NEURON block in the mod file.
void setup_symbol_table_for_global_block(ast::Node *node)
Represents a PARAMETER block in the NMODL.
void visit_non_linear_block(ast::NonLinearBlock &node) override
visit node of type ast::NonLinearBlock
THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
SymtabVisitor(symtab::ModelSymbolTable *_modsymtab, bool update=false)
Concrete visitor for all AST classes.
void visit_linear_block(ast::LinearBlock &node) override
visit node of type ast::LinearBlock