Requisitos

  1. Use el repo de GitHub dado por la asignación de esta tarea partiendo del repo en ULL-ESIT-PL-1617/egg
  2. Use XRegExp para sangrar y comentar las expresiones regulares
  3. Guarde en el objeto token el offset de comienzo, la línea de comienzo, etc
  4. Mejore los mensajes de error usando esta información
  5. El analizador léxico actual destruye la cadena conteniendo el programa conforme la analiza. Es posible escribir una analizador léxico que recorra la cadena conteniendo el programa sin destruirla usando la opción sticky. Estudie esta mejora
  6. Mejore las pruebas, especialmente con programas que contienen errores
  7. Añada índices negativos (a la Ruby) para los arrays
  8. Añada mapas/hashes al lenguaje
  9. Haga que el ejecutable egg funcione como un bucle REPL cuando no se le proporciona un fichero de entrada
    [~/ull-pl1718-campus-virtual/tema3-analisis-sintactico/src/egg/crguezl-egg(private)]$ bin/egg.js
    > def(x, array(1,2,array(3,4))) # x = [1,2,[3,4]]
    [ 1, 2, [ 3, 4 ] ]
    > <-(x,2) # 3d element
    [ 3, 4 ]
    > <-(x,0) # 1st element
    1
    > # Pulsamos CTRL-D
    > goodbye!
    
  10. Parta de este repo

Recursos