Class VmExecutionSession
- Namespace
- Pl0.Vm
- Assembly
- Pl0.Vm.dll
internal sealed class VmExecutionSession
- Inheritance
-
VmExecutionSession
- Inherited Members
-
Constructors
VmExecutionSession(Instruction[], IPl0Io, VirtualMachineOptions, ResourceManager, CultureInfo, CancellationToken)
private VmExecutionSession(Instruction[] program, IPl0Io io, VirtualMachineOptions options, ResourceManager messages, CultureInfo culture, CancellationToken initializationToken)
Parameters
program Instruction[]
io IPl0Io
options VirtualMachineOptions
messages ResourceManager
culture CultureInfo
initializationToken CancellationToken
Fields
AllowedOprCodes
private static readonly int[] AllowedOprCodes
Field Value
- int[]
DivisionCode
private const int DivisionCode = 206
Field Value
- int
private const int InputEofCode = 98
Field Value
- int
private const int InputFormatCode = 97
Field Value
- int
RuntimeCode
private const int RuntimeCode = 99
Field Value
- int
b
Field Value
- int
culture
private readonly CultureInfo culture
Field Value
- CultureInfo
diagnostics
private readonly List<VmDiagnostic> diagnostics
Field Value
- List<VmDiagnostic>
executedInstructions
private int executedInstructions
Field Value
- int
initializationToken
private readonly CancellationToken initializationToken
Field Value
- CancellationToken
io
private readonly IPl0Io io
Field Value
- IPl0Io
messages
private readonly ResourceManager messages
Field Value
- ResourceManager
options
private readonly VirtualMachineOptions options
Field Value
- VirtualMachineOptions
p
Field Value
- int
program
private Instruction[] program
Field Value
- Instruction[]
stack
Field Value
- int[]
t
Field Value
- int
terminalResult
private VmStepResult? terminalResult
Field Value
- VmStepResult
Properties
IsRunning
internal bool IsRunning { get; }
Property Value
- bool
State
internal VmState State { get; private set; }
Property Value
- VmState
Methods
Binary(Func<int, int, int>)
private VmCompletionReason? Binary(Func<int, int, int> operation)
Parameters
operation Func<int, int, int>
Returns
- VmCompletionReason?
CaptureState()
private VmState CaptureState()
Returns
- VmState
Complete(VmCompletionReason, IEnumerable<VmDiagnostic>, VmState)
private VmStepResult Complete(VmCompletionReason reason, IEnumerable<VmDiagnostic> source, VmState state)
Parameters
reason VmCompletionReason
source IEnumerable<VmDiagnostic>
state VmState
Returns
- VmStepResult
Create(IReadOnlyList<Instruction>?, IPl0Io, VirtualMachineOptions, CancellationToken)
internal static VmExecutionSession Create(IReadOnlyList<Instruction>? source, IPl0Io io, VirtualMachineOptions options, CancellationToken cancellationToken)
Parameters
source IReadOnlyList<Instruction>
io IPl0Io
options VirtualMachineOptions
cancellationToken CancellationToken
Returns
- VmExecutionSession
Dispatch(Instruction)
private VmCompletionReason? Dispatch(Instruction instruction)
Parameters
instruction Instruction
Returns
- VmCompletionReason?
ExecuteNext(CancellationToken)
internal VmStepResult ExecuteNext(CancellationToken stepToken = default)
Parameters
stepToken CancellationToken
Returns
- VmStepResult
ExecuteOpr(int)
private VmCompletionReason? ExecuteOpr(int code)
Parameters
code int
Returns
- VmCompletionReason?
IsRecoverableHostException(Exception)
private static bool IsRecoverableHostException(Exception exception)
Parameters
exception Exception
Returns
- bool
IsValidStackIndex(long)
private bool IsValidStackIndex(long index)
Parameters
index long
Returns
- bool
LocalizedDiagnostic(int, string, string, string, params object[])
private VmDiagnostic LocalizedDiagnostic(int code, string resourceKey, string germanFallback, string englishFallback, params object[] arguments)
Parameters
code int
resourceKey string
germanFallback string
englishFallback string
arguments object[]
Returns
- VmDiagnostic
ResolveBase(int)
private int ResolveBase(int level)
Parameters
level int
Returns
- int
RuntimeFault(string, VmState)
private VmStepResult RuntimeFault(string detail, VmState state)
Parameters
detail string
state VmState
Returns
- VmStepResult
RuntimeFaultReason(string)
private VmCompletionReason RuntimeFaultReason(string detail)
Parameters
detail string
Returns
- VmCompletionReason
StackFault(string, string, string, params object[])
private VmCompletionReason StackFault(string resourceKey, string germanFallback, string englishFallback, params object[] arguments)
Parameters
resourceKey string
germanFallback string
englishFallback string
arguments object[]
Returns
- VmCompletionReason
ToExecutionResult()
internal VmExecutionResult ToExecutionResult()
Returns
- VmExecutionResult
TryPeek(int)
private bool TryPeek(int index)
Parameters
index int
Returns
- bool
TryPush()
Returns
- bool
TryWrite(int)
private bool TryWrite(int value)
Parameters
value int
Returns
- bool
ValidateProgram(IReadOnlyList<Instruction>?, VirtualMachineOptions, ResourceManager, CultureInfo)
private static IReadOnlyList<VmDiagnostic> ValidateProgram(IReadOnlyList<Instruction>? program, VirtualMachineOptions options, ResourceManager messages, CultureInfo culture)
Parameters
program IReadOnlyList<Instruction>
options VirtualMachineOptions
messages ResourceManager
culture CultureInfo
Returns
- IReadOnlyList<VmDiagnostic>