У меня был большой опыт работы с Flee , библиотекой C #, которая оценивает выражения, подобные описанному вами. Вы можете оценивать выражения как строго типизированные операторы, поэтому, если вы хотите, например, целое число, «(1 + 2) * 5» будет в порядке, а «привет мир» - нет.
Вы даже можете подключить определенные переменные или функции. Страница примеров Flee является отличной отправной точкой.