Table of Contents

Class SimpleNameExpressionNode

Namespace
RDCore.SDK.Model.AST.Expressions
Assembly
RDCore.SDK.dll

MS-VBAL 5.6.10 Simple Name Expression
A ExpressionNode that statically resolves an expression consisting of a single identifier without any qualifiers or arguments.

public sealed record SimpleNameExpressionNode : ExpressionNode, IEquatable<SyntaxNode>, IExecutableNode, IEquatable<ExpressionNode>, IEquatable<SimpleNameExpressionNode>
Inheritance
SimpleNameExpressionNode
Implements
Inherited Members
Extension Methods

Remarks

It is also the name of a member, after the dot of a member access.

👉 The type-declaration character a name is written with is part of what was written, and of what it means: Environ$ is not Environ. They are two members of the library with two signatures (a String and a Variant), and a name that lost its $ on the way to being resolved would be given the type of the one it is not. See SymbolResolverNameExtensions.

Constructors

SimpleNameExpressionNode(SyntaxNodeId, SourceLocation, string, string?)

MS-VBAL 5.6.10 Simple Name Expression
A ExpressionNode that statically resolves an expression consisting of a single identifier without any qualifiers or arguments.

public SimpleNameExpressionNode(SyntaxNodeId Identity, SourceLocation Location, string IdentifierName, string? TypeHint = null)

Parameters

Identity SyntaxNodeId

A unique identifier for this specific syntax node.

Location SourceLocation

The document location (Uri+Range) of the bound expression.

IdentifierName string

The parsed identifier name, without its type-declaration character.

TypeHint string

The type-declaration character the name is written with (%, &, ^, !, #, @ or $), or null when it is written with none.

Remarks

It is also the name of a member, after the dot of a member access.

👉 The type-declaration character a name is written with is part of what was written, and of what it means: Environ$ is not Environ. They are two members of the library with two signatures (a String and a Variant), and a name that lost its $ on the way to being resolved would be given the type of the one it is not. See SymbolResolverNameExtensions.

Properties

IdentifierName

The parsed identifier name, without its type-declaration character.

public string IdentifierName { get; init; }

Property Value

string

TypeHint

The type-declaration character the name is written with (%, &, ^, !, #, @ or $), or null when it is written with none.

public string? TypeHint { get; init; }

Property Value

string

WrittenName

The name as it was written: the identifier name followed by its type-declaration character, if it has one.

public string WrittenName { get; }

Property Value

string