Enunciado del problema
Dado el código fuente de un programa en el lenguaje de programación Lua, su tarea consiste en realizar el análisis léxico sobre dicho código de acuerdo a las especificaciones dadas. Para realizar la implementación se podrán utilizar únicamente los siguientes lenguajes de programación: Python 3.9, C/C++ y Java.
Entrada
La entrada consiste en el código fuente de un programa en Lua, el cual puede estar correcto léxicamente o no. Su programa debe recibir por la entrada estándar (consola) el código fuente de un programa escrito en el lenguaje de programación Lua.
Salida
Listado de tokens identificado de acuerdo con la especificación. Las salidas se deben generar por la salida estándar (consola).
Ejemplos
Entrada Ejemplo 1
local matricula = 9
if matricula>=8 then
print("Ya acabando la carrera :)")
end
Salida Ejemplo 1
<local,1,1> <id,matricula,1,7> <tkn_assign,1,17> <tkn_num,9,1,19> <if,3,1> <id,matricula,3,4> <tkn_geq,3,13> <tkn_num,8,3,15> <then,3,17> <print,4,4> <tkn_opening_par,4,9> <tkn_str,Ya acabando la carrera :),4,10> <tkn_closing_par,4,37> <end,5,1>
Entrada Ejemplo 2
print("Hola, Lua") /* un comentario (◕‿◕) */
Salida Ejemplo 2
<print,1,1> <tkn_opening_par,1,6> <tkn_str,Hola, Lua,1,7> <tkn_closing_par,1,18> <tkn_div,1,20> <tkn_times,1,21> <id,un,1,23> <id,comentario,1,26> <tkn_opening_par,1,37> >>> Error lexico (linea: 1, posicion: 38)