Imports System Imports uCalcSoftware Public Module Program Public Sub IsValidEmail(ByVal cb As uCalc.Callback) Dim email = cb.ArgStr(1) Dim uc = cb.uCalc '// Simple validation: check for '@' and '.' Dim isValid = uc.EvalStr("Contains('" + email + "', '@') And Contains('" + email + "', '@')") If isValid = "true" Then cb.ReturnBool(true) Else cb.ReturnBool(false) End If End Sub Public Sub Main() Dim uc As New uCalc() '// 1. Define the custom validation function in the uCalc engine uc.DefineFunction("IsValidEmail(email As String) As Bool", AddressOf IsValidEmail) '// 2. Create and configure the transformer Using t As New uCalc.Transformer(uc) '// 3. Define the sanitization and validation rules t.FromTo("user = {val};", "User: {val},") t.FromTo("age = {val};", "Age: {val},") t.FromTo("status = {val}", "Status: {@Eval: UCase(val)}") '// Last rule, no trailing comma '// The email rule uses the custom function for validation t.FromTo("email = {val};", "Email: {val} {@Eval: IIf(IsValidEmail(val), '(Valid)', '(INVALID)')},") '// 4. Define the messy input strings Dim input1 = "user= Alice ; age= 30 ; email= alice@ucalc.com ; status=active" Dim input2 = "user= Bob; age= 45; email= bob-at-ucalc ; status=inactive" '// 5. Run the transformations Console.WriteLine(t.Transform(input1)) Console.WriteLine(t.Transform(input2)) End Using End Sub End Module