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 LonDifuse;
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 WrappedExpression;
145 class DerivimplicitCallback;
146 class SolutionExpression;
147 class UpdateDt;
148 
149 /**
150  * @defgroup ast_type AST Node Types
151  * @ingroup ast
152  * @brief Enum node types for all ast nodes
153  * @{
154  */
155 
156 /**
157  * \brief Enum type for every AST node type
158  *
159  * Every node in the ast has associated type represented by this
160  * enum class.
161  *
162  * \sa ast::Ast::get_node_type ast::Ast::get_node_type_name
163  */
164 enum class AstNodeType {
165  NODE, ///< type of ast::Node
166  STATEMENT, ///< type of ast::Statement
167  EXPRESSION, ///< type of ast::Expression
168  BLOCK, ///< type of ast::Block
169  IDENTIFIER, ///< type of ast::Identifier
170  NUMBER, ///< type of ast::Number
171  STRING, ///< type of ast::String
172  INTEGER, ///< type of ast::Integer
173  FLOAT, ///< type of ast::Float
174  DOUBLE, ///< type of ast::Double
175  BOOLEAN, ///< type of ast::Boolean
176  NAME, ///< type of ast::Name
177  PRIME_NAME, ///< type of ast::PrimeName
178  INDEXED_NAME, ///< type of ast::IndexedName
179  VAR_NAME, ///< type of ast::VarName
180  ARGUMENT, ///< type of ast::Argument
181  REACT_VAR_NAME, ///< type of ast::ReactVarName
182  READ_ION_VAR, ///< type of ast::ReadIonVar
183  WRITE_ION_VAR, ///< type of ast::WriteIonVar
184  NONSPECIFIC_CUR_VAR, ///< type of ast::NonspecificCurVar
185  ELECTRODE_CUR_VAR, ///< type of ast::ElectrodeCurVar
186  RANGE_VAR, ///< type of ast::RangeVar
187  GLOBAL_VAR, ///< type of ast::GlobalVar
188  POINTER_VAR, ///< type of ast::PointerVar
189  RANDOM_VAR, ///< type of ast::RandomVar
190  BBCORE_POINTER_VAR, ///< type of ast::BbcorePointerVar
191  EXTERN_VAR, ///< type of ast::ExternVar
192  PARAM_BLOCK, ///< type of ast::ParamBlock
193  INDEPENDENT_BLOCK, ///< type of ast::IndependentBlock
194  ASSIGNED_BLOCK, ///< type of ast::AssignedBlock
195  STATE_BLOCK, ///< type of ast::StateBlock
196  INITIAL_BLOCK, ///< type of ast::InitialBlock
197  CONSTRUCTOR_BLOCK, ///< type of ast::ConstructorBlock
198  DESTRUCTOR_BLOCK, ///< type of ast::DestructorBlock
199  STATEMENT_BLOCK, ///< type of ast::StatementBlock
200  DERIVATIVE_BLOCK, ///< type of ast::DerivativeBlock
201  LINEAR_BLOCK, ///< type of ast::LinearBlock
202  NON_LINEAR_BLOCK, ///< type of ast::NonLinearBlock
203  DISCRETE_BLOCK, ///< type of ast::DiscreteBlock
204  FUNCTION_TABLE_BLOCK, ///< type of ast::FunctionTableBlock
205  FUNCTION_BLOCK, ///< type of ast::FunctionBlock
206  PROCEDURE_BLOCK, ///< type of ast::ProcedureBlock
207  NET_RECEIVE_BLOCK, ///< type of ast::NetReceiveBlock
208  SOLVE_BLOCK, ///< type of ast::SolveBlock
209  BREAKPOINT_BLOCK, ///< type of ast::BreakpointBlock
210  BEFORE_BLOCK, ///< type of ast::BeforeBlock
211  AFTER_BLOCK, ///< type of ast::AfterBlock
212  BA_BLOCK, ///< type of ast::BABlock
213  FOR_NETCON, ///< type of ast::ForNetcon
214  KINETIC_BLOCK, ///< type of ast::KineticBlock
215  UNIT_BLOCK, ///< type of ast::UnitBlock
216  CONSTANT_BLOCK, ///< type of ast::ConstantBlock
217  NEURON_BLOCK, ///< type of ast::NeuronBlock
218  UNIT, ///< type of ast::Unit
219  DOUBLE_UNIT, ///< type of ast::DoubleUnit
220  LOCAL_VAR, ///< type of ast::LocalVar
221  LIMITS, ///< type of ast::Limits
222  NUMBER_RANGE, ///< type of ast::NumberRange
223  CONSTANT_VAR, ///< type of ast::ConstantVar
224  BINARY_OPERATOR, ///< type of ast::BinaryOperator
225  UNARY_OPERATOR, ///< type of ast::UnaryOperator
226  REACTION_OPERATOR, ///< type of ast::ReactionOperator
227  PAREN_EXPRESSION, ///< type of ast::ParenExpression
228  BINARY_EXPRESSION, ///< type of ast::BinaryExpression
229  DIFF_EQ_EXPRESSION, ///< type of ast::DiffEqExpression
230  UNARY_EXPRESSION, ///< type of ast::UnaryExpression
231  NON_LIN_EQUATION, ///< type of ast::NonLinEquation
232  LIN_EQUATION, ///< type of ast::LinEquation
233  FUNCTION_CALL, ///< type of ast::FunctionCall
234  WATCH, ///< type of ast::Watch
235  BA_BLOCK_TYPE, ///< type of ast::BABlockType
236  UNIT_DEF, ///< type of ast::UnitDef
237  FACTOR_DEF, ///< type of ast::FactorDef
238  VALENCE, ///< type of ast::Valence
239  UNIT_STATE, ///< type of ast::UnitState
240  LOCAL_LIST_STATEMENT, ///< type of ast::LocalListStatement
241  MODEL, ///< type of ast::Model
242  DEFINE, ///< type of ast::Define
243  INCLUDE, ///< type of ast::Include
244  PARAM_ASSIGN, ///< type of ast::ParamAssign
245  ASSIGNED_DEFINITION, ///< type of ast::AssignedDefinition
246  CONDUCTANCE_HINT, ///< type of ast::ConductanceHint
247  EXPRESSION_STATEMENT, ///< type of ast::ExpressionStatement
248  PROTECT_STATEMENT, ///< type of ast::ProtectStatement
249  FROM_STATEMENT, ///< type of ast::FromStatement
250  WHILE_STATEMENT, ///< type of ast::WhileStatement
251  IF_STATEMENT, ///< type of ast::IfStatement
252  ELSE_IF_STATEMENT, ///< type of ast::ElseIfStatement
253  ELSE_STATEMENT, ///< type of ast::ElseStatement
254  WATCH_STATEMENT, ///< type of ast::WatchStatement
255  MUTEX_LOCK, ///< type of ast::MutexLock
256  MUTEX_UNLOCK, ///< type of ast::MutexUnlock
257  CONSERVE, ///< type of ast::Conserve
258  COMPARTMENT, ///< type of ast::Compartment
259  LON_DIFUSE, ///< type of ast::LonDifuse
260  REACTION_STATEMENT, ///< type of ast::ReactionStatement
261  LAG_STATEMENT, ///< type of ast::LagStatement
262  CONSTANT_STATEMENT, ///< type of ast::ConstantStatement
263  TABLE_STATEMENT, ///< type of ast::TableStatement
264  SUFFIX, ///< type of ast::Suffix
265  USEION, ///< type of ast::Useion
266  NONSPECIFIC, ///< type of ast::Nonspecific
267  ELECTRODE_CURRENT, ///< type of ast::ElectrodeCurrent
268  RANGE, ///< type of ast::Range
269  GLOBAL, ///< type of ast::Global
270  RANDOM_VAR_LIST, ///< type of ast::RandomVarList
271  POINTER, ///< type of ast::Pointer
272  BBCORE_POINTER, ///< type of ast::BbcorePointer
273  EXTERNAL, ///< type of ast::External
274  THREAD_SAFE, ///< type of ast::ThreadSafe
275  VERBATIM, ///< type of ast::Verbatim
276  LINE_COMMENT, ///< type of ast::LineComment
277  BLOCK_COMMENT, ///< type of ast::BlockComment
278  ONTOLOGY_STATEMENT, ///< type of ast::OntologyStatement
279  PROGRAM, ///< type of ast::Program
280  NRN_STATE_BLOCK, ///< type of ast::NrnStateBlock
281  EIGEN_NEWTON_SOLVER_BLOCK, ///< type of ast::EigenNewtonSolverBlock
282  EIGEN_LINEAR_SOLVER_BLOCK, ///< type of ast::EigenLinearSolverBlock
283  WRAPPED_EXPRESSION, ///< type of ast::WrappedExpression
284  DERIVIMPLICIT_CALLBACK, ///< type of ast::DerivimplicitCallback
285  SOLUTION_EXPRESSION, ///< type of ast::SolutionExpression
286  UPDATE_DT, ///< type of ast::UpdateDt
287 };
288 
289 /** @} */ // end of ast_type
290 
291 /**
292  * @defgroup ast_vec_type AST Vector Type Aliases
293  * @ingroup ast
294  * @brief Vector type alias for AST node
295  * @{
296  */
297 using NodeVector = std::vector<std::shared_ptr<Node>>;
298 using StatementVector = std::vector<std::shared_ptr<Statement>>;
299 using ExpressionVector = std::vector<std::shared_ptr<Expression>>;
300 using BlockVector = std::vector<std::shared_ptr<Block>>;
301 using IdentifierVector = std::vector<std::shared_ptr<Identifier>>;
302 using NumberVector = std::vector<std::shared_ptr<Number>>;
303 using StringVector = std::vector<std::shared_ptr<String>>;
304 using IntegerVector = std::vector<std::shared_ptr<Integer>>;
305 using FloatVector = std::vector<std::shared_ptr<Float>>;
306 using DoubleVector = std::vector<std::shared_ptr<Double>>;
307 using BooleanVector = std::vector<std::shared_ptr<Boolean>>;
308 using NameVector = std::vector<std::shared_ptr<Name>>;
309 using PrimeNameVector = std::vector<std::shared_ptr<PrimeName>>;
310 using IndexedNameVector = std::vector<std::shared_ptr<IndexedName>>;
311 using VarNameVector = std::vector<std::shared_ptr<VarName>>;
312 using ArgumentVector = std::vector<std::shared_ptr<Argument>>;
313 using ReactVarNameVector = std::vector<std::shared_ptr<ReactVarName>>;
314 using ReadIonVarVector = std::vector<std::shared_ptr<ReadIonVar>>;
315 using WriteIonVarVector = std::vector<std::shared_ptr<WriteIonVar>>;
316 using NonspecificCurVarVector = std::vector<std::shared_ptr<NonspecificCurVar>>;
317 using ElectrodeCurVarVector = std::vector<std::shared_ptr<ElectrodeCurVar>>;
318 using RangeVarVector = std::vector<std::shared_ptr<RangeVar>>;
319 using GlobalVarVector = std::vector<std::shared_ptr<GlobalVar>>;
320 using PointerVarVector = std::vector<std::shared_ptr<PointerVar>>;
321 using RandomVarVector = std::vector<std::shared_ptr<RandomVar>>;
322 using BbcorePointerVarVector = std::vector<std::shared_ptr<BbcorePointerVar>>;
323 using ExternVarVector = std::vector<std::shared_ptr<ExternVar>>;
324 using ParamBlockVector = std::vector<std::shared_ptr<ParamBlock>>;
325 using IndependentBlockVector = std::vector<std::shared_ptr<IndependentBlock>>;
326 using AssignedBlockVector = std::vector<std::shared_ptr<AssignedBlock>>;
327 using StateBlockVector = std::vector<std::shared_ptr<StateBlock>>;
328 using InitialBlockVector = std::vector<std::shared_ptr<InitialBlock>>;
329 using ConstructorBlockVector = std::vector<std::shared_ptr<ConstructorBlock>>;
330 using DestructorBlockVector = std::vector<std::shared_ptr<DestructorBlock>>;
331 using StatementBlockVector = std::vector<std::shared_ptr<StatementBlock>>;
332 using DerivativeBlockVector = std::vector<std::shared_ptr<DerivativeBlock>>;
333 using LinearBlockVector = std::vector<std::shared_ptr<LinearBlock>>;
334 using NonLinearBlockVector = std::vector<std::shared_ptr<NonLinearBlock>>;
335 using DiscreteBlockVector = std::vector<std::shared_ptr<DiscreteBlock>>;
336 using FunctionTableBlockVector = std::vector<std::shared_ptr<FunctionTableBlock>>;
337 using FunctionBlockVector = std::vector<std::shared_ptr<FunctionBlock>>;
338 using ProcedureBlockVector = std::vector<std::shared_ptr<ProcedureBlock>>;
339 using NetReceiveBlockVector = std::vector<std::shared_ptr<NetReceiveBlock>>;
340 using SolveBlockVector = std::vector<std::shared_ptr<SolveBlock>>;
341 using BreakpointBlockVector = std::vector<std::shared_ptr<BreakpointBlock>>;
342 using BeforeBlockVector = std::vector<std::shared_ptr<BeforeBlock>>;
343 using AfterBlockVector = std::vector<std::shared_ptr<AfterBlock>>;
344 using BABlockVector = std::vector<std::shared_ptr<BABlock>>;
345 using ForNetconVector = std::vector<std::shared_ptr<ForNetcon>>;
346 using KineticBlockVector = std::vector<std::shared_ptr<KineticBlock>>;
347 using UnitBlockVector = std::vector<std::shared_ptr<UnitBlock>>;
348 using ConstantBlockVector = std::vector<std::shared_ptr<ConstantBlock>>;
349 using NeuronBlockVector = std::vector<std::shared_ptr<NeuronBlock>>;
350 using UnitVector = std::vector<std::shared_ptr<Unit>>;
351 using DoubleUnitVector = std::vector<std::shared_ptr<DoubleUnit>>;
352 using LocalVarVector = std::vector<std::shared_ptr<LocalVar>>;
353 using LimitsVector = std::vector<std::shared_ptr<Limits>>;
354 using NumberRangeVector = std::vector<std::shared_ptr<NumberRange>>;
355 using ConstantVarVector = std::vector<std::shared_ptr<ConstantVar>>;
356 using BinaryOperatorVector = std::vector<std::shared_ptr<BinaryOperator>>;
357 using UnaryOperatorVector = std::vector<std::shared_ptr<UnaryOperator>>;
358 using ReactionOperatorVector = std::vector<std::shared_ptr<ReactionOperator>>;
359 using ParenExpressionVector = std::vector<std::shared_ptr<ParenExpression>>;
360 using BinaryExpressionVector = std::vector<std::shared_ptr<BinaryExpression>>;
361 using DiffEqExpressionVector = std::vector<std::shared_ptr<DiffEqExpression>>;
362 using UnaryExpressionVector = std::vector<std::shared_ptr<UnaryExpression>>;
363 using NonLinEquationVector = std::vector<std::shared_ptr<NonLinEquation>>;
364 using LinEquationVector = std::vector<std::shared_ptr<LinEquation>>;
365 using FunctionCallVector = std::vector<std::shared_ptr<FunctionCall>>;
366 using WatchVector = std::vector<std::shared_ptr<Watch>>;
367 using BABlockTypeVector = std::vector<std::shared_ptr<BABlockType>>;
368 using UnitDefVector = std::vector<std::shared_ptr<UnitDef>>;
369 using FactorDefVector = std::vector<std::shared_ptr<FactorDef>>;
370 using ValenceVector = std::vector<std::shared_ptr<Valence>>;
371 using UnitStateVector = std::vector<std::shared_ptr<UnitState>>;
372 using LocalListStatementVector = std::vector<std::shared_ptr<LocalListStatement>>;
373 using ModelVector = std::vector<std::shared_ptr<Model>>;
374 using DefineVector = std::vector<std::shared_ptr<Define>>;
375 using IncludeVector = std::vector<std::shared_ptr<Include>>;
376 using ParamAssignVector = std::vector<std::shared_ptr<ParamAssign>>;
377 using AssignedDefinitionVector = std::vector<std::shared_ptr<AssignedDefinition>>;
378 using ConductanceHintVector = std::vector<std::shared_ptr<ConductanceHint>>;
379 using ExpressionStatementVector = std::vector<std::shared_ptr<ExpressionStatement>>;
380 using ProtectStatementVector = std::vector<std::shared_ptr<ProtectStatement>>;
381 using FromStatementVector = std::vector<std::shared_ptr<FromStatement>>;
382 using WhileStatementVector = std::vector<std::shared_ptr<WhileStatement>>;
383 using IfStatementVector = std::vector<std::shared_ptr<IfStatement>>;
384 using ElseIfStatementVector = std::vector<std::shared_ptr<ElseIfStatement>>;
385 using ElseStatementVector = std::vector<std::shared_ptr<ElseStatement>>;
386 using WatchStatementVector = std::vector<std::shared_ptr<WatchStatement>>;
387 using MutexLockVector = std::vector<std::shared_ptr<MutexLock>>;
388 using MutexUnlockVector = std::vector<std::shared_ptr<MutexUnlock>>;
389 using ConserveVector = std::vector<std::shared_ptr<Conserve>>;
390 using CompartmentVector = std::vector<std::shared_ptr<Compartment>>;
391 using LonDifuseVector = std::vector<std::shared_ptr<LonDifuse>>;
392 using ReactionStatementVector = std::vector<std::shared_ptr<ReactionStatement>>;
393 using LagStatementVector = std::vector<std::shared_ptr<LagStatement>>;
394 using ConstantStatementVector = std::vector<std::shared_ptr<ConstantStatement>>;
395 using TableStatementVector = std::vector<std::shared_ptr<TableStatement>>;
396 using SuffixVector = std::vector<std::shared_ptr<Suffix>>;
397 using UseionVector = std::vector<std::shared_ptr<Useion>>;
398 using NonspecificVector = std::vector<std::shared_ptr<Nonspecific>>;
399 using ElectrodeCurrentVector = std::vector<std::shared_ptr<ElectrodeCurrent>>;
400 using RangeVector = std::vector<std::shared_ptr<Range>>;
401 using GlobalVector = std::vector<std::shared_ptr<Global>>;
402 using RandomVarListVector = std::vector<std::shared_ptr<RandomVarList>>;
403 using PointerVector = std::vector<std::shared_ptr<Pointer>>;
404 using BbcorePointerVector = std::vector<std::shared_ptr<BbcorePointer>>;
405 using ExternalVector = std::vector<std::shared_ptr<External>>;
406 using ThreadSafeVector = std::vector<std::shared_ptr<ThreadSafe>>;
407 using VerbatimVector = std::vector<std::shared_ptr<Verbatim>>;
408 using LineCommentVector = std::vector<std::shared_ptr<LineComment>>;
409 using BlockCommentVector = std::vector<std::shared_ptr<BlockComment>>;
410 using OntologyStatementVector = std::vector<std::shared_ptr<OntologyStatement>>;
411 using ProgramVector = std::vector<std::shared_ptr<Program>>;
412 using NrnStateBlockVector = std::vector<std::shared_ptr<NrnStateBlock>>;
413 using EigenNewtonSolverBlockVector = std::vector<std::shared_ptr<EigenNewtonSolverBlock>>;
414 using EigenLinearSolverBlockVector = std::vector<std::shared_ptr<EigenLinearSolverBlock>>;
415 using WrappedExpressionVector = std::vector<std::shared_ptr<WrappedExpression>>;
416 using DerivimplicitCallbackVector = std::vector<std::shared_ptr<DerivimplicitCallback>>;
417 using SolutionExpressionVector = std::vector<std::shared_ptr<SolutionExpression>>;
418 using UpdateDtVector = std::vector<std::shared_ptr<UpdateDt>>;
419 
420 /** @} */ // end of ast_vec_type
421 
422 } // namespace ast
423 } // namespace nmodl
424 
nmodl::ast::ConstantBlockVector
std::vector< std::shared_ptr< ConstantBlock > > ConstantBlockVector
Definition: ast_decl.hpp:348
nmodl::ast::NonLinearBlockVector
std::vector< std::shared_ptr< NonLinearBlock > > NonLinearBlockVector
Definition: ast_decl.hpp:334
nmodl::ast::UnaryExpressionVector
std::vector< std::shared_ptr< UnaryExpression > > UnaryExpressionVector
Definition: ast_decl.hpp:362
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:394
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:389
nmodl::ast::SuffixVector
std::vector< std::shared_ptr< Suffix > > SuffixVector
Definition: ast_decl.hpp:396
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:390
nmodl::ast::NumberRangeVector
std::vector< std::shared_ptr< NumberRange > > NumberRangeVector
Definition: ast_decl.hpp:354
nmodl::ast::BinaryExpressionVector
std::vector< std::shared_ptr< BinaryExpression > > BinaryExpressionVector
Definition: ast_decl.hpp:360
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:361
nmodl::ast::ConstantVarVector
std::vector< std::shared_ptr< ConstantVar > > ConstantVarVector
Definition: ast_decl.hpp:355
nmodl::ast::NonLinEquationVector
std::vector< std::shared_ptr< NonLinEquation > > NonLinEquationVector
Definition: ast_decl.hpp:363
nmodl::ast::ExpressionStatementVector
std::vector< std::shared_ptr< ExpressionStatement > > ExpressionStatementVector
Definition: ast_decl.hpp:379
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:373
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:324
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:333
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:320
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:413
nmodl::ast::StatementVector
std::vector< std::shared_ptr< Statement > > StatementVector
Definition: ast_decl.hpp:298
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:376
nmodl::ast::RangeVarVector
std::vector< std::shared_ptr< RangeVar > > RangeVarVector
Definition: ast_decl.hpp:318
nmodl::ast::TableStatementVector
std::vector< std::shared_ptr< TableStatement > > TableStatementVector
Definition: ast_decl.hpp:395
nmodl::ast::BlockCommentVector
std::vector< std::shared_ptr< BlockComment > > BlockCommentVector
Definition: ast_decl.hpp:409
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:297
nmodl::ast::UnitBlockVector
std::vector< std::shared_ptr< UnitBlock > > UnitBlockVector
Definition: ast_decl.hpp:347
nmodl::ast::BlockVector
std::vector< std::shared_ptr< Block > > BlockVector
Definition: ast_decl.hpp:300
nmodl::ast::PointerVector
std::vector< std::shared_ptr< Pointer > > PointerVector
Definition: ast_decl.hpp:403
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:306
nmodl::ast::ExternalVector
std::vector< std::shared_ptr< External > > ExternalVector
Definition: ast_decl.hpp:405
nmodl::ast::BeforeBlockVector
std::vector< std::shared_ptr< BeforeBlock > > BeforeBlockVector
Definition: ast_decl.hpp:342
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:369
nmodl::ast::RandomVarVector
std::vector< std::shared_ptr< RandomVar > > RandomVarVector
Definition: ast_decl.hpp:321
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:307
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:329
nmodl::ast::NumberVector
std::vector< std::shared_ptr< Number > > NumberVector
Definition: ast_decl.hpp:302
nmodl::ast::DestructorBlockVector
std::vector< std::shared_ptr< DestructorBlock > > DestructorBlockVector
Definition: ast_decl.hpp:330
nmodl::ast::FunctionTableBlockVector
std::vector< std::shared_ptr< FunctionTableBlock > > FunctionTableBlockVector
Definition: ast_decl.hpp:336
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:313
nmodl::ast::NeuronBlockVector
std::vector< std::shared_ptr< NeuronBlock > > NeuronBlockVector
Definition: ast_decl.hpp:349
nmodl::ast::NonspecificVector
std::vector< std::shared_ptr< Nonspecific > > NonspecificVector
Definition: ast_decl.hpp:398
nmodl::ast::WrappedExpressionVector
std::vector< std::shared_ptr< WrappedExpression > > WrappedExpressionVector
Definition: ast_decl.hpp:415
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:407
nmodl::ast::LocalVarVector
std::vector< std::shared_ptr< LocalVar > > LocalVarVector
Definition: ast_decl.hpp:352
nmodl::ast::GlobalVarVector
std::vector< std::shared_ptr< GlobalVar > > GlobalVarVector
Definition: ast_decl.hpp:319
nmodl::ast::AstNodeType
AstNodeType
Enum type for every AST node type.
Definition: ast_decl.hpp:164
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:392
nmodl::ast::FunctionCallVector
std::vector< std::shared_ptr< FunctionCall > > FunctionCallVector
Definition: ast_decl.hpp:365
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:310
nmodl::ast::VarNameVector
std::vector< std::shared_ptr< VarName > > VarNameVector
Definition: ast_decl.hpp:311
nmodl::ast::DiscreteBlockVector
std::vector< std::shared_ptr< DiscreteBlock > > DiscreteBlockVector
Definition: ast_decl.hpp:335
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:314
nmodl::ast::ElseIfStatementVector
std::vector< std::shared_ptr< ElseIfStatement > > ElseIfStatementVector
Definition: ast_decl.hpp:384
nmodl::ast::AstNodeType::LON_DIFUSE
@ LON_DIFUSE
type of ast::LonDifuse
nmodl::ast::NameVector
std::vector< std::shared_ptr< Name > > NameVector
Definition: ast_decl.hpp:308
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:410
nmodl::ast::ArgumentVector
std::vector< std::shared_ptr< Argument > > ArgumentVector
Definition: ast_decl.hpp:312
nmodl::ast::UnitDefVector
std::vector< std::shared_ptr< UnitDef > > UnitDefVector
Definition: ast_decl.hpp:368
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:393
nmodl::ast::LocalListStatementVector
std::vector< std::shared_ptr< LocalListStatement > > LocalListStatementVector
Definition: ast_decl.hpp:372
nmodl::ast::ProgramVector
std::vector< std::shared_ptr< Program > > ProgramVector
Definition: ast_decl.hpp:411
nmodl::ast::AssignedBlockVector
std::vector< std::shared_ptr< AssignedBlock > > AssignedBlockVector
Definition: ast_decl.hpp:326
nmodl::ast::AfterBlockVector
std::vector< std::shared_ptr< AfterBlock > > AfterBlockVector
Definition: ast_decl.hpp:343
nmodl::ast::BbcorePointerVarVector
std::vector< std::shared_ptr< BbcorePointerVar > > BbcorePointerVarVector
Definition: ast_decl.hpp:322
nmodl::ast::IfStatementVector
std::vector< std::shared_ptr< IfStatement > > IfStatementVector
Definition: ast_decl.hpp:383
nmodl::ast::StringVector
std::vector< std::shared_ptr< String > > StringVector
Definition: ast_decl.hpp:303
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:371
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:399
nmodl::ast::ProcedureBlockVector
std::vector< std::shared_ptr< ProcedureBlock > > ProcedureBlockVector
Definition: ast_decl.hpp:338
nmodl::ast::BreakpointBlockVector
std::vector< std::shared_ptr< BreakpointBlock > > BreakpointBlockVector
Definition: ast_decl.hpp:341
nmodl::ast::AstNodeType::SUFFIX
@ SUFFIX
type of ast::Suffix
nmodl::ast::WhileStatementVector
std::vector< std::shared_ptr< WhileStatement > > WhileStatementVector
Definition: ast_decl.hpp:382
nmodl::ast::MutexUnlockVector
std::vector< std::shared_ptr< MutexUnlock > > MutexUnlockVector
Definition: ast_decl.hpp:388
nmodl::codegen::BlockType::Watch
@ Watch
watch block
nmodl::ast::ConductanceHintVector
std::vector< std::shared_ptr< ConductanceHint > > ConductanceHintVector
Definition: ast_decl.hpp:378
nmodl::ast::IntegerVector
std::vector< std::shared_ptr< Integer > > IntegerVector
Definition: ast_decl.hpp:304
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:412
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:402
nmodl::ast::SolveBlockVector
std::vector< std::shared_ptr< SolveBlock > > SolveBlockVector
Definition: ast_decl.hpp:340
nmodl::ast::StateBlockVector
std::vector< std::shared_ptr< StateBlock > > StateBlockVector
Definition: ast_decl.hpp:327
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:417
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:397
nmodl::ast::InitialBlockVector
std::vector< std::shared_ptr< InitialBlock > > InitialBlockVector
Definition: ast_decl.hpp:328
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:367
nmodl::ast::IncludeVector
std::vector< std::shared_ptr< Include > > IncludeVector
Definition: ast_decl.hpp:375
nmodl::ast::ElectrodeCurVarVector
std::vector< std::shared_ptr< ElectrodeCurVar > > ElectrodeCurVarVector
Definition: ast_decl.hpp:317
nmodl::ast::AstNodeType::EXTERN_VAR
@ EXTERN_VAR
type of ast::ExternVar
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:416
nmodl::ast::AstNodeType::WATCH
@ WATCH
type of ast::Watch
nmodl::ast::PrimeNameVector
std::vector< std::shared_ptr< PrimeName > > PrimeNameVector
Definition: ast_decl.hpp:309
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:364
nmodl::ast::UpdateDtVector
std::vector< std::shared_ptr< UpdateDt > > UpdateDtVector
Definition: ast_decl.hpp:418
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:386
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:332
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:331
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:299
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:357
nmodl::ast::AstNodeType::INTEGER
@ INTEGER
type of ast::Integer
nmodl::ast::AssignedDefinitionVector
std::vector< std::shared_ptr< AssignedDefinition > > AssignedDefinitionVector
Definition: ast_decl.hpp:377
nmodl::ast::NonspecificCurVarVector
std::vector< std::shared_ptr< NonspecificCurVar > > NonspecificCurVarVector
Definition: ast_decl.hpp:316
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:356
nmodl::ast::KineticBlockVector
std::vector< std::shared_ptr< KineticBlock > > KineticBlockVector
Definition: ast_decl.hpp:346
nmodl::ast::DoubleUnitVector
std::vector< std::shared_ptr< DoubleUnit > > DoubleUnitVector
Definition: ast_decl.hpp:351
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:359
nmodl::ast::ForNetconVector
std::vector< std::shared_ptr< ForNetcon > > ForNetconVector
Definition: ast_decl.hpp:345
nmodl::ast::MutexLockVector
std::vector< std::shared_ptr< MutexLock > > MutexLockVector
Definition: ast_decl.hpp:387
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:366
nmodl::ast::BABlockVector
std::vector< std::shared_ptr< BABlock > > BABlockVector
Definition: ast_decl.hpp:344
nmodl::ast::FromStatementVector
std::vector< std::shared_ptr< FromStatement > > FromStatementVector
Definition: ast_decl.hpp:381
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::LonDifuseVector
std::vector< std::shared_ptr< LonDifuse > > LonDifuseVector
Definition: ast_decl.hpp:391
nmodl::ast::NetReceiveBlockVector
std::vector< std::shared_ptr< NetReceiveBlock > > NetReceiveBlockVector
Definition: ast_decl.hpp:339
nmodl::ast::IdentifierVector
std::vector< std::shared_ptr< Identifier > > IdentifierVector
Definition: ast_decl.hpp:301
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:404
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:353
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:385
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:401
nmodl::ast::ProtectStatementVector
std::vector< std::shared_ptr< ProtectStatement > > ProtectStatementVector
Definition: ast_decl.hpp:380
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:337
nmodl::ast::WriteIonVarVector
std::vector< std::shared_ptr< WriteIonVar > > WriteIonVarVector
Definition: ast_decl.hpp:315
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:414
nmodl::ast::ThreadSafeVector
std::vector< std::shared_ptr< ThreadSafe > > ThreadSafeVector
Definition: ast_decl.hpp:406
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:400
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:408
nmodl::ast::IndependentBlockVector
std::vector< std::shared_ptr< IndependentBlock > > IndependentBlockVector
Definition: ast_decl.hpp:325
nmodl::ast::ExternVarVector
std::vector< std::shared_ptr< ExternVar > > ExternVarVector
Definition: ast_decl.hpp:323
nmodl::ast::FloatVector
std::vector< std::shared_ptr< Float > > FloatVector
Definition: ast_decl.hpp:305
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:370
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:374
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:350
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:358
nmodl::ast::AstNodeType::IF_STATEMENT
@ IF_STATEMENT
type of ast::IfStatement
nmodl::ast::AstNodeType::LINEAR_BLOCK
@ LINEAR_BLOCK
type of ast::LinearBlock