Table of Contents

Interface IProcedureInvoker

Namespace
RDCore.SDK.Runtime.Abstract.Execution
Assembly
RDCore.SDK.dll

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

public interface IProcedureInvoker

Remarks

A CallableBindingHandle knows which procedure it stands for, not how to run it: running it takes an activation of the procedure, a ICallStackFrame pushed on the session's call stack, and the executor that steps through the procedure's statements. An invoker is what a runtime provides for that, once, for the procedures of a session.

Methods

Invoke(VBTypeMemberSymbol, ISymbolResolver, IRuntimeValue[])

Runs procedure with the specified arguments, and returns the outcome of the call.

RuntimeSemanticsEvaluationResult Invoke(VBTypeMemberSymbol procedure, ISymbolResolver resolver, IRuntimeValue[] arguments)

Parameters

procedure VBTypeMemberSymbol

The Sub, Function or property accessor to run.

resolver ISymbolResolver

A read-only interface over the current execution context.

arguments IRuntimeValue[]

The arguments of the call, in the order of the parameter list of the procedure. For a member of a class, the first argument is the object the member is invoked on, which is the procedure's Me (RD-VBAL: Me is the implicit parameter at index 0 of the parameter list of every member). An argument passed ByRef is a VBRuntimeReference.

Returns

RuntimeSemanticsEvaluationResult

A successful result with the value the procedure returns - the Void value, for a Sub - or the run-time error that was raised in the procedure, and that nothing handled. Never throws for an error of the running program.