Laboratorio 3: Parser descendiente recursivo de LUA
Parser descendiente recursivo de LUA.
Para m谩s detalles, visitar compiladores.github.io.
Quickstart#
Editor#
Se recomienda usar vscode y la extensi贸n para deno. Para esto apretar Ctrl+P y luego pegar
ext install denoland.vscode-denoDeno#
Existen 2 alternativas para instalar deno:
- Seguir las (instrucciones oficiales)[https://deno.land/#installation] para instalar el comando
deno - Descargar el 煤ltimo release desde el repositorio oficial de deno, descomprimir el binario en cualquier lugar y luego configurarlo en ./.vscode/settings.json de la siguiente manera (reemplazando
./denopor la ruta al binario)
mkdir .vscodeecho '{ "deno.path": "./deno", /* DENO NO FUE INSTALADO SINO QUE SE DESCARG脫 EL BINARIO EN ESTA UBICACI脫N */ "deno.enable": true /* UTILIZAR EL LANGUAGE SERVER DE DENO EN VEZ DE TYPESCRIPT "C脫MUN" */}' > .vscode/settings.jsonDependencias#
Se requiere flex y gcc, al igual que en el laboratorio 2.
C贸mo hacer el laboratorio#
Se debe completar 煤nicamente parser.ts para que conforme un parser descendiente recursivo, y que pasen los tests ubicados en parser.test.ts. El lenguaje parseado es LUA, cuyo parser se encuentra aqu铆. Como asistencia para completar el laboratorio, se brinda:
docs/lua-bottlecaps.txt: gram谩tica de lua extra铆da del manual oficial, convertida en apta para ser visualizada en railroad diagram generatordocs/lua-bottlecaps-real.txt: gram谩tica de lua extra铆da del c贸digo fuente, convertida en apta para ser visualizada en railroad diagram generatordocs/intro_teorica.md: Breve repaso de gram谩ticas y diagramas de sintaxis
El m茅todo recomendado para hacer el laboratorio es transcribir el diagrama de sintaxis que se genera a partir de lua-bottlecaps-real.txt en forma de programa, tal como descripto en la introducci贸n te贸rica. Un m茅todo alternativo es utilizar el c贸digo fuente original de LUA como base. Ambas alternativas son v谩lidas.
Criterios de evaluaci贸n#
La evaluaci贸n es objetiva. Al presentar el laboratorio se dar谩 una fecha recomendada de entrega. Al entregar el laboratorio se puntuar谩 de la siguiente forma.
| Par谩metro | puntaje |
|---|---|
| se entreg贸 el TP | 6 |
| El 煤ltimo commit del PR tiene fecha previa a la recomendada | +2 |
| Se agregaron 5 tests | +2 |