Я не уверен, есть ли это в языках на основе C, однако в Java есть несколько пакетов, которые действительно имеют для этого смысл.
Компилятор JavaCC или компилятор Java позволяет вам определять язык (например, ваши выражения) и создавать соответствующие классы Java. Несколько более удобным, если не более экспериментальным и академическим пакетом является DemeterJ - он позволяет очень легко указать язык выражений и поставляется с библиотекой для определения посетителей и стратегий для работы над сгенерированной структурой классов. Если бы вы могли позволить себе переключиться на Java, я мог бы попробовать это. В противном случае я бы искал клон C # одной из этих технологий.
Еще одна вещь, которую следует учитывать, если вы пойдете по этому пути, это то, что после того, как вы сгенерировали структуру своего класса в некотором разумном приближении к конечному результату, вы можете создать подкласс для всех сгенерированных классов и встроить все свои специфичные для приложения логины в подклассы. Таким образом, если вам действительно потребуется создать новую модель для языка выражений, ваша логика будет относительно независимой от иерархии классов.
Обновление: на самом деле это выглядит так, как будто некоторые из этих вещей перенесены на технологию .NET, хотя я не использовал их, поэтому я не уверен, в какой форме это может быть:
http://www.ccs.neu.edu/home/lieber/inside-impl.html
удачи!