Table of Contents

Namespace RDCore.SDK.Runtime.Abstract.Execution

Classes

BreakpointConditionFailure

A breakpoint's condition that could not be evaluated where the program reached the line (see Condition).

DeclaredTypes

The type an <as-type> clause names (MS-VBAL §5.2.3.1.4), as a session's symbols resolve it.

ExecutionResultInfo

An execution result value that encapsulates a RuntimeSemanticsEvaluationResult result object.

ExternalCallRequest

One call to something that is not the workspace's own code: a standard-library member, a referenced library's, a host application's object model, or a native export a Declare named.

ExternalObjectRequest

An object obtained by name rather than by its class: what CreateObject and GetObject ask for (MS-VBAL §6.1.2.8.1.3, §6.1.2.8.1.9), which a program binds to late - through what the object answers to by name, whatever a type library says of it.

FileStatementAccess

Which file statements a channel opened under a given mode and access may be used by (MS-VBAL §5.4.5.1's own table).

NullRuntimeOutput

The output of a session nobody is watching: everything written is discarded.

RuntimeBreakpoint

A breakpoint as the interpreter has it: a line of a module's source, and the condition a program that reaches it waits on, if it has one.

RuntimeOutputBuffer

Collects a session's output in memory, as lines.

RuntimeOutputRouter

An output channel whose destination can be changed while the session runs.

SymbolResolverNameExtensions

Resolves a name the way it was written, type-declaration character and all.

Structs

EventSubscription

One WithEvents variable of an object holding the source of the events it handles.

ExternalCallDecision

What an IExternalCallInterceptor decided about a call.

FileRecordRange

A span of an open file, in records or in bytes depending on the channel's mode — a Lock or Unlock statement's record-range (MS-VBAL §5.4.5.4).

Interfaces

IBreakpointTable

The lines of the source a program that is run under a debugger waits at before it runs them.

ICallStack

The call stack of an execution session: an ordered stack of ICallStackFrame activation records, top-most (current) frame first (RD-VBAL §2.3.1.2).

ICallStackFrame

Represents a single call stack frame: the activation record of one procedure call, owning the storage for every locally-scoped Symbol it declares — its parameters and its Dim/procedure-local declarations alike (RD-VBAL §2.3.1.2, the local stack frame heap tier). A Static local is the one exception: it lives in the module-level statics heap instead, so it keeps its value between calls.

IExecutionGate

Where a program waits when it is stopped, if it is to be resumed.

IExecutionPipeline<TResult>
IExecutionSession

Encapsulates an execution session.

IExternalCallInterceptor

Sees every call to something outside the workspace before it happens, and may refuse it.

IExternalCallProvider

Runs a call to one kind of external target.

IExternalDispatcher

Runs a call to something outside the workspace.

IExternalObjectOwner

The holder of external objects: the provider that created them and can let them go.

IFileChannel

One file number that an Open statement associated with an external data file (MS-VBAL §5.4.5), and the processing modes it was opened under.

IFileChannelInput

The reading side of an IFileChannel — the characters at and after its current file-pointer-position (MS-VBAL §5.4.5).

IFileChannelOutput

The writing side of an IFileChannel — an IRuntimeOutput that also has the maximum line length a Width statement sets (MS-VBAL §5.4.5.7).

IFileChannels

The file numbers a session has open (MS-VBAL §5.4.5) — the shim every file statement goes through.

IObjectInstance

Represents a single live object instance — a class module's activation record, owning the storage for every instance field it declares (RD-VBAL §2.3.1.2's instance heap tier). Two instances of the same class module never share a field's storage: each gets its own independent binding, exactly as two activations of the same procedure never share a local's storage on ICallStackFrame.

IObjectLifecycle

Raises the lifecycle events of a class instance (MS-VBAL §5.3.1.10) by dispatching the members of ClassLifecycleInterface to whatever the instance's class implements them with.

IProcedureInvoker

The execution engine's side of a procedure call: runs the source code of a procedure declared in the workspace.

IRuntimeEnvironmentProfile

An immutable description of the host environment an execution session runs in — the facts VBA semantics depend on that are neither in the source nor derivable from it.

IRuntimeOutput

Where a session's Print output goes — the Immediate window's analogue.

IRuntimeSession

The root of an execution session. A single session holds the statically-defined symbols and, depending on the host mode, serves as the run-time or break (debug) session — it is independent of the host's current mode.

ISessionClock

The state of the standard library's DateTime module that outlives a call to it (MS-VBAL §6.1.2.4.2): the calendar its functions work in, and the clock its properties read.

ISessionErrorState
ISessionExternalObjects

The objects of a session that something outside the workspace owns: an Excel Workbook, a Scripting.Dictionary.

ISessionHalt

Whether the program has been stopped, and why.

ISessionMemoryAllocator

Allocates and frees blocks within an execution session's memory space, and reports allocation and fragmentation statistics.

ISessionObjects

The object lifetime manager of an execution session: creates instances and tracks their roots and reference counts.

ISessionRandomNumberGenerator

The state of the standard library's random-number generator (MS-VBAL §6.1.2.10.1.6 Rnd and §6.1.2.10.2.1 Randomize), which outlives a call to either.

ISessionStorage

Holds the actual value bound at each address in a session's memory space, as either a typed IBindingHandle or, for the handful of MS-VBAL constructs that operate on raw storage (LSet between two UDT variables; MS-VBAL only ever allows this and the already-value-level fixed-length String form), a plain byte buffer. An address is one kind or the other, never both.

ISessionSymbols

The symbol table of an execution session: defines and resolves symbols by scope.

ISessionTurn

Whose turn it is to run code in a session: the program that is running, or an event that something outside the workspace raised.

IStackFrame

Defines the representation of a single generic stack frame.

IStackFrame<TInputIndex>

Defines the representation of a single generic, indexed stack frame.

IStackManager<TFrame>
ISymbolProvider

Produces the Symbols a session or semantic context is composed from. Each provider is constructed with its own source and yields the symbols that source defines.

ISymbolResolver

A service that resolves an identifier name to a Symbol given a scope Uri and that can look up the value currently bound to a symbol (or address) in the current context.

IVariableDefaults

What the storage of a declared variable starts as.

Enums

ErrorBreakMode

Which run-time errors a program under a debugger waits at.

ExecutionSessionState

Encodes the state of an execution session.

ExternalObjectSource

Where an object obtained by name comes from (ExternalObjectRequest).

RuntimeHaltKind

Why the program stopped running before it came to the end of its entry point.

StepKind

How far a program that is resumed goes before it stops again. The program only ever stops between two instructions, never inside one: a statement is not half-done at a step, and a call that is stepped over is one that is made.

SuspensionDecision

What becomes of a program that is waiting at a Stop.

VBErlLineNumbering

What Erl counts as the line a run-time error was raised at.