Imports System
Imports uCalcSoftware
Public Module Program
   Public Sub Main()
      Dim uc As New uCalc()
      Dim MyVar = uc.DefineVariable("MyVar = 123")
      Dim MyAlias = uc.CreateAlias("MyAlias", MyVar)
      
      Console.WriteLine(uc.Eval("MyAlias")) '// Contains same value as MyVar
      uc.Eval("MyAlias = 456") '// Same as changing MyVar
      Console.WriteLine(uc.EvalStr("MyVar")) '// MyVar reflects change made in MyAlias
      Console.WriteLine("")
      
      
      '// This section below shows how you can have Alias distinguish
      '// between different variables with the same name
      
      uc.DefineFunction("MyFunc() = MyVar + 1")
      
      '// MyVar defined below is a new variable sharing the same name
      '// MyFunc() will still use the value of the original MyVar
      Dim MyVarAlt = uc.DefineVariable("MyVar = 100")
      
      '// The function below uses the new MyVar variable
      uc.DefineFunction("MyFunc2() = MyVar + 1")
      
      Console.WriteLine(uc.Eval("MyFunc()"))
      Console.WriteLine(uc.Eval("MyFunc2()"))
      Console.WriteLine("")
      
      uc.CreateAlias("MyAliasAlt", MyVarAlt)
      uc.Eval("MyAlias = 200") '// Changes MyVar used in MyFunc()
      uc.Eval("MyAliasAlt = 300") '// Changes MyVar used in MyFunc2()
      
      Console.WriteLine(uc.Eval("MyFunc()"))
      Console.WriteLine(uc.Eval("MyFunc2()"))
   End Sub
End Module