The current parser handles metadata annotations<br><br>  &#39;@&#39; <i>Identifier</i> &#39;(&#39; <i>Text</i> &#39;)&#39;<br><br>so that the annotations for one entity (e.g., a rule) are available as a Map&lt;String,Object&gt;, where the key is given by the <i>Identifier </i>and the value of the entry is available according to<br>
<br><b>if</b>  <i>Text</i> can be <i>completely</i> parsed as   <i>Identifier</i> &#39;=&#39; <i>Expression</i> (where  <i>Expression</i>  is whatever the DRL parser accepts as an expression, i.e., an extended subset of Java expressions)<br>
   <b>then</b><br>      the value is a Map&lt;String,String&gt;<br>   <b>else<br>     the </b>value is a String, with trimmed leading and trailing white space, but preserving all embedded white space<br><br>Changes compared to 5.1.1:<br>
   - no Map was ever returned in 5.1.1,<br>   - @m( &quot;foo&quot; ) in 5.1.1. returned &quot;foo&quot;, but 5.2.0 returns &quot;\&quot;foo\&quot;&quot;.<br>   - @m( &quot;foo&quot;, &quot;bar&quot; ) in 5.1.1. returned &quot;foo\&quot;, \&quot;bar&quot;, but 5.2.0 returns &quot;\&quot;foo\&quot;, \&quot;bar\&quot;&quot;<br>
   - comments between &quot;@...(&quot; and &quot;)&quot; are now handled consistently but were not in 5.1.1<br><br>Possibly considered a problem for 5.2.0 or later:<br>- No check is made for duplicate &quot;outer&quot; map keys; entries are overwritten.<br>
- Repeated &quot;inner&quot; map keys produce concatenated entries, e.g. @m( k = 1, k = &quot;a&quot; ) returns &quot;1a&quot; as the value for key &quot;k&quot;.<br>- Returning (arbitrary) expressions, unchanged, as String now may cause incompatibilitie with more sophisticated processing (if this ever should be considered).<br>
<br>-W<br><br><br><br><br><br><br><br><br><br>