Analizadores lingüísticos: qué hacen y cómo escribirlos
Un analizador empieza por un tokenizador/toquenizador/separador-clasificador.
Dada una cadena de caracteres nos devuelve un `std::variant<STRING,CHAR> o, mejor, para mayor facilidad de copia, un `std::variant<STRING_VIEW,CHAR>`
¿Qué tal una intervaz _iterator_?