using uCalcSoftware; var uc = new uCalc(); var root_uc = new uCalc(); root_uc.Description = "Root uCalc Instance"; var main_t = new uCalc.Transformer(root_uc); // Create a rule in the main transformer var outerRule = main_t.Pattern("OUTER({body})"); // Get a local transformer for the outer rule var local_t = outerRule.LocalTransformer; local_t.Description = "Local Transformer"; // Create an inner rule inside the local transformer var innerRule = local_t.FromTo("INNER", "inner_match"); // Verify both rules resolve to the same root uCalc instance var outerParent = outerRule.uCalc; var innerParent = innerRule.uCalc; Console.WriteLine($"Outer rule's parent: {outerParent.Description}"); Console.WriteLine($"Inner rule's parent: {innerParent.Description}"); Console.WriteLine($"Both rules share the same root uCalc instance: {outerParent.Handle() == innerParent.Handle()}");