Yantra es una herramienta de software escrita en C++ que actúa como un compilador de compiladores y generador de parseadores LALR(1). Su principal característica técnica es la capacidad de generar un árbol de sintaxis abstracta (AST) completo antes de ejecutar las acciones semánticas, lo que permite a los desarrolladores ejecutar lógica de negocio en el orden lógico de la gramática, no en el orden de reducción. A diferencia de los generadores clásicos como Bison o Yacc, que ejecutan acciones durante la reducción bottom-up, Yantra construye el AST completo y lo recorre top-down en una segunda pasada, facilitando la generación de código o la ejecución de acciones complejas. El proyecto destaca por su simplicidad de implementación: no depende de librerías externas más allá de la biblioteca estándar de C++ y se construye mediante CMake. Yantra incluye un lexer integrado con soporte para Unicode/UTF8 y un modo de amalgamación que genera un único archivo .cpp autocontenido, eliminando la necesidad de configurar dependencias de compiladores como Java en proyectos C++. Aunque es más pequeño y moderno que ANTLR, Yantra se centra exclusivamente en C++ y ofrece una alternativa ligera para proyectos que requieren parseadores nativos sin la complejidad de la JVM. La herramienta está licenciada bajo MIT y cuenta con documentación detallada, tutoriales y ejemplos de uso para integrarse en proyectos de compiladores o lenguajes de programación.
