Concrete visitor for all AST classes.
Represents binary expression in the NMODL.
Represents DERIVATIVE block in the NMODL.
Represents differential equation in DERIVATIVE block.
Represents top level AST node for whole NMODL input.
Represent symbol table for a NMODL block.
Concrete visitor for all AST classes.
Visitor that solves ODEs using old solvers of NEURON
void visit_solve_block(ast::SolveBlock &node) override
visit node of type ast::SolveBlock
std::vector< std::shared_ptr< ast::Statement > > euler_solution_expressions
void visit_diff_eq_expression(ast::DiffEqExpression &node) override
visit node of type ast::DiffEqExpression
std::string derivative_block_name
the derivative name currently being visited
symtab::SymbolTable * program_symtab
global symbol table
void visit_derivative_block(ast::DerivativeBlock &node) override
visit node of type ast::DerivativeBlock
bool differential_equation
true while visiting differential equation
std::map< std::string, std::string > solve_blocks
a map holding solve block names and methods
NeuronSolveVisitor()=default
void visit_program(ast::Program &node) override
visit node of type ast::Program
void visit_binary_expression(ast::BinaryExpression &node) override
visit node of type ast::BinaryExpression
std::string solve_method
method specified in solve block
bool derivative_block
visiting derivative block
encapsulates code generation backend implementations
static Node * node(Object *)
Forward declarations of symbols in namespace nmodl::symtab.