Hola a todos.
Estoy creando un lenguaje de programacion en C++ y por ahora tengo parte del analizador lexico.
Recibe el codigo fuente en un string y devuelve un vector con los tokens.
Codigo del analizador léxico.
https://drive.google.com/file/d/1LvIGqBoTN8TDnrsHyqyjBmWc5cpQSA2d/view?usp=sharing
Codigo del archivo main
https://drive.google.com/file/d/1NU8jUpy6e37Zpzwp4nx1lKkL28stpu35/view?usp=sharing
Codigo de la clase Token
https://drive.google.com/file/d/1E9rxj4OOrasqVZ2n0wc1tP8wH-SEz9WP/view?usp=sharing
Se supone que la salida debe mostrar los tokens de esta forma:
Token {Tipo: <el tipo>, Lexema: <el lexema>, Linea: <numero de linea>}
Pero cuando tengo codigo multilinea, ocurre esto.
Entrada
Salida
Tipo 8 significa cadena.
Tipo 52 significa fin de linea. (salto de linea)
Tipo 53 significa fin de archivo.
Mi pregunta es:
¿Por qué en la linea 3 de la salida, ademas de tomar el "Como", tambien toma el salto de linea y el "Estas"?.
He probado que solo cuando tengo codigo de mas de 2 lineas, cada 2 lineas en la salida ocurre eso, se lleva el primer lexema, el salto de linea y el lexema siguiente, todo ello en un solo token.
¿Por qué ocurre?
Toda orientacion/respuesta es aceptada, gracias.
Estoy creando un lenguaje de programacion en C++ y por ahora tengo parte del analizador lexico.
Recibe el codigo fuente en un string y devuelve un vector con los tokens.
Codigo del analizador léxico.
https://drive.google.com/file/d/1LvIGqBoTN8TDnrsHyqyjBmWc5cpQSA2d/view?usp=sharing
Codigo del archivo main
https://drive.google.com/file/d/1NU8jUpy6e37Zpzwp4nx1lKkL28stpu35/view?usp=sharing
Codigo de la clase Token
https://drive.google.com/file/d/1E9rxj4OOrasqVZ2n0wc1tP8wH-SEz9WP/view?usp=sharing
Se supone que la salida debe mostrar los tokens de esta forma:
Token {Tipo: <el tipo>, Lexema: <el lexema>, Linea: <numero de linea>}
Pero cuando tengo codigo multilinea, ocurre esto.
Entrada
Salida
Tipo 8 significa cadena.
Tipo 52 significa fin de linea. (salto de linea)
Tipo 53 significa fin de archivo.
Mi pregunta es:
¿Por qué en la linea 3 de la salida, ademas de tomar el "Como", tambien toma el salto de linea y el "Estas"?.
He probado que solo cuando tengo codigo de mas de 2 lineas, cada 2 lineas en la salida ocurre eso, se lleva el primer lexema, el salto de linea y el lexema siguiente, todo ello en un solo token.
¿Por qué ocurre?
Toda orientacion/respuesta es aceptada, gracias.