![Logo](logo.png) |
User Guide
|
Base class for all Abstract Syntax Tree node types.
Visitor for generating CONDUCTANCE statements for ions
std::vector< std::string > generate_statement_strings(ast::BreakpointBlock &node)
Represents CONDUCTANCE statement in NMODL.
string_map i_name
map between current write names and ion names
bool under_breakpoint_block
true while visiting breakpoint block
encapsulates code generation backend implementations
string_set all_vars
set of all variables for SymPy
void visit_binary_expression(ast::BinaryExpression &node) override
visit node of type ast::BinaryExpression
std::vector< std::string > ordered_binary_exprs
list in order of binary expressions in breakpoint
SympyConductanceVisitor()=default
static std::string to_nmodl_for_sympy(const ast::Ast &node)
void visit_program(ast::Program &node) override
visit node of type ast::Program
std::vector< std::shared_ptr< const ast::Ast > > use_ion_nodes
use ion ast nodes
void visit_breakpoint_block(ast::BreakpointBlock &node) override
visit node of type ast::BreakpointBlock
void lookup_nonspecific_statements()
std::set< std::string > string_set
Represents a BREAKPOINT block in NMODL.
std::map< std::string, std::size_t > binary_expr_index
map from lhs of binary expression to index of expression in above vector
Concrete visitor for all AST classes.
std::vector< std::string > ordered_binary_exprs_lhs
ditto but for LHS of expression only
bool NONSPECIFIC_CONDUCTANCE_ALREADY_EXISTS
std::map< std::string, std::string > string_map
Represents top level AST node for whole NMODL input.
string_set i_ignore
set of currents to ignore
std::vector< std::shared_ptr< const ast::Ast > > nonspecific_nodes
non specific currents
void visit_conductance_hint(ast::ConductanceHint &node) override
visit node of type ast::ConductanceHint
Represents binary expression in the NMODL.
void lookup_useion_statements()
Concrete visitor for all AST classes.