SyntaxNodeOrToken Struct
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
A wrapper for either a syntax node (SyntaxNode) or a syntax token (SyntaxToken).
public value class SyntaxNodeOrToken : IEquatable<Microsoft::CodeAnalysis::SyntaxNodeOrToken>
[System.Diagnostics.DebuggerDisplay("{GetDebuggerDisplay(), nq}")]
public readonly struct SyntaxNodeOrToken : IEquatable<Microsoft.CodeAnalysis.SyntaxNodeOrToken>
[<System.Diagnostics.DebuggerDisplay("{GetDebuggerDisplay(), nq}")>]
type SyntaxNodeOrToken = struct
Public Structure SyntaxNodeOrToken
Implements IEquatable(Of SyntaxNodeOrToken)
- Inheritance
-
SyntaxNodeOrToken
- Attributes
- Implements
Remarks
Note that we do not store the token directly, we just store enough information to reconstruct it. This allows us to reuse nodeOrToken as a token's parent.
Properties
ContainsAnnotations |
Determines whether this node or token (or any sub node, token or trivia) as annotations. |
ContainsDiagnostics |
Determines whether the underlying node or token or any of its descendant nodes, tokens or trivia have any diagnostics on them. |
ContainsDirectives |
Determines whether the underlying node or token has any descendant preprocessor directives. |
FullSpan |
The absolute span of the underlying node or token in characters, including its leading and trailing trivia. |
HasLeadingTrivia |
Determines whether the underlying node or token has any leading trivia. |
HasTrailingTrivia |
Determines whether the underlying node or token has any trailing trivia. |
IsMissing |
Determines whether the underlying node or token represents a language construct that was actually parsed from source code. Missing nodes and tokens are typically generated by the parser in error scenarios to represent constructs that should have been present in the source code for the source code to compile successfully but were actually missing. |
IsNode |
Determines whether this SyntaxNodeOrToken is wrapping a node. |
IsToken |
Determines whether this SyntaxNodeOrToken is wrapping a token. |
Language |
The language name that this node or token is syntax of. |
Parent |
The node that contains the underlying node or token in its Children collection. |
RawKind |
An integer representing the language specific kind of the underlying node or token. |
Span |
The absolute span of the underlying node or token in characters, not including its leading and trailing trivia. |
SpanStart | |
SyntaxTree |
SyntaxTree which contains current SyntaxNodeOrToken. |
Methods
AsNode() |
Returns the underlying node if this SyntaxNodeOrToken is wrapping a node. |
AsToken() |
Returns the underlying token if this SyntaxNodeOrToken is wrapping a token. |
ChildNodesAndTokens() |
The list of child nodes and tokens of the underlying node or token. |
Equals(Object) |
Determines whether the supplied SyntaxNodeOrToken is equal to this SyntaxNodeOrToken. |
Equals(SyntaxNodeOrToken) |
Determines whether the supplied SyntaxNodeOrToken is equal to this SyntaxNodeOrToken. |
GetAnnotations(IEnumerable<String>) |
Gets all annotations of the specified annotation kind. |
GetAnnotations(String) |
Gets all annotations of the specified annotation kind. |
GetDiagnostics() |
Gets a list of all the diagnostics in either the sub tree that has this node as its root or associated with this token and its related trivia. This method does not filter diagnostics based on #pragmas and compiler options like nowarn, warnaserror etc. |
GetFirstChildIndexSpanningPosition(SyntaxNode, Int32) | |
GetHashCode() |
Serves as hash function for SyntaxNodeOrToken. |
GetLeadingTrivia() |
The list of trivia that appear before the underlying node or token in the source code and are attached to a token that is a descendant of the underlying node or token. |
GetLocation() |
Get the location of this node or token. |
GetNextSibling() | |
GetPreviousSibling() | |
GetTrailingTrivia() |
The list of trivia that appear after the underlying node or token in the source code and are attached to a token that is a descendant of the underlying node or token. |
HasAnnotation(SyntaxAnnotation) |
Determines if this node or token has the specific annotation. |
HasAnnotations(IEnumerable<String>) |
Determines whether this node or token has annotations of the specified kind. |
HasAnnotations(String) |
Determines whether this node or token has annotations of the specified kind. |
IsEquivalentTo(SyntaxNodeOrToken) |
Determines if the two nodes or tokens are equivalent. |
IsIncrementallyIdenticalTo(SyntaxNodeOrToken) |
See IsIncrementallyIdenticalTo(SyntaxNode) and IsIncrementallyIdenticalTo(SyntaxToken). |
ToFullString() |
Returns the full string representation of this node or token including its leading and trailing trivia. |
ToString() |
Returns the string representation of this node or token, not including its leading and trailing trivia. |
WithAdditionalAnnotations(IEnumerable<SyntaxAnnotation>) |
Creates a new node or token identical to this one with the specified annotations. |
WithAdditionalAnnotations(SyntaxAnnotation[]) |
Creates a new node or token identical to this one with the specified annotations. |
WithLeadingTrivia(IEnumerable<SyntaxTrivia>) | |
WithLeadingTrivia(SyntaxTrivia[]) | |
WithoutAnnotations(IEnumerable<SyntaxAnnotation>) |
Creates a new node or token identical to this one without the specified annotations. |
WithoutAnnotations(String) |
Creates a new node or token identical to this one without annotations of the specified kind. |
WithoutAnnotations(SyntaxAnnotation[]) |
Creates a new node or token identical to this one without the specified annotations. |
WithTrailingTrivia(IEnumerable<SyntaxTrivia>) | |
WithTrailingTrivia(SyntaxTrivia[]) | |
WriteTo(TextWriter) |
Writes the full text of this node or token to the specified TextWriter. |
Operators
Equality(SyntaxNodeOrToken, SyntaxNodeOrToken) |
Determines whether two SyntaxNodeOrTokens are equal. |
Explicit(SyntaxNodeOrToken to SyntaxNode) |
Returns the underlying node wrapped by the supplied SyntaxNodeOrToken. |
Explicit(SyntaxNodeOrToken to SyntaxToken) |
Returns the underlying token wrapped by the supplied SyntaxNodeOrToken. |
Implicit(SyntaxNode to SyntaxNodeOrToken) |
Returns a new SyntaxNodeOrToken that wraps the supplied node. |
Implicit(SyntaxToken to SyntaxNodeOrToken) |
Returns a new SyntaxNodeOrToken that wraps the supplied token. |
Inequality(SyntaxNodeOrToken, SyntaxNodeOrToken) |
Determines whether two SyntaxNodeOrTokens are unequal. |
Extension Methods
Kind(SyntaxNodeOrToken) |
Returns SyntaxKind for SyntaxNode from RawKind property. |
IsKind(SyntaxNodeOrToken, SyntaxKind) |
Determines if SyntaxNodeOrToken is of a specified kind. |
Kind(SyntaxNodeOrToken) |
Returns SyntaxKind for SyntaxNodeOrToken from RawKind property. |
IsKind(SyntaxNodeOrToken, SyntaxKind) |
Determines if SyntaxNodeOrToken is of a specified kind. |