<b>Long lines:</b> \-escape is working satisfactorily, But I'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 "when there is a foo" on a single line, and the trigger keywords (rule,query, when then, end) may be indented.<br>
<br><b>Substitution:</b> is now done "manually" rather than with Matcher.replaceAll(). This eliminates some problems with '\' and '$' and creates the opportunity for new features.<br><br><b>New features:</b> I'm experimenting with using key-value pairs saved from preceding lines to provide a replacement value for a {}-variable that isn'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 "reasonable" {}-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 ><!@%^*|+?,/''"|&().; and/or escape sequences?? If someone would make a decisive statement ("has to remain as it is" OR "restrict to the usual lexical identifier syntax") I'd appreciate this very much.<br>
<br>Best<br>Wolfgang<br><br><br><br><br><br><br><br>