using uCalcSoftware; var uc = new uCalc(); var FruitsXML = """ """; uc.DefineVariable("x"); var t = uc.NewTransformer(); var FruitsTag = t.FromTo("", "List of fruits"); var Fruit = t.FromTo("CommonName={@string:name}", "{@Eval: x++}. {name}"); uc.Eval("x = 1"); Fruit.Maximum = 10; t.Filter(FruitsXML); Console.WriteLine($"Maximum = {Fruit.Maximum}"); 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.Maximum = 20; t.Filter(FruitsXML); Console.WriteLine($"Maximum = {Fruit.Maximum}"); 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.GlobalMaximum = 10; // Notice "List of fruits" will not show t.Filter(FruitsXML); Console.WriteLine($"MaximumAND = {Fruit.GlobalMaximum}"); 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.GlobalMaximum = 20; t.Filter(FruitsXML); Console.WriteLine($"MaximumAND = {Fruit.GlobalMaximum}"); Console.WriteLine($"Matches count: {t.Matches.Count()}"); Console.WriteLine(""); Console.WriteLine(t.Matches);