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 pieza de software en particular.
Un procesador de macros es un programa que copia un flujo de texto de un lugar a otro, realizando un conjunto sistemático de reemplazos a medida que lo hace. Los procesadores de macros suelen estar integrados en otros programas, como ensambladores y compiladores. A veces son programas independientes que se pueden utilizar para procesar cualquier tipo de texto.
Los macroprocesadores se han utilizado para la expansión del lenguaje (definiendo nuevas construcciones del lenguaje que se pueden expresar en términos de componentes del lenguaje existentes), para reemplazos sistemáticos de texto que requieren toma de decisiones y para reformatear 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 las líneas de entrada de texto 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 lo tanto, el proceso es completamente recursivo y bastante potente en sus capacidades para la transformación de texto. De hecho, se puede utilizar para implementar un compilador de lenguaje de programación.