1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
using System;
using System.Collections.Generic;
using System.Text;
namespace System.Data.Linq.SqlClient {
/// <summary>
/// Walk a tree and return the set of unique aliases it produces.
/// </summary>
class SqlGatherProducedAliases {
internal static HashSet<SqlAlias> Gather(SqlNode node) {
Gatherer g = new Gatherer();
g.Visit(node);
return g.Produced;
}
private class Gatherer : SqlVisitor {
internal HashSet<SqlAlias> Produced = new HashSet<SqlAlias>();
internal override SqlAlias VisitAlias(SqlAlias a) {
Produced.Add(a);
return base.VisitAlias(a);
}
}
}
}
|