Class SyntaxNode
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
IdentitySyntaxNodeIdA unique identifier for this specific syntax node.
SourceLocationSourceLocationThe document location (
Uri+Range) of this node.ChildrenImmutableArray<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
Identity
A unique identifier encoding the node's position in the syntax tree.
public SyntaxNodeId Identity { get; init; }
Property Value
SourceLocation
The location of the node in the source document.
public SourceLocation SourceLocation { get; init; }