I've got the following DSL
[when]$NORTH=dh : DealtHand(seat == Seat.NORTH)
[when]$OR=or
[when]HCP {min}-{max}=eval(dh.getHCP() >={min} && dh.getHCP()<={max})
[when]HCP {min}+=eval(dh.getHCP() >={min})
[then]NorthOK=state.setNorthMatch(true);
And I'm trying to execute the following test rule
rule "Test North"
when
$NORTH
HCP 15-17
$OR
HCP 3-8
then
NorthOK;
end
But the second HCP test appears to be ignored, although the rule is successfully
parsed. In the above construct I only get Norths were the HCP is in the range
15 to 17. If I swap the order, HCP 3-8 first, then I only get Norths were the
HCP is in the range 3 and 8.
I could change the DSL to include the check in the DealtHand selection, but this
would only work in this simple case and would start to get complex in some of
the other constructs I have.
Not 100% sure how this rule is evaluated as there are no brackets in isolating
the OR. I tried to put brackets around the OR, but the rule would not parse.
Is there a simple way to build a DSL 'or' rule or do I need to rework the DSL.
Thanks,
John
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email