Это действительно зависит от сложности правил, которые вы пытаетесь реализовать.Ключевая идея в декларативном программировании состоит в том, что правила рассматриваются как данные.Итак, самый простой способ начать - это посмотреть, все ли ваши правила могут быть представлены в виде данных в таблице.Например, если ваши правила имеют тип, если a = 10, тогда b = 7, тогда вы можете представить то же самое в таблице и написать общий метод, который может обрабатывать все ваши случаи.
С другой стороны, если ваши правила допускают несколько условий (и / или предложений, а также операторов сравнения), дизайн на основе таблиц не поможет.
В этом случае вам нужно указать грамматику для ваших правил, сгенерировать лексер и парсер.Парсер будет анализировать ваши действительные правила в абстрактном синтаксическом дереве.Добравшись до этого этапа, вы можете либо взять это дерево и нацелить его на существующий механизм правил, либо на свой собственный механизм правил, который знает, как выполнить дерево.