[rules-dev] DSL: progress report

Wolfgang Laun wolfgang.laun at gmail.com
Thu Dec 9 02:28:04 EST 2010


*Long lines:* \-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.

*DSLR analysis*: 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.

*Substitution:* is now done "manually" rather than with
Matcher.replaceAll(). This eliminates some problems with '\' and '$' and
creates the opportunity for new features.

*New features:* 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.
   [when]there is an? {entity}=${entity!lc}: {entity!ucf}()
   [then]discard the fact=retract( ${entity!lc} );
But these features depend on "reasonable" {}-variable names.

*Open issue:* {}-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.

Best
Wolfgang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20101209/13391486/attachment.html 


More information about the rules-dev mailing list