NEURON
AST Node Types

Enum node types for all ast nodes. More...

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

Enum node types for all ast nodes.

Enumeration Type Documentation

◆ AstNodeType

Enum type for every AST node type.

Every node in the ast has associated type represented by this enum class.

See also
ast::Ast::get_node_type ast::Ast::get_node_type_name
Enumerator
NODE 

type of ast::Node

STATEMENT 

type of ast::Statement

EXPRESSION 

type of ast::Expression

BLOCK 

type of ast::Block

IDENTIFIER 

type of ast::Identifier

NUMBER 

type of ast::Number

STRING 

type of ast::String

INTEGER 

type of ast::Integer

FLOAT 

type of ast::Float

DOUBLE 

type of ast::Double

BOOLEAN 

type of ast::Boolean

NAME 

type of ast::Name

PRIME_NAME 

type of ast::PrimeName

INDEXED_NAME 

type of ast::IndexedName

VAR_NAME 

type of ast::VarName

ARGUMENT 

type of ast::Argument

REACT_VAR_NAME 

type of ast::ReactVarName

READ_ION_VAR 

type of ast::ReadIonVar

WRITE_ION_VAR 

type of ast::WriteIonVar

NONSPECIFIC_CUR_VAR 

type of ast::NonspecificCurVar

ELECTRODE_CUR_VAR 

type of ast::ElectrodeCurVar

RANGE_VAR 

type of ast::RangeVar

GLOBAL_VAR 

type of ast::GlobalVar

POINTER_VAR 

type of ast::PointerVar

RANDOM_VAR 

type of ast::RandomVar

BBCORE_POINTER_VAR 

type of ast::BbcorePointerVar

EXTERN_VAR 

type of ast::ExternVar

PARAM_BLOCK 

type of ast::ParamBlock

INDEPENDENT_BLOCK 

type of ast::IndependentBlock

ASSIGNED_BLOCK 

type of ast::AssignedBlock

STATE_BLOCK 

type of ast::StateBlock

INITIAL_BLOCK 

type of ast::InitialBlock

CONSTRUCTOR_BLOCK 

type of ast::ConstructorBlock

DESTRUCTOR_BLOCK 

type of ast::DestructorBlock

STATEMENT_BLOCK 

type of ast::StatementBlock

DERIVATIVE_BLOCK 

type of ast::DerivativeBlock

LINEAR_BLOCK 

type of ast::LinearBlock

NON_LINEAR_BLOCK 

type of ast::NonLinearBlock

DISCRETE_BLOCK 

type of ast::DiscreteBlock

FUNCTION_TABLE_BLOCK 

type of ast::FunctionTableBlock

FUNCTION_BLOCK 

type of ast::FunctionBlock

PROCEDURE_BLOCK 

type of ast::ProcedureBlock

NET_RECEIVE_BLOCK 

type of ast::NetReceiveBlock

SOLVE_BLOCK 

type of ast::SolveBlock

BREAKPOINT_BLOCK 

type of ast::BreakpointBlock

BEFORE_BLOCK 

type of ast::BeforeBlock

AFTER_BLOCK 

type of ast::AfterBlock

BA_BLOCK 

type of ast::BABlock

FOR_NETCON 

type of ast::ForNetcon

KINETIC_BLOCK 

type of ast::KineticBlock

UNIT_BLOCK 

type of ast::UnitBlock

CONSTANT_BLOCK 

type of ast::ConstantBlock

NEURON_BLOCK 

type of ast::NeuronBlock

UNIT 

type of ast::Unit

DOUBLE_UNIT 

type of ast::DoubleUnit

LOCAL_VAR 

type of ast::LocalVar

LIMITS 

type of ast::Limits

NUMBER_RANGE 

type of ast::NumberRange

CONSTANT_VAR 

type of ast::ConstantVar

BINARY_OPERATOR 

type of ast::BinaryOperator

UNARY_OPERATOR 

type of ast::UnaryOperator

REACTION_OPERATOR 

type of ast::ReactionOperator

PAREN_EXPRESSION 

type of ast::ParenExpression

BINARY_EXPRESSION 

type of ast::BinaryExpression

DIFF_EQ_EXPRESSION 

type of ast::DiffEqExpression

UNARY_EXPRESSION 

type of ast::UnaryExpression

NON_LIN_EQUATION 

type of ast::NonLinEquation

LIN_EQUATION 

type of ast::LinEquation

FUNCTION_CALL 

type of ast::FunctionCall

WATCH 

type of ast::Watch

BA_BLOCK_TYPE 

type of ast::BABlockType

UNIT_DEF 

type of ast::UnitDef

FACTOR_DEF 

type of ast::FactorDef

VALENCE 

type of ast::Valence

UNIT_STATE 

type of ast::UnitState

LOCAL_LIST_STATEMENT 

type of ast::LocalListStatement

MODEL 

type of ast::Model

DEFINE 

type of ast::Define

INCLUDE 

type of ast::Include

PARAM_ASSIGN 

type of ast::ParamAssign

ASSIGNED_DEFINITION 

type of ast::AssignedDefinition

CONDUCTANCE_HINT 

type of ast::ConductanceHint

EXPRESSION_STATEMENT 

type of ast::ExpressionStatement

PROTECT_STATEMENT 

type of ast::ProtectStatement

FROM_STATEMENT 

type of ast::FromStatement

WHILE_STATEMENT 

type of ast::WhileStatement

IF_STATEMENT 

type of ast::IfStatement

ELSE_IF_STATEMENT 

type of ast::ElseIfStatement

ELSE_STATEMENT 

type of ast::ElseStatement

WATCH_STATEMENT 

type of ast::WatchStatement

MUTEX_LOCK 

type of ast::MutexLock

MUTEX_UNLOCK 

type of ast::MutexUnlock

CONSERVE 

type of ast::Conserve

COMPARTMENT 

type of ast::Compartment

LON_DIFFUSE 

type of ast::LonDiffuse

REACTION_STATEMENT 

type of ast::ReactionStatement

LAG_STATEMENT 

type of ast::LagStatement

CONSTANT_STATEMENT 

type of ast::ConstantStatement

TABLE_STATEMENT 

type of ast::TableStatement

SUFFIX 

type of ast::Suffix

USEION 

type of ast::Useion

NONSPECIFIC 

type of ast::Nonspecific

ELECTRODE_CURRENT 

type of ast::ElectrodeCurrent

RANGE 

type of ast::Range

GLOBAL 

type of ast::Global

RANDOM_VAR_LIST 

type of ast::RandomVarList

POINTER 

type of ast::Pointer

BBCORE_POINTER 

type of ast::BbcorePointer

EXTERNAL 

type of ast::External

THREAD_SAFE 

type of ast::ThreadSafe

VERBATIM 

type of ast::Verbatim

LINE_COMMENT 

type of ast::LineComment

BLOCK_COMMENT 

type of ast::BlockComment

ONTOLOGY_STATEMENT 

type of ast::OntologyStatement

PROGRAM 

type of ast::Program

NRN_STATE_BLOCK 

type of ast::NrnStateBlock

EIGEN_NEWTON_SOLVER_BLOCK 

type of ast::EigenNewtonSolverBlock

EIGEN_LINEAR_SOLVER_BLOCK 

type of ast::EigenLinearSolverBlock

CVODE_BLOCK 

type of ast::CvodeBlock

LONGITUDINAL_DIFFUSION_BLOCK 

type of ast::LongitudinalDiffusionBlock

WRAPPED_EXPRESSION 

type of ast::WrappedExpression

DERIVIMPLICIT_CALLBACK 

type of ast::DerivimplicitCallback

SOLUTION_EXPRESSION 

type of ast::SolutionExpression

UPDATE_DT 

type of ast::UpdateDt

Definition at line 166 of file ast_decl.hpp.