Uhhh genial, básicamente lo que hace el lexer es ir leyendo caracter por caracter, en el caso de “variable cinco = 5” lo que suecede es que, el lexer lee el primer caracter y se encuentra que es una “v” y el lexer dice: “oiga, esto es una letra, esto no es ningún delimitador ni ningún caracter especial, seguro debe haber más letras” y continua leyendo y así hasta que se encuentre que el siguiente con un espacio en blanco, recordemos que este proceso lo hace read_identifier
, por lo que cuando se encuentre con un espacio en blanco dejará de leer.
.
Una vez que ya tiene la palabra capturada, se va a buscar si esa palabra forma parte de las palabras reservadas de nuestro lenguaje “kewywords” y retorna el tipo de token que es 😄
.
Lo genial de esto es que a partir de aquí podemos empezar a ponernos creativos, podemos empezar a poner nuestras propias palabras reservadas, es decir, en vez de poner “variable” podemos poner “unKeywordSuperChido” para definiri variables 😄 (por favor no pongas ese keyword), pero imagina las posibilidades!
.
Yo voy agregando comentarios al código que me ayudan a entenderlo mejor, por si a alguien le sirve, les dejo mi repositorio con el commit de esta clase:
.
Adicion de la lectura de asignaciones
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?