Возможно, вы рассмотрите наш Комплект реинжиниринга программного обеспечения DMS .DMS - это общая основа для синтаксического анализа исходного текста на произвольных языках в структурах данных компилятора (AST, таблицы символов, графики потоков управления, графики потоков данных в зависимости от того, как далеко вы берете его).
DMS - это общее назначение Система преобразования программ от источника к источнику .Вы можете применять преобразования «источник-источник» , ориентированные на шаблон * , или записывать процедурные преобразования (во многом аналогично OpenC ++), а затем повторно генерировать скомпилированный исходный текст, соответствующий преобразованной программе.
Параметризация DMSс помощью явных определений языка и обрабатывает C, C #, COBOL, Java, Python, javascript, Fortran.
Он имеет полный C ++ Front End , который обрабатывает много реальных диалектов C ++ (ANSI,GNU, MS), с полным именем и разрешением типа.DMS с внешним интерфейсом C ++ может выполнять преобразования, управляемые «метапрограммами» внутри и между несколькими блоками компиляции.Он был использован в гневе для радикальной реорганизации программных систем C ++, включая масштабную реорганизацию программного обеспечения для авионики миссии (см. Статьи на веб-сайте), в конечном итоге использовавшегося в БЛА.
DMS работает в Windows и прозрачно в Linux подWine с использованием сценариев sh.
РЕДАКТИРОВАНИЕ 2/3/2011: DMS работает нормально и под Wine и под Linux и Solaris.Проводится тестирование DMS в Wine под OSX.
EDIT 3/1/2011: похоже, что DMS работает и под Wine для OSX.
EDIT 21.02.2013: интерфейс C ++теперь обрабатывает ANSI C ++ 11, а также версии C ++ для MS и GNU 11.
EDIT 24.02.2015: теперь обрабатывает C ++ 14 в вариантах ANSI, MS и GNU.
РЕДАКТИРОВАНИЕ 16.01.2009: Теперь обрабатывает C ++ 17 в вариантах ANSI, MS и GNU.