Надо написать парсер выражений. Язык программирования — C#. В выражении могут быть арифметические операции, предопределенные функции (MIN, MAX, ABS, ...), и в качестве переменных — названия полей таблиц базы данных. Парсер будет использоваться для "вычисляемых" полей в отчётах. Вычисление будет задаваться выражением, которое требуется разобрать (желательно на этапе ввода, чтобы не заниматься этим при отображении отчёта), подставить туда значения для текущего кортежа и вернуть результат.
Как я понимаю, задача сводится к обычному "калькулятору" с возможностью задания переменных.
Вопрос собственно по реализации. Можно всё это сделать самому или попробовать ANTLR (Coco/R ? ).
Опыта в этой области нет вообще. Если делать самому, то всё не очень страшно, но смущает дальнейшее расширение функциональности. Например, логические операции или ещё что-нить такое. В готовых примерах, на которые я натыкался — на том же CodeProject, почти весь код имеет некоторые ограничения — например поддержка унарных операторов или вложенные скобки в логических выражениях. Я не понимаю, являются ли эти задачи сложными для реализации, или они настолько тривиальны, что авторы не стали тратить на это время.
Может быть лучше будет построить грамматику и использовать ANTLR/CocoR для генерации кода парсера на C#? Насколько это будет трудоёмко для чайника? И насколько хорошо в эту грамматику лягут названия полей из базы данных?
Время на разработку как бы есть, но чем быстрее, тем лучше.