【发布时间】:2021-02-15 17:03:39
【问题描述】:
我无法在 Drools 文档中找到,在 Drools 的规则名称中允许/禁止哪些字符(字母除外) - 有人知道或有参考吗?
目前我发现的Drools doc的唯一相关部分没有指定:
每个规则在规则包中必须有一个唯一的名称。如果您在包中的任何 DRL 文件中多次使用相同的规则名称,则规则无法编译。始终用双引号将规则名称括起来(规则“规则名称”)以防止可能的编译错误,尤其是在规则名称中使用空格时。
我想我发现,有趣的是,一些“分组”字符在规则名称中不起作用(似乎无法找到或不包括以 命名的规则) - 或者至少在 extension 规则(扩展规则似乎适用于分组字符,但不适用于其扩展;示例如下):分组字符包括括号“()”、方括号“[]”和“花括号”“{}” .虽然小于 & 大于 "" 的工作,所以我到目前为止用后者替换前者。
或者有问题的分组字符是否有转义字符?
示例:
rule "(grouping chars, and commas, work here)"
when
// conditions LHS
then
end
// removing parentheses, or replacing with < >,
// from below line works
rule "(grouping chars DON'T work here)"
extends "(grouping chars, and commas, work here)"
when
then
// consequences RHS
我还没有发现所有其他字符的任何一种方式(例如,其他标点符号;除了我发现逗号“,”有效)。但最好提前知道允许使用哪些字符。
【问题讨论】:
-
你应该可以在 GitHub 上找到描述 drl 语言的 antlr 定义。
标签: character drools naming punctuation