Подскажите, что бы вы использовали если нужно декларативно описать шаблон бух.проводки с последующей его обработкой. При этом входные параметры и вычисления тоже хочется задать декларативно. Чтобы не переписывать функции всякий раз когда будут меняется проводки или счёта. Делаю консольную утилиту для cli ledger.
Поясню идею. Есть файл с набором шаблонов проводок. В шаблон включены спецификации параметров, которые соответствую каждому набору проводок. Так же в шаблоне, описано как проводить расчеты, и что писать в вывод.
Далее есть функция которой в качестве аргумента передается ID шаблона и строка параметров. Функция парсит нужный шаблон, затем парсит строку параметров, производит описанные в шаблоне вычисляения и формирует на выходе описаный шаблоном вывод.
Сейчас реализовал не красиво, сделал кучу функций, в которых жестко все прописал. Т.о. если что-то поменяется в логике, придется править функции, а хочется обходится без этого.