- Построение AST сгенерированным ANTL4 билдером
- Обход AST и пометка простых операндов логических выражений
- На место операндов в выражении подставляется их id
- Выражение преобразуется к КНФ с помощью Pyeda
- Строится синтаксическое дерево КНФ - выражения
- По дереву JavaEL выражение строится дерево DMN выражений
- Каждая нода ExpressionNode дерева DMN выражений переводится в FEEL
Полученное DMN-дерево представляет уже переведенное выражение, по которому строится XML дерево
- DMN-дерево состоит из нод, представляющих выражение (ExpressionDMN) и нелогический оператор (OperatorDMN).
- Каждый, кроме корневого, ExpressionDMN имеет id зависимых нод, вместо части выражения, которое они представляют.
- Потомком OperatorDMN может быть как OperatorDMN, так и ExpressionDMN.
Используется библиотека lxml. Обходя DMN-дерево, для каждой ноды генерируется ee xml представление DRD.
- Для OperatorDMN это заготовленная таблица логики оператора с операндами на входе.
- Для ExpressionDMN строится AST FEEL выражения и из него извлекаются необходимые аттрибуты.