Subsecciones


Práctica: Analizador Léxico para Un Subconjunto de JavaScript

TDOP, Top Down Operator Precedence

Vamos a trabajar a partir de este repo de Douglas Crockford:

Objetivos de la Práctica

Douglas Crockford escribió su analizador léxico tokens.js sin usar expresiones regulares. Eso hace que sea extenso (268 líneas). Su analizador es un subconjunto de JS que no tiene - entre otras cosas - expresiones regulares ya que uno de sus objetivos era que el analizador se analizara a si mismo.

Reescriba el analizador léxico en tokens.js. usando expresiones regulares.

  1. Evite que se hagan copias de la cadena siendo procesada. Muévase dentro de la misma cadena usando lastIndex. Parta de la solucióndada por el profesor en https://github.com/crguezl/ull-etsii-grado-pl-minijavascript/blob/gh-pages/tokens.js
  2. Añada botones/enlaces/menu de selección que permitan cargar un fichero específico de una lista de ficheros en la texarea de entrada.

    Vea el ejemplo en

  3. Añada una zona de Drag-and-Drop a la que se pueda arrastrar el fichero a analizar. Tiene un ejemplo de como hacerlo en el fichero https://github.com/crguezl/files-in-javascript-tut/dragandrop.html en:

  4. Añada pruebas como en las prácticas anteriores.
  5. Use los issues de GitHub. Lea Mastering Issues
  6. Haga el despliegue de su aplicación en Heroku.

  7. Una primera solución de la que puede partir se encuentra en:
  8. El método tokens original retorna el array de tokens. Puede encontrarlo en tokens.js.
  9. Mejore la solución en https://github.com/crguezl/ull-etsii-grado-pl-minijavascript/tree/gh-pages
  10. Para esta práctica es necesario familiarizarse con la forma en que funciona la OOP en JS. Vea este jsfiddle

Casiano Rodríguez León
2016-03-27