public IEnumerable<IContextVariable> GetAllContextVariables()
{
var left = Left;
if (left != null)
{
foreach (var contextVar in left.GetAllContextVariables())
{
yield return contextVar;
}
}
foreach (var item in GetContextVariables())
{
yield return item;
}
}