Imports System
Imports uCalcSoftware
Public Module Program
   
   Public Sub SharedCallback(ByVal cb As uCalc.Callback)
      Console.WriteLine($"Callback triggered by: {cb.Item.Name}")
   End Sub
   Public Sub Main()
      Dim uc As New uCalc()
      '// Define two different symbols that use the same callback
      uc.DefineFunction("FuncA(x, y)", AddressOf SharedCallback)
      uc.DefineOperator("{x} OpB {y}", 100, Associativity.LeftToRight, AddressOf SharedCallback)
      
      '// Call both symbols
      uc.EvalStr("FuncA(1, 2)")
      uc.EvalStr("1 OpB 2")
      
   End Sub
End Module