{"bugs":{"url":"http://github.com/zaach/reflect.js/issues"},"dist":{"shasum":"6ae7332fe3c97a578772d39b86f96f9462d715fe","tarball":"https://registry.npmjs.org/reflect/-/reflect-0.1.3.tgz","integrity":"sha512-2c5cybmpJqWWnz7PviqZZXGtYBQ3EaFAjNFPug/5tnFvC53WXPoNjpLlgzr9W3VyzY8Em9DWump40PySN1sKrw==","signatures":[{"sig":"MEUCIQDTs84wlP9cg1AnhUVglV0N4QPTBQDTuVUWz9lqaKvCcwIgYmNP2W3OoDE0nRpZoiXwbQhRSq5z6YY6c1UBEOZKQ9c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/reflect.js","name":"reflect","author":{"url":"http://zaa.ch","name":"Zach Carter","email":"zach@carter.name"},"readme":"![Reflect.js](https://github.com/zaach/reflect.js/raw/master/reflectjs.png \"Reflect.js\")\n\nReflect.js is a JavaScript (ES3 compatible) implementation of [Mozilla's Parser API](https://developer.mozilla.org/en/SpiderMonkey/Parser_API). It does not currently support some of Mozilla's extensions, such as generators, list comprehensions, `for each`, E4X, etc. but may eventually support ones that are, or become Harmony proposals.\nBuilders are also supported.\n\nParsing really large files can be slow, for reasons [articulated](http://www.andychu.net/ecmascript/RegExp-Enhancements.html) by Andy Chu.\n\n\nDownload\n========\nYou can download a minified-standalone version of reflect.js to embed in web pages [here](https://raw.github.com/zaach/reflect.js/master/standalone/reflect.js).\n\nInstall\n=======\nReflect.js is available as a CommonJS module for Node.js. Simply install it with npm:\n\n    npm install reflect\n\nUse\n=======\n\n    var Reflect = require('reflect');\n\n    var ast = Reflect.parse(\"var a = 4 + 7\");\n\n    console.log(Reflect.stringify(ast, \"  \"));\n\nRefer to [Mozilla's docs](https://developer.mozilla.org/en/SpiderMonkey/Parser_API) for details on the AST interface.\n\nBuilders\n=======\nThe optional [builder](https://developer.mozilla.org/en/SpiderMonkey/Parser_API#Builder_objects) parameter to Reflect.parse() makes it possible to construct user-specified data from the parser, rather than the default Node objects.\n\nThe reflect.js module exports the [default builder](https://raw.github.com/zaach/reflect.js/master/lib/nodes.js) so you can redefine only the node constructors you care about and leave the rest default.\n\n    var Reflect = require('reflect');\n    var builder = Reflect.builder;\n\n    // redefine callback for variable declarations\n    builder[\"variableDeclaration\"] = function (kind, declarators, loc) { ... };\n\n    var ast = Reflect.parse(\"var a = 4 + 7\", {builder: builder});\n\nLicense\n=======\nMIT X Licensed.\n","engines":{"node":">= 0.4"},"scripts":{"test":"node test/all-tests.js"},"_npmUser":{"name":"zaach","email":"zack.carter@gmail.com"},"keywords":["parser","ast","reflect","javascript"],"repository":{"url":"git://github.com/zaach/reflect.js.git","type":"git"},"_npmVersion":"1.1.21","description":"JavaScript parser adhering to Mozilla's parser API","maintainers":[{"name":"zaach","email":"zack.carter@gmail.com"}],"_nodeVersion":"v0.6.19","dependencies":{},"_defaultsLoaded":true,"devDependencies":{"jison":"0.3.9","uglify-js":"*"},"_engineSupported":true,"optionalDependencies":{},"_id":"reflect@0.1.3","version":"0.1.3"}