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

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

Descripción:

  • tdop.html contains a description of Vaughn Pratt’s Top Down Operator Precedence, and describes the parser whose lexer we are going to write in this lab. Is a simplified version of JavaScript.
  • The file index.html parses parse.js and displays its AST.
  • The page depends on on parse.js and tokens.js.
  • The file parse.js contains the Simplified JavaScript parser.
  • tokens.js produces an array of token objects from a string.

Douglas Crockford escribió este analizador léxico sin usar expresiones regulares. Crockford prescindió de las regexp porque el analizador sintáctico corresponde a un subconjunto de JS que no tiene - entre otras cosas - expresiones regulares y el autor quería que el analizador se pudiera analizar a si mismo.

Requisitos

  1. Douglas Crockford escribió este analizador léxico sin usar expresiones regulares. Reescriba el analizador léxico en tokens.js usando expresiones regulares.
  2. Evite que se hagan copias de la cadena siendo procesada. Muévase dentro de la misma cadena usando lastIndex. Quizá usar la opción sticky le ayude. Tiene una solución dada por el profesor en
  3. Modifique la solución de Crockford usado regexps en tokens.js
  4. Añada un server (vea aquí un ejemplo) para el HTML y haga el despliegue de su aplicación en la máquina virtual del iaas o en Heroku
  5. Use sessions para controlar quien accede a la aplicación. Puede ver un ejemplo de como hacerlo en los ficheros:
  6. Cuando haga la entrega indique los enlaces a los repos (analizador) así como a los despliegues

Recursos

  1. Una solución incompleta de esta práctica se encuentra en:
  2. El método tokens retorna el array de tokens https://github.com/crguezl/ull-etsii-grado-pl-minijavascript/blob/gh-pages/tokens.js
  3. Ejemplo de server con cookies y sessions: ULL-ESIT-PL-1617/evaluar-manejo-de-cookies-y-sessions-en-expressjs.
  4. Apuntes de Heroku
  5. Como Desplegar una Aplicación Web en iaas.ull.es
  6. Apuntes: Expresiones Regulares
  7. Eloquent JS: Chapter 9: Regular Expressions

Notas para el Profesor

       [~/srcPLgrado/lexical_analysis_top_down_operator_precedence(gh-pages)]$ pwd -P
       /Users/casiano/local/src/javascript/PLgrado/lexical_analysis_top_down_operator_precedence

results matching ""

    No results matching ""