예제 #1
0
        private static DgmlNode ProcessTrivia(SyntaxTrivia trivia, int indent = 0)
        {
            var dgmlNode = DgmlNode.Create(trivia);

            PrintNode(dgmlNode, indent);

            return(dgmlNode);
        }
예제 #2
0
        private static DgmlNode ProcessToken(SyntaxToken token, int indent = 0)
        {
            var dgmlNode = DgmlNode.Create(token);

            PrintNode(dgmlNode, indent);

            foreach (var trivia in token.GetAllTrivia())
            {
                dgmlNode.AddChild(ProcessTrivia(trivia, indent + 1));
            }

            return(dgmlNode);
        }
예제 #3
0
        private static DgmlNode ProcessNode(SyntaxNode node, int indent = 0)
        {
            var dgmlNode = DgmlNode.Create(node);

            PrintNode(dgmlNode, indent);

            foreach (var childNodeOrToken in node.ChildNodesAndTokens())
            {
                if (childNodeOrToken.IsNode)
                {
                    dgmlNode.AddChild(ProcessNode((SyntaxNode)childNodeOrToken, indent + 1));
                }
                else if (childNodeOrToken.IsToken)
                {
                    dgmlNode.AddChild(ProcessToken((SyntaxToken)childNodeOrToken, indent + 1));
                }
            }

            return(dgmlNode);
        }