Implementación de macros de regular expresiones legibles para JavaScript

Fuentes: Readable Regular Expressions for JavaScript/TypeScript, Inspired by Emacs' rx

El artículo presenta una implementación en JavaScript y TypeScript de un sistema de macros para regular expresiones, inspirado en la funcionalidad 'rx' de Emacs. El objetivo principal es resolver la complejidad y la falta de legibilidad de los patrones de regular expresiones tradicionales, como el estándar semver de semver.org, que suelen ser difíciles de mantener y modificar. A diferencia de la librería RxJS, esta herramienta permite definir patrones mediante una sintaxis de árbol de nodos, donde cada componente es un objeto con un tipo específico (atom, seq o alt) que define su comportamiento de concatenación.

El sistema traduce esta estructura de nodos en cadenas de regular expresiones estándar, gestionando automáticamente la escape de caracteres y la formación de grupos nombrados. Por ejemplo, una definición como RX(start, "(", repeat(3, digit), ")", ...) se convierte en /^(\d{3})$/. La implementación incluye una biblioteca de clases de caracteres predefinidas, como digit, alpha o alnum, que facilitan la construcción de patrones complejos como la validación de correos electrónicos o números de teléfono. El código fuente completo está disponible públicamente, permitiendo a los desarrolladores integrar esta DSL en sus proyectos para mejorar la mantenibilidad del código y reducir errores de sintaxis.