{"_id":"@alu0101204239/constant-folding","_rev":"4-66c8232bbe1cecb88d953419aa335dec","name":"@alu0101204239/constant-folding","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@alu0101204239/constant-folding","author":{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"},"description":"Constant Folding javascript code","scripts":{"test":"mocha","prod-test":"cd ../constant-folding-production-test-alu0101204239 && npm test","cov":"nyc npm run test","full-cov":"npm run clean && npm i && npm run cov","clean":"rm -rf node_modules package-lock.json","doc":"blah blah"},"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239.git"},"keywords":["ULL","constant-folding","javascript"],"license":"Unlicense","dependencies":{"commander":"^7.1.0","escodegen":"^1.14.3","espree":"^9.3.1"},"version":"1.0.0","main":"src/constant-folding.js","bin":{"cf":"src/constant-folding-cli.js"},"devDependencies":{"chai":"latest","jison":"latest","mocha":"latest","nyc":"latest"},"bugs":{"url":"https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239/issues"},"homepage":"https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239#readme","directories":{"doc":"docs","test":"test"},"gitHead":"82650d9152ec94ce9eab35ef273fe339b0db9381","_id":"@alu0101204239/constant-folding@1.0.0","_nodeVersion":"10.24.1","_npmVersion":"7.14.0","dist":{"integrity":"sha512-3Rf+JaaUShS+bL52IY0dFh525tdtLk5w9YlJmoAQBOqst9/va4nx8VqYZzLjGCnuyggNDf4mr5fG9HCAdIc+4g==","shasum":"beafa9127db3fcc62fec7fe02020655ff38038ae","tarball":"https://registry.npmjs.org/@alu0101204239/constant-folding/-/constant-folding-1.0.0.tgz","fileCount":11,"unpackedSize":14602,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKVNrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqZkw//bpsEdOyVanqDmNEivFPoiiGfdGYV5LYXorUNVzg3hJ8QuPdU\r\nwHKesePv0LZfh2AhkFpeX8J1z+AgUE1DRcq3R2jVzbPwrMLAsyPxpqKXXjw6\r\n+s7P3+6wGwQz0CnKCB12uKPPqQ2XY6piRDai2Rs95TsdEmMC7QcScx476IAL\r\nGZQL4P/sV+6OIN1fNJ0v/X5CEk+S9wX69UW3O66PlziAwB3+GyZbV7npWDwX\r\nCGSnDyD52keMSR/68ZQLu7s88K9FfGDLemts6jdjmNE5FVe4AwbA7v4YdPPo\r\nYZRGVSXkDU8yhgXVu9B4h/tWuLZ51S3MpYOR3YXlRsrzvhbP66sAmtSIdtLE\r\nw/DcjaJPxHL5F9Ac8ktm40bFbIPJ+077rgiYcAgy6iLu1iQt9VVogIjrUQ7E\r\nVlYa3KfA0/ZEl0VEPm5gTl9Hn2hE7gFuh48dBWFYq+YZZWgHgv+Ic2oj5h18\r\nBRbHeAbUdfR/kOTHzz7RFVB1p41HMQ03uNbr2hRl7o83pVbIMC7RmBsUGd2m\r\nPKScZfIuKwFjDIbsk6ZNP+0M9fyKGDaJ1AdcM43Y7g6HpdvsB0wlpoBYs9hp\r\nU0kNmbqrvyFn4L8hmUFqcfBpg/v0nacvsGauJRjMDV47E01aUQJqIC/xCbNg\r\nIZXHXQWVNPoKRh3uQkpZ3NYSI3PUdLej/QE=\r\n=yXc2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFEVXEB80HlJkCHZ0B2BOF70EjJop0Qo7JsGKaguS0HDAiAjQCN16khIOtkkf1tCC9PE2r36ftzJHud7JBOV7rWhNw=="}]},"_npmUser":{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"},"maintainers":[{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/constant-folding_1.0.0_1646875498989_0.18088330465165225"},"_hasShrinkwrap":false},"1.0.1":{"name":"@alu0101204239/constant-folding","author":{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"},"description":"Constant Folding javascript code","scripts":{"test":"jest","prod-test":"cd ../constant-folding-production-test-alu0101204239 && npm test","cov":"nyc npm run test","full-cov":"npm run clean && npm i && npm run cov","clean":"rm -rf node_modules package-lock.json","doc":"blah blah"},"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239.git"},"keywords":["ULL","constant-folding","javascript"],"license":"Unlicense","dependencies":{"commander":"^7.1.0","escodegen":"^1.14.3","espree":"^9.3.1"},"version":"1.0.1","main":"src/constant-folding.js","bin":{"cf":"src/constant-folding-cli.js"},"devDependencies":{"chai":"latest","jest":"^27.5.1","jison":"latest","mocha":"latest","nyc":"latest"},"bugs":{"url":"https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239/issues"},"homepage":"https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239#readme","directories":{"doc":"docs","test":"test"},"gitHead":"2371f91feb5a06f28aa212e08dc949aaccf1998d","_id":"@alu0101204239/constant-folding@1.0.1","_nodeVersion":"10.24.1","_npmVersion":"7.14.0","dist":{"integrity":"sha512-aWUwhDMooWclpj72Fl4DJHxS1f4JEFYk49J9pDxUDFooGqdiXXPrNBySbs6m1MSLMwCQjPPX2ab4hiQZ51pRlw==","shasum":"9cd4369eb1c64a238d8f252f47bd78aea73faf8a","tarball":"https://registry.npmjs.org/@alu0101204239/constant-folding/-/constant-folding-1.0.1.tgz","fileCount":11,"unpackedSize":16234,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKoL3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqR8hAAjXU1omhABACcWUE1LF3IKvpcxpZ2ahNu/+vHLqdo5yX/9UK9\r\nDQfZW2eXj/xEeq5lqRlWm7lEXTIkW39cdh1pvm+YcX5cgI1DGvflOKW/19o6\r\niGv5M2YRD8JXZaXVd21rvOtiYpbMKL0UMhLU83IvieTmo7dyF19RUKKcMb+J\r\n4UHJl6T6OpHZxfRDSjItEM6zeaR7Z8qtLMiql7oSFjUQKFQ48IKiFFY9YtfI\r\nGXnQI6ADWVkXeesVRcatWCZdbrb9bsd/9HYuIAKzcm+4tusI9V/97F/JD+em\r\nAz5u5uxpf0C4puH83kNxJ3lvYZsOZh5k+mGXBarkZQU35f4wfPm/Xoed8YpO\r\nuJtPf/A31rOqIxxkcU+bmiF9p+eQ8Yont8rb/Zpz8zZ+4Nd7od+3DpXP785f\r\nkSLAXvWf0voaUK9q42FY7k8Y/w4SYnhZ0PsSve4OcKm1Wun0yO/64wxJhp8g\r\nNE7OVjj/mfSQmV/Nd0ISMlW1JY8Ul0h6dP6EpybRJCszpN7g+V0IGgY4ey2e\r\nu1Ji6G0Pc9Zqn4fFl2dCXzpBK4gwff6I4HLmzFz8vRGu86kxqQA2+Dx1tJhs\r\nT0OcUqveIybVbD7+2eHoY9l480KnxO7htUTAg8dpKcv0gm3dXn+kQJziwHVh\r\nYj3l9626fPNoIYCmJxe1KpAiVJyGa4kQXE8=\r\n=xU69\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLV3DFOlBv1fJqzurlPllTgdY6r7Lwg5H/zs5Why5sLwIhAOy5clZf1uiWo/aeS/zAcoM00oYMgH2+K5p/pI7nGnvs"}]},"_npmUser":{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"},"maintainers":[{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/constant-folding_1.0.1_1646953207234_0.025125971895310073"},"_hasShrinkwrap":false},"1.0.2":{"name":"@alu0101204239/constant-folding","author":{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"},"description":"Constant Folding javascript code","scripts":{"test":"jest","prod-test":"cd ../constant-folding-production-test-alu0101204239 && npm test","cov":"nyc npm run test","full-cov":"npm run clean && npm i && npm run cov","clean":"rm -rf node_modules package-lock.json","doc":"blah blah"},"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239.git"},"keywords":["ULL","constant-folding","javascript"],"license":"Unlicense","dependencies":{"commander":"^7.1.0","escodegen":"^1.14.3","espree":"^9.3.1"},"version":"1.0.2","main":"src/constant-folding.js","bin":{"cf":"src/constant-folding-cli.js"},"devDependencies":{"chai":"latest","jest":"^27.5.1","jison":"latest","mocha":"latest","nyc":"latest"},"bugs":{"url":"https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239/issues"},"homepage":"https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239#readme","directories":{"doc":"docs","test":"test"},"gitHead":"be1c886ad000e56925ffac3f9cccad63d8139b7d","_id":"@alu0101204239/constant-folding@1.0.2","_nodeVersion":"10.24.1","_npmVersion":"7.14.0","dist":{"integrity":"sha512-92/J9If+e57yuT3T9GPb/XhAzAvo501jczrY/cviv0ghcuEvsJe6K4XKaOK77lQ6Cn589Q2bUOllpCE80cip6Q==","shasum":"8f71d9fcf47e28ea0eb921af9d66273c7fa6ee95","tarball":"https://registry.npmjs.org/@alu0101204239/constant-folding/-/constant-folding-1.0.2.tgz","fileCount":11,"unpackedSize":16234,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKoqjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqO3g/+KwOYiOhDQ4H63CmP+UqJHTXl11wiM42CeRlTds0GAwoIO3q4\r\nrJkbeV0lRgkqUQDm8bfBXocAHlt/WOOEDsE9RPve7aqxUzI3W0BbKCbLz/Tp\r\nmoZmCxYaRKKk83WAdgPAlgsZFG51EtHGvY/7AoTHFhfsA3s1jcLMW80sxYhb\r\nWO3SqOU6Mw4e25N5Po9S1O9LLvf+2bLmP67s4xK6Jbv0JRvNj4FM4Po/z+XL\r\nypkWQ61vezfKYFkOXPhWg2yoU+teilcP3X5DbKX6t5xav1VWR7S29GiEB/f+\r\nIcIZNAAaRcmUCYGo5GmCwjYFM+SpsoPb4ly7U75igKyJfRljtJEYds4j14U6\r\n5I+7Nga8k6gdji4L5y13QJurRGCKkM8cFZQoSx/j3BoX4Y4+0y1XBuAEWo+m\r\n5aTDhqTvI/5+EDf7dZPL3xeDNGGs3hsK4m/0uXTI+AHb0dZiVylMs1H/iPZ9\r\nbqaEWX7A/n1+LzcbqwpyXiQFgQ+LIxd5LybBsAuQvHooolB1ZdyspJJvwJNl\r\nma14RhOnVzBTF3fNQKud2jFbqab7ttMR6rieqk//ucGinoOmX20qD/ASZGqz\r\nfYxAFOYf13OQYnk5v+lSySg5r07VNWUvvkww7R1mem8/2eozRr29G1OJ57SB\r\n1YaicZeWqUjC1LQGElLVuq569S9w9YIbJcE=\r\n=6oPq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCeC6EIAHntRLmT0pzAofpAASPHpZTbXqSTwP2VupGnFgIgQf03GNBGhzj9pr59eSyIu5QLS3oeDjx5mih9biMEJHI="}]},"_npmUser":{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"},"maintainers":[{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/constant-folding_1.0.2_1646955171097_0.10030605164469564"},"_hasShrinkwrap":false},"1.0.4":{"name":"@alu0101204239/constant-folding","author":{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"},"description":"Constant Folding javascript code","scripts":{"test":"jest","prod-test":"cd ../constant-folding-production-test-alu0101204239 && npm test","cov":"nyc npm run test","full-cov":"npm run clean && npm i && npm run cov","clean":"rm -rf node_modules package-lock.json","doc":"blah blah"},"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239.git"},"keywords":["ULL","constant-folding","javascript"],"license":"Unlicense","dependencies":{"commander":"^7.1.0","escodegen":"^1.14.3","espree":"^9.3.1"},"version":"1.0.4","main":"src/constant-folding.js","bin":{"cf":"src/constant-folding-cli.js"},"devDependencies":{"chai":"latest","jest":"^27.5.1","jison":"latest","mocha":"latest","nyc":"latest"},"bugs":{"url":"https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239/issues"},"homepage":"https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239#readme","directories":{"doc":"docs","test":"test"},"gitHead":"d1e34639de86e9545bc59cca9558885ea6880c78","_id":"@alu0101204239/constant-folding@1.0.4","_nodeVersion":"10.24.1","_npmVersion":"7.14.0","dist":{"integrity":"sha512-VGTdxIFNPQEksirmXLKW0NN/Jwv0t987S6Wwi92hRqmXoybaQkH1SPxtvbjEdu8AYtI1UYI5THeTcherL556SA==","shasum":"a0cb3b01f67d3ac35dfeb7276e23c4779496e65e","tarball":"https://registry.npmjs.org/@alu0101204239/constant-folding/-/constant-folding-1.0.4.tgz","fileCount":11,"unpackedSize":17517,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKpVsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqgaQ//X///CmLT6zM87Yp/iaF2REQW5AGgesG/cyDGzG4FTwAwyUk/\r\ngNM1QaSxN2g/JGL0ISvA0R0TnKcakzNntYucrpWiEXSdEoDziJ/3nZAmwod3\r\n6K4Kgqeg6b8WcpYw6wsaUZ+S5ssq4DDyglyg3VoOZsoVE1LkLjWOzjqYVgFW\r\nukhSXb0Hum2MLyCZm3AurCuDxChYDk9efNjYMv6foP5zYCpw4euy8TZ2w3XV\r\n6yLxV8HQvoOB3pG+CcfYkAEf0VLBL6NRaVdjvsBqVJbyW1rPf+6UMyCo3iZj\r\nFkcG3cqYxCvxp8cT45dRw4wyMZWvZtUfeRKk1ezZNaBe+PfPoky28/e6G2mI\r\nGIF83N64fHRDu7Ixh2ftVcXB38SwXoGHBHUAd93KBTXGYdATqBWD05UmFIFV\r\nj503YVJ1R6SaJkehDuLbbkm6UuQFCyLxuwX1nUXxVj8qiVf7V91VHOt/RY5X\r\n0Muv/06yQtqfJdneIouPugM1I+nL5Yt+ibKKfe0EyKxtncDjwKOA5RymcfDo\r\nORFfZk+Pd7sN/WbTocQ6rDtEPQMy7XPce0NTjvm0dkI8C+xGKLZsyaPgZrSy\r\nlfY+7dU1LWt+WvLHicy9HHPQ8sW2hoz1PNF6mthslGiHSHV1T0x8P8qZbnA6\r\ncyBlU7q29VSyQPDm0Act2guSp2CtB4unk8M=\r\n=23UG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID2UqXVP9AM1V0P347yVo/Im9S6MLsyBzmXEdbG+Ar5cAiA2GHmRcykcHordR8Ii4PBPYRS4zszPyi06Sqrc4kSaMA=="}]},"_npmUser":{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"},"maintainers":[{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/constant-folding_1.0.4_1646957931969_0.5101236439754318"},"_hasShrinkwrap":false}},"time":{"created":"2022-03-10T01:24:58.941Z","1.0.0":"2022-03-10T01:24:59.172Z","modified":"2022-04-04T13:41:05.523Z","1.0.1":"2022-03-10T23:00:07.368Z","1.0.2":"2022-03-10T23:32:51.317Z","1.0.4":"2022-03-11T00:18:52.183Z"},"maintainers":[{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"}],"description":"Constant Folding javascript code","homepage":"https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239#readme","keywords":["ULL","constant-folding","javascript"],"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239.git"},"author":{"name":"alu0101204239","email":"alu0101204239@ull.edu.es"},"bugs":{"url":"https://github.com/ULL-ESIT-PL-2122/constant-folding-module-moises-pestano-castro-alu0101204239/issues"},"license":"Unlicense","readme":"[![npm version](https://badge.fury.io/js/%40aluXXX%2Fconstant-folding.svg)](https://badge.fury.io/js/%40alu0101204239%2Fconstant-folding)\n[![CI for constant-folding](https://github.com/ULL-ESIT-PL-2021/constant-folding-module-aluXXX/actions/workflows/nodejs.yml/badge.svg)](https://github.com/ULL-ESIT-PL-2021/constant-folding-module-alu0101204239/actions/workflows/nodejs.yml)\n\n## constant-folding\n\n```javascript\nconst constantFolding = require(\"@alu0101204239/constant-folding\");\nconstantFolding(code, pattern);\n```\n## Sobre la función principal\nLa 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).\n\nLa función busca un nodo del tipo indicado para saber qué caso es al que se le debe hacer constant folding. Por ejemplo:\n\n```\nif (node.name === 'pop') {\n          salida = constantFoldingPop(codigoConvertido_a_AST);\n```\n\nSi 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()).\n\n## Funciones adicionales y su uso.\n* 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()***\n* 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()***\n* 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()***\n\n## Author\n\nMoisés Antonio Pestano Castro (alu0101204239) \n\n## Tests\n\n```npm test```","readmeFilename":"README.md"}