3º. 2º cuatrimestre. Itinerario de Computación. Grado en Ingeniería Informática. ULL
Re-escriba la fase de análisis sintáctico del lenguaje de infijo que diseñó en la práctica
usando PEG.js para re-escribir el analizador sintáctico.
En su parser irá:
Haga que el ejecutable admita opciones en línea de comandos. Algo parecido a esto:
[.../p9-t4-peg-infix2egg-04-16-2020-03-18-25/davafons(master)]$ bin/infix2egg.js --help
Usage: infix2egg [options]
Options:
-V, --version output the version number
-r --run <fileName> compiles the input infix program and runs it using the egg interpreter
-c --compile <fileName> compile the infix program to produce a JSON containing the input egg AST
-i --interpret <fileName> interprets the egg AST
-h, --help output usage information
Buenos módulos para parsear la línea de comandos son commander y yargs
[.../p9-t4-peg-infix2egg-04-16-2020-03-18-25/davafons(master)]$ cat examples/array.pl
begin
let emptyArray = [];
call print(emptyArray);
let x = [2, 3, [1, 2, 3]];
call print(x[2][1]);
x[2][1] = 100;
call print(x[2]);
end
Ejecución:
[.../p9-t4-peg-infix2egg-04-16-2020-03-18-25/davafons(master)]$ bin/infix2egg.js -r examples/array.pl
[]
2
[ 1, 100, 3 ]
Return value: 1,100,3