ShaderTools.Hlsl.Formatting.SyntaxNodeExtensions.GetRootLocatedNodes C# (CSharp) Method

GetRootLocatedNodes() public static method

public static GetRootLocatedNodes ( this node ) : IEnumerable
node this
return IEnumerable
        public static IEnumerable<LocatedNode> GetRootLocatedNodes(this SyntaxNode node)
        {
            if (node.IsToken)
            {
                var token = (SyntaxToken) node;
                foreach (var locatedNode in GetRootLocatedNodes(token))
                    yield return locatedNode;
            }
            else if (node is SyntaxTrivia)
            {
                var trivia = (SyntaxTrivia) node;
                if (trivia.Span.IsInRootFile)
                    yield return trivia;
            }
            else
            {
                foreach (var childNode in node.ChildNodes)
                    foreach (var locatedNode in GetRootLocatedNodes(childNode))
                        yield return locatedNode;
            }
        }