Table of Contents

Namespace RDCore.SDK.Runtime.Abstract.Execution

Classes

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.

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.

RuntimeOutputBuffer

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

RuntimeOutputRouter

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

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

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.

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.

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.

ISessionErrorState
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.

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.

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

ExecutionSessionState

Encodes the state of an execution session.

VBErlLineNumbering

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