Analizador léxico Lua

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)

Nota

Le recomendamos ver los video tutoriales de ayuda disponibles en la documentación.



Lexer - Lua


Select your language