![]() |
User Guide
|
Visitor for printing AST back to NMODL More...
Visitor for printing AST back to NMODL
INDEPENDENT {}
block is now deprecated and considered an unused construct in MOD files. If a user attempts to print a MOD file containing an INDEPENDENT block, it will be skipped, and a comment will be added to indicate the deprecation. Definition at line 44 of file nmodl_visitor.hpp.
#include <nmodl_visitor.hpp>
Private Member Functions | |
bool | is_exclude_type (ast::AstNodeType type) const |
check if node is to be excluded while printing More... | |
Private Attributes | |
std::unique_ptr< printer::NMODLPrinter > | printer |
std::set< ast::AstNodeType > | exclude_types |
node types to exclude while printing More... | |
|
inline |
Definition at line 57 of file nmodl_visitor.hpp.
|
inline |
Definition at line 60 of file nmodl_visitor.hpp.
|
inline |
Definition at line 63 of file nmodl_visitor.hpp.
|
inline |
Definition at line 66 of file nmodl_visitor.hpp.
|
inlineprivate |
check if node is to be excluded while printing
Definition at line 52 of file nmodl_visitor.hpp.
|
overridevirtual |
visit node of type ast::AfterBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 688 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Argument
Implements nmodl::visitor::ConstVisitor.
Definition at line 210 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::AssignedBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 382 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::AssignedDefinition
Implements nmodl::visitor::ConstVisitor.
Definition at line 1228 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::BABlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 700 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::BABlockType
Implements nmodl::visitor::ConstVisitor.
Definition at line 1052 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::BbcorePointer
Implements nmodl::visitor::ConstVisitor.
Definition at line 1740 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::BbcorePointerVar
Implements nmodl::visitor::ConstVisitor.
Definition at line 331 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::BeforeBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 676 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::BinaryExpression
Implements nmodl::visitor::ConstVisitor.
Definition at line 944 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::BinaryOperator
Implements nmodl::visitor::ConstVisitor.
Definition at line 892 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Block
Implements nmodl::visitor::ConstVisitor.
Definition at line 47 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::BlockComment
Implements nmodl::visitor::ConstVisitor.
Definition at line 1797 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Boolean
Implements nmodl::visitor::ConstVisitor.
Definition at line 130 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::BreakpointBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 662 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Compartment
Implements nmodl::visitor::ConstVisitor.
Definition at line 1475 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ConductanceHint
Implements nmodl::visitor::ConstVisitor.
Definition at line 1277 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Conserve
Implements nmodl::visitor::ConstVisitor.
Definition at line 1458 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ConstantBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 769 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ConstantStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1577 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ConstantVar
Implements nmodl::visitor::ConstVisitor.
Definition at line 871 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ConstructorBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 424 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::CvodeBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 1928 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Define
Implements nmodl::visitor::ConstVisitor.
Definition at line 1168 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::DerivativeBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 465 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::DerivimplicitCallback
Implements nmodl::visitor::ConstVisitor.
Definition at line 1991 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::DestructorBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 438 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::DiffEqExpression
Implements nmodl::visitor::ConstVisitor.
Definition at line 964 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::DiscreteBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 530 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Double
Implements nmodl::visitor::ConstVisitor.
Definition at line 116 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::DoubleUnit
Implements nmodl::visitor::ConstVisitor.
Definition at line 810 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::EigenLinearSolverBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 1889 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::EigenNewtonSolverBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 1845 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ElectrodeCurVar
Implements nmodl::visitor::ConstVisitor.
Definition at line 276 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ElectrodeCurrent
Implements nmodl::visitor::ConstVisitor.
Definition at line 1680 of file nmodl_visitor.cpp.
void nmodl::visitor::NmodlPrintVisitor::visit_element | ( | const std::vector< T > & | elements, |
const std::string & | separator, | ||
bool | program, | ||
bool | statement | ||
) |
Helper function to visit vector elements.
T |
elements | vector of nodes/elements |
separator | separator to print for individual vector element |
program | true if provided elements belong to program node |
statement | true if elements in vector of statement type |
statements need indentation at the start
print separator (e.g. comma, space)
newline at the end of statement
if there are multiple inline comments then we want them to be contiguous and only last comment should have extra line.
program blocks need two newlines except last one
Definition at line 28 of file nmodl_visitor_helper.ipp.
|
overridevirtual |
visit node of type ast::ElseIfStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1395 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ElseStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1414 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Expression
Implements nmodl::visitor::ConstVisitor.
Definition at line 39 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ExpressionStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1295 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ExternVar
Implements nmodl::visitor::ConstVisitor.
Definition at line 342 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::External
Implements nmodl::visitor::ConstVisitor.
Definition at line 1752 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::FactorDef
Implements nmodl::visitor::ConstVisitor.
Definition at line 1080 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Float
Implements nmodl::visitor::ConstVisitor.
Definition at line 102 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ForNetcon
Implements nmodl::visitor::ConstVisitor.
Definition at line 717 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::FromStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1318 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::FunctionBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 569 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::FunctionCall
Implements nmodl::visitor::ConstVisitor.
Definition at line 1021 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::FunctionTableBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 548 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Global
Implements nmodl::visitor::ConstVisitor.
Definition at line 1704 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::GlobalVar
Implements nmodl::visitor::ConstVisitor.
Definition at line 298 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Identifier
Implements nmodl::visitor::ConstVisitor.
Definition at line 55 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::IfStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1368 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Include
Implements nmodl::visitor::ConstVisitor.
Definition at line 1184 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::IndependentBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 367 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::IndexedName
Implements nmodl::visitor::ConstVisitor.
Definition at line 170 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::InitialBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 410 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Integer
Implements nmodl::visitor::ConstVisitor.
Definition at line 84 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::KineticBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 734 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::LagStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1561 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Limits
Implements nmodl::visitor::ConstVisitor.
Definition at line 837 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::LinEquation
Implements nmodl::visitor::ConstVisitor.
Definition at line 1005 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::LineComment
Implements nmodl::visitor::ConstVisitor.
Definition at line 1786 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::LinearBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 483 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::LocalListStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1144 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::LocalVar
Implements nmodl::visitor::ConstVisitor.
Definition at line 826 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::LonDiffuse
Implements nmodl::visitor::ConstVisitor.
Definition at line 1502 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::LongitudinalDiffusionBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 1956 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Model
Implements nmodl::visitor::ConstVisitor.
Definition at line 1156 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::MutexLock
Implements nmodl::visitor::ConstVisitor.
Definition at line 1440 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::MutexUnlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 1449 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Name
Implements nmodl::visitor::ConstVisitor.
Definition at line 143 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::NetReceiveBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 620 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::NeuronBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 783 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Node
Implements nmodl::visitor::ConstVisitor.
Definition at line 23 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::NonLinEquation
Implements nmodl::visitor::ConstVisitor.
Definition at line 989 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::NonLinearBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 507 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Nonspecific
Implements nmodl::visitor::ConstVisitor.
Definition at line 1668 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::NonspecificCurVar
Implements nmodl::visitor::ConstVisitor.
Definition at line 265 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::NrnStateBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 1833 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Number
Implements nmodl::visitor::ConstVisitor.
Definition at line 63 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::NumberRange
Implements nmodl::visitor::ConstVisitor.
Definition at line 854 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::OntologyStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1810 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ParamAssign
Implements nmodl::visitor::ConstVisitor.
Definition at line 1199 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ParamBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 353 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ParenExpression
Implements nmodl::visitor::ConstVisitor.
Definition at line 931 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Pointer
Implements nmodl::visitor::ConstVisitor.
Definition at line 1728 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::PointerVar
Implements nmodl::visitor::ConstVisitor.
Definition at line 309 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::PrimeName
Implements nmodl::visitor::ConstVisitor.
Definition at line 154 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ProcedureBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 595 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Program
Implements nmodl::visitor::ConstVisitor.
Definition at line 1822 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ProtectStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1306 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::RandomVar
Implements nmodl::visitor::ConstVisitor.
Definition at line 320 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::RandomVarList
Implements nmodl::visitor::ConstVisitor.
Definition at line 1716 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Range
Implements nmodl::visitor::ConstVisitor.
Definition at line 1692 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::RangeVar
Implements nmodl::visitor::ConstVisitor.
Definition at line 287 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ReactVarName
Implements nmodl::visitor::ConstVisitor.
Definition at line 226 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ReactionOperator
Implements nmodl::visitor::ConstVisitor.
Definition at line 918 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ReactionStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1529 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ReadIonVar
Implements nmodl::visitor::ConstVisitor.
Definition at line 243 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::SolutionExpression
Implements nmodl::visitor::ConstVisitor.
Definition at line 2002 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::SolveBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 637 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::StateBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 396 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Statement
Implements nmodl::visitor::ConstVisitor.
Definition at line 31 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::StatementBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 452 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::String
Implements nmodl::visitor::ConstVisitor.
Definition at line 71 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Suffix
Implements nmodl::visitor::ConstVisitor.
Definition at line 1618 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::TableStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1588 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::ThreadSafe
Implements nmodl::visitor::ConstVisitor.
Definition at line 1764 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::UnaryExpression
Implements nmodl::visitor::ConstVisitor.
Definition at line 975 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::UnaryOperator
Implements nmodl::visitor::ConstVisitor.
Definition at line 905 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Unit
Implements nmodl::visitor::ConstVisitor.
Definition at line 797 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::UnitBlock
Implements nmodl::visitor::ConstVisitor.
Definition at line 755 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::UnitDef
Implements nmodl::visitor::ConstVisitor.
Definition at line 1065 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::UnitState
Implements nmodl::visitor::ConstVisitor.
Definition at line 1131 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::UpdateDt
Implements nmodl::visitor::ConstVisitor.
Definition at line 2016 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Useion
Implements nmodl::visitor::ConstVisitor.
Definition at line 1633 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Valence
Implements nmodl::visitor::ConstVisitor.
Definition at line 1115 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::VarName
Implements nmodl::visitor::ConstVisitor.
Definition at line 186 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Verbatim
Implements nmodl::visitor::ConstVisitor.
Definition at line 1773 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::Watch
Implements nmodl::visitor::ConstVisitor.
Definition at line 1035 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::WatchStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1428 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::WhileStatement
Implements nmodl::visitor::ConstVisitor.
Definition at line 1349 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::WrappedExpression
Implements nmodl::visitor::ConstVisitor.
Definition at line 1980 of file nmodl_visitor.cpp.
|
overridevirtual |
visit node of type ast::WriteIonVar
Implements nmodl::visitor::ConstVisitor.
Definition at line 254 of file nmodl_visitor.cpp.
|
private |
node types to exclude while printing
Definition at line 49 of file nmodl_visitor.hpp.
|
private |
Definition at line 46 of file nmodl_visitor.hpp.