Чтобы надежно изменить исходный код, вам нужно иметь возможность анализировать его так же, как это делает компилятор, указывать на языковые сущности, используя стандартные правила видимости для этого языка, и указывать свои изменения в коде. Инструменты, которые делают это, называются программами преобразования движками.
Обеспечение всего этого механизма компиляции, интегрированного с производственными качественными языковыми интерфейсами, - значительная работа, поэтому таких инструментов не так много.
См. Наш инструментарий реинжиниринга программного обеспечения DMS . Это механизм преобразования программ, который обрабатывает несколько языков (C, C ++, C #, Java, PHP, JavaScript, ...) и обеспечивает работу такого типа. Хорошим свойством механизма преобразования типа «источник-источник», такого как DMS, является возможность писать преобразования с использованием (поверхностного) синтаксиса языков, которыми вы хотите манипулировать , а не более традиционными инструменты, подобные компилятору, которые настаивают на том, чтобы вы просто взламывали абстрактное синтаксическое дерево с большим количеством процедурного кода.
Это не так просто, "о, просто измени это". Но это надежно.
РЕДАКТИРОВАТЬ 23.06.2011: OP заявил, что должен работать с Java и PHP. DMS делает.