public void Remove(InputFragment fragment)
{
if (fragment == null) return;
if (fragment.Name != null)
scopeTable.Remove(fragment.Name);
if (fragment is SelectStatement)
Remove((fragment as SelectStatement).From);
else if (fragment is JoinFragment)
{
JoinFragment j = fragment as JoinFragment;
Remove(j.Left);
Remove(j.Right);
}
else if (fragment is UnionFragment)
{
UnionFragment u = fragment as UnionFragment;
Remove(u.Left);
Remove(u.Right);
}
}