using uCalcSoftware; var uc = new uCalc(); var FruitsXML = """ """; uc.DefineVariable("x = 1"); var t = uc.NewTransformer(); var FruitsTag = t.FromTo("", "List of fruits"); var Fruit = t.FromTo("CommonName={@string:name}", "{@Eval: x++}. {name}"); Fruit.Minimum = 20; t.Filter(FruitsXML); Console.WriteLine($"Minimum = {Fruit.Minimum}"); Console.WriteLine($"Matches count: {t.Matches.Count()}"); // 1 for FruitsTag occurrence Console.WriteLine(""); Console.WriteLine(t.Matches); Console.WriteLine(""); Console.WriteLine("==============="); uc.Eval("x = 1"); Fruit.Minimum = 10; t.Filter(FruitsXML); Console.WriteLine($"Minimum = {Fruit.Minimum}"); Console.WriteLine($"Matches count: {t.Matches.Count()}"); // 1 for FruitsTag plus 12 fruits Console.WriteLine(""); Console.WriteLine(t.Matches); Console.WriteLine(""); Console.WriteLine("==============="); uc.Eval("x = 1"); Fruit.GlobalMinimum = 20; // Notice "List of fruits" will not show t.Filter(FruitsXML); Console.WriteLine($"MinimumAND = {Fruit.GlobalMinimum}"); Console.WriteLine($"Matches count: {t.Matches.Count()}"); // Even FruitsTage won't be counted Console.WriteLine(""); Console.WriteLine(t.Matches); Console.WriteLine("==============="); uc.Eval("x = 1"); Fruit.GlobalMinimum = 10; t.Filter(FruitsXML); Console.WriteLine($"MinimumAND = {Fruit.GlobalMinimum}"); Console.WriteLine($"Matches count: {t.Matches.Count()}"); Console.WriteLine(""); Console.WriteLine(t.Matches);