Table of Contents

Class BoundIndex

Namespace
RDCore.SDK.Semantics.Binding
Assembly
RDCore.SDK.dll

An index expression whose callee is a value (MS-VBAL §5.6.13) - a variable, a variable of a module named through it, what a call returns (F()(1)): an element of the array it is - a(i) - or a call of the default member of the object it is - c(1), which is c.Item(1).

public sealed record BoundIndex : BoundNode, IEquatable<BoundNode>, IEquatable<BoundIndex>
Inheritance
BoundIndex
Implements
Inherited Members

Remarks

The binding is the callee's: the value is evaluated through its bound node. What the arguments do to the value - select an element, call a default member - is decided by the value, each time. Each argument is an expression of its own, bound in its turn: the subscripts of an element are evaluated through their nodes.

Constructors

BoundIndex(IndexExpressionNode, BoundNode, ImmutableArray<BoundNode>)

An index expression whose callee is a value (MS-VBAL §5.6.13) - a variable, a variable of a module named through it, what a call returns (F()(1)): an element of the array it is - a(i) - or a call of the default member of the object it is - c(1), which is c.Item(1).

public BoundIndex(IndexExpressionNode Index, BoundNode Callee, ImmutableArray<BoundNode> Arguments)

Parameters

Index IndexExpressionNode

The index expression.

Callee BoundNode

The callee, bound.

Arguments ImmutableArray<BoundNode>

The arguments as they are written, in order, each bound; a named or an omitted argument, which no element is selected by, is a BoundLate of itself.

Remarks

The binding is the callee's: the value is evaluated through its bound node. What the arguments do to the value - select an element, call a default member - is decided by the value, each time. Each argument is an expression of its own, bound in its turn: the subscripts of an element are evaluated through their nodes.

Properties

Arguments

The arguments as they are written, in order, each bound; a named or an omitted argument, which no element is selected by, is a BoundLate of itself.

public ImmutableArray<BoundNode> Arguments { get; init; }

Property Value

ImmutableArray<BoundNode>

Callee

The callee, bound.

public BoundNode Callee { get; init; }

Property Value

BoundNode

Index

The index expression.

public IndexExpressionNode Index { get; init; }

Property Value

IndexExpressionNode