public MacroProcessorTask(MacroProcessor parent)
{
_parent = parent;
_macros = parent.Macros.Clone();
foreach (var mi in MacroProcessor.GetMacros(this.GetType(), null, _sink, this))
{
MacroProcessor.AddMacro(_macros, mi);
}
_macroNamespaces = new MSet <Symbol>(_macros.SelectMany(ms => ms.Value).Select(mi => mi.NamespaceSym).Where(ns => ns != null));
}