{"_id":"@alu0101040288/pegjs-infix2egg","_rev":"9-1d94ae7111c802e82524f5182bbaf1ef","name":"@alu0101040288/pegjs-infix2egg","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@alu0101040288/pegjs-infix2egg","version":"0.1.0","description":"Este pequeño parser hecho con PEG.js es capaz de parsear una versión\r ligeramente modificada del lenguaje PL/0.","main":"src/index.js","bin":{"peg-infix2egg":"bin/peg-infix2egg"},"scripts":{"test":"mocha","test:watch":"mocha --watch --reporter min","test:cov":"nyc --reporter=text --reporter=html mocha && start ./coverage/index.html","coverage":"nyc --reporter=text mocha","gen:parser":"pegjs -o src/pl0-parser.js --allowed-start-rules program grammar/pl0.pegjs"},"husky":{"hooks":{"pre-commit":["npm run gen:parser && env FORCE_COLOR=1 npm test -- --reporter=progress"]}},"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098.git"},"author":{"name":"Francisco Cruz","email":"alu0101040288@ull.edu.es"},"license":"ISC","bugs":{"url":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098/issues"},"homepage":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098#readme","devDependencies":{"@types/chai":"^4.1.7","@types/mocha":"^5.2.6","@types/node":"^12.0.0","@types/pegjs":"^0.10.1","chai":"^4.2.0","chai-exclude":"^2.0.1","eslint":"^5.16.0","husky":"^2.2.0","mocha":"^6.1.4","nyc":"^14.1.0"},"dependencies":{"chalk":"^2.4.2","pegjs":"^0.10.0","xregexp":"^4.2.4"},"gitHead":"283a25cf6f3717c5b166db67b8a38930611216f6","_id":"@alu0101040288/pegjs-infix2egg@0.1.0","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-pFM2XgWHeDMCNF/sNnXUCjX+9QIKde0F76eNBRk3LPlrNGymVFUXwp/5/ZWzRIBKbJou3RZUzNm9Q95/xUSwUw==","shasum":"b9db78f0211ca0228ba25a2e0d973363487ddbd0","tarball":"https://registry.npmjs.org/@alu0101040288/pegjs-infix2egg/-/pegjs-infix2egg-0.1.0.tgz","fileCount":11,"unpackedSize":94104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0UZJCRA9TVsSAnZWagAA1RgP/1IJi4InF+QLIRi5iXrB\nsAQUTtdGlmnHtoP6UO0h/IlOX1kohJJxox5zd98mxYY4WN6ztctwXna0U6LV\nr/Put7C8BFJxAwl7TFcOkm+PvMhlBh9LunQZL5lmu9TdKnqVwvFiHOlki3kT\n4iz9PuD1bvSLylEhoqjOPHLRlmYRd34geclQgY7h2WyM9WM7Ut5TStTm4bYD\nPOG3V1Uo2YQPoC6qXNNv0DROVQizsNRc1WZ7woZ/oLOkW0gaJv/6BL4bAZ3M\nTF0F/IEZ2dJo31QGqVELclfgccsNaro2by9gTNT20TlEBt/UDBA3Kggof0Gr\nQUwSjLaiOiBuY/jkAHv5+1FcQCAhoOfo1DuDsuqYFzZ+gdgMVIl5Z48DMP0v\nHsRdzyPXgvax2Mbr8R40yxdYiLqC6TYb5vS2G4REAz8EJn4TVvgLZD3W7QVG\n4NTlK0rJfwIdQuPgok/QHOHXomTpi3dXw09A6gN33hWWtIk/sZtMkCXHW4XJ\nZyUf74hqS9YPMVBZN6IZajFgFJM06DdXCZTC3r7yzsT/lA4jyn932glKzbl9\nXJhwJtTf4MpCaERxNkI6A6kwtFhpckGTJaOgwTaVzQf1hqx2fr8T4FVN4UY0\nRyNkHmD3sOvYbyN5j424wXpIepJ8laxmlw4/41LT+ulv845p5P4xYTHDPqFo\nCITu\r\n=awxK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGesqkBmRcBRRK9/FvuWyo+JRIolceKde6fTg8L9z0mOAiBWGE35s9DkpPr/kokZCFcPAS8GFsHipfSgKZVX/c/NTA=="}]},"maintainers":[{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"}],"_npmUser":{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pegjs-infix2egg_0.1.0_1557218888853_0.2479578202919348"},"_hasShrinkwrap":false},"0.1.1":{"name":"@alu0101040288/pegjs-infix2egg","version":"0.1.1","description":"Este pequeño parser hecho con PEG.js es capaz de parsear una versión\r ligeramente modificada del lenguaje PL/0.","main":"src/index.js","bin":{"peg-infix2egg":"bin/pegjs-infix2egg.js"},"scripts":{"test":"mocha","test:watch":"mocha --watch --reporter min","test:cov":"nyc --reporter=text --reporter=html mocha && start ./coverage/index.html","coverage":"nyc --reporter=text mocha","gen:parser":"pegjs -o src/pl0-parser.js --allowed-start-rules program grammar/pl0.pegjs"},"husky":{"hooks":{"pre-commit":["npm run gen:parser && env FORCE_COLOR=1 npm test -- --reporter=progress"]}},"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098.git"},"author":{"name":"Francisco Cruz","email":"alu0101040288@ull.edu.es"},"license":"ISC","bugs":{"url":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098/issues"},"homepage":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098#readme","devDependencies":{"@types/chai":"^4.1.7","@types/mocha":"^5.2.6","@types/node":"^12.0.0","@types/pegjs":"^0.10.1","chai":"^4.2.0","chai-exclude":"^2.0.1","eslint":"^5.16.0","husky":"^2.2.0","mocha":"^6.1.4","nyc":"^14.1.0"},"dependencies":{"chalk":"^2.4.2","pegjs":"^0.10.0","xregexp":"^4.2.4"},"gitHead":"455a8b3495858818680d1f80ef26e19caa623f24","_id":"@alu0101040288/pegjs-infix2egg@0.1.1","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-XU4Mu/iOsMMo0++sd7Rscw+1xMAUXTghmZ7AygZxUNgd9DfSI6BtQfBc3xfM0QVK9jJc2VUQ2ufThD4ciF7nzQ==","shasum":"1875ed17ffeea60bc679e85424e3a2639c724958","tarball":"https://registry.npmjs.org/@alu0101040288/pegjs-infix2egg/-/pegjs-infix2egg-0.1.1.tgz","fileCount":11,"unpackedSize":94109,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0UbbCRA9TVsSAnZWagAAzC0QAIQMrjiqiNb5jEW3PIl2\nnLKcGBxpVPj4EdefZidvY7n6TvXL92sSgsN46FT1mHYAxwYN/IQriMHWhNt3\nF1Y1Qu7hgQf0y2XJzwNtMEd8kiBlMtgZ1NlMnLkaQesIZmVwp4kZ3k7VbVKb\nW/gAYFXO3ydnXR0gexPVXarQGlS08ZwPoHkwGN9TZIoP/XiNuR8V9QNnAtXL\nIFkTAgjNHGJF5qIcvtVcSz9tyqAwhweISj+8VlDRfl8MHNBQ6xSENTTCZ5su\nLb0E4ibAhWDRQMVO0VPjz/EUiHqWHVVILTOjlISGGPwthaF0oLsxeiAzY5YY\nTqWUiixlS8/Yn5LQvSLZ2Wi/Bc6Q1NijbBCkFwuDuCFPTPskCgHNDYrQfEOF\nfmlHH7h3meRegBP6hsg5+2RWezsPaL+0SRWugUeJ7dQCqDf/oZ9XhPYLLYjd\ntyXAM99Tas3IsaAUfeNJ6a5N4yJcaduhVlbPCy56MNQK9Oz6Aml8kgl7kXmh\nH9pvH0EuO8nH/ff2uG4gk4E3ItYvPuCEYBWhC130MwIgAKH2Bj9Kx02uhiqJ\nIPmnGP6s797yE4B4EK9m/8kNjHSNluO8W9DGqYdHQ9p3OpRffG0kqtzAZzrU\nzfcFtfy5gp3xhYOeXhw+PbafL24fdpnAq2eBhhOpESeifL4fbTzpy2UqgyZ4\nAad6\r\n=UzBW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFohzUmiGY67/6P4DIwuNqu/kLGJGLBQQZqH0laB2ju/AiEA42XnuZqhJ2XiSFmT1DE2muZJ+BFxYeOO1G20d+taLUU="}]},"maintainers":[{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"}],"_npmUser":{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pegjs-infix2egg_0.1.1_1557219034587_0.5361077071758591"},"_hasShrinkwrap":false},"0.1.2":{"name":"@alu0101040288/pegjs-infix2egg","version":"0.1.2","description":"Este pequeño parser hecho con PEG.js es capaz de parsear una versión\r ligeramente modificada del lenguaje PL/0.","main":"src/index.js","bin":{"peg-infix2egg":"bin/pegjs-infix2egg.js"},"scripts":{"test":"mocha","test:watch":"mocha --watch --reporter min","test:cov":"nyc --reporter=text --reporter=html mocha && start ./coverage/index.html","coverage":"nyc --reporter=text mocha","gen:parser":"pegjs -o src/pl0-parser.js --allowed-start-rules program grammar/pl0.pegjs"},"husky":{"hooks":{"pre-commit":["npm run gen:parser && env FORCE_COLOR=1 npm test -- --reporter=progress"]}},"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098.git"},"author":{"name":"Francisco Cruz","email":"alu0101040288@ull.edu.es"},"license":"ISC","bugs":{"url":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098/issues"},"homepage":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098#readme","devDependencies":{"@types/chai":"^4.1.7","@types/mocha":"^5.2.6","@types/node":"^12.0.0","@types/pegjs":"^0.10.1","chai":"^4.2.0","chai-exclude":"^2.0.1","eslint":"^5.16.0","husky":"^2.2.0","mocha":"^6.1.4","nyc":"^14.1.0"},"dependencies":{"chalk":"^2.4.2","pegjs":"^0.10.0","xregexp":"^4.2.4"},"gitHead":"e7c4f8740483f4ff3a6a9f8da6c40fcbfbaee47d","_id":"@alu0101040288/pegjs-infix2egg@0.1.2","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-KUY/gyguDyaMZ0YTHK227/b0VkXyM+syanTnxV63iONtEh4zV6lmLzo6FHRag0nIUOAoVg652SBMeIHmnnYv+Q==","shasum":"397a6f382f5e4f03626adac18f53c98c88023579","tarball":"https://registry.npmjs.org/@alu0101040288/pegjs-infix2egg/-/pegjs-infix2egg-0.1.2.tgz","fileCount":11,"unpackedSize":94132,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0UftCRA9TVsSAnZWagAA7eoP/139xL4XER5AtKpXz5PJ\nR3dQ/QpvP0jjpSC3FCqwOtsvyWHiRkTCOXEMf7wQePFFuuDypeqGYljCx7ik\n3fQUL+fTyvSHwcHE6w/7F1Y5HsoxYxvZl/sutxWOCfYefzmspNv/NQchiWT1\nNRFOS+D209bxHKic8/wz+Gw6KMHgV1HHpDRy1/l+dmE4RMUfL6fAStPWVPal\nk41ZGnpo48EjdVxO/cqKGdeL3NJuY7fevmBEu5Pho3JIytSxZOdNluIOE0Lp\n0nAA31TtZJqIk/QwNCRjbEkhWKXV91iZi9W2mEx4OPQW6i/CWeCRl1mfrQYs\nX5tWASePR/C6bY6QZymrgxUNF9KmDsjI2Xb2grFu3BxJHcLNLjHGoMELud16\neqrtTfqsPut2V2SfR1dEne4QNv3nrageho0jzHK5ak0fRWeCZCgshjp/o2Ru\nSib1vsVD42Y1+OEj4ROLEfkpM8YCptVJJNowuXw1CqyPOAXeOHE4I/5rUsh8\ncCZi6u+/DzxQquRoJYnM1MhcmGfWSDGbDRrgcER3IKJWJRiRPr1wyuGgB/hQ\nlXMEvjhye+lPcTTlaHdzInw623MWepbLzZerPYibZON+TQv2NcWRvvkW2wWN\n2NtDrICvHzzV4R633/Avoc9sFH5vCvDP2XRsKrGs3z9DTox50f7+er/tA+78\nVQQD\r\n=V8yt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDaHuyLc9n8lZyBCoxm6MGg7qKKMI9AoBsN43VfTCY3HAiEAsyEgJZXXrGkrgksLRgam1KHQ3K0mbFJmJOGpwx6SvTA="}]},"maintainers":[{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"}],"_npmUser":{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pegjs-infix2egg_0.1.2_1557219308881_0.14643439572947403"},"_hasShrinkwrap":false},"0.1.3":{"name":"@alu0101040288/pegjs-infix2egg","version":"0.1.3","description":"Este pequeño parser hecho con PEG.js es capaz de parsear una versión\r ligeramente modificada del lenguaje PL/0.","main":"src/index.js","bin":{"peg-infix2egg":"bin/pegjs-infix2egg.js"},"scripts":{"test":"mocha","test:watch":"mocha --watch --reporter min","test:cov":"nyc --reporter=text --reporter=html mocha && start ./coverage/index.html","coverage":"nyc --reporter=text mocha","gen:parser":"pegjs -o src/pl0-parser.js --allowed-start-rules program grammar/pl0.pegjs"},"husky":{"hooks":{"pre-commit":["npm run gen:parser && env FORCE_COLOR=1 npm test -- --reporter=progress"]}},"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098.git"},"author":{"name":"Francisco Cruz","email":"alu0101040288@ull.edu.es"},"license":"ISC","bugs":{"url":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098/issues"},"homepage":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098#readme","devDependencies":{"@types/chai":"^4.1.7","@types/mocha":"^5.2.6","@types/node":"^12.0.0","@types/pegjs":"^0.10.1","chai":"^4.2.0","chai-exclude":"^2.0.1","eslint":"^5.16.0","husky":"^2.2.0","mocha":"^6.1.4","nyc":"^14.1.0"},"dependencies":{"chalk":"^2.4.2","pegjs":"^0.10.0","xregexp":"^4.2.4"},"gitHead":"a1bf6b566d038c8a91f6b3c6811c2759404304bc","_id":"@alu0101040288/pegjs-infix2egg@0.1.3","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-QWbS/DObc998PHdH6DKAFX8RfVpza0ZBHO1va9ycVL+tOTc9TNxXkmzdpBr4W6g/7rFHMOViogLFl5qAMSVUdQ==","shasum":"f27b134b0d9a770a123d1471f5ad6425a99d04cf","tarball":"https://registry.npmjs.org/@alu0101040288/pegjs-infix2egg/-/pegjs-infix2egg-0.1.3.tgz","fileCount":13,"unpackedSize":100614,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0c7SCRA9TVsSAnZWagAAZAsQAJo0Vk8VyTV2MTH6NH9S\napgHt5po6XvvylEzzOU39jj+rTuYNqSw3SEjLaT8pWhs/sNYBsFwLOqZrVdi\nQMGdrRO4ST9pkjsVRe2m3iNsjR60Sl5MF6xof64zpjDXJQRAkXN1XlgtLkPO\nRmEjKU/0rlGirPy5no2uc5DfrcINnXn8DbBe0YLiRqJHmV4/YCBZ8rNnLbJ6\niQM3bBld499bF0D08L4v/5cU+SvuOmiRb0hkI1A0YQtBHotJcrKN5eietJEf\nB+h+rcq4qAZGkifa5sGZhgKAAu3dNHFswVymf4g6Y5ZJcIyVZA2mgJZUIh4w\nLI5hhAWBrhtSvIpBlgo1pvbVjk87Sx3czs3iO9CCgEIDcxO8rwPV4zmVrHyd\njrQe8DivQhWiu5oxFMvpK+JiwfjWvILUiszkr341Qn6OeP5YLN5xWtukH0Ce\nO7pwQEtsYuTdzik0Y6Iu2cEYYvG57ZLG205eUIQ30pIhUGNYB7K90UtCGAzk\nR4/sfj2yW8Un/iPaut8Jgb06Ft0Rgv/4XlcUJmkKRM6CRxGwtR/rphpgMxkR\nLAQGiXFRhRBNQMY3tfmBNGYrYFvmQqbD6BeS+I6WRcXDRhqvLQ4zmZye8hEa\ngKbfjsastXPYn15C3JY6jyJhOi5tBMkh1ad3i7Yo6NwD5utAv2PCwpa0zdrc\ndPp2\r\n=6WTn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGHd1430KiBAIDytomTxjv4TBq5H1doWaITn9nrpVN1gIhAKcKDV8dKul99pzZLx2BcEXiH8Tt536fdLqettGN2SCl"}]},"maintainers":[{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"}],"_npmUser":{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pegjs-infix2egg_0.1.3_1557253842043_0.12608592336068947"},"_hasShrinkwrap":false},"0.1.4":{"name":"@alu0101040288/pegjs-infix2egg","version":"0.1.4","description":"Este pequeño parser hecho con PEG.js es capaz de parsear una versión\r ligeramente modificada del lenguaje PL/0.","main":"src/index.js","bin":{"peg-infix2egg":"bin/pegjs-infix2egg.js"},"scripts":{"test":"mocha","test:watch":"mocha --watch --reporter min","test:cov":"nyc --reporter=text --reporter=html mocha && start ./coverage/index.html","coverage":"nyc --reporter=text mocha","gen:parser":"pegjs -o src/pl0-parser.js --allowed-start-rules program grammar/pl0.pegjs"},"husky":{"hooks":{"pre-commit":["npm run gen:parser && env FORCE_COLOR=1 npm test -- --reporter=progress"]}},"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098.git"},"author":{"name":"Francisco Cruz","email":"alu0101040288@ull.edu.es"},"license":"ISC","bugs":{"url":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098/issues"},"homepage":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098#readme","devDependencies":{"@types/chai":"^4.1.7","@types/mocha":"^5.2.6","@types/node":"^12.0.0","@types/pegjs":"^0.10.1","chai":"^4.2.0","chai-exclude":"^2.0.1","eslint":"^5.16.0","husky":"^2.2.0","mocha":"^6.1.4","nyc":"^14.1.0"},"dependencies":{"chalk":"^2.4.2","pegjs":"^0.10.0","xregexp":"^4.2.4"},"gitHead":"0e13b6ec71a687e82eab7bd57d20e08fa2380e61","_id":"@alu0101040288/pegjs-infix2egg@0.1.4","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-pMNDnhTfpBkfO7NKQgx/g0ddla9HzIt5nL9BCaqqZQYPZd/LclNA05+KKaut8jJCuVWTPURrdIA1wFBAF7To1g==","shasum":"c2f054b52932e0d73e79797d898ff0290cda2ac5","tarball":"https://registry.npmjs.org/@alu0101040288/pegjs-infix2egg/-/pegjs-infix2egg-0.1.4.tgz","fileCount":17,"unpackedSize":121254,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0dYLCRA9TVsSAnZWagAAtsoP/iH9Ariid9SrqqHFMXo3\nGAgUhZt1931Ll3evTcrNWLIUWtFswmi2sbCnLuZ/gFVg0nfrQsB3hEEi8NFH\nxR5H4u2CBFWPLRf6+jtL5/TFK3dC6ELkgqDCGot8SAonOdMRAFOL3AQyaJGj\njLuPIPVaUnKlBF6Q4kgpjm4mnvUkHgoD7rFSnc0Ri9VHdBJRlumXgZdGpXuG\nVubT0b/w/gqgKpfOvMgE4LfYSu17tW9pR1jD7Rdou6raoDzNWvgnFpey/w5E\nGzsFUBeh+LOWIziIDmPW25VH3RPJVPa0Jlm6rfdYTzZGhb9A4WV5O7N3XXDn\nALCmEz3yC9sSk2qzAg0pmJ6fKV3kBYsn+TNG7cp32DzKaVqdKOiYQxWbvZh8\nyac5fQx338FA373E7CSHks3r38II2/CaOx1G97v4vY1CDUJcJwtR2nZCBMUs\nEcCMIdj+LnP968dovk78gUIFxRHo2fwKXxL5fXhsLzwj1kS1Mx2pSDInr+vI\ngI+1zPSMyYxeii0i8BfueuxmTbjFFsws0Df/YcdUHOkkbUigdoFAljGe7M72\ny5k97L75GNydOJqLi5aYaKGQsth3ANQk63R2OczeXaMOQD0ft5wFUwWJFnwq\nBwlJ8yY4ErPZ7UGpFNrcf3UBjZQnSG05wgkNFif4vf0VvtzcfAjAV31ezwzv\nVamp\r\n=kbNL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG8W6U8og3jG/0Xd3xMcoNs3uV6SCMGREPhIdHKaGxzxAiEA9MgMWzVdjqxOCPsaDaUrZ4N4bWXd5k0ZO01yNW0Dg0o="}]},"maintainers":[{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"}],"_npmUser":{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pegjs-infix2egg_0.1.4_1557255690988_0.8092510059287175"},"_hasShrinkwrap":false},"0.1.5":{"name":"@alu0101040288/pegjs-infix2egg","version":"0.1.5","description":"Este pequeño parser hecho con PEG.js es capaz de parsear una versión\r ligeramente modificada del lenguaje PL/0.","main":"src/index.js","bin":{"peg-infix2egg":"bin/pegjs-infix2egg.js"},"scripts":{"test":"mocha","test:watch":"mocha --watch --reporter min","test:cov":"nyc --reporter=text --reporter=html mocha && start ./coverage/index.html","coverage":"nyc --reporter=text mocha","gen:parser":"pegjs -o src/pl0-parser.js --allowed-start-rules program grammar/pl0.pegjs"},"husky":{"hooks":{"pre-commit":["npm run gen:parser && env FORCE_COLOR=1 npm test -- --reporter=progress"]}},"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098.git"},"author":{"name":"Francisco Cruz","email":"alu0101040288@ull.edu.es"},"license":"ISC","bugs":{"url":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098/issues"},"homepage":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098#readme","devDependencies":{"@types/chai":"^4.1.7","@types/mocha":"^5.2.6","@types/node":"^12.0.0","@types/pegjs":"^0.10.1","chai":"^4.2.0","chai-exclude":"^2.0.1","eslint":"^5.16.0","husky":"^2.2.0","mocha":"^6.1.4","nyc":"^14.1.0"},"dependencies":{"chalk":"^2.4.2","pegjs":"^0.10.0","xregexp":"^4.2.4"},"gitHead":"2b269357de6457f2a03d6082776ee97111d4f547","_id":"@alu0101040288/pegjs-infix2egg@0.1.5","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Z2PFucf9MHGUtfCJouBzzXFdGHezWXFzfFRYuZYnWY8vScw9haLOLn/Am8kP9PtTipiccViKoLIGdXKyRNflJA==","shasum":"5bf942c1eb02b3e92ef4925b7f2f6e3fb1356df8","tarball":"https://registry.npmjs.org/@alu0101040288/pegjs-infix2egg/-/pegjs-infix2egg-0.1.5.tgz","fileCount":17,"unpackedSize":121278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0fBfCRA9TVsSAnZWagAAD38QAIpWM4BI3/TxRXtVI3Gh\nAxUV8LLWPK6pBBIFJVzgk2Xp0+MZ5pOS/I2YBrhKLeE8KxxlmjSbhYCt+u1w\nS/3TAgYti7BQDWz/sr96kpLblAkLckui/o7WveP8djRdgwbv+0UlLtIpuYyD\nw8hdrwst15U3v0hb7IgFJW+uczvdZyb/jZ/r/NDvbYVW68U5F4gxdQ73t4Tp\nVI1RFQMzlfU+5r2reQKB0tG1P6lnNZhY+aQlwPNH3fz/XUvYqdwjN94wUHsb\nKw4OufepJhWxwHppDeHTNQXexfHVmsPXSYexJvvwaZZ2OHHdlnqsCUCpxUPH\noTV4czXjQx3PVu2I06VPRehEe0rFDcXgNgpuN0gIeKp1deKeT5O1vf+ZhgkF\nwT7uT8l5xZ3cw8BbV/D62siWqaOMXwLPCp6i46GN37Dfq8lwfdEquBWsMt/0\nLKFClp+eDwpQKqyjioetvDnQ7CcZQh/iXt0nxPpA2YbGGGEYJHYx1YCx4PIX\nx3ssn6VX6WwKoLeBrXUxV7Aum+fvtqOUWRNP+4dykB8fhM9CjC25Xoc077Q8\nIrU72LY3yAe0pnknkNtMAFqA2Q4nZvMVD+5k6Esj4QLrZ8lLqY8BvzWGaDUf\n3NRij1D91vA5n3gq3UmlM1jsO+zK/OxU8GAi9iEt2oTeinW09t8IjNUCzp69\n85Zh\r\n=ygc5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDr7GU0o8iHfmwH7ScJtQwtlKnGpuhzKnueBvo3qhLpBAiAUzupSn1rDPR2uzCR3t5t9KZ5TZ53jH2n9leLd+mfwqQ=="}]},"maintainers":[{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"}],"_npmUser":{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pegjs-infix2egg_0.1.5_1557262430324_0.9256442947520918"},"_hasShrinkwrap":false},"0.2.0":{"name":"@alu0101040288/pegjs-infix2egg","version":"0.2.0","description":"Este pequeño parser hecho con PEG.js es capaz de parsear una versión\r ligeramente modificada del lenguaje PL/0. El AST generado por el parser\r es directamente ejecutable por la máquina virtual de Egg.","main":"src/index.js","bin":{"peg-infix2egg":"bin/pegjs-infix2egg.js"},"scripts":{"test":"mocha","test:watch":"mocha --watch --reporter min","test:cov":"nyc --reporter=text --reporter=html mocha && start ./coverage/index.html","coverage":"nyc --reporter=text mocha","gen:parser":"pegjs -o src/pl0-parser.js --allowed-start-rules program grammar/pl0.pegjs"},"husky":{"hooks":{"pre-commit":["npm run gen:parser && env FORCE_COLOR=1 npm test -- --reporter=progress"]}},"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098.git"},"author":{"name":"Francisco Cruz","email":"alu0101040288@ull.edu.es"},"license":"ISC","bugs":{"url":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098/issues"},"homepage":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098#readme","devDependencies":{"@types/chai":"^4.1.7","@types/mocha":"^5.2.6","@types/node":"^12.0.0","@types/pegjs":"^0.10.1","chai":"^4.2.0","chai-exclude":"^2.0.1","eslint":"^5.16.0","husky":"^2.2.0","mocha":"^6.1.4","nyc":"^14.1.0"},"dependencies":{"chalk":"^2.4.2","pegjs":"^0.10.0","xregexp":"^4.2.4"},"gitHead":"da208c26cd5ad90c2bb0efd0b3528867f1473a8a","_id":"@alu0101040288/pegjs-infix2egg@0.2.0","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-7Z8oedEfPwo8YPM1RiykZZfgirUhG3ayUdZtYHK5OGkN1PLXCAAIA0gSmGwedBoult1p9Ct1xiOiSobycUBj4A==","shasum":"212a88101217fff95048c5885e703bca6325b14a","tarball":"https://registry.npmjs.org/@alu0101040288/pegjs-infix2egg/-/pegjs-infix2egg-0.2.0.tgz","fileCount":18,"unpackedSize":130270,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1HW2CRA9TVsSAnZWagAAQ0oP/3AFxJzVlx7DZI8meGhJ\n585tCy7TLr2eYb+1DrufrEINVp8Y9ttie+bPt24957nWW7D6UDlrZFjzCFYU\nKKmRZJFeBc4lQjh6KQ7KK2YNwOjg1R/HiRWKpFLRnoPlhU/2oCQNtn7vBpCr\nTjI7LYn8ORVgaQ518c8BzkSmeyES9RfgxUBKIoB9kz9ZTxbflVhQ06abPUjZ\neEkY1dr04R9Sjm4BDQVFvXUV95u65M7/8YUyWvAGaCLKieny1uBC70iYM70f\nIGSvAIanj6NYVtZPFS+rXCq0aeKEXtzPC0vN7NIsAsrZ11pm7/0YxW6fcVQQ\nhqo+fqpMhv8onBTq8+FJNktWxGdIT7LjXXOwfmDfbfeOjUpespeXCFAhulkW\n51PkHlrGZk1o3+cw8j7uEySWmk/RTyCsdO4s/OV9Phny1hVHKBzjH6fajQoX\n+gcv3dZgKNwFWi37k9DFxms6L2y4BScucV/jJ613rKhj0R9h6Kh5he0viyd7\n2zfgoe1RwxbWdRUXQjUfiIV2r9M3HcZwWTjwyKxlSZeG4lYVqxg7jj0n1OF8\nENNec0Sa3tTeKdQQZyTSxYnTtzjAYnzCvSkkRHcIJj+FLjhaiXDwKsaR+lme\nLV8kHLeU62Nf8Q8xln/9J9gX2YoAS/wJmeCvz20h0PR2RlYTEO38lUEeLW7I\ntVeZ\r\n=ORrL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIERR6lfHU9hjl0b6KtDFtApRZbKoXg3LulMPZmuSmS2aAiEAkp9qsdRjVF4r1DmUz9XzNLgQp2RJ+9F6VFsN1CgAvZc="}]},"maintainers":[{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"}],"_npmUser":{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pegjs-infix2egg_0.2.0_1557427637911_0.15872513325671478"},"_hasShrinkwrap":false},"0.2.1":{"name":"@alu0101040288/pegjs-infix2egg","version":"0.2.1","description":"Este pequeño parser hecho con PEG.js es capaz de parsear una versión\r ligeramente modificada del lenguaje PL/0. El AST generado por el parser\r es directamente ejecutable por la máquina virtual de Egg.","main":"src/index.js","bin":{"peg-infix2egg":"bin/pegjs-infix2egg.js"},"scripts":{"test":"mocha","test:watch":"mocha --watch --reporter min","test:cov":"nyc --reporter=text --reporter=html mocha && start ./coverage/index.html","coverage":"nyc --reporter=text mocha","gen:parser":"pegjs -o src/pl0-parser.js --allowed-start-rules program grammar/pl0.pegjs"},"husky":{"hooks":{"pre-commit":["npm run gen:parser && env FORCE_COLOR=1 npm test -- --reporter=progress"]}},"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098.git"},"author":{"name":"Francisco Cruz","email":"alu0101040288@ull.edu.es"},"license":"ISC","bugs":{"url":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098/issues"},"homepage":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098#readme","devDependencies":{"@types/chai":"^4.1.7","@types/mocha":"^5.2.6","@types/node":"^12.0.0","@types/pegjs":"^0.10.1","chai":"^4.2.0","chai-exclude":"^2.0.1","eslint":"^5.16.0","husky":"^2.2.0","mocha":"^6.1.4","nyc":"^14.1.0"},"dependencies":{"chalk":"^2.4.2","pegjs":"^0.10.0","xregexp":"^4.2.4"},"gitHead":"da208c26cd5ad90c2bb0efd0b3528867f1473a8a","_id":"@alu0101040288/pegjs-infix2egg@0.2.1","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-MDb7qkGrA/yVHWqmus/BIdbYAIPxSS9X+2sP57AhpTTlqL2iLPzZFiiyf7VXUxgVGYPXNh4U9xqoCB5rfXg37A==","shasum":"e0c4eca92fa2602a3a83e56a94db268a9dafae8a","tarball":"https://registry.npmjs.org/@alu0101040288/pegjs-infix2egg/-/pegjs-infix2egg-0.2.1.tgz","fileCount":18,"unpackedSize":130310,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1SlkCRA9TVsSAnZWagAARmIP/2e1DVQrK7rxc1oA2dmd\nQKHEG8Rn7YYcTmh2dd/7zPlmGWq2jGYVdHUP13ARa1o5q8if3wrJoshVhttq\nW005YZed02lAW93dErLFz3MuNZi/fZAr92AgomBlGHS0JvNYrsYd3mCcO4ks\nMV94tvwserV1lMy0ARIvdWgMxfVyPXv1LnK7V1M9/OVA+5PKVH3wbi2b4kCn\nfe+pBRhRBSJwFMMMt+n0KYhz9glq+Ot401px3rZQUa822wp2l6CHYi42Y6rD\nVTQNOLtZvURMAQ9EMD53fkDkUeTdzWkfABp62DTobVrsUaFkwehR5h3bTxCd\nlf+L/M8xOEsUlkxMf9HX6sQmvypT/oL1lFJD/2DLiOmOqo8Rb9RALFDpripl\nQ02BXmENZaspvu6xbJK79BN/lBRedY8t9aAw9tsLBhHcirqwfN/WYV+yNoWQ\nDd/gvxH0NnxvAHTketRgDXQGMcVZAPjfCvRAC7LyBngQYI2h0sJb6uehDUem\nxPlohtOZ+kYS5GX9LSNDLWR/7cmi3MUU9oxtxQ7IGkzxKUkxA5KN5ZjnNmJz\n0etZQ3G4tq3gLzXs9EvyA4nBpAb8QW3lerSMGNs7IeL5OiSeMoKUKpiGaI++\nXcr91uzFPA7sLY7lGpVkAwpPx4DUQBMq/7UiCNJZs4D8MVIKTfqRILiOwfC8\nFV5h\r\n=+cJa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEx68ZGXgEEvaP8plzXabcqsWIUzp0aACraSsRmcPPFlAiBKtOYhiPoUXhMWql2hCoVdy3Z7f29kzJyjkvRSNiQ7qw=="}]},"maintainers":[{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"}],"_npmUser":{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pegjs-infix2egg_0.2.1_1557473635587_0.11563940206914669"},"_hasShrinkwrap":false},"0.2.2":{"name":"@alu0101040288/pegjs-infix2egg","version":"0.2.2","description":"Este pequeño parser hecho con PEG.js es capaz de parsear una versión\r ligeramente modificada del lenguaje PL/0. El AST generado por el parser\r es directamente ejecutable por la máquina virtual de Egg.","main":"src/pl0-parser.js","bin":{"peg-infix2egg":"bin/pegjs-infix2egg.js"},"scripts":{"test":"mocha","test:watch":"mocha --watch --reporter min","test:cov":"nyc --reporter=text --reporter=html mocha && start ./coverage/index.html","coverage":"nyc --reporter=text mocha","gen:parser":"pegjs -o src/pl0-parser.js --allowed-start-rules program grammar/pl0.pegjs"},"husky":{"hooks":{"pre-commit":["env FORCE_COLOR=1 npm test -- --reporter=progress"]}},"repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098.git"},"author":{"name":"Francisco Cruz","email":"alu0101040288@ull.edu.es"},"license":"ISC","bugs":{"url":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098/issues"},"homepage":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098#readme","devDependencies":{"@types/chai":"^4.1.7","@types/mocha":"^5.2.6","@types/node":"^12.0.0","@types/pegjs":"^0.10.1","chai":"^4.2.0","chai-exclude":"^2.0.1","eslint":"^5.16.0","husky":"^2.2.0","mocha":"^6.1.4","nyc":"^14.1.0"},"dependencies":{"chalk":"^2.4.2","commander":"^2.20.0","pegjs":"^0.10.0","xregexp":"^4.2.4"},"gitHead":"45912d2729ca2547f7594bbe9a5a38872c071c24","_id":"@alu0101040288/pegjs-infix2egg@0.2.2","_nodeVersion":"12.1.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-X9ELQNX3yAzW9j8QPoiaz6oD2Uf6u5BCfkQkF73XnH3kFh612JEiPoJSZHUw1n453kLAEAIVdvqSZE8cgmVcdw==","shasum":"f05c5e4f0e7c331434cb5ef321e442cfc305b720","tarball":"https://registry.npmjs.org/@alu0101040288/pegjs-infix2egg/-/pegjs-infix2egg-0.2.2.tgz","fileCount":22,"unpackedSize":148966,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3YhpCRA9TVsSAnZWagAAHQ0P/jntVb83KaKmzxWuLXsB\nAPPAXAwBhyrY4U0IvsG7Igpypt4otJpMAfjsuUK2lWmb3vuizg6KAucXTQ/0\nsoHeu7GwWxcp7JycXGOrQf4s2ajUnKfqpLtL05CSXPFedWUo3qQshyhTq+su\nPqLzlcoLWHka5aFFd245Ce57EPlME0eB6FyI+C9kajmRE4TnDADmSog03GwW\nuYeS9KXfn03fUqig1BWLbacA4pps5hq1ihxbb/sA2KW6rNy+KL2uQ0ivpPhr\nnuOHK0LUyKv/XVHufsfqXYnzkj6daBHuGlWfTwZGlreFWGoMPPepMLzHbuWd\nOFqrhagTQHjjm9HSfAxoM5TJea6PNGg54Qyo4mFCpIyJHqsCqoZMfXsV362D\nSSiVqAv6wvSqGWxI5uHlQsnrj4nmJzViQWi5BNNO4GRp95+l6vmMxjmFcA7m\n8kesw28nOF8/glEDbWZZy3Wpi7vn0aCMs7zkxjGAgjOLlGm12C0SECrkntX8\nt/4u3eN4BNKudfKy1a00HCJExTnuB4bFm7eVeK98fUoWwug2zyLorCh64kH/\nWchr6+xqmWM65XSHgi3dvl5I+JjuI6vBm17CsFim2Zax1IIFauhGhlfmHhee\n+XcqoZq36x1Bz7hPUay7UEixgGkrQMbVMCYZAMScCE7zPhob7EJhL1o29jBa\nJLHH\r\n=3BCr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQyRWkFNv+Lkn0tMsko587ix8GeUOYQezoIFCjGkeACgIhAJd1rmO/O+YpianPYoKUK0dZF78kKoGg4iHO6jFmKgUQ"}]},"maintainers":[{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"}],"_npmUser":{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pegjs-infix2egg_0.2.2_1558022249329_0.22221274904639454"},"_hasShrinkwrap":false}},"time":{"created":"2019-05-07T08:48:08.820Z","0.1.0":"2019-05-07T08:48:09.041Z","modified":"2022-04-04T13:40:59.682Z","0.1.1":"2019-05-07T08:50:34.716Z","0.1.2":"2019-05-07T08:55:09.084Z","0.1.3":"2019-05-07T18:30:42.227Z","0.1.4":"2019-05-07T19:01:31.185Z","0.1.5":"2019-05-07T20:53:50.460Z","0.2.0":"2019-05-09T18:47:18.074Z","0.2.1":"2019-05-10T07:33:55.746Z","0.2.2":"2019-05-16T15:57:29.510Z"},"maintainers":[{"name":"alu0101040288","email":"alu0101040288@ull.edu.es"}],"description":"Este pequeño parser hecho con PEG.js es capaz de parsear una versión\r ligeramente modificada del lenguaje PL/0. El AST generado por el parser\r es directamente ejecutable por la máquina virtual de Egg.","homepage":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098#readme","repository":{"type":"git","url":"git+https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098.git"},"author":{"name":"Francisco Cruz","email":"alu0101040288@ull.edu.es"},"bugs":{"url":"https://github.com/ULL-ESIT-PL-1819/p9-t4-peg-infix2egg-cruzelante098/issues"},"license":"ISC","readme":"# Parser en PEG.js para una versión ligeramente distinta de PL/0\r\n\r\nEste pequeño parser hecho con PEG.js es capaz de parsear una versión\r\nligeramente modificada del lenguaje PL/0. El AST generado por el parser\r\nes directamente ejecutable por la máquina virtual de Egg.\r\n\r\n## Detalles de implementación\r\n\r\nLa gramática puede encontrarse en `grammar/pl0.pegjs`.\r\n\r\nPEG.js no permite la declaración separada de elementos terminales y no terminales,\r\npor lo que el parser y el lexer deben ir juntos en un mismo archivo. En mi caso,\r\nlos he separado con comentarios para mejorar un poco la legibilidad.\r\n\r\nLos tokens están declarados de manera que admitan espacios delante y detrás. Por ejemplo:\r\n\r\n```pegjs\r\nEND       = _ ('END'       / 'end')       _\r\nCALL      = _ ('CALL'      / 'call')      _\r\nCONST     = _ ('CONST'     / 'const')     _\r\nVAR       = _ ('VAR'       / 'var')       _\r\nPROCEDURE = _ ('PROCEDURE' / 'procedure') _\r\n\r\nCOMPARISON_OP   = _ op:('!=' / '<=' / '>=' / '=' / '<' / '>') _ { return makeWord(op); }\r\nADD_SUB_OP      = _ op:('+' / '-') _                            { return makeWord(op); }\r\nMULT_DIV_MOD_OP = _ op:('*' / '/' / '%') _                      { return makeWord(op); }\r\n```\r\n\r\nUna pequeña diferencia entre los parsers PEG y otros como los generados por ANTLR es que\r\nel caracter para representar un OR es distinto (`|` por `/`), y también vale la pena\r\nmencionar que PEG sigue una evaluación de cortocircuito *(short-circuit evaluation)* que\r\nlos otros parsers no, en el sentido en que en un `OR`, si la primera expresión encaja el\r\nparser seguirá por ahí, sin comprobar el resto de posibles opciones. Con respecto al\r\nejemplo anterior:\r\n\r\n```pegjs\r\nCOMPARISON_OP   = _ op:('!=' / '<=' / '>=' / '=' / '<' / '>') _ { return makeWord(op); }\r\n```\r\n\r\nSi el operador en cuestión es `!=`, no se molestará en comprobar el resto de operadores.\r\nEsto implica que no habrá ambiguedades aunque la gramática sea ambigua.\r\n\r\n---\r\n\r\nCon respecto al parser, la regla de comienzo es `program`, que admite un bloque o más,\r\nsiendo un bloque un conjunto de declaraciones de variables, constantes, procedimientos y\r\nuna posible sentencia. Un ejemplo:\r\n\r\n```pascal\r\nVAR x, y;\r\n\r\nPROCEDURE square\r\nBEGIN\r\n   x := x * 2;\r\nEND;\r\n\r\nBEGIN\r\n   x := 2;\r\n   y := 0;\r\n   WHILE y < 10 DO\r\n   BEGIN\r\n      call print(x);\r\n      call square();\r\n      y := y + 1;\r\n   END;\r\n   x := x;\r\nEND;\r\n```\r\n\r\nLos elementos terminales y no terminales usados en las reglas del parser escritas en PEG\r\npermiten ser *capturadas* anteponiendo un identificador y dos puntos delante de ellas.\r\nLa ventaja de esto es que luego se pueden realizar acciones semánticas para\r\ngenerar el AST. Por ejemplo:\r\n\r\n```pegjs\r\nprocedure\r\n    = PROCEDURE id:ID BEGIN block:block END\r\n    {\r\n         return makeApply(\"def\",\r\n                          id,\r\n                          makeApply(\"fun\", block));\r\n    }\r\n```\r\n\r\nEn este caso, la regla `procedure` está compuesta de la palabra clave `PROCEDURE`, seguida\r\nde un identificador y la palabra clave `BEGIN`, seguida de un bloque y la palabra clave `END`.\r\n\r\nComo lo que nos interesa es el nombre del procedimiento y el bloque, es lo que capturamos.\r\nCon ello luego podemos crear una acción semántica que genera un `apply` de Egg que define\r\nuna función con el ID del procedimiento como el primer argumento y un conjunto de sentencias\r\n(que sería el bloque capturado) como el segundo argumento.\r\n","readmeFilename":"README.md"}