1. Описываем некий алгоритм трансформации последовательности символов в другую последовательность. Возможно, вообще без трансформации, а просто анализа по шаблонам с вызовом внешних процедур (описанных на внешнем языке).
2. Транслируем в процедуры на целевом языке.
3. Помещаем процедуры на целевом языке в нужное окружение (как это делается с YACC-ами всякими). Компилируем.
4. Скармливаем главной процедуре массив символов, во второй массив она помещает нам результат (используя массивы в процессе работы как два стека). В принципе, тривиально (просто пока нужды не было) генерировать код, работающий не с массивами, а с потоками.

Если Вы про то, можно ли алгоритм обработки менять динамически... Ну, в ББ с его динам. загрузкой модулей никаких проблем нет.