Имхо, эффективнее эту задачу решать путем выгрузки модулей во внешние файлы, парсить, потом заливать обратно, собственно, как и делает обновлятор ИЖ-ТиСи, насколько мне известно.
Можно адаптировать скрипты CodeWorks Алексея Диркса, который в составе OpenConf'а есть, правда парсер там пока заточен под код 7.7... ну и на perl он.
Описание вставляемого кода в CodeWorks задается не при помощи XML, а на своем DSL, но все очень прозрачно, пример:
Код:
CodeWorks::RenameObject($ObjName, "ВводНового", "ВведенКопированием", "Копирование");
CodeWorks::ReplaceCode($ObjName, "", 'Процедура ВводНового\\(\\)', "Процедура ВводНового(Копирование)");
CodeWorks::CreateProc("ПриОткрытии", $OnOpen, "стар_ПриЗаписи");
CodeWorks::CreateProc("ВводНового", $OnNew, "ПриОткрытии");
CodeWorks::InsertCode($ObjName, "ВводНового", "ЭтотСпр.ВводНового(Копирование);");
CodeWorks::CreateProc("ПриЗаписи", $OnSave2, "");
CodeWorks::InsertCode($ObjName, "ПриЗаписи", "ПриИзмененииОбъекта(Контекст, ТекущийЭлемент(), РабочаяДата());\nстар_ПриЗаписи();");
CodeWorks::CreateProc("стар_ПриЗаписи", $OnSave1, "ПриЗаписи");
CodeWorks::InsertVarDecl($ObjName, "", "ЭтотСпр");
CodeWorks::InsertCode($ObjName, "", "\nЭтотСпр = СоздатьОбъект(\"ТСправочник\");");