{"_id":"parser-toolkit","_rev":"12-ff1acfd54587a5528f90b860bf71b331","name":"parser-toolkit","description":"Toolkit to make streamable scanners and parsers.","dist-tags":{"latest":"0.0.5"},"versions":{"0.0.1":{"name":"parser-toolkit","version":"0.0.1","description":"Toolkit to make streamable scanners and parsers.","homepage":"http://github.com/uhop/parser-toolkit","bugs":{"url":"http://github.com/uhop/parser-toolkit/issues"},"directories":{"test":"tests"},"dependencies":{},"devDependencies":{},"scripts":{"test":"node tests/test_jsonsc.js"},"github":"http://github.com/uhop/parser-toolkit","repository":{"type":"git","url":"git://github.com/uhop/parser-toolkit.git"},"keywords":["scanner","lexer","tokenizer","parser"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"licenses":[{"type":"New BSD","url":"http://github.com/uhop/dcl/blob/master/LICENSE"}],"contributors":[{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"}],"_id":"parser-toolkit@0.0.1","dist":{"shasum":"f490737d907586b4bf0b57101abacd5a5f5b7740","tarball":"https://registry.npmjs.org/parser-toolkit/-/parser-toolkit-0.0.1.tgz","integrity":"sha512-l6zxEPMkLIs444FA8WAYXrF1m31YBqN8yP64CFofSj9E/kwRjILTM8220inl2F1Z3RRaYrO57W+ZnKS1kLARSQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHXUF7jrJgUndJHA2nL7P5GXeF1ip9Cc7hQgFDrShXHvAiB4fcBar46anz0maTgiG+ZCf2NwRRYmaZ5mYtBkaMpCIA=="}]},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"elazutkin","email":"eugene@lazutkin.com"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}]},"0.0.2":{"name":"parser-toolkit","version":"0.0.2","description":"Toolkit to make streamable scanners and parsers.","homepage":"http://github.com/uhop/parser-toolkit","bugs":{"url":"http://github.com/uhop/parser-toolkit/issues"},"directories":{"test":"tests"},"dependencies":{},"devDependencies":{},"scripts":{"test":"node tests/test_jsonsc.js"},"github":"http://github.com/uhop/parser-toolkit","repository":{"type":"git","url":"git://github.com/uhop/parser-toolkit.git"},"keywords":["scanner","lexer","tokenizer","parser"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"licenses":[{"type":"New BSD","url":"http://github.com/uhop/parser-toolkit/blob/master/LICENSE"}],"contributors":[{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"}],"_id":"parser-toolkit@0.0.2","dist":{"shasum":"c15673b8181910965b0c887754be6ffbea39b61a","tarball":"https://registry.npmjs.org/parser-toolkit/-/parser-toolkit-0.0.2.tgz","integrity":"sha512-NUt1umfdl73Qyk4kC91WG42PwmLemWpX0b0lbPa9T4QWv8ukvvqa/ylbhPBoD/H7MDQVF6WHCVctR/4AGoByjA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBaNwAytUhI9MaDBTswhUWlFDt7rVyGRyp6w52Zw7kvIAiB8PSXLtn8SIgYJSa7UZBiiKXIjJIm3E62OLvTV2cEUCg=="}]},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"elazutkin","email":"eugene@lazutkin.com"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}]},"0.0.3":{"name":"parser-toolkit","version":"0.0.3","description":"Toolkit to make streamable scanners and parsers.","homepage":"http://github.com/uhop/parser-toolkit","bugs":{"url":"http://github.com/uhop/parser-toolkit/issues"},"directories":{"test":"tests"},"dependencies":{},"devDependencies":{},"scripts":{"test":"node tests/test_jsonsc.js"},"github":"http://github.com/uhop/parser-toolkit","repository":{"type":"git","url":"git://github.com/uhop/parser-toolkit.git"},"keywords":["scanner","lexer","tokenizer","parser"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"licenses":[{"type":"New BSD","url":"http://github.com/uhop/parser-toolkit/blob/master/LICENSE"}],"contributors":[{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"}],"_id":"parser-toolkit@0.0.3","dist":{"shasum":"6fa9dc67ce17a4c7f676638130d0718d7f8a65be","tarball":"https://registry.npmjs.org/parser-toolkit/-/parser-toolkit-0.0.3.tgz","integrity":"sha512-9o1SpE1BL/ov7qoKIvVjiHJy2UqdZSESFgSIzkW31CNvFmC4VqWqRKE9CBCXb5p9ORcEj68Eb6NPBxqJsSzTsA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICbsIqWReBoQDfpNULJPOXg161uoX9D1rxem5a6UAgBbAiAR2oCJE27826m41zOTmlYpYUDzYAnbjhMPUVfLWITw4A=="}]},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"elazutkin","email":"eugene@lazutkin.com"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}]},"0.0.4":{"name":"parser-toolkit","version":"0.0.4","description":"Toolkit to make streamable scanners and parsers.","homepage":"http://github.com/uhop/parser-toolkit","bugs":{"url":"http://github.com/uhop/parser-toolkit/issues"},"directories":{"test":"tests"},"dependencies":{},"devDependencies":{},"scripts":{"test":"node tests/test_jsonsc.js"},"github":"http://github.com/uhop/parser-toolkit","repository":{"type":"git","url":"git://github.com/uhop/parser-toolkit.git"},"keywords":["scanner","lexer","tokenizer","parser"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"licenses":[{"type":"New BSD","url":"http://github.com/uhop/parser-toolkit/blob/master/LICENSE"}],"contributors":[{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"}],"_id":"parser-toolkit@0.0.4","dist":{"shasum":"3f529cc2669e33b46aec5b8443d9084b14213585","tarball":"https://registry.npmjs.org/parser-toolkit/-/parser-toolkit-0.0.4.tgz","integrity":"sha512-8eCicPJbjKFw7o7GR97WctuVqW9Xu3eMdv11A+QVi+XOhn/KSJbL+U0tt5vflPobGhSxTP87656CLyZY/SHHbg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHo3GmhhCuuXeoy5dWccjeHXo8lWVpOxJzIIXkHImCm+AiEAx2V5zhSmcnvAvVITi4px6cUo7NlKo8ymp3YtVPIWbR8="}]},"_from":".","_npmVersion":"1.3.5","_npmUser":{"name":"elazutkin","email":"eugene@lazutkin.com"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}]},"0.0.5":{"name":"parser-toolkit","version":"0.0.5","description":"Toolkit to make streamable scanners and parsers.","homepage":"http://github.com/uhop/parser-toolkit","bugs":{"url":"http://github.com/uhop/parser-toolkit/issues"},"directories":{"test":"tests"},"dependencies":{},"devDependencies":{},"scripts":{"test":"node tests/test_jsonsc.js"},"github":"http://github.com/uhop/parser-toolkit","repository":{"type":"git","url":"git://github.com/uhop/parser-toolkit.git"},"keywords":["scanner","lexer","tokenizer","parser"],"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"license":"BSD-3-Clause","contributors":[{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"}],"gitHead":"9197cbc0815061a9833088d1a8e9a2dda75fc68f","_id":"parser-toolkit@0.0.5","_shasum":"ec4b61729c86318b56ea971bfba6b3c672d62c01","_from":".","_npmVersion":"2.13.3","_nodeVersion":"3.2.0","_npmUser":{"name":"elazutkin","email":"eugene@lazutkin.com"},"maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"dist":{"shasum":"ec4b61729c86318b56ea971bfba6b3c672d62c01","tarball":"https://registry.npmjs.org/parser-toolkit/-/parser-toolkit-0.0.5.tgz","integrity":"sha512-2qmwVDrbAQptyfuTOjzbJM5NUnL5rgrfGRWGpPT+b+uRBRzq+mwws3o/C9vDsAQvKs6Wj3/4+rUe7zGdmQQzpA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnbh+gcdrzxBJivlt4EJXPxbXGpnaVhvDIPuT5rGGEqQIga9M6K5GSAXTxLU47YOm6yVagGUBzutq+4Jbpuwj+oRc="}]}}},"readme":"# parser-toolkit\n\n[![Build status][travis-image]][travis-url]\n[![Dependencies][deps-image]][deps-url]\n[![devDependencies][dev-deps-image]][dev-deps-url]\n[![NPM version][npm-image]][npm-url]\n\n\nparser-toolkit is a collection of scanner and parser components, which allows fast creation of efficient parser for custom languages. The main point of a toolkit is to support streamable chunked input.\n\nA standard-compiant implementation of JSON is included as a test. This is how JSON is defined:\n\n```js\nvar ws           = {id: \"ws\",           pattern: /\\s{1,256}/},\n    // numeric tokens\n    nonZero      = {id: \"nonZero\",      pattern: /[1-9]/},\n    exponent     = {id: \"exponent\",     pattern: /[eE]/},\n    numericChunk = {id: \"numericChunk\", pattern: /\\d{1,256}/},\n    // string tokens\n    plainChunk   = {id: \"plainChunk\",   pattern: /[^\\\"\\\\]{1,256}/},\n    escapedChars = {id: \"escapedChars\",\n        pattern: /\\\\(?:[bfnrt\\\"\\\\\\/]|u[0-9a-fA-F]{4})/};\n\nvar json = new Grammar({\n    main:   [rule(\"ws\"), rule(\"value\")],\n    ws:     repeat(ws),\n    value:  [\n        any(rule(\"object\"), rule(\"array\"), rule(\"string\"),\n            rule(\"number\"), [\"-\", rule(\"number\")],\n            \"true\", \"false\", \"null\"),\n        rule(\"ws\")\n    ],\n    object: [\n        \"{\",\n            rule(\"ws\"),\n            maybe(rule(\"pair\"),\n                repeat(\",\", rule(\"ws\"), rule(\"pair\"))),\n        \"}\"\n    ],\n    pair:   [\n        rule(\"string\"), rule(\"ws\"), \":\", rule(\"ws\"), rule(\"value\")\n    ],\n    array:  [\n        \"[\",\n            rule(\"ws\"),\n            maybe(rule(\"value\"),\n                repeat(\",\", rule(\"ws\"), rule(\"value\"))),\n        \"]\"\n    ],\n    string: [\"\\\"\", repeat(any(plainChunk, escapedChars)), \"\\\"\"],\n    number: [\n        any(\"0\", [nonZero, repeat(numericChunk)]),\n        maybe(\".\", repeat(numericChunk)),\n        maybe(exponent, maybe(any(\"-\", \"+\")),\n            numericChunk, repeat(numericChunk))\n    ]\n});\n```\n\nThe whole definition is taken verbatim from [JSON.org](http://json.org/).\n\nThe test file `sample.json` is copied as is from an open source project [json-simple](https://code.google.com/p/json-simple/) under Apache License 2.0.\n\n[npm-image]:      https://img.shields.io/npm/v/parser-toolkit.svg\n[npm-url]:        https://npmjs.org/package/parser-toolkit\n[deps-image]:     https://img.shields.io/david/uhop/parser-toolkit.svg\n[deps-url]:       https://david-dm.org/uhop/parser-toolkit\n[dev-deps-image]: https://img.shields.io/david/dev/uhop/parser-toolkit.svg\n[dev-deps-url]:   https://david-dm.org/uhop/parser-toolkit#info=devDependencies\n[travis-image]:   https://img.shields.io/travis/uhop/parser-toolkit.svg\n[travis-url]:     https://travis-ci.org/uhop/parser-toolkit\n","maintainers":[{"name":"elazutkin","email":"eugene@lazutkin.com"}],"time":{"modified":"2022-06-23T11:30:07.937Z","created":"2013-07-31T06:01:43.932Z","0.0.1":"2013-07-31T06:01:44.409Z","0.0.2":"2013-08-14T21:39:57.910Z","0.0.3":"2013-08-16T00:08:09.274Z","0.0.4":"2013-08-16T02:18:47.533Z","0.0.5":"2015-08-31T05:07:59.566Z"},"author":{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"},"repository":{"type":"git","url":"git://github.com/uhop/parser-toolkit.git"},"homepage":"http://github.com/uhop/parser-toolkit","keywords":["scanner","lexer","tokenizer","parser"],"contributors":[{"name":"Eugene Lazutkin","email":"eugene.lazutkin@gmail.com","url":"http://lazutkin.com/"}],"bugs":{"url":"http://github.com/uhop/parser-toolkit/issues"},"license":"BSD-3-Clause","readmeFilename":"README.md"}