Re: Writing a Boolean Statement Parser/Engine - Need help
- From: Ulrich Korndoerfer <ulrich_wants_nospam@xxxxxxxxxxxx>
- Date: Thu, 24 Apr 2008 01:58:38 +0200
Hi,
Paul Engel wrote:
I'm not sure I'm following you. Do you have some code that illustrates this?
My parser is a class named CEval. Example code for using it would be:
Dim Eval As CEval, Expression As String, Res() As Variant
Expression = "(($wallace OR $walters) AND " & _
"($fire AND $truck)) AND NOT " & _
" ($water OR $wet OR $foam)"
Set Eval = New CEval
With Eval
.Var("$wallace") = True
.Var("$walters") = False
.Var("$fire") = False
.Var("$truck") = True
.Var("$water") = False
.Var("$wet") = True
.Var("$foam") = False
.Evaluate Expression, Res, False
End With
If Res(0) Then
'Result is True
Else
'Result is False
Endif
Of course one can reuse the expression with new values for the variables. For new variable values just set them and call the parser again. Eg. continue with
Eval.Var("$wallace") = False
Eval.Evaluate Expression, Res, False
Or, if the same expression shall be repeatedly evaluated, use:
Dim Eval As CEval, Expression As String, Res() As Variant, i as Long
Expression = "(($wallace($i) OR $walters($i)) AND " & _
"($fire($i) AND $truck($i))) AND NOT " & _
" ($water($i) OR $wet($i) OR $foam($i))"
Set Eval = New CEval
With Eval
.Var("$wallace") = Wallace
.Var("$walters") = Walters
.Var("$fire") = Fire
.Var("$truck") = Truck
.Var("$water") = Water
.Var("$wet") = Wet
.Var("$foam") = Foam
.Preparse Expression, Res, False
End With
For i = 0 To UBound(Wallace)
.Var("$i") = i
.EvaluatePreparsed Res, False
If Res(0) Then
Else
EndIf
Next i
where Wallace, Walters and so on are one dim arrays of Booleans.
--
Ulrich Korndoerfer
VB tips, helpers, solutions -> http://www.proSource.de/Downloads/
.
- References:
- Writing a Boolean Statement Parser/Engine - Need help
- From: Paul Engel
- Re: Writing a Boolean Statement Parser/Engine - Need help
- From: Ulrich Korndoerfer
- Re: Writing a Boolean Statement Parser/Engine - Need help
- From: Paul Engel
- Writing a Boolean Statement Parser/Engine - Need help
- Prev by Date: Re: Writing a Boolean Statement Parser/Engine - Need help
- Next by Date: Re: 64 bit program
- Previous by thread: Re: Writing a Boolean Statement Parser/Engine - Need help
- Next by thread: Re: Writing a Boolean Statement Parser/Engine - Need help
- Index(es):
Relevant Pages
|