Table of Contents

Class RuntimeBreakpoint

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

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.

public sealed record RuntimeBreakpoint : IEquatable<RuntimeBreakpoint>
Inheritance
RuntimeBreakpoint
Implements
Inherited Members

Remarks

The condition is a parsed tree and not source text: what a client typed is parsed where the parser is, and only an expression reaches the interpreter.

Constructors

RuntimeBreakpoint(int, ExpressionNode?)

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.

public RuntimeBreakpoint(int Line, ExpressionNode? Condition = null)

Parameters

Line int

The zero-based line of the source.

Condition ExpressionNode

The expression that decides whether the program waits, null when it always does. It is evaluated in the activation that reaches the line, before the instruction there runs, and let-coerced to Boolean the way the condition of an If is (MS-VBAL §5.5.1.2): the program waits when it is True, and goes on when it is False. A condition that cannot be evaluated - one that raises a run-time error - waits the program all the same, since a breakpoint that is silently passed over is one the person never learns is wrong.

Remarks

The condition is a parsed tree and not source text: what a client typed is parsed where the parser is, and only an expression reaches the interpreter.

Properties

Condition

The expression that decides whether the program waits, null when it always does. It is evaluated in the activation that reaches the line, before the instruction there runs, and let-coerced to Boolean the way the condition of an If is (MS-VBAL §5.5.1.2): the program waits when it is True, and goes on when it is False. A condition that cannot be evaluated - one that raises a run-time error - waits the program all the same, since a breakpoint that is silently passed over is one the person never learns is wrong.

public ExpressionNode? Condition { get; init; }

Property Value

ExpressionNode

Line

The zero-based line of the source.

public int Line { get; init; }

Property Value

int