<b>Long lines:</b> \-escape is working satisfactorily, But I&#39;ll look into the option of merging lines depending on the first chars in the next line, which would be much more attractive.<br><br><b>DSLR analysis</b>: is a little more lenient; you may have, for instance  &quot;when there is a foo&quot; on a single line, and the trigger keywords (rule,query, when then, end) may be indented.<br>
<br><b>Substitution:</b> is now done &quot;manually&quot; rather than with Matcher.replaceAll(). This eliminates some problems with &#39;\&#39; and &#39;$&#39; and creates the opportunity for new features.<br><br><b>New features:</b> I&#39;m experimenting with using key-value pairs saved from preceding lines to provide a replacement value for a {}-variable that isn&#39;t defined on the current line. Also, a variable reference such as {variable-name!function-name} is simple to implement; case conversions would be useful functions.<br>
   [when]there is an? {entity}=${entity!lc}: {entity!ucf}()<br>   [then]discard the fact=retract( ${entity!lc} );<br>But these features depend on &quot;reasonable&quot; {}-variable names.<br><br><b>Open issue:</b> {}-variable may contain almost any Unicode character. This causes much pain in the parser and even more in the expander; and users are burdened with having to escape this or that character. Is it really a good or important thing to be able to write a variable name like &gt;&lt;!@%^*|+?,/&#39;&#39;&quot;|&amp;().; and/or escape sequences?? If someone would make a decisive statement (&quot;has to remain as it is&quot; OR &quot;restrict to the usual lexical identifier syntax&quot;) I&#39;d appreciate this very much.<br>
<br>Best<br>Wolfgang<br><br><br><br><br><br><br><br>