Sub Process_Globals
Dim e As B4XLogicalEval
End Sub
Sub AppStart (Args() As String)
e.Initialize(Me, "Eval")
Log(LogicalEval("(a <> b) OR ((c < 0) AND (d > 0))", CreateMap("a": 3, "b": 5, "c": -1, "d": 52)))
End Sub
Sub LogicalEval(s As String, substitutions As Map) As Boolean
For Each kw As String In substitutions.keys
s = s.Replace(kw, substitutions.Get(kw))
Next
Return e.Eval(s.Replace(" OR ", "+").Replace(" AND ", "*").Replace("~", "-")) > 0
End Sub