LeMP.MacroProcessor.AddMacro C# (CSharp) Method

AddMacro() static private method

static private AddMacro ( MMap macros, MacroInfo info ) : void
macros MMap
info MacroInfo
return void
		internal static void AddMacro(MMap<Symbol, VList<MacroInfo>> macros, MacroInfo info)
		{
			foreach (string name in info.Names) {
				var nameS = (Symbol)name;
				var cases = macros[nameS, VList<MacroInfo>.Empty];
				if (!cases.Any(existing => existing.Macro == info.Macro))
					macros[nameS] = cases.Add(info);
			}
		}

Usage Example

Example #1
0
 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));
 }
All Usage Examples Of LeMP.MacroProcessor::AddMacro