Table of Contents

Class SyntaxNode

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

A node in the abstract syntax tree (AST).

[JsonPolymorphic]
[JsonDerivedType(typeof(AnnotationTriviaNode), "AnnotationTrivia")]
[JsonDerivedType(typeof(CommentTriviaNode), "CommentTrivia")]
[JsonDerivedType(typeof(AttributeDirectiveNode), "AttributeDirective")]
[JsonDerivedType(typeof(CallStatementNode), "CallStatement")]
[JsonDerivedType(typeof(CaseExpressionStatementNode), "CaseExpression")]
[JsonDerivedType(typeof(ConstantDeclarationNode), "Constant")]
[JsonDerivedType(typeof(DoLoopStatementNode), "DoLoopStatement")]
[JsonDerivedType(typeof(DoLoopUntilStatementNode), "DoLoopUntilStatement")]
[JsonDerivedType(typeof(DoLoopWhileStatementNode), "DoLoopWhileStatement")]
[JsonDerivedType(typeof(DoUntilLoopStatementNode), "DoUntilLoopStatement")]
[JsonDerivedType(typeof(DoWhileLoopStatementNode), "DoWhileLoopStatement")]
[JsonDerivedType(typeof(ElseIfBlockStatementNode), "ElseIfBlockStatement")]
[JsonDerivedType(typeof(ErrorStatementNode), "ErrorStatement")]
[JsonDerivedType(typeof(ExternalMemberDeclarationNode), "DeclareStatement")]
[JsonDerivedType(typeof(ForEachStatementNode), "ForEachStatement")]
[JsonDerivedType(typeof(ForStatementNode), "ForNextStatement")]
[JsonDerivedType(typeof(GoSubStatementNode), "GoSubStatement")]
[JsonDerivedType(typeof(GoToStatementNode), "GoToStatement")]
[JsonDerivedType(typeof(IfBlockStatementNode), "IfBlockStatement")]
[JsonDerivedType(typeof(ImplementsDirectiveNode), "ImplementsDirective")]
[JsonDerivedType(typeof(InlineIfStatementNode), "InlineIfStatement")]
[JsonDerivedType(typeof(LineLabelNode), "LineLabel")]
[JsonDerivedType(typeof(LineNumberNode), "LineNumber")]
[JsonDerivedType(typeof(MemberDeclarationNode), "Member")]
[JsonDerivedType(typeof(ModuleNode), "Module")]
[JsonDerivedType(typeof(ModuleOptionDirectiveNode), "OptionDirective")]
[JsonDerivedType(typeof(OnErrorGoToStatementNode), "OnErrorGoToStatement")]
[JsonDerivedType(typeof(OnErrorResumeStatementNode), "OnErrorResumeStatement")]
[JsonDerivedType(typeof(ParameterDeclarationNode), "Parameter")]
[JsonDerivedType(typeof(ResumeNextStatementNode), "ResumeNextStatement")]
[JsonDerivedType(typeof(ResumeStatementNode), "ResumeStatement")]
[JsonDerivedType(typeof(ReturnStatementNode), "ReturnStatement")]
[JsonDerivedType(typeof(SelectCaseStatementNode), "SelectCaseStatement")]
[JsonDerivedType(typeof(TypeDefDirectiveNode), "TypeDefDirective")]
[JsonDerivedType(typeof(VariableDeclarationNode), "Variable")]
[JsonDerivedType(typeof(AsTypeExpressionNode), "AsTypeExpression")]
[JsonDerivedType(typeof(VBBinaryOperatorExpressionNode), "BinaryOpExpression")]
[JsonDerivedType(typeof(VBDeclarationStatementNode), "DeclarationStatement")]
[JsonDerivedType(typeof(LiteralExpressionNode), "LiteralExpression")]
[JsonDerivedType(typeof(MemberAccessOperatorExpressionNode), "MemberAccessExpression")]
[JsonDerivedType(typeof(SimpleNameExpressionNode), "SimpleNameExpression")]
[JsonDerivedType(typeof(VBUnaryOperatorExpressionNode), "UnaryOpExpression")]
[JsonDerivedType(typeof(WhileWendStatementNode), "WhileWendStatement")]
[JsonDerivedType(typeof(ConditionalExpressionNode), "ConditionalExpression")]
[JsonDerivedType(typeof(PrecompilerConstantDeclarationNode), "PrecompilerConstant")]
[JsonDerivedType(typeof(PrecompilerInlineIfStatementNode), "PrecompilerConditional")]
[JsonDerivedType(typeof(PrecompilerIfBlockStatementNode), "PrecompilerConditionalBlock")]
[JsonDerivedType(typeof(PrecompilerElseIfBlockStatementNode), "PrecompilerConditionalElseBlock")]
public abstract record SyntaxNode : IEquatable<SyntaxNode>
Inheritance
SyntaxNode
Implements
Derived
Inherited Members

Remarks

This is the base abstract node type every AST node is derived from.

Constructors

SyntaxNode(SyntaxNodeId, SourceLocation, ImmutableArray<SyntaxNode>)

A node in the abstract syntax tree (AST).

protected SyntaxNode(SyntaxNodeId Identity, SourceLocation SourceLocation, ImmutableArray<SyntaxNode> Children)

Parameters

Identity SyntaxNodeId

A unique identifier for this specific syntax node.

SourceLocation SourceLocation

The document location (Uri+Range) of this node.

Children ImmutableArray<SyntaxNode>

Remarks

This is the base abstract node type every AST node is derived from.

Properties

Children

The child syntax nodes.

public ImmutableArray<SyntaxNode> Children { get; init; }

Property Value

ImmutableArray<SyntaxNode>

Identity

A unique identifier encoding the node's position in the syntax tree.

public SyntaxNodeId Identity { get; init; }

Property Value

SyntaxNodeId

SourceLocation

The location of the node in the source document.

public SourceLocation SourceLocation { get; init; }

Property Value

SourceLocation