В свое время я делал для системы над которой работал многостадийную компиляцию.
Сначала делал preprocess файл средствами прогресс - при этом подставлялись и раскрывались все нужные инклуд файлы.
Затем обработка для удаления пустых строк/комментариев.
Затем компиляция с сохранением *.r кодов / debug файлов.
Иногда при этом проявлялись некоторые ошибки компилятора и приходилось править исходный код. Например, проблема возникала при обработке препроцессом оператора вида
for each table where field = "asdf":
После обработки такого файла при компиляции следующего файла съедался первый символ. Видимо, препроцессор путал эту конструкцию с указанием строки с атрибутами "asdf":U.
Другая возможность обрабатывать и анализировать исходные тексты на прогресс - это воспользоваться парсером