Поделиться через


SyntaxNode Класс

Определение

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

public ref class SyntaxNode abstract
[System.Diagnostics.DebuggerDisplay("{GetDebuggerDisplay(), nq}")]
public abstract class SyntaxNode
[<System.Diagnostics.DebuggerDisplay("{GetDebuggerDisplay(), nq}")>]
type SyntaxNode = class
Public MustInherit Class SyntaxNode
Наследование
SyntaxNode
Производный
Атрибуты

Свойства

Имя Описание
ContainsAnnotations

Определяет, имеет ли этот узел или любой вложенный узел, маркер или тривия заметки.

ContainsDiagnostics

Определяет, имеет ли этот узел или любой из его потомков, маркеры или тривии какие-либо диагностические данные.

ContainsDirectives

Определяет, имеет ли этот узел директивы препроцессора-потомка.

ContainsSkippedText

Определяет, имеет ли этот узел какой-либо пропущенный текст.

FullSpan

Абсолютный диапазон этого узла в символах, включая его ведущие и конечные тривии.

HasLeadingTrivia

Определяет, имеет ли этот узел любые ведущие тривии.

HasStructuredTrivia

Определяет, структурирована ли потомка этого узла.

HasTrailingTrivia

Определяет, имеет ли этот узел все конечные тривии.

IsMissing

Определяет, представляет ли узел конструкцию языка, которая была на самом деле проанализирована из исходного кода. Отсутствующие узлы создаются средством синтаксического анализа в сценариях ошибок для представления конструкций, которые должны присутствовать в исходном коде для успешной компиляции, но фактически отсутствуют.

IsStructuredTrivia

Определяет, представляет ли этот узел структурированную тривию.

KindText

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

Language

Имя языка, на которое этот узел имеет синтаксис.

Parent

Узел, содержащий этот узел в своей ChildNodes() коллекции.

ParentTrivia

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

RawKind

Целое число, представляющее конкретный язык этого узла.

Span

Абсолютный диапазон этого узла в символах, не включая его ведущие и конечные тривии.

SpanStart

То же, что и доступ Start к Span.

SyntaxTree

Возвращает, SyntaxTree принадлежит узлу.

SyntaxTreeCore

Возвращает синтаксисTree, принадлежащий узлу. Если узел не принадлежит дереву, он будет создан.

Методы

Имя Описание
Ancestors(Boolean)

Получает список узлов-предков в порядке от самого внутреннего содержащего синтаксического предка к самому внешнему.

AncestorsAndSelf(Boolean)

Получает список узлов-предков (включая этот узел) в порядке от этого узла до самого внешнего предка.

ChildNodes()

Возвращает список дочерних узлов в порядке документа префикса.

ChildNodesAndTokens()

Список дочерних узлов и маркеров этого узла, где каждый элемент является экземпляром SyntaxNodeOrToken.

ChildThatContainsPosition(Int32)

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

ChildTokens()

Возвращает список прямых дочерних маркеров этого узла.

Contains(SyntaxNode)

Определяет, является ли указанный узел потомком этого узла. Возвращает значение true для текущего узла.

ContainsDirective(Int32)

Возвращает значение true, если этот узел содержит какие-либо директивы (например #if, , #nullableи т. д.) в нем с соответствующим типом.

CopyAnnotationsTo<T>(T)

Копирует все синтаксические отметки, если таковые есть, из этого экземпляра SyntaxNode и присоединяет их к новому экземпляру на nodeоснове.

DescendantNodes(Func<SyntaxNode,Boolean>, Boolean)

Возвращает список потомков узлов в порядке префикса документа.

DescendantNodes(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

Возвращает список потомков узлов в порядке префикса документа.

DescendantNodesAndSelf(Func<SyntaxNode,Boolean>, Boolean)

Получает список потомков (включая этот узел) в порядке префикса документа.

DescendantNodesAndSelf(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

Получает список потомков (включая этот узел) в порядке префикса документа.

DescendantNodesAndTokens(Func<SyntaxNode,Boolean>, Boolean)

Возвращает список потомков узлов и маркеров в порядке документа префикса.

DescendantNodesAndTokens(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

Возвращает список потомков узлов и маркеров в порядке префикса документа.

DescendantNodesAndTokensAndSelf(Func<SyntaxNode,Boolean>, Boolean)

Возвращает список потомков узлов и маркеров (включая этот узел) в порядке префикса документа.

DescendantNodesAndTokensAndSelf(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

Возвращает список потомков узлов и маркеров (включая этот узел) в порядке префикса документа.

DescendantTokens(Func<SyntaxNode,Boolean>, Boolean)

Возвращает список всех маркеров в диапазоне этого узла.

DescendantTokens(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

Возвращает список всех маркеров в полном диапазоне этого узла.

DescendantTrivia(Func<SyntaxNode,Boolean>, Boolean)

Получите список всех тривии, связанных с потомками узлов и маркеров.

DescendantTrivia(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

Получите список всех тривии, связанных с потомками узлов и маркеров.

EquivalentToCore(SyntaxNode)

Определите, является ли этот узел структурным эквивалентом другому.

FindNode(TextSpan, Boolean, Boolean)

Находит узел с наименьшим FullSpan , который содержит span. getInnermostNodeForTie используется для определения поведения в случае привязки (т. е. узла, имеющего тот же диапазон, что и его родительский). Если getInnermostNodeForTie имеет значение true, он возвращает самый низкий убывающей узел, охватывающий заданный.span В противном случае он возвращает самый внешний узел, охватывающий заданный span.

FindToken(Int32, Boolean)

Находит маркер потомка этого узла, диапазон которого включает указанное положение.

FindTokenCore(Int32, Boolean)

Находит маркер потомка этого узла, диапазон которого включает указанное положение.

FindTokenCore(Int32, Func<SyntaxTrivia,Boolean>)

Находит маркер потомка этого узла, диапазон которого включает указанное положение.

FindTrivia(Int32, Boolean)

Находит потомки этого узла, диапазон которого включает указанное положение.

FindTrivia(Int32, Func<SyntaxTrivia,Boolean>)

Находит потомки этого узла в указанной позиции, где позиция находится в пределах диапазона узла.

FindTriviaCore(Int32, Boolean)

Находит потомки этого узла, диапазон которого включает указанное положение.

FirstAncestorOrSelf<TNode,TArg>(Func<TNode,TArg,Boolean>, TArg, Boolean)

Возвращает первый узел типа TNode, соответствующий предикату. Предки ищутся в порядке от этого узла до самого внешнего предка.

FirstAncestorOrSelf<TNode>(Func<TNode,Boolean>, Boolean)

Возвращает первый узел типа TNode, соответствующий предикату. Предки ищутся в порядке от этого узла до самого внешнего предка.

GetAnnotatedNodes(String)

Возвращает все узлы с указанным типом заметки.

GetAnnotatedNodes(SyntaxAnnotation)

Возвращает все узлы с указанной заметкой.

GetAnnotatedNodesAndTokens(String)

Возвращает все узлы и маркеры с заметкой указанного типа заметки.

GetAnnotatedNodesAndTokens(String[])

Возвращает все узлы и маркеры с заметкой указанных типов заметок.

GetAnnotatedNodesAndTokens(SyntaxAnnotation)

Возвращает все узлы и маркеры с указанной заметкой.

GetAnnotatedTokens(String)

Возвращает все маркеры с указанным типом заметки.

GetAnnotatedTokens(SyntaxAnnotation)

Возвращает все маркеры с указанной заметкой.

GetAnnotatedTrivia(String)

Получает все тривии с заметкой указанного типа заметки.

GetAnnotatedTrivia(String[])

Получает все тривии с заметкой указанных типов заметок.

GetAnnotatedTrivia(SyntaxAnnotation)

Возвращает все тривии с указанной заметкой.

GetAnnotations(IEnumerable<String>)

Получает все заметки с указанными типами заметок.

GetAnnotations(String)

Возвращает все заметки с указанным типом заметки.

GetDiagnostics()

Возвращает список всех диагностических данных в дереве вложенного дерева, имеющего этот узел в качестве корня. Этот метод не фильтрует диагностику на основе #pragmas и параметров компилятора, таких как nowarn, warnaserror и т. д.

GetFirstToken(Boolean, Boolean, Boolean, Boolean)

Возвращает первый маркер дерева, корняемого этим узлом. Пропускает маркеры нулевой ширины.

GetLastToken(Boolean, Boolean, Boolean, Boolean)

Возвращает последний маркер дерева, корняемого этим узлом. Пропускает маркеры нулевой ширины.

GetLeadingTrivia()

Список тривии, который отображается перед этим узлом в исходном коде и присоединен к маркеру, который является потомком этого узла.

GetLocation()

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

GetRed<T>(T, Int32)

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

GetRedAtZero<T>(T)

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

GetReference()

SyntaxReference Возвращает для этого синтаксического узла. CommonSyntaxReferences можно использовать для восстановления доступа к узлу синтаксиса без сохранения всего дерева и исходного текста в памяти.

GetText(Encoding, SourceHashAlgorithm)

Получает полный текст этого узла в качестве нового SourceText экземпляра.

GetTrailingTrivia()

Список тривии, который отображается после этого узла в исходном коде и присоединен к маркеру, который является потомком этого узла.

HasAnnotation(SyntaxAnnotation)

Определяет, имеет ли этот узел определенную заметку.

HasAnnotations(IEnumerable<String>)

Определяет, имеет ли этот узел любые заметки с любым из определенных типов заметок.

HasAnnotations(String)

Определяет, имеет ли этот узел какие-либо заметки с определенным типом заметки.

InsertNodesInListCore(SyntaxNode, IEnumerable<SyntaxNode>, Boolean)

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

InsertTokensInListCore(SyntaxToken, IEnumerable<SyntaxToken>, Boolean)

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

InsertTriviaInListCore(SyntaxTrivia, IEnumerable<SyntaxTrivia>, Boolean)

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

IsEquivalentTo(SyntaxNode, Boolean)

Определяет, являются ли два узла одинаковыми, игнорируя различия в тривии.

IsEquivalentTo(SyntaxNode)

Определите, является ли этот узел структурным эквивалентом другому.

IsEquivalentToCore(SyntaxNode, Boolean)

Определяет, являются ли два узла одинаковыми, игнорируя различия в тривии.

IsIncrementallyIdenticalTo(SyntaxNode)

Возвращает значение true, если эти два узла считаются "добавочно идентичными". Постепенно идентичный узел возникает при SyntaxTree добавочном анализе с помощью WithChangedText(SourceText) , а добавочный синтаксический анализатор может принимать узел из исходного дерева и использовать его в целом в новом дереве. В этом случае ToFullString() каждый узел будет одинаковым, хотя у них могут быть разные родители, и может возникать на разных позициях в соответствующих деревьях. Если два узла будут постепенно идентичны, все дочерние элементы каждого узла будут постепенно идентичны.

IsPartOfStructuredTrivia()

Определяет, является ли этот узел потомком структурированной тривии.

NormalizeWhitespaceCore(String, String, Boolean)

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

RemoveNodesCore(IEnumerable<SyntaxNode>, SyntaxRemoveOptions)

Создает новое дерево узлов с удаленным указанным узлом.

ReplaceCore<TNode>(IEnumerable<TNode>, Func<TNode,TNode,SyntaxNode>, IEnumerable<SyntaxToken>, Func<SyntaxToken,SyntaxToken,SyntaxToken>, IEnumerable<SyntaxTrivia>, Func<SyntaxTrivia,SyntaxTrivia,SyntaxTrivia>)

Создает новое дерево узлов с указанными узлами, маркерами или тривия заменены.

ReplaceNodeInListCore(SyntaxNode, IEnumerable<SyntaxNode>)

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

ReplaceTokenInListCore(SyntaxToken, IEnumerable<SyntaxToken>)

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

ReplaceTriviaInListCore(SyntaxTrivia, IEnumerable<SyntaxTrivia>)

Представляет узел, отличный от терминала, в дереве синтаксиса. Это не зависящий от языка эквивалент CSharpSyntaxNode и VisualBasicSyntaxNode.

SerializeTo(Stream, CancellationToken)
Устаревшие..
Устаревшие..

Сериализует узел в заданный stream. Оставляет открытым для дальнейших операций stream записи.

ToFullString()

Возвращает полное строковое представление этого узла, включая его ведущие и конечные тривии.

ToString()

Возвращает строковое представление этого узла, не включая его ведущие и конечные тривии.

WriteTo(TextWriter)

Записывает полный текст этого узла в указанный TextWriter.

Методы расширения

Имя Описание
ContainsDirective(SyntaxNode, SyntaxKind)

Возвращает значение true, если этот узел содержит какие-либо директивы (например #if, , #nullableи т. д.) в нем с соответствующим типом.

ContainsDirective(SyntaxNode, SyntaxKind)

Возвращает значение true, если этот узел содержит какие-либо директивы (например #if, , #nullableи т. д.) в нем с соответствующим типом.

GetCurrentNode<TNode>(SyntaxNode, TNode)

Возвращает узел в поддереве, соответствующий исходному отслеживаемого узла. Используйте TrackNodes для запуска узлов отслеживания.

GetCurrentNodes<TNode>(SyntaxNode, IEnumerable<TNode>)

Возвращает узлы в поддереве, соответствующие исходным отслеживаемых узлам. Используйте TrackNodes для запуска узлов отслеживания.

GetCurrentNodes<TNode>(SyntaxNode, TNode)

Возвращает узлы в поддереве, соответствующие исходному отслеживаемого узла. Используйте TrackNodes для запуска узлов отслеживания.

GetDirectives(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

Возвращает элементы ДирективыTriviaSyntax для указанного синтаксисаNode с необязательным фильтром.

GetFirstDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

Возвращает первую директиву дерева, корняемого этим узлом.

GetFirstDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

Возвращает первый элемент DirectiveTriviaSyntax для указанного синтаксисаNode.

GetLastDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

Возвращает последнюю директиву дерева, корняемого этим узлом.

GetLastDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

Возвращает последний элемент DirectiveTriviaSyntax для указанного синтаксисаNode.

IsKind(SyntaxNode, SyntaxKind)

Определяет, имеет ли SyntaxNode указанный тип.

IsKind(SyntaxNode, SyntaxKind)

Определяет, имеет ли SyntaxNode указанный тип.

Kind(SyntaxNode)

Возвращается SyntaxKind из SyntaxNodeRawKind свойства.

Kind(SyntaxNode)

Возвращается SyntaxKind из SyntaxNodeRawKind свойства.

TryGetInferredMemberName(SyntaxNode)

Если выражение инициализатора выводит имя анонимного свойства или элемента кортежа. Возвращает значение NULL, если не удалось

TryGetInferredMemberName(SyntaxNode)

Если выражение инициализатора выводит имя анонимного свойства или элемента кортежа. Возвращает ничего, если не удалось

Применяется к