User Guide
nmodl::ast Namespace Reference

Abstract Syntax Tree (AST) related implementations. More...

Detailed Description

Abstract Syntax Tree (AST) related implementations.

Classes

class  AfterBlock
 Represents a AFTER block in NMODL. More...
 
class  Argument
 Represents an argument to functions and procedures. More...
 
class  AssignedBlock
 Represents a ASSIGNED block in the NMODL. More...
 
class  AssignedDefinition
 Represents a statement in ASSIGNED or STATE block. More...
 
struct  Ast
 Base class for all Abstract Syntax Tree node types. More...
 
class  BABlock
 Represents a block to be executed before or after another block. More...
 
class  BABlockType
 Type to represent different block types for before/after block. More...
 
class  BbcorePointer
 Represents BBCOREPOINTER statement in NMODL. More...
 
class  BbcorePointerVar
 Represent a single variable of type BBCOREPOINTER. More...
 
class  BeforeBlock
 Represents a BEFORE block in NMODL. More...
 
class  BinaryExpression
 Represents binary expression in the NMODL. More...
 
class  BinaryOperator
 Operator used in ast::BinaryExpression. More...
 
class  Block
 Base class for all block scoped nodes. More...
 
class  BlockComment
 Represents a multi-line comment in NMODL. More...
 
class  Boolean
 Represents a boolean variable. More...
 
class  BreakpointBlock
 Represents a BREAKPOINT block in NMODL. More...
 
class  Compartment
 Represent COMPARTMENT statement in NMODL. More...
 
class  ConductanceHint
 Represents CONDUCTANCE statement in NMODL. More...
 
class  Conserve
 Represent CONSERVE statement in NMODL. More...
 
class  ConstantBlock
 Represent CONSTANT block in the mod file. More...
 
class  ConstantStatement
 Represent statement in CONSTANT block of NMODL. More...
 
class  ConstantVar
 Represents a variable in the ast::ConstantBlock. More...
 
class  ConstructorBlock
 Represents a CONSTRUCTOR block in the NMODL. More...
 
class  CvodeBlock
 Represents a block used for variable timestep integration (CVODE) of DERIVATIVE blocks. More...
 
class  Define
 Represents a DEFINE statement in NMODL. More...
 
class  DerivativeBlock
 Represents DERIVATIVE block in the NMODL. More...
 
class  DerivimplicitCallback
 Represent a callback to NEURON's derivimplicit solver. More...
 
class  DestructorBlock
 Represents a DESTRUCTOR block in the NMODL. More...
 
class  DiffEqExpression
 Represents differential equation in DERIVATIVE block. More...
 
class  DiscreteBlock
 TODO. More...
 
class  Double
 Represents a double variable. More...
 
class  DoubleUnit
 TODO. More...
 
class  EigenLinearSolverBlock
 Represent linear solver solution block based on Eigen. More...
 
class  EigenNewtonSolverBlock
 Represent newton solver solution block based on Eigen. More...
 
class  ElectrodeCurrent
 Represents ELECTRODE_CURRENT variables statement in NMODL. More...
 
class  ElectrodeCurVar
 TODO. More...
 
class  ElseIfStatement
 TODO. More...
 
class  ElseStatement
 TODO. More...
 
class  Expression
 Base class for all expressions in the NMODL. More...
 
class  ExpressionStatement
 TODO. More...
 
class  External
 This construct is deprecated and no longer supported in the NMODL. More...
 
class  ExternVar
 TODO. More...
 
class  FactorDef
 TODO. More...
 
class  Float
 Represents a float variable. More...
 
class  ForNetcon
 TODO. More...
 
class  FromStatement
 TODO. More...
 
class  FunctionBlock
 TODO. More...
 
class  FunctionCall
 TODO. More...
 
class  FunctionTableBlock
 TODO. More...
 
class  Global
 Represents GLOBAL statement in NMODL. More...
 
class  GlobalVar
 TODO. More...
 
class  Identifier
 Base class for all identifiers. More...
 
class  IfStatement
 TODO. More...
 
class  Include
 Represents an INCLUDE statement in NMODL. More...
 
class  IndependentBlock
 Represents a INDEPENDENT block in the NMODL. More...
 
class  IndexedName
 Represents specific element of an array variable. More...
 
class  InitialBlock
 Represents a INITIAL block in the NMODL. More...
 
class  Integer
 Represents an integer variable. More...
 
class  KineticBlock
 TODO. More...
 
class  LagStatement
 Represents a LAG statement in the mod file. More...
 
class  Limits
 TODO. More...
 
class  LinearBlock
 Represents LINEAR block in the NMODL. More...
 
class  LineComment
 Represents a one line comment in NMODL. More...
 
class  LinEquation
 One equation in a system of equations tha collectively form a LINEAR block. More...
 
class  LocalListStatement
 TODO. More...
 
class  LocalVar
 TODO. More...
 
class  LonDiffuse
 Represent LONGITUDINAL_DIFFUSION statement in NMODL. More...
 
class  LongitudinalDiffusionBlock
 Extracts information required for LONGITUDINAL_DIFFUSION for each KINETIC block. More...
 
class  Model
 TODO. More...
 
class  MutexLock
 Represent MUTEXLOCK statement in NMODL. More...
 
class  MutexUnlock
 Represent MUTEXUNLOCK statement in NMODL. More...
 
class  Name
 Represents a name. More...
 
class  NetReceiveBlock
 TODO. More...
 
class  NeuronBlock
 Represent NEURON block in the mod file. More...
 
class  Node
 Base class for all AST node. More...
 
class  NonLinearBlock
 Represents NONLINEAR block in the NMODL. More...
 
class  NonLinEquation
 One equation in a system of equations that collectively make a NONLINEAR block. More...
 
class  Nonspecific
 Represents NONSPECIFIC_CURRENT variables statement in NMODL. More...
 
class  NonspecificCurVar
 TODO. More...
 
class  NrnStateBlock
 Represents the coreneuron nrn_state callback function. More...
 
class  Number
 Base class for all numbers. More...
 
class  NumberRange
 TODO. More...
 
class  OntologyStatement
 Represents CURIE information in NMODL. More...
 
class  ParamAssign
 TODO. More...
 
class  ParamBlock
 Represents a PARAMETER block in the NMODL. More...
 
class  ParenExpression
 TODO. More...
 
class  Pointer
 Represents POINTER statement in NMODL. More...
 
class  PointerVar
 TODO. More...
 
class  PrimeName
 Represents a prime variable (for ODE) More...
 
class  ProcedureBlock
 TODO. More...
 
class  Program
 Represents top level AST node for whole NMODL input. More...
 
class  ProtectStatement
 TODO. More...
 
class  RandomVar
 Single variable of type RANDOM. More...
 
class  RandomVarList
 Represents RANDOM statement in NMODL. More...
 
class  Range
 Represents RANGE variables statement in NMODL. More...
 
class  RangeVar
 TODO. More...
 
class  ReactionOperator
 TODO. More...
 
class  ReactionStatement
 TODO. More...
 
class  ReactVarName
 TODO. More...
 
class  ReadIonVar
 TODO. More...
 
class  SolutionExpression
 Represent solution of a block in the AST. More...
 
class  SolveBlock
 TODO. More...
 
class  StateBlock
 Represents a STATE block in the NMODL. More...
 
class  Statement
 TODO. More...
 
class  StatementBlock
 Represents block encapsulating list of statements. More...
 
class  String
 Represents a string. More...
 
class  Suffix
 Represents SUFFIX statement in NMODL. More...
 
class  TableStatement
 Represents TABLE statement in NMODL. More...
 
class  ThreadSafe
 Represents THREADSAFE statement in NMODL. More...
 
class  UnaryExpression
 TODO. More...
 
class  UnaryOperator
 TODO. More...
 
class  Unit
 TODO. More...
 
class  UnitBlock
 TODO. More...
 
class  UnitDef
 TODO. More...
 
class  UnitState
 TODO. More...
 
class  UpdateDt
 Statement to indicate a change in timestep in a given block. More...
 
class  Useion
 Represents USEION statement in NMODL. More...
 
class  Valence
 TODO. More...
 
class  VarName
 Represents a variable. More...
 
class  Verbatim
 Represents a C code block. More...
 
class  Watch
 TODO. More...
 
class  WatchStatement
 Represent WATCH statement in NMODL. More...
 
class  WhileStatement
 TODO. More...
 
class  WrappedExpression
 Wrap any other expression type. More...
 
class  WriteIonVar
 TODO. More...
 

Typedefs

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

Enumerations

enum  BinaryOp {
  BOP_ADDITION, BOP_SUBTRACTION, BOP_MULTIPLICATION, BOP_DIVISION,
  BOP_POWER, BOP_AND, BOP_OR, BOP_GREATER,
  BOP_LESS, BOP_GREATER_EQUAL, BOP_LESS_EQUAL, BOP_ASSIGN,
  BOP_NOT_EQUAL, BOP_EXACT_EQUAL
}
 enum Type for binary operators in NMODL More...
 
enum  UnaryOp { UOP_NOT, UOP_NEGATION }
 enum type for unary operators More...
 
enum  BAType { BATYPE_BREAKPOINT, BATYPE_SOLVE, BATYPE_INITIAL, BATYPE_STEP }
 enum type to distinguish BEFORE or AFTER blocks More...
 
enum  UnitStateType { UNIT_ON, UNIT_OFF }
 enum type used for UNIT_ON or UNIT_OFF state More...
 
enum  ReactionOp { LTMINUSGT, LTLT, MINUSGT }
 enum type used for Reaction statement More...
 
enum  AstNodeType {
  AstNodeType::NODE, AstNodeType::STATEMENT, AstNodeType::EXPRESSION, AstNodeType::BLOCK,
  AstNodeType::IDENTIFIER, AstNodeType::NUMBER, AstNodeType::STRING, AstNodeType::INTEGER,
  AstNodeType::FLOAT, AstNodeType::DOUBLE, AstNodeType::BOOLEAN, AstNodeType::NAME,
  AstNodeType::PRIME_NAME, AstNodeType::INDEXED_NAME, AstNodeType::VAR_NAME, AstNodeType::ARGUMENT,
  AstNodeType::REACT_VAR_NAME, AstNodeType::READ_ION_VAR, AstNodeType::WRITE_ION_VAR, AstNodeType::NONSPECIFIC_CUR_VAR,
  AstNodeType::ELECTRODE_CUR_VAR, AstNodeType::RANGE_VAR, AstNodeType::GLOBAL_VAR, AstNodeType::POINTER_VAR,
  AstNodeType::RANDOM_VAR, AstNodeType::BBCORE_POINTER_VAR, AstNodeType::EXTERN_VAR, AstNodeType::PARAM_BLOCK,
  AstNodeType::INDEPENDENT_BLOCK, AstNodeType::ASSIGNED_BLOCK, AstNodeType::STATE_BLOCK, AstNodeType::INITIAL_BLOCK,
  AstNodeType::CONSTRUCTOR_BLOCK, AstNodeType::DESTRUCTOR_BLOCK, AstNodeType::STATEMENT_BLOCK, AstNodeType::DERIVATIVE_BLOCK,
  AstNodeType::LINEAR_BLOCK, AstNodeType::NON_LINEAR_BLOCK, AstNodeType::DISCRETE_BLOCK, AstNodeType::FUNCTION_TABLE_BLOCK,
  AstNodeType::FUNCTION_BLOCK, AstNodeType::PROCEDURE_BLOCK, AstNodeType::NET_RECEIVE_BLOCK, AstNodeType::SOLVE_BLOCK,
  AstNodeType::BREAKPOINT_BLOCK, AstNodeType::BEFORE_BLOCK, AstNodeType::AFTER_BLOCK, AstNodeType::BA_BLOCK,
  AstNodeType::FOR_NETCON, AstNodeType::KINETIC_BLOCK, AstNodeType::UNIT_BLOCK, AstNodeType::CONSTANT_BLOCK,
  AstNodeType::NEURON_BLOCK, AstNodeType::UNIT, AstNodeType::DOUBLE_UNIT, AstNodeType::LOCAL_VAR,
  AstNodeType::LIMITS, AstNodeType::NUMBER_RANGE, AstNodeType::CONSTANT_VAR, AstNodeType::BINARY_OPERATOR,
  AstNodeType::UNARY_OPERATOR, AstNodeType::REACTION_OPERATOR, AstNodeType::PAREN_EXPRESSION, AstNodeType::BINARY_EXPRESSION,
  AstNodeType::DIFF_EQ_EXPRESSION, AstNodeType::UNARY_EXPRESSION, AstNodeType::NON_LIN_EQUATION, AstNodeType::LIN_EQUATION,
  AstNodeType::FUNCTION_CALL, AstNodeType::WATCH, AstNodeType::BA_BLOCK_TYPE, AstNodeType::UNIT_DEF,
  AstNodeType::FACTOR_DEF, AstNodeType::VALENCE, AstNodeType::UNIT_STATE, AstNodeType::LOCAL_LIST_STATEMENT,
  AstNodeType::MODEL, AstNodeType::DEFINE, AstNodeType::INCLUDE, AstNodeType::PARAM_ASSIGN,
  AstNodeType::ASSIGNED_DEFINITION, AstNodeType::CONDUCTANCE_HINT, AstNodeType::EXPRESSION_STATEMENT, AstNodeType::PROTECT_STATEMENT,
  AstNodeType::FROM_STATEMENT, AstNodeType::WHILE_STATEMENT, AstNodeType::IF_STATEMENT, AstNodeType::ELSE_IF_STATEMENT,
  AstNodeType::ELSE_STATEMENT, AstNodeType::WATCH_STATEMENT, AstNodeType::MUTEX_LOCK, AstNodeType::MUTEX_UNLOCK,
  AstNodeType::CONSERVE, AstNodeType::COMPARTMENT, AstNodeType::LON_DIFFUSE, AstNodeType::REACTION_STATEMENT,
  AstNodeType::LAG_STATEMENT, AstNodeType::CONSTANT_STATEMENT, AstNodeType::TABLE_STATEMENT, AstNodeType::SUFFIX,
  AstNodeType::USEION, AstNodeType::NONSPECIFIC, AstNodeType::ELECTRODE_CURRENT, AstNodeType::RANGE,
  AstNodeType::GLOBAL, AstNodeType::RANDOM_VAR_LIST, AstNodeType::POINTER, AstNodeType::BBCORE_POINTER,
  AstNodeType::EXTERNAL, AstNodeType::THREAD_SAFE, AstNodeType::VERBATIM, AstNodeType::LINE_COMMENT,
  AstNodeType::BLOCK_COMMENT, AstNodeType::ONTOLOGY_STATEMENT, AstNodeType::PROGRAM, AstNodeType::NRN_STATE_BLOCK,
  AstNodeType::EIGEN_NEWTON_SOLVER_BLOCK, AstNodeType::EIGEN_LINEAR_SOLVER_BLOCK, AstNodeType::CVODE_BLOCK, AstNodeType::LONGITUDINAL_DIFFUSION_BLOCK,
  AstNodeType::WRAPPED_EXPRESSION, AstNodeType::DERIVIMPLICIT_CALLBACK, AstNodeType::SOLUTION_EXPRESSION, AstNodeType::UPDATE_DT
}
 Enum type for every AST node type. More...
 

Variables

static const std::string BinaryOpNames []
 string representation of ast::BinaryOp More...
 
static const std::string UnaryOpNames [] = {"!", "-"}
 string representation of ast::UnaryOp More...
 
static const std::string BATypeNames [] = {"BREAKPOINT", "SOLVE", "INITIAL", "STEP"}
 string representation of ast::BAType More...
 
static const std::string UnitStateTypeNames [] = {"UNITSON", "UNITSOFF"}
 string representation of ast::UnitStateType More...
 
static const std::string ReactionOpNames [] = {"<->", "<<", "->"}
 string representation of ast::ReactionOp More...