Lex
Lex es un API escrito en Python que se encargara de:
- Leer Codigo LMR
- Transpilar (traducir)
- LMR a Python
Routes
Lex sera el API responsable de "Transpilar" su codigo escrito en LMR.
Tendra 2 @routes
(no esta limitado a estos 2 unicamente, usted puede agregarle mas)
/
/lex
/root
El root sera endpoint grafico que desplegara: el codigo Python Transpilado y la hora que fue hecho el request.
note que se muestra el TimeStamp de cuando fue transpilado
/lex
POST endpoint para Procesar/ Ejecutar el codigo.
Recibe LMR => [Lex] => Transpile to Python => [Execute to Cozmo]
El codigo vendra en el request payload 1
{
"request_timestamp": "Sun Nov 3 01:42:41 CST 2019",
"lmr": "SAY HI\nMOVE 50 100"
}
Obviamente debe devolver un status code dependiendo del resultado de ejecutar el programa.
1: Ojo que se puede utilizar Redis para evitar enviar una llamada REST y utilizar canales real-time.
Extra functions
Cada vez que Lex traduzca un programa debera:
- guardar el archivo generado dentro de un directorio
transpiled/
con el siguiente formato:lmr_lex_2019_11_3-11_18.py
- Debe devolver un status code que indique al GUI que se transpilo satisfactoriamente.
- Puede usar asyncio (async /await) para responder y ejecutar de una manera asincrona.
Transpilers, or source-to-source compilers, are tools that read source code written in one programming language, and produce the equivalent code in another language.