private static NameSyntax BuildQualifiedSyntax(SeparatedSyntaxList<NameSyntax> tokens) { SyntaxToken? dot = null; NameSyntax right = null; // Start grabbing NameSyntaxii from the back right = tokens.GetAndRemoveLastSyntax (); // There's only 1 NameSyntax, so it's a SimpleNameSyntax if (tokens.SeparatorCount == 0) return right; // Remove and save the dot dot = tokens.GetAndRemoveLastSeparator (); // Recurse to build the left part var left = BuildQualifiedSyntax (tokens); return Syntax.QualifiedName (left, dot.Value, (SimpleNameSyntax)right); }