Look at the syntax diagram for ConditionalElement in <a href="http://members.inode.at/w.laun/drools/DroolsSyntax.pdf">http://members.inode.at/w.laun/drools/DroolsSyntax.pdf</a>, p.7, to get an idea of the overall complexity. (Attention: this document incorporates some changes that will happen only with version 5.2., it&#39;s still work in progress) The omission of &#39;and&#39; in the WhenPArt (p.5)  is traditional syntactic sugar. Not permitting the same in subexpressions is much easier to handle the parser.<br>
<br>So, the answer is: easier parsing and, hopefully, better error recovery.<br><br>-W<br><br><br><br><div class="gmail_quote">2010/11/23 Nathan Bell <span dir="ltr">&lt;<a href="mailto:Nathan.Bell@pharmacyonesource.com">Nathan.Bell@pharmacyonesource.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">








<div link="blue" vlink="purple" lang="EN-US">

<div>

<p class="MsoNormal">This rule:</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal" style=""><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(150, 0, 0);">rule</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: green;">&quot;Not&quot;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<p class="MsoNormal" style=""><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(150, 0, 0);">when</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">      </span><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(150, 0, 0);">not</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">(</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">         
RuleTime()</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>

<p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">         
Patient()</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>

<p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">         
)</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>

<p class="MsoNormal" style=""><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(150, 0, 0);">then</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">      System.out.println(</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: green;">&quot;not&quot;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">);</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(150, 0, 0);">end</span></b></p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">produces the following errors when compiled:</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">[ERR 102] Line 43:5 mismatched input &#39;Patient&#39; expecting &#39;)&#39;
in rule &quot;Not&quot;</p>

<p class="MsoNormal">[ERR 102] Line 44:5 mismatched input &#39;)&#39; expecting &#39;then&#39; in
rule &quot;Not&quot;</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">But if I change it to use explicit ANDs instead of implicit
ANDs it compiles and runs.</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal" style=""><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(150, 0, 0);">rule</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: green;">&quot;NotBlock&quot;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<p class="MsoNormal" style=""><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(150, 0, 0);">when</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">      </span><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(150, 0, 0);">not</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">(</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">         
RuleTime()</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>

<p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">         
</span><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(150, 0, 0);">and</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>

<p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">         
Patient()</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>

<p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">         
)</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>

<p class="MsoNormal" style=""><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(150, 0, 0);">then</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<p class="MsoNormal" style=""><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">      System.out.println(</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: green;">&quot;notBlock&quot;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">);</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span></p>


<p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: rgb(150, 0, 0);">end</span></b></p>

<p class="MsoNormal"> </p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">Is it invalid syntax to use implicit ANDs in a not block? If
so, why?</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">Thank You,</p>

<p class="MsoNormal"> </p><font color="#888888">

<p class="MsoNormal">Nathan Bell</p>

</font></div>

</div>


<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br>