User Guide
AST Node Types

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

Detailed Description

Enum node types for all ast nodes.

Enumerations

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

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.