1.0.1 • Published 3 years ago

eloquentjsegg v1.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

Analizador lexico. Practica en serie.

1. Ejercicio

Ejecute el programa con las siguientes entradas. Para cada una de las entradas tener en cuenta:

  • Antes de hacer la ejecución decide si la entrada es sintácticamente correcta.
  • Si es semánticamente correcta.
  • Cual será su salida.
  • Una vez ejecutado:
  • Si da error mira en que función ocurre: ¿Es un error sintático o semántico? ¿ Es lo que esperabas?
  • Si no se procduce error y crees que debería producirse ¿ Qué código es el que tienees que modificar?

  • Entradas:

 $ node egg.js 'print(+)'  
  1. La entrada es sintacticamente incorrecta
  2. La entrada es semanticamente correcta.
  3. Funcion: anonima.
  4. deberia de catalogar la función + un error de sintaxis por no sumar o concatenar valores.
$ node egg.js 'print(4,)'  
  1. La entrada es sintactucamente incorrecta.
  2. La entrada es semanticamente incorrecta.
  3. 4
  4. deneria de dar un error de sintaxis porque no puede existir una ',' al lado de un ')'.
$ node egg.js '8()'  
  1. La entrada es sintacticamente incorrecta
  2. La entrada es semanticamente incorrecta
  3. Error de tipo puesto que 8 no puede ser una funcion. da un error de sintaxis.
$ node egg.js '"hello"(2,3)'
  1. La entrada es sintacticamente incorrecta
  2. La entrada es semanticamente incorrecta
  3. Error de tipo puesto que una cadena no puede ser una funcion. da un error de sintaxis.
$ node egg.js '+()' 
  1. La entrada es sintacticamente incorrecta
  2. La entrada es semanticamente incorrecta
  3. no da error. deberia de dar error ya que las expresiones no pueden ser funciones.
$ node egg.js '+(2,)'
  1. La entrada es sintacticamente incorrecta
  2. La entrada es semanticamente incorrecta
  3. no da error. deberia de dar error ya que las expresiones no pueden ser funciones.

Expresion Initial Syntax

expression: (STRING | NUMBER | WORD) apply

apply: / vacio / | '(' (expression ',')* expression? ')' apply