Универсальный макропроцессор или универсальный препроцессор — это макропроцессор , который не привязан к определенному языку или программному обеспечению и не интегрирован с ними.
Макропроцессор — это программа, которая копирует поток текста из одного места в другое, делая при этом систематический набор замен. Макропроцессоры часто встраиваются в другие программы, такие как ассемблеры и компиляторы. Иногда они являются автономными программами, которые можно использовать для обработки любого типа текста.
Макропроцессоры использовались для расширения языка (определения новых языковых конструкций, которые могут быть выражены в терминах существующих языковых компонентов), для систематических замен текста, требующих принятия решений, и для переформатирования текста (например, условного извлечения материала из HTML- файла).
Stage2 был создан профессором Уильямом Уэйтом в Университете Колорадо в конце шестидесятых как основной компонент его мобильной системы программирования MPS. Stage2 использует алгоритм сопоставления с образцом для сопоставления входных строк текста с набором шаблонов. Каждый шаблон является первой строкой макроса, и когда совпадение распознается, тело кода этого макроса обрабатывается для создания выходного текста, сообщений об ошибках или создания сконструированной строки, которая отправляется для дальнейшего сопоставления с шаблоном. Таким образом, процесс полностью рекурсивен и весьма эффективен в своих возможностях для преобразования текста. Фактически, его можно использовать для реализации компилятора языка программирования.