Imports System
Imports uCalcSoftware
Public Module Program
   Public Sub Main()
      Dim uc As New uCalc()
      Dim t = uc.NewTransformer()
      Dim Pattern = t.Pattern("< {etc} >")
      t.Str("< a b c > d < (e f g) > h < (i) (j k) > l < m n o ( > p) q >")
      
      '// Note the difference in the final match
      
      Pattern.BracketSensitive = true '// true is the default
      Console.WriteLine($"BracketSensitive: {Pattern.BracketSensitive}")
      Console.WriteLine("----------------------")
      t.Find()
      Console.WriteLine(t.Matches.Text)
      Console.WriteLine("")
      
      Pattern.BracketSensitive = false
      Console.WriteLine($"BracketSensitive: {Pattern.BracketSensitive}")
      Console.WriteLine("-----------------------")
      
      t.Find()
      Console.WriteLine(t.Matches.Text)
      Console.WriteLine("")
      
      t.Str("( a b ( c ) d e )")
      '// Here parentheses are captured as regular tokens, not bracket pairs
      Dim Pattern2a = t.Pattern("( {etc} (")
      Dim Pattern2b = t.Pattern(") {etc} )")
      
      Console.WriteLine("Brackets used as part of pattern")
      Console.WriteLine("--------------------------------")
      Pattern2a.BracketSensitive = true
      Pattern2b.BracketSensitive = true
      t.Find()
      Console.WriteLine(t.Matches.Text)
      Console.WriteLine("")
      Pattern2a.BracketSensitive = false
      Pattern2b.BracketSensitive = false
      t.Find()
      Console.WriteLine(t.Matches.Text)
      
      
   End Sub
End Module