public FunSymbol FunSymbolByName(string name) { FunSymbol fn; if (modelFunsByName.TryGetValue(name, out fn)) { return(fn); } fn = new FunSymbol(); fn.Name = name; fn.AllSymbols = this.modelFuns; this.modelFuns.Add(fn); modelFunsByName.Add(name, fn); return(fn); }
private IEnumerable <Common> Filter() { foreach (var fs in Fun.AllSymbols) { FunSymbol ffs = new FunSymbol(); ffs.Name = fs.Name; foreach (var fapp in fs.Apps) { foreach (var a in fapp.Args) { if (a == Value) { ffs.Apps.Add(fapp); break; } } } if (ffs.Apps.Count > 0) { yield return(ffs); } } }
public Partition PartitionByName(string name) { Partition part; if (modelPartsByName.TryGetValue(name, out part)) { return(part); } part = new Partition(); part.Id = name; part.model = this; modelPartsByName.Add(name, part); FunSymbol consts = FunSymbolByName(name); FunApp fapp = new FunApp(); fapp.Fun = consts; fapp.Args = new Partition[0]; fapp.Value = part; consts.Apps.Add(fapp); part.Values.Add(fapp); return(part); }