Un macroprocesador de propósito general o preprocesador de propósito general es un macroprocesador que no está vinculado ni integrado con un lenguaje o software en particular.
Un macroprocesador es un programa que copia un flujo de texto de un lugar a otro, realizando un conjunto sistemático de reemplazos mientras lo hace. Los macroprocesadores suelen estar integrados en otros programas, como ensambladores y compiladores. A veces son programas independientes que pueden usarse para procesar cualquier tipo de texto.
Los macroprocesadores se han utilizado para la expansión del lenguaje (definiendo nuevas construcciones del lenguaje que pueden expresarse en términos de componentes del lenguaje existente), para reemplazos sistemáticos de texto que requieren toma de decisiones y para reformatear el texto (por ejemplo, extracción condicional de material de un archivo HTML ).
Stage2 fue creado por el profesor William Waite en la Universidad de Colorado a finales de los años sesenta como un componente importante de su sistema de programación móvil, MPS. Stage2 utiliza un algoritmo de coincidencia de patrones para hacer coincidir líneas de texto de entrada con un conjunto de plantillas. Cada plantilla es la primera línea de una macro y cuando se reconoce una coincidencia, el cuerpo del código de esa macro se procesa para producir texto de salida, mensajes de error o crear una línea construida que se envía para una mayor coincidencia de plantillas. Por tanto, el proceso es totalmente recursivo y bastante potente en sus capacidades para la transformación de texto. De hecho, se puede utilizar para implementar un compilador de lenguajes de programación.