eloquentjsegg
v1.0.1
Published
* [Eloquent JS. Chapter 11. Project: A Programming Language](http://eloquentjavascript.net/11_language.html) * [Deploy at GitHub](https://ULL-ESIT-PL-1617.github.io/egg)
Downloads
1
Readme
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(+)'
- La entrada es sintacticamente incorrecta
- La entrada es semanticamente correcta.
- Funcion: anonima.
- deberia de catalogar la función + un error de sintaxis por no sumar o concatenar valores.
$ node egg.js 'print(4,)'
- La entrada es sintactucamente incorrecta.
- La entrada es semanticamente incorrecta.
- 4
- deneria de dar un error de sintaxis porque no puede existir una ',' al lado de un ')'.
$ node egg.js '8()'
- La entrada es sintacticamente incorrecta
- La entrada es semanticamente incorrecta
- Error de tipo puesto que 8 no puede ser una funcion. da un error de sintaxis.
$ node egg.js '"hello"(2,3)'
- La entrada es sintacticamente incorrecta
- La entrada es semanticamente incorrecta
- Error de tipo puesto que una cadena no puede ser una funcion. da un error de sintaxis.
$ node egg.js '+()'
- La entrada es sintacticamente incorrecta
- La entrada es semanticamente incorrecta
- no da error. deberia de dar error ya que las expresiones no pueden ser funciones.
$ node egg.js '+(2,)'
- La entrada es sintacticamente incorrecta
- La entrada es semanticamente incorrecta
- 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