NEURON
ast_decl.hpp File Reference

THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED. More...

#include <memory>
#include <vector>

Go to the source code of this file.

Namespaces

 nmodl
 encapsulates code generation backend implementations
 
 nmodl::ast
 Abstract Syntax Tree (AST) related implementations.
 

Typedefs

using nmodl::ast::NodeVector = std::vector< std::shared_ptr< Node > >
 
using nmodl::ast::StatementVector = std::vector< std::shared_ptr< Statement > >
 
using nmodl::ast::ExpressionVector = std::vector< std::shared_ptr< Expression > >
 
using nmodl::ast::BlockVector = std::vector< std::shared_ptr< Block > >
 
using nmodl::ast::IdentifierVector = std::vector< std::shared_ptr< Identifier > >
 
using nmodl::ast::NumberVector = std::vector< std::shared_ptr< Number > >
 
using nmodl::ast::StringVector = std::vector< std::shared_ptr< String > >
 
using nmodl::ast::IntegerVector = std::vector< std::shared_ptr< Integer > >
 
using nmodl::ast::FloatVector = std::vector< std::shared_ptr< Float > >
 
using nmodl::ast::DoubleVector = std::vector< std::shared_ptr< Double > >
 
using nmodl::ast::BooleanVector = std::vector< std::shared_ptr< Boolean > >
 
using nmodl::ast::NameVector = std::vector< std::shared_ptr< Name > >
 
using nmodl::ast::PrimeNameVector = std::vector< std::shared_ptr< PrimeName > >
 
using nmodl::ast::IndexedNameVector = std::vector< std::shared_ptr< IndexedName > >
 
using nmodl::ast::VarNameVector = std::vector< std::shared_ptr< VarName > >
 
using nmodl::ast::ArgumentVector = std::vector< std::shared_ptr< Argument > >
 
using nmodl::ast::ReactVarNameVector = std::vector< std::shared_ptr< ReactVarName > >
 
using nmodl::ast::ReadIonVarVector = std::vector< std::shared_ptr< ReadIonVar > >
 
using nmodl::ast::WriteIonVarVector = std::vector< std::shared_ptr< WriteIonVar > >
 
using nmodl::ast::NonspecificCurVarVector = std::vector< std::shared_ptr< NonspecificCurVar > >
 
using nmodl::ast::ElectrodeCurVarVector = std::vector< std::shared_ptr< ElectrodeCurVar > >
 
using nmodl::ast::RangeVarVector = std::vector< std::shared_ptr< RangeVar > >
 
using nmodl::ast::GlobalVarVector = std::vector< std::shared_ptr< GlobalVar > >
 
using nmodl::ast::PointerVarVector = std::vector< std::shared_ptr< PointerVar > >
 
using nmodl::ast::RandomVarVector = std::vector< std::shared_ptr< RandomVar > >
 
using nmodl::ast::BbcorePointerVarVector = std::vector< std::shared_ptr< BbcorePointerVar > >
 
using nmodl::ast::ExternVarVector = std::vector< std::shared_ptr< ExternVar > >
 
using nmodl::ast::ParamBlockVector = std::vector< std::shared_ptr< ParamBlock > >
 
using nmodl::ast::IndependentBlockVector = std::vector< std::shared_ptr< IndependentBlock > >
 
using nmodl::ast::AssignedBlockVector = std::vector< std::shared_ptr< AssignedBlock > >
 
using nmodl::ast::StateBlockVector = std::vector< std::shared_ptr< StateBlock > >
 
using nmodl::ast::InitialBlockVector = std::vector< std::shared_ptr< InitialBlock > >
 
using nmodl::ast::ConstructorBlockVector = std::vector< std::shared_ptr< ConstructorBlock > >
 
using nmodl::ast::DestructorBlockVector = std::vector< std::shared_ptr< DestructorBlock > >
 
using nmodl::ast::StatementBlockVector = std::vector< std::shared_ptr< StatementBlock > >
 
using nmodl::ast::DerivativeBlockVector = std::vector< std::shared_ptr< DerivativeBlock > >
 
using nmodl::ast::LinearBlockVector = std::vector< std::shared_ptr< LinearBlock > >
 
using nmodl::ast::NonLinearBlockVector = std::vector< std::shared_ptr< NonLinearBlock > >
 
using nmodl::ast::DiscreteBlockVector = std::vector< std::shared_ptr< DiscreteBlock > >
 
using nmodl::ast::FunctionTableBlockVector = std::vector< std::shared_ptr< FunctionTableBlock > >
 
using nmodl::ast::FunctionBlockVector = std::vector< std::shared_ptr< FunctionBlock > >
 
using nmodl::ast::ProcedureBlockVector = std::vector< std::shared_ptr< ProcedureBlock > >
 
using nmodl::ast::NetReceiveBlockVector = std::vector< std::shared_ptr< NetReceiveBlock > >
 
using nmodl::ast::SolveBlockVector = std::vector< std::shared_ptr< SolveBlock > >
 
using nmodl::ast::BreakpointBlockVector = std::vector< std::shared_ptr< BreakpointBlock > >
 
using nmodl::ast::BeforeBlockVector = std::vector< std::shared_ptr< BeforeBlock > >
 
using nmodl::ast::AfterBlockVector = std::vector< std::shared_ptr< AfterBlock > >
 
using nmodl::ast::BABlockVector = std::vector< std::shared_ptr< BABlock > >
 
using nmodl::ast::ForNetconVector = std::vector< std::shared_ptr< ForNetcon > >
 
using nmodl::ast::KineticBlockVector = std::vector< std::shared_ptr< KineticBlock > >
 
using nmodl::ast::UnitBlockVector = std::vector< std::shared_ptr< UnitBlock > >
 
using nmodl::ast::ConstantBlockVector = std::vector< std::shared_ptr< ConstantBlock > >
 
using nmodl::ast::NeuronBlockVector = std::vector< std::shared_ptr< NeuronBlock > >
 
using nmodl::ast::UnitVector = std::vector< std::shared_ptr< Unit > >
 
using nmodl::ast::DoubleUnitVector = std::vector< std::shared_ptr< DoubleUnit > >
 
using nmodl::ast::LocalVarVector = std::vector< std::shared_ptr< LocalVar > >
 
using nmodl::ast::LimitsVector = std::vector< std::shared_ptr< Limits > >
 
using nmodl::ast::NumberRangeVector = std::vector< std::shared_ptr< NumberRange > >
 
using nmodl::ast::ConstantVarVector = std::vector< std::shared_ptr< ConstantVar > >
 
using nmodl::ast::BinaryOperatorVector = std::vector< std::shared_ptr< BinaryOperator > >
 
using nmodl::ast::UnaryOperatorVector = std::vector< std::shared_ptr< UnaryOperator > >
 
using nmodl::ast::ReactionOperatorVector = std::vector< std::shared_ptr< ReactionOperator > >
 
using nmodl::ast::ParenExpressionVector = std::vector< std::shared_ptr< ParenExpression > >
 
using nmodl::ast::BinaryExpressionVector = std::vector< std::shared_ptr< BinaryExpression > >
 
using nmodl::ast::DiffEqExpressionVector = std::vector< std::shared_ptr< DiffEqExpression > >
 
using nmodl::ast::UnaryExpressionVector = std::vector< std::shared_ptr< UnaryExpression > >
 
using nmodl::ast::NonLinEquationVector = std::vector< std::shared_ptr< NonLinEquation > >
 
using nmodl::ast::LinEquationVector = std::vector< std::shared_ptr< LinEquation > >
 
using nmodl::ast::FunctionCallVector = std::vector< std::shared_ptr< FunctionCall > >
 
using nmodl::ast::WatchVector = std::vector< std::shared_ptr< Watch > >
 
using nmodl::ast::BABlockTypeVector = std::vector< std::shared_ptr< BABlockType > >
 
using nmodl::ast::UnitDefVector = std::vector< std::shared_ptr< UnitDef > >
 
using nmodl::ast::FactorDefVector = std::vector< std::shared_ptr< FactorDef > >
 
using nmodl::ast::ValenceVector = std::vector< std::shared_ptr< Valence > >
 
using nmodl::ast::UnitStateVector = std::vector< std::shared_ptr< UnitState > >
 
using nmodl::ast::LocalListStatementVector = std::vector< std::shared_ptr< LocalListStatement > >
 
using nmodl::ast::ModelVector = std::vector< std::shared_ptr< Model > >
 
using nmodl::ast::DefineVector = std::vector< std::shared_ptr< Define > >
 
using nmodl::ast::IncludeVector = std::vector< std::shared_ptr< Include > >
 
using nmodl::ast::ParamAssignVector = std::vector< std::shared_ptr< ParamAssign > >
 
using nmodl::ast::AssignedDefinitionVector = std::vector< std::shared_ptr< AssignedDefinition > >
 
using nmodl::ast::ConductanceHintVector = std::vector< std::shared_ptr< ConductanceHint > >
 
using nmodl::ast::ExpressionStatementVector = std::vector< std::shared_ptr< ExpressionStatement > >
 
using nmodl::ast::ProtectStatementVector = std::vector< std::shared_ptr< ProtectStatement > >
 
using nmodl::ast::FromStatementVector = std::vector< std::shared_ptr< FromStatement > >
 
using nmodl::ast::WhileStatementVector = std::vector< std::shared_ptr< WhileStatement > >
 
using nmodl::ast::IfStatementVector = std::vector< std::shared_ptr< IfStatement > >
 
using nmodl::ast::ElseIfStatementVector = std::vector< std::shared_ptr< ElseIfStatement > >
 
using nmodl::ast::ElseStatementVector = std::vector< std::shared_ptr< ElseStatement > >
 
using nmodl::ast::WatchStatementVector = std::vector< std::shared_ptr< WatchStatement > >
 
using nmodl::ast::MutexLockVector = std::vector< std::shared_ptr< MutexLock > >
 
using nmodl::ast::MutexUnlockVector = std::vector< std::shared_ptr< MutexUnlock > >
 
using nmodl::ast::ConserveVector = std::vector< std::shared_ptr< Conserve > >
 
using nmodl::ast::CompartmentVector = std::vector< std::shared_ptr< Compartment > >
 
using nmodl::ast::LonDiffuseVector = std::vector< std::shared_ptr< LonDiffuse > >
 
using nmodl::ast::ReactionStatementVector = std::vector< std::shared_ptr< ReactionStatement > >
 
using nmodl::ast::LagStatementVector = std::vector< std::shared_ptr< LagStatement > >
 
using nmodl::ast::ConstantStatementVector = std::vector< std::shared_ptr< ConstantStatement > >
 
using nmodl::ast::TableStatementVector = std::vector< std::shared_ptr< TableStatement > >
 
using nmodl::ast::SuffixVector = std::vector< std::shared_ptr< Suffix > >
 
using nmodl::ast::UseionVector = std::vector< std::shared_ptr< Useion > >
 
using nmodl::ast::NonspecificVector = std::vector< std::shared_ptr< Nonspecific > >
 
using nmodl::ast::ElectrodeCurrentVector = std::vector< std::shared_ptr< ElectrodeCurrent > >
 
using nmodl::ast::RangeVector = std::vector< std::shared_ptr< Range > >
 
using nmodl::ast::GlobalVector = std::vector< std::shared_ptr< Global > >
 
using nmodl::ast::RandomVarListVector = std::vector< std::shared_ptr< RandomVarList > >
 
using nmodl::ast::PointerVector = std::vector< std::shared_ptr< Pointer > >
 
using nmodl::ast::BbcorePointerVector = std::vector< std::shared_ptr< BbcorePointer > >
 
using nmodl::ast::ExternalVector = std::vector< std::shared_ptr< External > >
 
using nmodl::ast::ThreadSafeVector = std::vector< std::shared_ptr< ThreadSafe > >
 
using nmodl::ast::VerbatimVector = std::vector< std::shared_ptr< Verbatim > >
 
using nmodl::ast::LineCommentVector = std::vector< std::shared_ptr< LineComment > >
 
using nmodl::ast::BlockCommentVector = std::vector< std::shared_ptr< BlockComment > >
 
using nmodl::ast::OntologyStatementVector = std::vector< std::shared_ptr< OntologyStatement > >
 
using nmodl::ast::ProgramVector = std::vector< std::shared_ptr< Program > >
 
using nmodl::ast::NrnStateBlockVector = std::vector< std::shared_ptr< NrnStateBlock > >
 
using nmodl::ast::EigenNewtonSolverBlockVector = std::vector< std::shared_ptr< EigenNewtonSolverBlock > >
 
using nmodl::ast::EigenLinearSolverBlockVector = std::vector< std::shared_ptr< EigenLinearSolverBlock > >
 
using nmodl::ast::CvodeBlockVector = std::vector< std::shared_ptr< CvodeBlock > >
 
using nmodl::ast::LongitudinalDiffusionBlockVector = std::vector< std::shared_ptr< LongitudinalDiffusionBlock > >
 
using nmodl::ast::WrappedExpressionVector = std::vector< std::shared_ptr< WrappedExpression > >
 
using nmodl::ast::DerivimplicitCallbackVector = std::vector< std::shared_ptr< DerivimplicitCallback > >
 
using nmodl::ast::SolutionExpressionVector = std::vector< std::shared_ptr< SolutionExpression > >
 
using nmodl::ast::UpdateDtVector = std::vector< std::shared_ptr< UpdateDt > >
 

Enumerations

enum class  nmodl::ast::AstNodeType {
  nmodl::ast::NODE , nmodl::ast::STATEMENT , nmodl::ast::EXPRESSION , nmodl::ast::BLOCK ,
  nmodl::ast::IDENTIFIER , nmodl::ast::NUMBER , nmodl::ast::STRING , nmodl::ast::INTEGER ,
  nmodl::ast::FLOAT , nmodl::ast::DOUBLE , nmodl::ast::BOOLEAN , nmodl::ast::NAME ,
  nmodl::ast::PRIME_NAME , nmodl::ast::INDEXED_NAME , nmodl::ast::VAR_NAME , nmodl::ast::ARGUMENT ,
  nmodl::ast::REACT_VAR_NAME , nmodl::ast::READ_ION_VAR , nmodl::ast::WRITE_ION_VAR , nmodl::ast::NONSPECIFIC_CUR_VAR ,
  nmodl::ast::ELECTRODE_CUR_VAR , nmodl::ast::RANGE_VAR , nmodl::ast::GLOBAL_VAR , nmodl::ast::POINTER_VAR ,
  nmodl::ast::RANDOM_VAR , nmodl::ast::BBCORE_POINTER_VAR , nmodl::ast::EXTERN_VAR , nmodl::ast::PARAM_BLOCK ,
  nmodl::ast::INDEPENDENT_BLOCK , nmodl::ast::ASSIGNED_BLOCK , nmodl::ast::STATE_BLOCK , nmodl::ast::INITIAL_BLOCK ,
  nmodl::ast::CONSTRUCTOR_BLOCK , nmodl::ast::DESTRUCTOR_BLOCK , nmodl::ast::STATEMENT_BLOCK , nmodl::ast::DERIVATIVE_BLOCK ,
  nmodl::ast::LINEAR_BLOCK , nmodl::ast::NON_LINEAR_BLOCK , nmodl::ast::DISCRETE_BLOCK , nmodl::ast::FUNCTION_TABLE_BLOCK ,
  nmodl::ast::FUNCTION_BLOCK , nmodl::ast::PROCEDURE_BLOCK , nmodl::ast::NET_RECEIVE_BLOCK , nmodl::ast::SOLVE_BLOCK ,
  nmodl::ast::BREAKPOINT_BLOCK , nmodl::ast::BEFORE_BLOCK , nmodl::ast::AFTER_BLOCK , nmodl::ast::BA_BLOCK ,
  nmodl::ast::FOR_NETCON , nmodl::ast::KINETIC_BLOCK , nmodl::ast::UNIT_BLOCK , nmodl::ast::CONSTANT_BLOCK ,
  nmodl::ast::NEURON_BLOCK , nmodl::ast::UNIT , nmodl::ast::DOUBLE_UNIT , nmodl::ast::LOCAL_VAR ,
  nmodl::ast::LIMITS , nmodl::ast::NUMBER_RANGE , nmodl::ast::CONSTANT_VAR , nmodl::ast::BINARY_OPERATOR ,
  nmodl::ast::UNARY_OPERATOR , nmodl::ast::REACTION_OPERATOR , nmodl::ast::PAREN_EXPRESSION , nmodl::ast::BINARY_EXPRESSION ,
  nmodl::ast::DIFF_EQ_EXPRESSION , nmodl::ast::UNARY_EXPRESSION , nmodl::ast::NON_LIN_EQUATION , nmodl::ast::LIN_EQUATION ,
  nmodl::ast::FUNCTION_CALL , nmodl::ast::WATCH , nmodl::ast::BA_BLOCK_TYPE , nmodl::ast::UNIT_DEF ,
  nmodl::ast::FACTOR_DEF , nmodl::ast::VALENCE , nmodl::ast::UNIT_STATE , nmodl::ast::LOCAL_LIST_STATEMENT ,
  nmodl::ast::MODEL , nmodl::ast::DEFINE , nmodl::ast::INCLUDE , nmodl::ast::PARAM_ASSIGN ,
  nmodl::ast::ASSIGNED_DEFINITION , nmodl::ast::CONDUCTANCE_HINT , nmodl::ast::EXPRESSION_STATEMENT , nmodl::ast::PROTECT_STATEMENT ,
  nmodl::ast::FROM_STATEMENT , nmodl::ast::WHILE_STATEMENT , nmodl::ast::IF_STATEMENT , nmodl::ast::ELSE_IF_STATEMENT ,
  nmodl::ast::ELSE_STATEMENT , nmodl::ast::WATCH_STATEMENT , nmodl::ast::MUTEX_LOCK , nmodl::ast::MUTEX_UNLOCK ,
  nmodl::ast::CONSERVE , nmodl::ast::COMPARTMENT , nmodl::ast::LON_DIFFUSE , nmodl::ast::REACTION_STATEMENT ,
  nmodl::ast::LAG_STATEMENT , nmodl::ast::CONSTANT_STATEMENT , nmodl::ast::TABLE_STATEMENT , nmodl::ast::SUFFIX ,
  nmodl::ast::USEION , nmodl::ast::NONSPECIFIC , nmodl::ast::ELECTRODE_CURRENT , nmodl::ast::RANGE ,
  nmodl::ast::GLOBAL , nmodl::ast::RANDOM_VAR_LIST , nmodl::ast::POINTER , nmodl::ast::BBCORE_POINTER ,
  nmodl::ast::EXTERNAL , nmodl::ast::THREAD_SAFE , nmodl::ast::VERBATIM , nmodl::ast::LINE_COMMENT ,
  nmodl::ast::BLOCK_COMMENT , nmodl::ast::ONTOLOGY_STATEMENT , nmodl::ast::PROGRAM , nmodl::ast::NRN_STATE_BLOCK ,
  nmodl::ast::EIGEN_NEWTON_SOLVER_BLOCK , nmodl::ast::EIGEN_LINEAR_SOLVER_BLOCK , nmodl::ast::CVODE_BLOCK , nmodl::ast::LONGITUDINAL_DIFFUSION_BLOCK ,
  nmodl::ast::WRAPPED_EXPRESSION , nmodl::ast::DERIVIMPLICIT_CALLBACK , nmodl::ast::SOLUTION_EXPRESSION , nmodl::ast::UPDATE_DT
}
 Enum type for every AST node type. More...
 

Detailed Description

THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.

Auto generated AST node types and aliases declaration

Definition in file ast_decl.hpp.