Общий механизм правил C ++, сравнивающий 2 String Maps

Я хочу проверить, есть ли какие-нибудь компоненты, которые могут дать мне базовый механизм правил. Движок должен иметь возможность принимать строку правила, которая будет основным логическим правилом, которое будет возвращать либо ИСТИНА, либо ЛОЖЬ. Он должен принимать карту строк для входных данных и карту строк для сравнения.

Пример 1:

I want to check if the Object is of type "Apple"The text rule would say "OBJECT_TYPE=="FRUIT" & FRUIT_TYPE=="Apple""If Input is MAP1 ==> { (OBJECT_TYPE->FRUIT),(FRUIT_TYPE->Apple) }
MAP2 ==> NULL
Output should be TRUE

If Input is MAP1 ==> { (OBJECT_TYPE->FRUIT),(FRUIT_TYPE->Orange) }
MAP2 ==> NULL
Output should be FALSE

Пример 2:

I want to check if the Object is of type "Apple" and group with size
The text rule would say "OBJECT_TYPE=="FRUIT" & FRUIT_TYPE=="Apple""If Input is MAP1 ==> { (OBJECT_TYPE->FRUIT),(FRUIT_TYPE->Apple), (SIZE->BIG) }
MAP2 ==> {(SIZE==BIG)}
Output should be TRUE

If Input is MAP1 ==> { (OBJECT_TYPE->FRUIT),(FRUIT_TYPE->Apple), (SIZE->SMALL) }
MAP2 ==> {(SIZE==BIG)}
Output should be FALSE

Идея состоит в том, чтобы сравнить 2 карты согласно логическому правилу и вернуть TRUE или FALSE. Он также должен поддерживать арифметическую логику, например, вес> 50 в правилах, и так же проверять с входной картой. Выход системы может быть что-то вроде ИСТИНА, ЛОЖЬ, ВХОДНАЯ КАРТА, не заполненная полностью, Ошибка в правиле и т. Д.

Кто-нибудь знает, если какой-то Opensource уже предоставляет этот тип функциональности?

2

Решение

Может быть, ответ нет. Ваша ситуация слишком специфична, поэтому вы, вероятно, должны написать свои компоненты owen. По моему опыту, вы можете написать парсер грамматики, boost.spirti, возможно, хороший партнер.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]