Advent of Code: Solución elegante para un problema de análisis de estado

2025-04-09

El último rompecabezas de Advent of Code implica interpretar instrucciones `do()` y `don't()` que habilitan o deshabilitan la contribución de las instrucciones `mul` a una suma. Las expresiones regulares tienen dificultades con este estado, ya que reconocen lenguajes regulares sin estado. El autor utiliza una solución basada en un analizador, elevándola a un transformador de estado para crear un analizador con estado. Este analizador maneja eficientemente las instrucciones `do()`, `don't()` y `mul`, procesando aproximadamente 1 MB de entrada en 0,12 segundos, una mejora significativa con respecto a un enfoque basado en expresiones regulares.