Какие символы разрешены в названии правила в Drools?

Я не смог найти в документации Drools, какие символы (помимо букв алфавита) разрешены/запрещены в имени правила в Drools - кто-нибудь знает или имеет ссылку?

Единственный соответствующий раздел Drools doc, который я обнаружил, пока не указывает:

Каждое правило должно иметь уникальное имя в пакете правил. Если вы используете одно и то же имя правила более одного раза в любом файле DRL в пакете, правила не скомпилируются. Всегда заключайте имена правил в двойные кавычки (имя правила правила), чтобы предотвратить возможные ошибки компиляции, особенно если вы используете пробелы в именах правил.


Кажется, я случайно обнаружил, что некоторые символы группировки не работают в именах правил (похоже, правила с именами не могут быть найдены или не включены) - или, по крайней мере, в правилах extension ( расширенное правило работает с символами группировки, но не с его расширением; пример ниже): символы группировки включают круглые скобки (), квадратные скобки [] и фигурные скобки {}. Хотя работает меньше и больше, чем ‹›, поэтому я пока заменяю первое вторым.

Или есть escape-символы для проблемных группирующих символов?

Пример:

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

Я еще не обнаружил ни того, ни другого со всеми другими символами (например, другой пунктуацией; кроме того, что я обнаружил запятые, они работают). Но было бы неплохо заранее знать, какие символы разрешены.


person cellepo    schedule 15.02.2021    source источник
comment
Вы сможете найти определения antlr, описывающие язык drl, на GitHub.   -  person Roddy of the Frozen Peas    schedule 16.02.2021


Ответы (1)


Теоретически каждый идентификатор внутри строки должен работать, но вы могли эмпирически найти комбинацию, которая нарушает грамматика каким-то образом.

Спасибо за расследование, я заполнил Jira, взгляните на него.

person Luca Molteni    schedule 16.02.2021