ArkScript
A small, fast, functional and scripting language for video games
Ark::internal::ExecutionContext Struct Reference

#include <ExecutionContext.hpp>

Collaboration diagram for Ark::internal::ExecutionContext:
[legend]

Public Member Functions

 ExecutionContext () noexcept
 

Public Attributes

std::size_t ip {}
 Instruction pointer.
 
std::size_t pp {}
 Page pointer.
 
uint16_t sp {}
 Stack pointer.
 
uint16_t fc {}
 Frame count.
 
uint16_t last_symbol
 
const bool primary
 Tells if the current ExecutionContext is the primary one or not.
 
std::optional< Scopesaved_scope {}
 Scope created by CAPTURE <x> instructions, used by the MAKE_CLOSURE instruction.
 
std::vector< Scopelocals {}
 
std::vector< std::shared_ptr< Scope > > stacked_closure_scopes {}
 Stack the closure scopes to keep the closure alive as long as we are calling them.
 
std::array< Value, VMStackSizestack {}
 

Static Public Attributes

static unsigned Count = 0
 

Detailed Description

Definition at line 30 of file ExecutionContext.hpp.

Constructor & Destructor Documentation

◆ ExecutionContext()

Ark::internal::ExecutionContext::ExecutionContext ( )
inlinenoexcept

Definition at line 46 of file ExecutionContext.hpp.

References Count.

Member Data Documentation

◆ Count

unsigned Ark::internal::ExecutionContext::Count = 0
inlinestatic

Definition at line 32 of file ExecutionContext.hpp.

Referenced by ExecutionContext().

◆ fc

uint16_t Ark::internal::ExecutionContext::fc {}

Frame count.

Definition at line 37 of file ExecutionContext.hpp.

Referenced by Ark::VM::init(), and Ark::VM::safeRun().

◆ ip

std::size_t Ark::internal::ExecutionContext::ip {}

Instruction pointer.

Definition at line 34 of file ExecutionContext.hpp.

Referenced by Ark::VM::safeRun().

◆ last_symbol

uint16_t Ark::internal::ExecutionContext::last_symbol

Definition at line 38 of file ExecutionContext.hpp.

Referenced by Ark::VM::safeRun().

◆ locals

std::vector<Scope> Ark::internal::ExecutionContext::locals {}

◆ pp

std::size_t Ark::internal::ExecutionContext::pp {}

Page pointer.

Definition at line 35 of file ExecutionContext.hpp.

Referenced by Ark::VM::safeRun().

◆ primary

const bool Ark::internal::ExecutionContext::primary

Tells if the current ExecutionContext is the primary one or not.

Definition at line 39 of file ExecutionContext.hpp.

◆ saved_scope

std::optional<Scope> Ark::internal::ExecutionContext::saved_scope {}

Scope created by CAPTURE <x> instructions, used by the MAKE_CLOSURE instruction.

Definition at line 41 of file ExecutionContext.hpp.

Referenced by Ark::VM::init(), and Ark::VM::safeRun().

◆ sp

uint16_t Ark::internal::ExecutionContext::sp {}

Stack pointer.

Definition at line 36 of file ExecutionContext.hpp.

Referenced by Ark::VM::init(), and Ark::VM::safeRun().

◆ stack

std::array<Value, VMStackSize> Ark::internal::ExecutionContext::stack {}

Definition at line 44 of file ExecutionContext.hpp.

Referenced by Ark::VM::safeRun().

◆ stacked_closure_scopes

std::vector<std::shared_ptr<Scope> > Ark::internal::ExecutionContext::stacked_closure_scopes {}

Stack the closure scopes to keep the closure alive as long as we are calling them.

Definition at line 43 of file ExecutionContext.hpp.

Referenced by Ark::VM::createAndGetContext(), and Ark::VM::init().


The documentation for this struct was generated from the following file: