@alu0101204239/constant-folding
v1.0.4
Published
Constant Folding javascript code
Downloads
9
Maintainers
Readme
constant-folding
const constantFolding = require("@alu0101204239/constant-folding");
constantFolding(code, pattern);
Sobre la función principal
La función principal toma como entrada un código fuente de entrada ("code") en formato string, lo convierte a un árbol AST, y luego lo recorre buscando sentencias del tipo a=2+3 o ["a", "b", "c"].join(), y luego retorna el resultado de realizar dichas operaciones (constant folding).
La función busca un nodo del tipo indicado para saber qué caso es al que se le debe hacer constant folding. Por ejemplo:
if (node.name === 'pop') {
salida = constantFoldingPop(codigoConvertido_a_AST);
Si el nodo que estamos analizando tiene como nombre pop, entonces estamos ante una sentencia del tipo ["a", "b", "c"].pop(), y por tanto, vamos a realizar la operación de constant folding para ese caso específico (constantFoldingPop()).
Funciones adicionales y su uso.
- constantFoldingPop(): Esta función recibe el árbol AST como entrada y realiza la operación de constant folding sobre las sentencias del tipo ["a", "b", "c"].pop()
- constantFoldingJoin(): Esta función recibe el árbol AST como entrada y realiza la operación de constant folding sobre las sentencias del tipo ["a", "b", "c"].join()
- constantFoldingReverse(): Esta función recibe el árbol AST como entrada y realiza la operación de constant folding sobre las sentencias del tipo ["a", "b", "c"].reverse()
Author
Moisés Antonio Pestano Castro (alu0101204239)
Tests
npm test