Exemple #1
0
 internal DiagnosticList(SyntaxTree syntaxTree, Syntax.InternalSyntax.SyntaxNode node, int position)
 {
     this.syntaxTree = syntaxTree;
     this.node       = node;
     this.position   = position;
     this.count      = -1;
     this.list       = null;
 }
                private void Push(Syntax.InternalSyntax.SyntaxNode node)
                {
                    if (this.count >= this.stack.Length)
                    {
                        var tmp = new NodeIteration[this.stack.Length * 2];
                        Array.Copy(this.stack, tmp, this.stack.Length);
                        this.stack = tmp;
                    }

                    this.stack[this.count] = new NodeIteration(node);
                    this.count++;
                }
                internal void PushNodeOrToken(Syntax.InternalSyntax.SyntaxNode node)
                {
                    var token = node as Syntax.InternalSyntax.SyntaxToken;

                    if (token != null)
                    {
                        PushToken(token);
                    }
                    else
                    {
                        Push(node);
                    }
                }
Exemple #4
0
        private static int CountDiagnostics(Syntax.InternalSyntax.SyntaxNode node)
        {
            int n = 0;

            if (node != null && node.ContainsDiagnostics)
            {
                n = node.GetDiagnostics().Length;
                var token = node as Syntax.InternalSyntax.SyntaxToken;
                if (token != null)
                {
                    var leading = token.GetLeadingTrivia();
                    if (leading != null)
                    {
                        n += CountDiagnostics(leading);
                    }

                    var trailing = token.GetTrailingTrivia();
                    if (trailing != null)
                    {
                        n += CountDiagnostics(trailing);
                    }
                }
                else
                {
                    for (int i = 0, nc = node.SlotCount; i < nc; i++)
                    {
                        var child = node.GetSlot(i);
                        if (child != null)
                        {
                            n += CountDiagnostics(child);
                        }
                    }
                }
            }

            return(n);
        }
 internal NodeIteration(Syntax.InternalSyntax.SyntaxNode node)
 {
     this.Node = node;
     this.SlotIndex = -1;
     this.DiagnosticIndex = -1;
 }
 internal NodeIteration(Syntax.InternalSyntax.SyntaxNode node)
 {
     this.Node            = node;
     this.SlotIndex       = -1;
     this.DiagnosticIndex = -1;
 }