User Guide
ast_decl.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2023 Blue Brain Project, EPFL.
3  * See the top-level LICENSE file for details.
4  *
5  * SPDX-License-Identifier: Apache-2.0
6  */
7 
8 ///
9 /// THIS FILE IS GENERATED AT BUILD TIME AND SHALL NOT BE EDITED.
10 ///
11 
12 #pragma once
13 
14 #include <memory>
15 #include <vector>
16 
17 /// \file
18 /// \brief Auto generated AST node types and aliases declaration
19 
20 namespace nmodl {
21 namespace ast {
22 
23 /// forward declaration of ast nodes
24 
25 struct Ast;
26 class Node;
27 class Statement;
28 class Expression;
29 class Block;
30 class Identifier;
31 class Number;
32 class String;
33 class Integer;
34 class Float;
35 class Double;
36 class Boolean;
37 class Name;
38 class PrimeName;
39 class IndexedName;
40 class VarName;
41 class Argument;
42 class ReactVarName;
43 class ReadIonVar;
44 class WriteIonVar;
45 class NonspecificCurVar;
46 class ElectrodeCurVar;
47 class RangeVar;
48 class GlobalVar;
49 class PointerVar;
50 class RandomVar;
51 class BbcorePointerVar;
52 class ExternVar;
53 class ParamBlock;
54 class IndependentBlock;
55 class AssignedBlock;
56 class StateBlock;
57 class InitialBlock;
58 class ConstructorBlock;
59 class DestructorBlock;
60 class StatementBlock;
61 class DerivativeBlock;
62 class LinearBlock;
63 class NonLinearBlock;
64 class DiscreteBlock;
65 class FunctionTableBlock;
66 class FunctionBlock;
67 class ProcedureBlock;
68 class NetReceiveBlock;
69 class SolveBlock;
70 class BreakpointBlock;
71 class BeforeBlock;
72 class AfterBlock;
73 class BABlock;
74 class ForNetcon;
75 class KineticBlock;
76 class UnitBlock;
77 class ConstantBlock;
78 class NeuronBlock;
79 class Unit;
80 class DoubleUnit;
81 class LocalVar;
82 class Limits;
83 class NumberRange;
84 class ConstantVar;
85 class BinaryOperator;
86 class UnaryOperator;
87 class ReactionOperator;
88 class ParenExpression;
89 class BinaryExpression;
90 class DiffEqExpression;
91 class UnaryExpression;
92 class NonLinEquation;
93 class LinEquation;
94 class FunctionCall;
95 class Watch;
96 class BABlockType;
97 class UnitDef;
98 class FactorDef;
99 class Valence;
100 class UnitState;
101 class LocalListStatement;
102 class Model;
103 class Define;
104 class Include;
105 class ParamAssign;
106 class AssignedDefinition;
107 class ConductanceHint;
108 class ExpressionStatement;
109 class ProtectStatement;
110 class FromStatement;
111 class WhileStatement;
112 class IfStatement;
113 class ElseIfStatement;
114 class ElseStatement;
115 class WatchStatement;
116 class MutexLock;
117 class MutexUnlock;
118 class Conserve;
119 class Compartment;
120 class LonDiffuse;
121 class ReactionStatement;
122 class LagStatement;
123 class ConstantStatement;
124 class TableStatement;
125 class Suffix;
126 class Useion;
127 class Nonspecific;
128 class ElectrodeCurrent;
129 class Range;
130 class Global;
131 class RandomVarList;
132 class Pointer;
133 class BbcorePointer;
134 class External;
135 class ThreadSafe;
136 class Verbatim;
137 class LineComment;
138 class BlockComment;
139 class OntologyStatement;
140 class Program;
141 class NrnStateBlock;
142 class EigenNewtonSolverBlock;
143 class EigenLinearSolverBlock;
144 class CvodeBlock;
145 class LongitudinalDiffusionBlock;
146 class WrappedExpression;
147 class DerivimplicitCallback;
148 class SolutionExpression;
149 class UpdateDt;
150 
151 /**
152  * @defgroup ast_type AST Node Types
153  * @ingroup ast
154  * @brief Enum node types for all ast nodes
155  * @{
156  */
157 
158 /**
159  * \brief Enum type for every AST node type
160  *
161  * Every node in the ast has associated type represented by this
162  * enum class.
163  *
164  * \sa ast::Ast::get_node_type ast::Ast::get_node_type_name
165  */
166 enum class AstNodeType {
167  NODE, ///< type of ast::Node
168  STATEMENT, ///< type of ast::Statement
169  EXPRESSION, ///< type of ast::Expression
170  BLOCK, ///< type of ast::Block
171  IDENTIFIER, ///< type of ast::Identifier
172  NUMBER, ///< type of ast::Number
173  STRING, ///< type of ast::String
174  INTEGER, ///< type of ast::Integer
175  FLOAT, ///< type of ast::Float
176  DOUBLE, ///< type of ast::Double
177  BOOLEAN, ///< type of ast::Boolean
178  NAME, ///< type of ast::Name
179  PRIME_NAME, ///< type of ast::PrimeName
180  INDEXED_NAME, ///< type of ast::IndexedName
181  VAR_NAME, ///< type of ast::VarName
182  ARGUMENT, ///< type of ast::Argument
183  REACT_VAR_NAME, ///< type of ast::ReactVarName
184  READ_ION_VAR, ///< type of ast::ReadIonVar
185  WRITE_ION_VAR, ///< type of ast::WriteIonVar
186  NONSPECIFIC_CUR_VAR, ///< type of ast::NonspecificCurVar
187  ELECTRODE_CUR_VAR, ///< type of ast::ElectrodeCurVar
188  RANGE_VAR, ///< type of ast::RangeVar
189  GLOBAL_VAR, ///< type of ast::GlobalVar
190  POINTER_VAR, ///< type of ast::PointerVar
191  RANDOM_VAR, ///< type of ast::RandomVar
192  BBCORE_POINTER_VAR, ///< type of ast::BbcorePointerVar
193  EXTERN_VAR, ///< type of ast::ExternVar
194  PARAM_BLOCK, ///< type of ast::ParamBlock
195  INDEPENDENT_BLOCK, ///< type of ast::IndependentBlock
196  ASSIGNED_BLOCK, ///< type of ast::AssignedBlock
197  STATE_BLOCK, ///< type of ast::StateBlock
198  INITIAL_BLOCK, ///< type of ast::InitialBlock
199  CONSTRUCTOR_BLOCK, ///< type of ast::ConstructorBlock
200  DESTRUCTOR_BLOCK, ///< type of ast::DestructorBlock
201  STATEMENT_BLOCK, ///< type of ast::StatementBlock
202  DERIVATIVE_BLOCK, ///< type of ast::DerivativeBlock
203  LINEAR_BLOCK, ///< type of ast::LinearBlock
204  NON_LINEAR_BLOCK, ///< type of ast::NonLinearBlock
205  DISCRETE_BLOCK, ///< type of ast::DiscreteBlock
206  FUNCTION_TABLE_BLOCK, ///< type of ast::FunctionTableBlock
207  FUNCTION_BLOCK, ///< type of ast::FunctionBlock
208  PROCEDURE_BLOCK, ///< type of ast::ProcedureBlock
209  NET_RECEIVE_BLOCK, ///< type of ast::NetReceiveBlock
210  SOLVE_BLOCK, ///< type of ast::SolveBlock
211  BREAKPOINT_BLOCK, ///< type of ast::BreakpointBlock
212  BEFORE_BLOCK, ///< type of ast::BeforeBlock
213  AFTER_BLOCK, ///< type of ast::AfterBlock
214  BA_BLOCK, ///< type of ast::BABlock
215  FOR_NETCON, ///< type of ast::ForNetcon
216  KINETIC_BLOCK, ///< type of ast::KineticBlock
217  UNIT_BLOCK, ///< type of ast::UnitBlock
218  CONSTANT_BLOCK, ///< type of ast::ConstantBlock
219  NEURON_BLOCK, ///< type of ast::NeuronBlock
220  UNIT, ///< type of ast::Unit
221  DOUBLE_UNIT, ///< type of ast::DoubleUnit
222  LOCAL_VAR, ///< type of ast::LocalVar
223  LIMITS, ///< type of ast::Limits
224  NUMBER_RANGE, ///< type of ast::NumberRange
225  CONSTANT_VAR, ///< type of ast::ConstantVar
226  BINARY_OPERATOR, ///< type of ast::BinaryOperator
227  UNARY_OPERATOR, ///< type of ast::UnaryOperator
228  REACTION_OPERATOR, ///< type of ast::ReactionOperator
229  PAREN_EXPRESSION, ///< type of ast::ParenExpression
230  BINARY_EXPRESSION, ///< type of ast::BinaryExpression
231  DIFF_EQ_EXPRESSION, ///< type of ast::DiffEqExpression
232  UNARY_EXPRESSION, ///< type of ast::UnaryExpression
233  NON_LIN_EQUATION, ///< type of ast::NonLinEquation
234  LIN_EQUATION, ///< type of ast::LinEquation
235  FUNCTION_CALL, ///< type of ast::FunctionCall
236  WATCH, ///< type of ast::Watch
237  BA_BLOCK_TYPE, ///< type of ast::BABlockType
238  UNIT_DEF, ///< type of ast::UnitDef
239  FACTOR_DEF, ///< type of ast::FactorDef
240  VALENCE, ///< type of ast::Valence
241  UNIT_STATE, ///< type of ast::UnitState
242  LOCAL_LIST_STATEMENT, ///< type of ast::LocalListStatement
243  MODEL, ///< type of ast::Model
244  DEFINE, ///< type of ast::Define
245  INCLUDE, ///< type of ast::Include
246  PARAM_ASSIGN, ///< type of ast::ParamAssign
247  ASSIGNED_DEFINITION, ///< type of ast::AssignedDefinition
248  CONDUCTANCE_HINT, ///< type of ast::ConductanceHint
249  EXPRESSION_STATEMENT, ///< type of ast::ExpressionStatement
250  PROTECT_STATEMENT, ///< type of ast::ProtectStatement
251  FROM_STATEMENT, ///< type of ast::FromStatement
252  WHILE_STATEMENT, ///< type of ast::WhileStatement
253  IF_STATEMENT, ///< type of ast::IfStatement
254  ELSE_IF_STATEMENT, ///< type of ast::ElseIfStatement
255  ELSE_STATEMENT, ///< type of ast::ElseStatement
256  WATCH_STATEMENT, ///< type of ast::WatchStatement
257  MUTEX_LOCK, ///< type of ast::MutexLock
258  MUTEX_UNLOCK, ///< type of ast::MutexUnlock
259  CONSERVE, ///< type of ast::Conserve
260  COMPARTMENT, ///< type of ast::Compartment
261  LON_DIFFUSE, ///< type of ast::LonDiffuse
262  REACTION_STATEMENT, ///< type of ast::ReactionStatement
263  LAG_STATEMENT, ///< type of ast::LagStatement
264  CONSTANT_STATEMENT, ///< type of ast::ConstantStatement
265  TABLE_STATEMENT, ///< type of ast::TableStatement
266  SUFFIX, ///< type of ast::Suffix
267  USEION, ///< type of ast::Useion
268  NONSPECIFIC, ///< type of ast::Nonspecific
269  ELECTRODE_CURRENT, ///< type of ast::ElectrodeCurrent
270  RANGE, ///< type of ast::Range
271  GLOBAL, ///< type of ast::Global
272  RANDOM_VAR_LIST, ///< type of ast::RandomVarList
273  POINTER, ///< type of ast::Pointer
274  BBCORE_POINTER, ///< type of ast::BbcorePointer
275  EXTERNAL, ///< type of ast::External
276  THREAD_SAFE, ///< type of ast::ThreadSafe
277  VERBATIM, ///< type of ast::Verbatim
278  LINE_COMMENT, ///< type of ast::LineComment
279  BLOCK_COMMENT, ///< type of ast::BlockComment
280  ONTOLOGY_STATEMENT, ///< type of ast::OntologyStatement
281  PROGRAM, ///< type of ast::Program
282  NRN_STATE_BLOCK, ///< type of ast::NrnStateBlock
283  EIGEN_NEWTON_SOLVER_BLOCK, ///< type of ast::EigenNewtonSolverBlock
284  EIGEN_LINEAR_SOLVER_BLOCK, ///< type of ast::EigenLinearSolverBlock
285  CVODE_BLOCK, ///< type of ast::CvodeBlock
286  LONGITUDINAL_DIFFUSION_BLOCK, ///< type of ast::LongitudinalDiffusionBlock
287  WRAPPED_EXPRESSION, ///< type of ast::WrappedExpression
288  DERIVIMPLICIT_CALLBACK, ///< type of ast::DerivimplicitCallback
289  SOLUTION_EXPRESSION, ///< type of ast::SolutionExpression
290  UPDATE_DT, ///< type of ast::UpdateDt
291 };
292 
293 /** @} */ // end of ast_type
294 
295 /**
296  * @defgroup ast_vec_type AST Vector Type Aliases
297  * @ingroup ast
298  * @brief Vector type alias for AST node
299  * @{
300  */
301 using NodeVector = std::vector<std::shared_ptr<Node>>;
302 using StatementVector = std::vector<std::shared_ptr<Statement>>;
303 using ExpressionVector = std::vector<std::shared_ptr<Expression>>;
304 using BlockVector = std::vector<std::shared_ptr<Block>>;
305 using IdentifierVector = std::vector<std::shared_ptr<Identifier>>;
306 using NumberVector = std::vector<std::shared_ptr<Number>>;
307 using StringVector = std::vector<std::shared_ptr<String>>;
308 using IntegerVector = std::vector<std::shared_ptr<Integer>>;
309 using FloatVector = std::vector<std::shared_ptr<Float>>;
310 using DoubleVector = std::vector<std::shared_ptr<Double>>;
311 using BooleanVector = std::vector<std::shared_ptr<Boolean>>;
312 using NameVector = std::vector<std::shared_ptr<Name>>;
313 using PrimeNameVector = std::vector<std::shared_ptr<PrimeName>>;
314 using IndexedNameVector = std::vector<std::shared_ptr<IndexedName>>;
315 using VarNameVector = std::vector<std::shared_ptr<VarName>>;
316 using ArgumentVector = std::vector<std::shared_ptr<Argument>>;
317 using ReactVarNameVector = std::vector<std::shared_ptr<ReactVarName>>;
318 using ReadIonVarVector = std::vector<std::shared_ptr<ReadIonVar>>;
319 using WriteIonVarVector = std::vector<std::shared_ptr<WriteIonVar>>;
320 using NonspecificCurVarVector = std::vector<std::shared_ptr<NonspecificCurVar>>;
321 using ElectrodeCurVarVector = std::vector<std::shared_ptr<ElectrodeCurVar>>;
322 using RangeVarVector = std::vector<std::shared_ptr<RangeVar>>;
323 using GlobalVarVector = std::vector<std::shared_ptr<GlobalVar>>;
324 using PointerVarVector = std::vector<std::shared_ptr<PointerVar>>;
325 using RandomVarVector = std::vector<std::shared_ptr<RandomVar>>;
326 using BbcorePointerVarVector = std::vector<std::shared_ptr<BbcorePointerVar>>;
327 using ExternVarVector = std::vector<std::shared_ptr<ExternVar>>;
328 using ParamBlockVector = std::vector<std::shared_ptr<ParamBlock>>;
329 using IndependentBlockVector = std::vector<std::shared_ptr<IndependentBlock>>;
330 using AssignedBlockVector = std::vector<std::shared_ptr<AssignedBlock>>;
331 using StateBlockVector = std::vector<std::shared_ptr<StateBlock>>;
332 using InitialBlockVector = std::vector<std::shared_ptr<InitialBlock>>;
333 using ConstructorBlockVector = std::vector<std::shared_ptr<ConstructorBlock>>;
334 using DestructorBlockVector = std::vector<std::shared_ptr<DestructorBlock>>;
335 using StatementBlockVector = std::vector<std::shared_ptr<StatementBlock>>;
336 using DerivativeBlockVector = std::vector<std::shared_ptr<DerivativeBlock>>;
337 using LinearBlockVector = std::vector<std::shared_ptr<LinearBlock>>;
338 using NonLinearBlockVector = std::vector<std::shared_ptr<NonLinearBlock>>;
339 using DiscreteBlockVector = std::vector<std::shared_ptr<DiscreteBlock>>;
340 using FunctionTableBlockVector = std::vector<std::shared_ptr<FunctionTableBlock>>;
341 using FunctionBlockVector = std::vector<std::shared_ptr<FunctionBlock>>;
342 using ProcedureBlockVector = std::vector<std::shared_ptr<ProcedureBlock>>;
343 using NetReceiveBlockVector = std::vector<std::shared_ptr<NetReceiveBlock>>;
344 using SolveBlockVector = std::vector<std::shared_ptr<SolveBlock>>;
345 using BreakpointBlockVector = std::vector<std::shared_ptr<BreakpointBlock>>;
346 using BeforeBlockVector = std::vector<std::shared_ptr<BeforeBlock>>;
347 using AfterBlockVector = std::vector<std::shared_ptr<AfterBlock>>;
348 using BABlockVector = std::vector<std::shared_ptr<BABlock>>;
349 using ForNetconVector = std::vector<std::shared_ptr<ForNetcon>>;
350 using KineticBlockVector = std::vector<std::shared_ptr<KineticBlock>>;
351 using UnitBlockVector = std::vector<std::shared_ptr<UnitBlock>>;
352 using ConstantBlockVector = std::vector<std::shared_ptr<ConstantBlock>>;
353 using NeuronBlockVector = std::vector<std::shared_ptr<NeuronBlock>>;
354 using UnitVector = std::vector<std::shared_ptr<Unit>>;
355 using DoubleUnitVector = std::vector<std::shared_ptr<DoubleUnit>>;
356 using LocalVarVector = std::vector<std::shared_ptr<LocalVar>>;
357 using LimitsVector = std::vector<std::shared_ptr<Limits>>;
358 using NumberRangeVector = std::vector<std::shared_ptr<NumberRange>>;
359 using ConstantVarVector = std::vector<std::shared_ptr<ConstantVar>>;
360 using BinaryOperatorVector = std::vector<std::shared_ptr<BinaryOperator>>;
361 using UnaryOperatorVector = std::vector<std::shared_ptr<UnaryOperator>>;
362 using ReactionOperatorVector = std::vector<std::shared_ptr<ReactionOperator>>;
363 using ParenExpressionVector = std::vector<std::shared_ptr<ParenExpression>>;
364 using BinaryExpressionVector = std::vector<std::shared_ptr<BinaryExpression>>;
365 using DiffEqExpressionVector = std::vector<std::shared_ptr<DiffEqExpression>>;
366 using UnaryExpressionVector = std::vector<std::shared_ptr<UnaryExpression>>;
367 using NonLinEquationVector = std::vector<std::shared_ptr<NonLinEquation>>;
368 using LinEquationVector = std::vector<std::shared_ptr<LinEquation>>;
369 using FunctionCallVector = std::vector<std::shared_ptr<FunctionCall>>;
370 using WatchVector = std::vector<std::shared_ptr<Watch>>;
371 using BABlockTypeVector = std::vector<std::shared_ptr<BABlockType>>;
372 using UnitDefVector = std::vector<std::shared_ptr<UnitDef>>;
373 using FactorDefVector = std::vector<std::shared_ptr<FactorDef>>;
374 using ValenceVector = std::vector<std::shared_ptr<Valence>>;
375 using UnitStateVector = std::vector<std::shared_ptr<UnitState>>;
376 using LocalListStatementVector = std::vector<std::shared_ptr<LocalListStatement>>;
377 using ModelVector = std::vector<std::shared_ptr<Model>>;
378 using DefineVector = std::vector<std::shared_ptr<Define>>;
379 using IncludeVector = std::vector<std::shared_ptr<Include>>;
380 using ParamAssignVector = std::vector<std::shared_ptr<ParamAssign>>;
381 using AssignedDefinitionVector = std::vector<std::shared_ptr<AssignedDefinition>>;
382 using ConductanceHintVector = std::vector<std::shared_ptr<ConductanceHint>>;
383 using ExpressionStatementVector = std::vector<std::shared_ptr<ExpressionStatement>>;
384 using ProtectStatementVector = std::vector<std::shared_ptr<ProtectStatement>>;
385 using FromStatementVector = std::vector<std::shared_ptr<FromStatement>>;
386 using WhileStatementVector = std::vector<std::shared_ptr<WhileStatement>>;
387 using IfStatementVector = std::vector<std::shared_ptr<IfStatement>>;
388 using ElseIfStatementVector = std::vector<std::shared_ptr<ElseIfStatement>>;
389 using ElseStatementVector = std::vector<std::shared_ptr<ElseStatement>>;
390 using WatchStatementVector = std::vector<std::shared_ptr<WatchStatement>>;
391 using MutexLockVector = std::vector<std::shared_ptr<MutexLock>>;
392 using MutexUnlockVector = std::vector<std::shared_ptr<MutexUnlock>>;
393 using ConserveVector = std::vector<std::shared_ptr<Conserve>>;
394 using CompartmentVector = std::vector<std::shared_ptr<Compartment>>;
395 using LonDiffuseVector = std::vector<std::shared_ptr<LonDiffuse>>;
396 using ReactionStatementVector = std::vector<std::shared_ptr<ReactionStatement>>;
397 using LagStatementVector = std::vector<std::shared_ptr<LagStatement>>;
398 using ConstantStatementVector = std::vector<std::shared_ptr<ConstantStatement>>;
399 using TableStatementVector = std::vector<std::shared_ptr<TableStatement>>;
400 using SuffixVector = std::vector<std::shared_ptr<Suffix>>;
401 using UseionVector = std::vector<std::shared_ptr<Useion>>;
402 using NonspecificVector = std::vector<std::shared_ptr<Nonspecific>>;
403 using ElectrodeCurrentVector = std::vector<std::shared_ptr<ElectrodeCurrent>>;
404 using RangeVector = std::vector<std::shared_ptr<Range>>;
405 using GlobalVector = std::vector<std::shared_ptr<Global>>;
406 using RandomVarListVector = std::vector<std::shared_ptr<RandomVarList>>;
407 using PointerVector = std::vector<std::shared_ptr<Pointer>>;
408 using BbcorePointerVector = std::vector<std::shared_ptr<BbcorePointer>>;
409 using ExternalVector = std::vector<std::shared_ptr<External>>;
410 using ThreadSafeVector = std::vector<std::shared_ptr<ThreadSafe>>;
411 using VerbatimVector = std::vector<std::shared_ptr<Verbatim>>;
412 using LineCommentVector = std::vector<std::shared_ptr<LineComment>>;
413 using BlockCommentVector = std::vector<std::shared_ptr<BlockComment>>;
414 using OntologyStatementVector = std::vector<std::shared_ptr<OntologyStatement>>;
415 using ProgramVector = std::vector<std::shared_ptr<Program>>;
416 using NrnStateBlockVector = std::vector<std::shared_ptr<NrnStateBlock>>;
417 using EigenNewtonSolverBlockVector = std::vector<std::shared_ptr<EigenNewtonSolverBlock>>;
418 using EigenLinearSolverBlockVector = std::vector<std::shared_ptr<EigenLinearSolverBlock>>;
419 using CvodeBlockVector = std::vector<std::shared_ptr<CvodeBlock>>;
420 using LongitudinalDiffusionBlockVector = std::vector<std::shared_ptr<LongitudinalDiffusionBlock>>;
421 using WrappedExpressionVector = std::vector<std::shared_ptr<WrappedExpression>>;
422 using DerivimplicitCallbackVector = std::vector<std::shared_ptr<DerivimplicitCallback>>;
423 using SolutionExpressionVector = std::vector<std::shared_ptr<SolutionExpression>>;
424 using UpdateDtVector = std::vector<std::shared_ptr<UpdateDt>>;
425 
426 /** @} */ // end of ast_vec_type
427 
428 } // namespace ast
429 } // namespace nmodl
430 
nmodl::ast::ConstantBlockVector
std::vector< std::shared_ptr< ConstantBlock > > ConstantBlockVector
Definition: ast_decl.hpp:352
nmodl::ast::NonLinearBlockVector
std::vector< std::shared_ptr< NonLinearBlock > > NonLinearBlockVector
Definition: ast_decl.hpp:338
nmodl::ast::UnaryExpressionVector
std::vector< std::shared_ptr< UnaryExpression > > UnaryExpressionVector
Definition: ast_decl.hpp:366
nmodl::ast::AstNodeType::RANDOM_VAR_LIST
@ RANDOM_VAR_LIST
type of ast::RandomVarList
nmodl::ast::ConstantStatementVector
std::vector< std::shared_ptr< ConstantStatement > > ConstantStatementVector
Definition: ast_decl.hpp:398
nmodl::ast::AstNodeType::INDEXED_NAME
@ INDEXED_NAME
type of ast::IndexedName
nmodl::ast::AstNodeType::WHILE_STATEMENT
@ WHILE_STATEMENT
type of ast::WhileStatement
nmodl::ast::AstNodeType::DERIVATIVE_BLOCK
@ DERIVATIVE_BLOCK
type of ast::DerivativeBlock
nmodl::ast::ConserveVector
std::vector< std::shared_ptr< Conserve > > ConserveVector
Definition: ast_decl.hpp:393
nmodl::ast::SuffixVector
std::vector< std::shared_ptr< Suffix > > SuffixVector
Definition: ast_decl.hpp:400
nmodl::ast::AstNodeType::UNIT_STATE
@ UNIT_STATE
type of ast::UnitState
nmodl::ast::AstNodeType::REACT_VAR_NAME
@ REACT_VAR_NAME
type of ast::ReactVarName
nmodl::ast::AstNodeType::RANDOM_VAR
@ RANDOM_VAR
type of ast::RandomVar
nmodl::ast::CompartmentVector
std::vector< std::shared_ptr< Compartment > > CompartmentVector
Definition: ast_decl.hpp:394
nmodl::ast::NumberRangeVector
std::vector< std::shared_ptr< NumberRange > > NumberRangeVector
Definition: ast_decl.hpp:358
nmodl::ast::BinaryExpressionVector
std::vector< std::shared_ptr< BinaryExpression > > BinaryExpressionVector
Definition: ast_decl.hpp:364
nmodl::ast::AstNodeType::BINARY_EXPRESSION
@ BINARY_EXPRESSION
type of ast::BinaryExpression
nmodl::ast::AstNodeType::FUNCTION_BLOCK
@ FUNCTION_BLOCK
type of ast::FunctionBlock
nmodl::ast::DiffEqExpressionVector
std::vector< std::shared_ptr< DiffEqExpression > > DiffEqExpressionVector
Definition: ast_decl.hpp:365
nmodl::ast::ConstantVarVector
std::vector< std::shared_ptr< ConstantVar > > ConstantVarVector
Definition: ast_decl.hpp:359
nmodl::ast::NonLinEquationVector
std::vector< std::shared_ptr< NonLinEquation > > NonLinEquationVector
Definition: ast_decl.hpp:367
nmodl::ast::ExpressionStatementVector
std::vector< std::shared_ptr< ExpressionStatement > > ExpressionStatementVector
Definition: ast_decl.hpp:383
nmodl::ast::AstNodeType::MUTEX_UNLOCK
@ MUTEX_UNLOCK
type of ast::MutexUnlock
nmodl::ast::ModelVector
std::vector< std::shared_ptr< Model > > ModelVector
Definition: ast_decl.hpp:377
nmodl::ast::AstNodeType::DERIVIMPLICIT_CALLBACK
@ DERIVIMPLICIT_CALLBACK
type of ast::DerivimplicitCallback
nmodl::ast::AstNodeType::FOR_NETCON
@ FOR_NETCON
type of ast::ForNetcon
nmodl::ast::ParamBlockVector
std::vector< std::shared_ptr< ParamBlock > > ParamBlockVector
Definition: ast_decl.hpp:328
nmodl::ast::AstNodeType::SOLUTION_EXPRESSION
@ SOLUTION_EXPRESSION
type of ast::SolutionExpression
nmodl::ast::LinearBlockVector
std::vector< std::shared_ptr< LinearBlock > > LinearBlockVector
Definition: ast_decl.hpp:337
nmodl::ast::AstNodeType::KINETIC_BLOCK
@ KINETIC_BLOCK
type of ast::KineticBlock
nmodl::ast::AstNodeType::COMPARTMENT
@ COMPARTMENT
type of ast::Compartment
nmodl::ast::AstNodeType::LAG_STATEMENT
@ LAG_STATEMENT
type of ast::LagStatement
nmodl::ast::AstNodeType::RANGE
@ RANGE
type of ast::Range
nmodl::ast::AstNodeType::INITIAL_BLOCK
@ INITIAL_BLOCK
type of ast::InitialBlock
nmodl::ast::PointerVarVector
std::vector< std::shared_ptr< PointerVar > > PointerVarVector
Definition: ast_decl.hpp:324
nmodl::ast::AstNodeType::NONSPECIFIC_CUR_VAR
@ NONSPECIFIC_CUR_VAR
type of ast::NonspecificCurVar
nmodl::ast::AstNodeType::MUTEX_LOCK
@ MUTEX_LOCK
type of ast::MutexLock
nmodl::ast::EigenNewtonSolverBlockVector
std::vector< std::shared_ptr< EigenNewtonSolverBlock > > EigenNewtonSolverBlockVector
Definition: ast_decl.hpp:417
nmodl::ast::StatementVector
std::vector< std::shared_ptr< Statement > > StatementVector
Definition: ast_decl.hpp:302
nmodl::ast::AstNodeType::MODEL
@ MODEL
type of ast::Model
nmodl::ast::AstNodeType::STATEMENT_BLOCK
@ STATEMENT_BLOCK
type of ast::StatementBlock
nmodl::ast::AstNodeType::FLOAT
@ FLOAT
type of ast::Float
nmodl::ast::ParamAssignVector
std::vector< std::shared_ptr< ParamAssign > > ParamAssignVector
Definition: ast_decl.hpp:380
nmodl::ast::RangeVarVector
std::vector< std::shared_ptr< RangeVar > > RangeVarVector
Definition: ast_decl.hpp:322
nmodl::ast::TableStatementVector
std::vector< std::shared_ptr< TableStatement > > TableStatementVector
Definition: ast_decl.hpp:399
nmodl::ast::BlockCommentVector
std::vector< std::shared_ptr< BlockComment > > BlockCommentVector
Definition: ast_decl.hpp:413
nmodl::ast::AstNodeType::FUNCTION_TABLE_BLOCK
@ FUNCTION_TABLE_BLOCK
type of ast::FunctionTableBlock
nmodl::ast::AstNodeType::EIGEN_NEWTON_SOLVER_BLOCK
@ EIGEN_NEWTON_SOLVER_BLOCK
type of ast::EigenNewtonSolverBlock
nmodl
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
nmodl::ast::AstNodeType::LIN_EQUATION
@ LIN_EQUATION
type of ast::LinEquation
nmodl::ast::NodeVector
std::vector< std::shared_ptr< Node > > NodeVector
Definition: ast_decl.hpp:301
nmodl::ast::AstNodeType::LON_DIFFUSE
@ LON_DIFFUSE
type of ast::LonDiffuse
nmodl::ast::UnitBlockVector
std::vector< std::shared_ptr< UnitBlock > > UnitBlockVector
Definition: ast_decl.hpp:351
nmodl::ast::BlockVector
std::vector< std::shared_ptr< Block > > BlockVector
Definition: ast_decl.hpp:304
nmodl::ast::PointerVector
std::vector< std::shared_ptr< Pointer > > PointerVector
Definition: ast_decl.hpp:407
nmodl::ast::AstNodeType::UPDATE_DT
@ UPDATE_DT
type of ast::UpdateDt
nmodl::ast::AstNodeType::CONSTRUCTOR_BLOCK
@ CONSTRUCTOR_BLOCK
type of ast::ConstructorBlock
nmodl::ast::DoubleVector
std::vector< std::shared_ptr< Double > > DoubleVector
Definition: ast_decl.hpp:310
nmodl::ast::LonDiffuseVector
std::vector< std::shared_ptr< LonDiffuse > > LonDiffuseVector
Definition: ast_decl.hpp:395
nmodl::ast::ExternalVector
std::vector< std::shared_ptr< External > > ExternalVector
Definition: ast_decl.hpp:409
nmodl::ast::BeforeBlockVector
std::vector< std::shared_ptr< BeforeBlock > > BeforeBlockVector
Definition: ast_decl.hpp:346
nmodl::ast::AstNodeType::NODE
@ NODE
type of ast::Node
nmodl::ast::AstNodeType::ELECTRODE_CURRENT
@ ELECTRODE_CURRENT
type of ast::ElectrodeCurrent
nmodl::ast::FactorDefVector
std::vector< std::shared_ptr< FactorDef > > FactorDefVector
Definition: ast_decl.hpp:373
nmodl::ast::RandomVarVector
std::vector< std::shared_ptr< RandomVar > > RandomVarVector
Definition: ast_decl.hpp:325
nmodl::ast::AstNodeType::POINTER_VAR
@ POINTER_VAR
type of ast::PointerVar
nmodl::ast::AstNodeType::PRIME_NAME
@ PRIME_NAME
type of ast::PrimeName
nmodl::ast::BooleanVector
std::vector< std::shared_ptr< Boolean > > BooleanVector
Definition: ast_decl.hpp:311
nmodl::ast::AstNodeType::ARGUMENT
@ ARGUMENT
type of ast::Argument
nmodl::ast::AstNodeType::CONSERVE
@ CONSERVE
type of ast::Conserve
nmodl::ast::AstNodeType::PARAM_ASSIGN
@ PARAM_ASSIGN
type of ast::ParamAssign
nmodl::ast::ConstructorBlockVector
std::vector< std::shared_ptr< ConstructorBlock > > ConstructorBlockVector
Definition: ast_decl.hpp:333
nmodl::ast::NumberVector
std::vector< std::shared_ptr< Number > > NumberVector
Definition: ast_decl.hpp:306
nmodl::ast::DestructorBlockVector
std::vector< std::shared_ptr< DestructorBlock > > DestructorBlockVector
Definition: ast_decl.hpp:334
nmodl::ast::FunctionTableBlockVector
std::vector< std::shared_ptr< FunctionTableBlock > > FunctionTableBlockVector
Definition: ast_decl.hpp:340
nmodl::ast::AstNodeType::BLOCK_COMMENT
@ BLOCK_COMMENT
type of ast::BlockComment
nmodl::ast::AstNodeType::DESTRUCTOR_BLOCK
@ DESTRUCTOR_BLOCK
type of ast::DestructorBlock
nmodl::ast::ReactVarNameVector
std::vector< std::shared_ptr< ReactVarName > > ReactVarNameVector
Definition: ast_decl.hpp:317
nmodl::ast::NeuronBlockVector
std::vector< std::shared_ptr< NeuronBlock > > NeuronBlockVector
Definition: ast_decl.hpp:353
nmodl::ast::NonspecificVector
std::vector< std::shared_ptr< Nonspecific > > NonspecificVector
Definition: ast_decl.hpp:402
nmodl::ast::WrappedExpressionVector
std::vector< std::shared_ptr< WrappedExpression > > WrappedExpressionVector
Definition: ast_decl.hpp:421
nmodl::ast::AstNodeType::BINARY_OPERATOR
@ BINARY_OPERATOR
type of ast::BinaryOperator
nmodl::ast::VerbatimVector
std::vector< std::shared_ptr< Verbatim > > VerbatimVector
Definition: ast_decl.hpp:411
nmodl::ast::LocalVarVector
std::vector< std::shared_ptr< LocalVar > > LocalVarVector
Definition: ast_decl.hpp:356
nmodl::ast::GlobalVarVector
std::vector< std::shared_ptr< GlobalVar > > GlobalVarVector
Definition: ast_decl.hpp:323
nmodl::ast::AstNodeType
AstNodeType
Enum type for every AST node type.
Definition: ast_decl.hpp:166
nmodl::ast::AstNodeType::CONSTANT_VAR
@ CONSTANT_VAR
type of ast::ConstantVar
nmodl::ast::ReactionStatementVector
std::vector< std::shared_ptr< ReactionStatement > > ReactionStatementVector
Definition: ast_decl.hpp:396
nmodl::ast::FunctionCallVector
std::vector< std::shared_ptr< FunctionCall > > FunctionCallVector
Definition: ast_decl.hpp:369
nmodl::ast::AstNodeType::PROCEDURE_BLOCK
@ PROCEDURE_BLOCK
type of ast::ProcedureBlock
nmodl::ast::AstNodeType::BOOLEAN
@ BOOLEAN
type of ast::Boolean
nmodl::ast::AstNodeType::READ_ION_VAR
@ READ_ION_VAR
type of ast::ReadIonVar
nmodl::ast::IndexedNameVector
std::vector< std::shared_ptr< IndexedName > > IndexedNameVector
Definition: ast_decl.hpp:314
nmodl::ast::VarNameVector
std::vector< std::shared_ptr< VarName > > VarNameVector
Definition: ast_decl.hpp:315
nmodl::ast::DiscreteBlockVector
std::vector< std::shared_ptr< DiscreteBlock > > DiscreteBlockVector
Definition: ast_decl.hpp:339
nmodl::ast::AstNodeType::DIFF_EQ_EXPRESSION
@ DIFF_EQ_EXPRESSION
type of ast::DiffEqExpression
nmodl::ast::ReadIonVarVector
std::vector< std::shared_ptr< ReadIonVar > > ReadIonVarVector
Definition: ast_decl.hpp:318
nmodl::ast::ElseIfStatementVector
std::vector< std::shared_ptr< ElseIfStatement > > ElseIfStatementVector
Definition: ast_decl.hpp:388
nmodl::ast::NameVector
std::vector< std::shared_ptr< Name > > NameVector
Definition: ast_decl.hpp:312
nmodl::ast::AstNodeType::DOUBLE
@ DOUBLE
type of ast::Double
nmodl::ast::AstNodeType::UNIT_BLOCK
@ UNIT_BLOCK
type of ast::UnitBlock
nmodl::ast::AstNodeType::IDENTIFIER
@ IDENTIFIER
type of ast::Identifier
nmodl::ast::AstNodeType::AFTER_BLOCK
@ AFTER_BLOCK
type of ast::AfterBlock
nmodl::ast::OntologyStatementVector
std::vector< std::shared_ptr< OntologyStatement > > OntologyStatementVector
Definition: ast_decl.hpp:414
nmodl::ast::ArgumentVector
std::vector< std::shared_ptr< Argument > > ArgumentVector
Definition: ast_decl.hpp:316
nmodl::ast::UnitDefVector
std::vector< std::shared_ptr< UnitDef > > UnitDefVector
Definition: ast_decl.hpp:372
nmodl::ast::AstNodeType::ELECTRODE_CUR_VAR
@ ELECTRODE_CUR_VAR
type of ast::ElectrodeCurVar
nmodl::ast::LagStatementVector
std::vector< std::shared_ptr< LagStatement > > LagStatementVector
Definition: ast_decl.hpp:397
nmodl::ast::LocalListStatementVector
std::vector< std::shared_ptr< LocalListStatement > > LocalListStatementVector
Definition: ast_decl.hpp:376
nmodl::ast::ProgramVector
std::vector< std::shared_ptr< Program > > ProgramVector
Definition: ast_decl.hpp:415
nmodl::ast::AssignedBlockVector
std::vector< std::shared_ptr< AssignedBlock > > AssignedBlockVector
Definition: ast_decl.hpp:330
nmodl::ast::AfterBlockVector
std::vector< std::shared_ptr< AfterBlock > > AfterBlockVector
Definition: ast_decl.hpp:347
nmodl::ast::BbcorePointerVarVector
std::vector< std::shared_ptr< BbcorePointerVar > > BbcorePointerVarVector
Definition: ast_decl.hpp:326
nmodl::ast::IfStatementVector
std::vector< std::shared_ptr< IfStatement > > IfStatementVector
Definition: ast_decl.hpp:387
nmodl::ast::StringVector
std::vector< std::shared_ptr< String > > StringVector
Definition: ast_decl.hpp:307
nmodl::ast::AstNodeType::CONDUCTANCE_HINT
@ CONDUCTANCE_HINT
type of ast::ConductanceHint
nmodl::ast::AstNodeType::NONSPECIFIC
@ NONSPECIFIC
type of ast::Nonspecific
nmodl::ast::AstNodeType::NUMBER
@ NUMBER
type of ast::Number
nmodl::ast::UnitStateVector
std::vector< std::shared_ptr< UnitState > > UnitStateVector
Definition: ast_decl.hpp:375
nmodl::ast::AstNodeType::ONTOLOGY_STATEMENT
@ ONTOLOGY_STATEMENT
type of ast::OntologyStatement
nmodl::ast::AstNodeType::ELSE_IF_STATEMENT
@ ELSE_IF_STATEMENT
type of ast::ElseIfStatement
nmodl::ast::ElectrodeCurrentVector
std::vector< std::shared_ptr< ElectrodeCurrent > > ElectrodeCurrentVector
Definition: ast_decl.hpp:403
nmodl::ast::LongitudinalDiffusionBlockVector
std::vector< std::shared_ptr< LongitudinalDiffusionBlock > > LongitudinalDiffusionBlockVector
Definition: ast_decl.hpp:420
nmodl::ast::ProcedureBlockVector
std::vector< std::shared_ptr< ProcedureBlock > > ProcedureBlockVector
Definition: ast_decl.hpp:342
nmodl::ast::BreakpointBlockVector
std::vector< std::shared_ptr< BreakpointBlock > > BreakpointBlockVector
Definition: ast_decl.hpp:345
nmodl::ast::AstNodeType::SUFFIX
@ SUFFIX
type of ast::Suffix
nmodl::ast::WhileStatementVector
std::vector< std::shared_ptr< WhileStatement > > WhileStatementVector
Definition: ast_decl.hpp:386
nmodl::ast::MutexUnlockVector
std::vector< std::shared_ptr< MutexUnlock > > MutexUnlockVector
Definition: ast_decl.hpp:392
nmodl::codegen::BlockType::Watch
@ Watch
watch block
nmodl::ast::ConductanceHintVector
std::vector< std::shared_ptr< ConductanceHint > > ConductanceHintVector
Definition: ast_decl.hpp:382
nmodl::ast::IntegerVector
std::vector< std::shared_ptr< Integer > > IntegerVector
Definition: ast_decl.hpp:308
nmodl::ast::AstNodeType::NON_LINEAR_BLOCK
@ NON_LINEAR_BLOCK
type of ast::NonLinearBlock
nmodl::ast::NrnStateBlockVector
std::vector< std::shared_ptr< NrnStateBlock > > NrnStateBlockVector
Definition: ast_decl.hpp:416
nmodl::ast::AstNodeType::STRING
@ STRING
type of ast::String
nmodl::ast::AstNodeType::SOLVE_BLOCK
@ SOLVE_BLOCK
type of ast::SolveBlock
nmodl::ast::AstNodeType::NRN_STATE_BLOCK
@ NRN_STATE_BLOCK
type of ast::NrnStateBlock
nmodl::ast::AstNodeType::DEFINE
@ DEFINE
type of ast::Define
nmodl::ast::AstNodeType::BA_BLOCK_TYPE
@ BA_BLOCK_TYPE
type of ast::BABlockType
nmodl::ast::RandomVarListVector
std::vector< std::shared_ptr< RandomVarList > > RandomVarListVector
Definition: ast_decl.hpp:406
nmodl::ast::SolveBlockVector
std::vector< std::shared_ptr< SolveBlock > > SolveBlockVector
Definition: ast_decl.hpp:344
nmodl::ast::StateBlockVector
std::vector< std::shared_ptr< StateBlock > > StateBlockVector
Definition: ast_decl.hpp:331
nmodl::ast::AstNodeType::UNIT_DEF
@ UNIT_DEF
type of ast::UnitDef
nmodl::ast::SolutionExpressionVector
std::vector< std::shared_ptr< SolutionExpression > > SolutionExpressionVector
Definition: ast_decl.hpp:423
nmodl::ast::AstNodeType::LINE_COMMENT
@ LINE_COMMENT
type of ast::LineComment
nmodl::ast::AstNodeType::FUNCTION_CALL
@ FUNCTION_CALL
type of ast::FunctionCall
nmodl::ast::UseionVector
std::vector< std::shared_ptr< Useion > > UseionVector
Definition: ast_decl.hpp:401
nmodl::ast::InitialBlockVector
std::vector< std::shared_ptr< InitialBlock > > InitialBlockVector
Definition: ast_decl.hpp:332
nmodl::ast::AstNodeType::UNARY_OPERATOR
@ UNARY_OPERATOR
type of ast::UnaryOperator
nmodl::ast::AstNodeType::GLOBAL
@ GLOBAL
type of ast::Global
nmodl::ast::BABlockTypeVector
std::vector< std::shared_ptr< BABlockType > > BABlockTypeVector
Definition: ast_decl.hpp:371
nmodl::ast::IncludeVector
std::vector< std::shared_ptr< Include > > IncludeVector
Definition: ast_decl.hpp:379
nmodl::ast::ElectrodeCurVarVector
std::vector< std::shared_ptr< ElectrodeCurVar > > ElectrodeCurVarVector
Definition: ast_decl.hpp:321
nmodl::ast::AstNodeType::EXTERN_VAR
@ EXTERN_VAR
type of ast::ExternVar
nmodl::ast::AstNodeType::LONGITUDINAL_DIFFUSION_BLOCK
@ LONGITUDINAL_DIFFUSION_BLOCK
type of ast::LongitudinalDiffusionBlock
nmodl::ast::AstNodeType::LOCAL_VAR
@ LOCAL_VAR
type of ast::LocalVar
nmodl::ast::DerivimplicitCallbackVector
std::vector< std::shared_ptr< DerivimplicitCallback > > DerivimplicitCallbackVector
Definition: ast_decl.hpp:422
nmodl::ast::AstNodeType::WATCH
@ WATCH
type of ast::Watch
nmodl::ast::PrimeNameVector
std::vector< std::shared_ptr< PrimeName > > PrimeNameVector
Definition: ast_decl.hpp:313
nmodl::ast::AstNodeType::NEURON_BLOCK
@ NEURON_BLOCK
type of ast::NeuronBlock
nmodl::ast::AstNodeType::WATCH_STATEMENT
@ WATCH_STATEMENT
type of ast::WatchStatement
nmodl::ast::AstNodeType::WRAPPED_EXPRESSION
@ WRAPPED_EXPRESSION
type of ast::WrappedExpression
nmodl::ast::AstNodeType::EXPRESSION_STATEMENT
@ EXPRESSION_STATEMENT
type of ast::ExpressionStatement
nmodl::ast::LinEquationVector
std::vector< std::shared_ptr< LinEquation > > LinEquationVector
Definition: ast_decl.hpp:368
nmodl::ast::UpdateDtVector
std::vector< std::shared_ptr< UpdateDt > > UpdateDtVector
Definition: ast_decl.hpp:424
nmodl::ast::AstNodeType::EXPRESSION
@ EXPRESSION
type of ast::Expression
nmodl::ast::AstNodeType::EIGEN_LINEAR_SOLVER_BLOCK
@ EIGEN_LINEAR_SOLVER_BLOCK
type of ast::EigenLinearSolverBlock
nmodl::ast::AstNodeType::UNIT
@ UNIT
type of ast::Unit
nmodl::ast::WatchStatementVector
std::vector< std::shared_ptr< WatchStatement > > WatchStatementVector
Definition: ast_decl.hpp:390
nmodl::ast::AstNodeType::PROTECT_STATEMENT
@ PROTECT_STATEMENT
type of ast::ProtectStatement
nmodl::ast::DerivativeBlockVector
std::vector< std::shared_ptr< DerivativeBlock > > DerivativeBlockVector
Definition: ast_decl.hpp:336
nmodl::ast::AstNodeType::NUMBER_RANGE
@ NUMBER_RANGE
type of ast::NumberRange
nmodl::ast::StatementBlockVector
std::vector< std::shared_ptr< StatementBlock > > StatementBlockVector
Definition: ast_decl.hpp:335
nmodl::ast::AstNodeType::WRITE_ION_VAR
@ WRITE_ION_VAR
type of ast::WriteIonVar
nmodl::ast::AstNodeType::USEION
@ USEION
type of ast::Useion
nmodl::ast::AstNodeType::VALENCE
@ VALENCE
type of ast::Valence
nmodl::ast::ExpressionVector
std::vector< std::shared_ptr< Expression > > ExpressionVector
Definition: ast_decl.hpp:303
nmodl::ast::AstNodeType::REACTION_OPERATOR
@ REACTION_OPERATOR
type of ast::ReactionOperator
nmodl::ast::UnaryOperatorVector
std::vector< std::shared_ptr< UnaryOperator > > UnaryOperatorVector
Definition: ast_decl.hpp:361
nmodl::ast::AstNodeType::INTEGER
@ INTEGER
type of ast::Integer
nmodl::ast::AssignedDefinitionVector
std::vector< std::shared_ptr< AssignedDefinition > > AssignedDefinitionVector
Definition: ast_decl.hpp:381
nmodl::ast::NonspecificCurVarVector
std::vector< std::shared_ptr< NonspecificCurVar > > NonspecificCurVarVector
Definition: ast_decl.hpp:320
nmodl::ast::AstNodeType::ASSIGNED_DEFINITION
@ ASSIGNED_DEFINITION
type of ast::AssignedDefinition
nmodl::ast::BinaryOperatorVector
std::vector< std::shared_ptr< BinaryOperator > > BinaryOperatorVector
Definition: ast_decl.hpp:360
nmodl::ast::KineticBlockVector
std::vector< std::shared_ptr< KineticBlock > > KineticBlockVector
Definition: ast_decl.hpp:350
nmodl::ast::DoubleUnitVector
std::vector< std::shared_ptr< DoubleUnit > > DoubleUnitVector
Definition: ast_decl.hpp:355
nmodl::ast::AstNodeType::POINTER
@ POINTER
type of ast::Pointer
nmodl::ast::AstNodeType::FACTOR_DEF
@ FACTOR_DEF
type of ast::FactorDef
nmodl::ast::AstNodeType::PARAM_BLOCK
@ PARAM_BLOCK
type of ast::ParamBlock
nmodl::ast::ParenExpressionVector
std::vector< std::shared_ptr< ParenExpression > > ParenExpressionVector
Definition: ast_decl.hpp:363
nmodl::ast::ForNetconVector
std::vector< std::shared_ptr< ForNetcon > > ForNetconVector
Definition: ast_decl.hpp:349
nmodl::ast::MutexLockVector
std::vector< std::shared_ptr< MutexLock > > MutexLockVector
Definition: ast_decl.hpp:391
nmodl::ast::AstNodeType::INDEPENDENT_BLOCK
@ INDEPENDENT_BLOCK
type of ast::IndependentBlock
nmodl::ast::AstNodeType::CONSTANT_STATEMENT
@ CONSTANT_STATEMENT
type of ast::ConstantStatement
nmodl::ast::AstNodeType::LOCAL_LIST_STATEMENT
@ LOCAL_LIST_STATEMENT
type of ast::LocalListStatement
nmodl::ast::WatchVector
std::vector< std::shared_ptr< Watch > > WatchVector
Definition: ast_decl.hpp:370
nmodl::ast::BABlockVector
std::vector< std::shared_ptr< BABlock > > BABlockVector
Definition: ast_decl.hpp:348
nmodl::ast::FromStatementVector
std::vector< std::shared_ptr< FromStatement > > FromStatementVector
Definition: ast_decl.hpp:385
nmodl::ast::AstNodeType::STATEMENT
@ STATEMENT
type of ast::Statement
nmodl::ast::AstNodeType::VERBATIM
@ VERBATIM
type of ast::Verbatim
nmodl::ast::AstNodeType::INCLUDE
@ INCLUDE
type of ast::Include
nmodl::ast::AstNodeType::UNARY_EXPRESSION
@ UNARY_EXPRESSION
type of ast::UnaryExpression
nmodl::visitor::DUVariableType::Global
@ Global
nmodl::ast::AstNodeType::STATE_BLOCK
@ STATE_BLOCK
type of ast::StateBlock
nmodl::ast::AstNodeType::NAME
@ NAME
type of ast::Name
nmodl::ast::AstNodeType::DISCRETE_BLOCK
@ DISCRETE_BLOCK
type of ast::DiscreteBlock
nmodl::ast::NetReceiveBlockVector
std::vector< std::shared_ptr< NetReceiveBlock > > NetReceiveBlockVector
Definition: ast_decl.hpp:343
nmodl::ast::IdentifierVector
std::vector< std::shared_ptr< Identifier > > IdentifierVector
Definition: ast_decl.hpp:305
nmodl::ast::CvodeBlockVector
std::vector< std::shared_ptr< CvodeBlock > > CvodeBlockVector
Definition: ast_decl.hpp:419
nmodl::ast::AstNodeType::GLOBAL_VAR
@ GLOBAL_VAR
type of ast::GlobalVar
nmodl::ast::BbcorePointerVector
std::vector< std::shared_ptr< BbcorePointer > > BbcorePointerVector
Definition: ast_decl.hpp:408
nmodl::ast::AstNodeType::THREAD_SAFE
@ THREAD_SAFE
type of ast::ThreadSafe
nmodl::ast::LimitsVector
std::vector< std::shared_ptr< Limits > > LimitsVector
Definition: ast_decl.hpp:357
nmodl::ast::AstNodeType::BLOCK
@ BLOCK
type of ast::Block
nmodl::ast::AstNodeType::PAREN_EXPRESSION
@ PAREN_EXPRESSION
type of ast::ParenExpression
nmodl::ast::AstNodeType::BEFORE_BLOCK
@ BEFORE_BLOCK
type of ast::BeforeBlock
nmodl::ast::ElseStatementVector
std::vector< std::shared_ptr< ElseStatement > > ElseStatementVector
Definition: ast_decl.hpp:389
nmodl::ast::AstNodeType::BBCORE_POINTER
@ BBCORE_POINTER
type of ast::BbcorePointer
nmodl::ast::GlobalVector
std::vector< std::shared_ptr< Global > > GlobalVector
Definition: ast_decl.hpp:405
nmodl::ast::ProtectStatementVector
std::vector< std::shared_ptr< ProtectStatement > > ProtectStatementVector
Definition: ast_decl.hpp:384
nmodl::ast::AstNodeType::DOUBLE_UNIT
@ DOUBLE_UNIT
type of ast::DoubleUnit
nmodl::ast::FunctionBlockVector
std::vector< std::shared_ptr< FunctionBlock > > FunctionBlockVector
Definition: ast_decl.hpp:341
nmodl::ast::WriteIonVarVector
std::vector< std::shared_ptr< WriteIonVar > > WriteIonVarVector
Definition: ast_decl.hpp:319
nmodl::ast::AstNodeType::TABLE_STATEMENT
@ TABLE_STATEMENT
type of ast::TableStatement
nmodl::ast::AstNodeType::NON_LIN_EQUATION
@ NON_LIN_EQUATION
type of ast::NonLinEquation
nmodl::ast::EigenLinearSolverBlockVector
std::vector< std::shared_ptr< EigenLinearSolverBlock > > EigenLinearSolverBlockVector
Definition: ast_decl.hpp:418
nmodl::ast::ThreadSafeVector
std::vector< std::shared_ptr< ThreadSafe > > ThreadSafeVector
Definition: ast_decl.hpp:410
nmodl::ast::AstNodeType::ASSIGNED_BLOCK
@ ASSIGNED_BLOCK
type of ast::AssignedBlock
nmodl::ast::AstNodeType::BBCORE_POINTER_VAR
@ BBCORE_POINTER_VAR
type of ast::BbcorePointerVar
nmodl::ast::RangeVector
std::vector< std::shared_ptr< Range > > RangeVector
Definition: ast_decl.hpp:404
nmodl::ast::AstNodeType::BREAKPOINT_BLOCK
@ BREAKPOINT_BLOCK
type of ast::BreakpointBlock
nmodl::ast::LineCommentVector
std::vector< std::shared_ptr< LineComment > > LineCommentVector
Definition: ast_decl.hpp:412
nmodl::ast::AstNodeType::CVODE_BLOCK
@ CVODE_BLOCK
type of ast::CvodeBlock
nmodl::ast::IndependentBlockVector
std::vector< std::shared_ptr< IndependentBlock > > IndependentBlockVector
Definition: ast_decl.hpp:329
nmodl::ast::ExternVarVector
std::vector< std::shared_ptr< ExternVar > > ExternVarVector
Definition: ast_decl.hpp:327
nmodl::ast::FloatVector
std::vector< std::shared_ptr< Float > > FloatVector
Definition: ast_decl.hpp:309
nmodl::ast::AstNodeType::FROM_STATEMENT
@ FROM_STATEMENT
type of ast::FromStatement
nmodl::ast::AstNodeType::BA_BLOCK
@ BA_BLOCK
type of ast::BABlock
nmodl::ast::AstNodeType::NET_RECEIVE_BLOCK
@ NET_RECEIVE_BLOCK
type of ast::NetReceiveBlock
nmodl::ast::ValenceVector
std::vector< std::shared_ptr< Valence > > ValenceVector
Definition: ast_decl.hpp:374
nmodl::ast::AstNodeType::PROGRAM
@ PROGRAM
type of ast::Program
nmodl::ast::AstNodeType::RANGE_VAR
@ RANGE_VAR
type of ast::RangeVar
nmodl::ast::DefineVector
std::vector< std::shared_ptr< Define > > DefineVector
Definition: ast_decl.hpp:378
nmodl::ast::AstNodeType::LIMITS
@ LIMITS
type of ast::Limits
nmodl::ast::AstNodeType::REACTION_STATEMENT
@ REACTION_STATEMENT
type of ast::ReactionStatement
nmodl::ast::AstNodeType::CONSTANT_BLOCK
@ CONSTANT_BLOCK
type of ast::ConstantBlock
nmodl::ast::AstNodeType::EXTERNAL
@ EXTERNAL
type of ast::External
nmodl::ast::UnitVector
std::vector< std::shared_ptr< Unit > > UnitVector
Definition: ast_decl.hpp:354
nmodl::ast::AstNodeType::ELSE_STATEMENT
@ ELSE_STATEMENT
type of ast::ElseStatement
nmodl::ast::AstNodeType::VAR_NAME
@ VAR_NAME
type of ast::VarName
nmodl::ast::ReactionOperatorVector
std::vector< std::shared_ptr< ReactionOperator > > ReactionOperatorVector
Definition: ast_decl.hpp:362
nmodl::ast::AstNodeType::IF_STATEMENT
@ IF_STATEMENT
type of ast::IfStatement
nmodl::ast::AstNodeType::LINEAR_BLOCK
@ LINEAR_BLOCK
type of ast::LinearBlock