Struct ArrayDimensionBound
- Namespace
- RDCore.SDK.Model.AST.Declarations
- Assembly
- RDCore.SDK.dll
The bounds of a single array dimension within an ArrayBoundsNode — one MS-VBAL
dim-spec ([<lower-bound> To] <upper-bound>).
public readonly record struct ArrayDimensionBound : IEquatable<ArrayDimensionBound>
- Implements
- Inherited Members
Constructors
ArrayDimensionBound(string?, string, ExpressionNode?, ExpressionNode?)
The bounds of a single array dimension within an ArrayBoundsNode — one MS-VBAL
dim-spec ([<lower-bound> To] <upper-bound>).
public ArrayDimensionBound(string? LowerBound, string UpperBound, ExpressionNode? LowerExpression = null, ExpressionNode? UpperExpression = null)
Parameters
LowerBoundstringThe lower-bound expression text, or
nullwhen theToclause is omitted (the effective lower bound then followsOption Base).UpperBoundstringThe upper-bound expression text.
LowerExpressionExpressionNodeThe lower-bound expression, parsed, or
nullwhen there is no lower bound.UpperExpressionExpressionNodeThe upper-bound expression, parsed, or
nullwhen it could not be (a syntax error left it incomplete). A bound is a constant expression (MS-VBAL §5.2.3.1.3) the runtime reduces when the array's storage is allocated, which is what these are for: the text above is what the source said, and these are what it means.
Properties
LowerBound
The lower-bound expression text, or null when the To clause is omitted (the
effective lower bound then follows Option Base).
public string? LowerBound { get; init; }
Property Value
LowerExpression
The lower-bound expression, parsed, or null when there is no lower bound.
public ExpressionNode? LowerExpression { get; init; }
Property Value
UpperBound
The upper-bound expression text.
public string UpperBound { get; init; }
Property Value
UpperExpression
The upper-bound expression, parsed, or null when it could not be (a syntax error left it incomplete). A bound is a
constant expression (MS-VBAL §5.2.3.1.3) the runtime reduces when the array's storage is allocated, which is
what these are for: the text above is what the source said, and these are what it means.
public ExpressionNode? UpperExpression { get; init; }