8#ifndef HPP_ALIB_EXPRESSIONS_SCOPE
9#define HPP_ALIB_EXPRESSIONS_SCOPE
15namespace alib {
namespace expressions {
19namespace detail {
struct VirtualMachine; }
121 virtual void reset();
165 #if ALIB_DEBUG_CRITICAL_SECTIONS
std::vector< T, SCAMono< T > > StdVectorMono
Type alias in namespace alib.
lox::Scope Scope
Type alias in namespace alib.
strings::TString< nchar > NString
Type alias in namespace alib.
monomem::TMonoAllocator< lang::HeapAllocator > MonoAllocator
expressions::Compiler Compiler
Type alias in namespace alib.
virtual ~ScopeResource()
The virtual destructor needed for virtual types.
Members used by the virtual machine. This is constructed only with evaluation-time scopes.
VMMembers(MonoAllocator &allocator)
StdVectorMono< ExpressionVal * > NestedExpressions
Stack of nested expressions called during evaluation. Used to detect cyclic expressions.
void operator=(const Scope &)=delete
Deleted copy assignment.
HashMap< MonoAllocator, NString, ScopeResource * > * NamedResources
MonoAllocator * evalScopeAllocator
lang::DbgCriticalSections dcs
StdVectorMono< Box > * Stack
Scope(const Scope &)=delete
Deleted copy constructor.
VMMembers * vmMembers
The members used for the virtual machine. Available only with evaluation-time instances.
virtual ALIB_API void reset()
virtual ALIB_API ~Scope()
Virtual destructor.
virtual ALIB_API void freeResources()
This method is called in the destructor, as well as in method reset.
MonoAllocator & Allocator