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_?