Reto: p10-t5-jison-infix2egg
Reto: p10-t5-jison-infix2egg
Añada objetos y el punto/dot .
a su lenguaje de infijo. Algo similar
a esto:
begin
let a = {
c:1,
gc: function() { this.c },
sc: function(val) { c = val },
inc: function() { this.c = this.c+1 }
};
print(a.c); # 1
a.sc(4);
print(a.c); # 4
a.inc();
print(a.c) # 5
end
Debería ser posible combinar tanto en el lado izquierdo de una asignación como en el derecho los operadores punto y de indexación. Esto es, poder escribir expresiones como:
a[x+y].c[4].d = b[i][j].z
Recursos
- Práctica: Reescribir el Compilador de Infijo a Egg usando PEG.js (p9-t4-peg-infix2egg)
- pegjs-infix-2-egg
- PEGs Viejos apuntes del profesor
- PEG.js PEG.js Documentation
- El lenguaje egg: repo en GitHub
- Eloquent JS: Chapter 11. Project: A Programming Language
- Repo interpreter-egg
- NodeJS Readline gist
- Apuntes de PL: Análisis Sintáctico Predictivo Recursivo
- Mocha
- Chai
- Covering
- Blanket