232 template <
typename T>
235 return static_cast<T
>(~static_cast<utype>(arg));
238 template <
typename T>
241 return static_cast<T
>(
static_cast<utype
>(lhs) |
static_cast<utype
>(
rhs));
244 template <
typename T>
247 return static_cast<T
>(
static_cast<utype
>(lhs) &
static_cast<utype
>(
rhs));
250 template <
typename T>
256 template <
typename T>
264 return static_cast<bool>(obj & property);
269 return static_cast<bool>(obj & state);
281 template <
typename T>
290 text +=
" " + element;
T & operator|=(T &lhs, T rhs)
T & operator&=(T &lhs, T rhs)
Access
variable usage within a mod file
@ read
variable is ready only
@ write
variable is written only
Status
state during various compiler passes
@ from_state
derived from state
@ thread_safe
variable marked as thread safe
@ localized
converted to local
@ globalized
converted to global
Scope
scope within a mod file
@ external
extern variable
T operator&(T lhs, T rhs)
std::string to_string(const T &obj)
std::ostream & operator<<(std::ostream &os, const NmodlType &obj)
DeclarationType
kind of symbol
bool has_property(const NmodlType &obj, NmodlType property)
check if any property is set
NmodlType
NMODL variable properties.
@ linear_block
Linear Block.
@ use_range_ptr_var
FUNCTION or PROCEDURE needs setdata check.
@ factor_def
factor in unit block
@ function_block
Function Type.
@ table_statement_var
variable is used in table statement
@ non_linear_block
NonLinear Block.
@ to_solve
need to solve : used in solve statement
@ state_var
state variable
@ extern_neuron_variable
neuron variable accessible in mod file
@ longitudinal_diffusion_block
Internal LONGITUDINAL_DIFFUSION block.
@ random_var
Randomvar Type.
@ nonspecific_cur_var
Non Specific Current.
@ bbcore_pointer_var
Bbcorepointer Type.
@ write_ion_var
Write Ion.
@ kinetic_block
Kinetic Block.
@ electrode_cur_var
Electrode Current.
@ range_var
Range Variable.
@ table_assigned_var
variable is used in table as assigned
@ derivative_block
Derivative Block.
@ pointer_var
Pointer Type.
@ extern_method
neuron solver methods and math functions
@ param_assign
Parameter Variable.
@ function_table_block
FunctionTable Block.
@ assigned_definition
Assigned Definition.
@ procedure_block
Procedure Type.
@ global_var
Global Variable.
@ discrete_block
Discrete Block.
@ define
Define variable / macro.
@ codegen_var
Codegen specific variable.
@ constant_var
constant variable
@ local_var
Local Variable.
T operator|(T lhs, T rhs)
bool has_status(const Status &obj, Status state)
check if any status is set
VariableType
usage of mod file as array or scalar
@ scalar
scalar / single value
std::vector< std::string > to_string_vector(const NmodlType &obj)
helper function to convert nmodl properties to string
encapsulates code generation backend implementations
Implement string manipulation functions.