Beispiel #1
0
        internal static SyntaxNode ToRed(this IBaseSyntaxNodeExt node)
        {
            var red = node as SyntaxNode;

            if (red == null && node != null)
            {
                red = ((InternalSyntax.SyntaxNode)node).ToRed(null);
            }

            return(red);
        }
Beispiel #2
0
        internal static InternalSyntax.SyntaxNode ToGreen(this IBaseSyntaxNodeExt node)
        {
            var green = node as InternalSyntax.SyntaxNode;

            if (green == null && node != null)
            {
                green = ((SyntaxNode)node).Green;
            }

            return(green);
        }
Beispiel #3
0
        internal IBaseSyntaxNodeExt GetRed(ref IBaseSyntaxNodeExt field, int slot)
        {
            if (field == null)
            {
                var green = this.Green.GetSlot(slot);
                if (green != null)
                {
                    if (green is InternalSyntax.SyntaxToken)
                    {
                        field = green;
                    }
                    else
                    {
                        Interlocked.CompareExchange(ref field, green.ToRed(this), null);
                    }
                }
            }

            return(field);
        }
Beispiel #4
0
 internal static InternalSyntax.SeparatedSyntaxList <T> ToGreenSeparatedList <T>(this IBaseSyntaxNodeExt node) where T : InternalSyntax.SyntaxNode
 {
     return(new InternalSyntax.SeparatedSyntaxList <T>(new InternalSyntax.SyntaxList <InternalSyntax.SyntaxNode>(node.ToGreen())));
 }