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); }
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); }
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); }
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()))); }