{"bugs":{"url":"http://github.com/zaach/reflect.js/issues"},"dist":{"shasum":"845c3ce79a557dd7694015dd8930805b6e8c50ed","tarball":"https://registry.npmjs.org/reflect/-/reflect-0.1.1.tgz","integrity":"sha512-/xao2eSZ6SR5bcrKVhSm5omBE3f4TUZtf29qZF33HqixKy4PkTWOMieNwNrU0nU1VzoIevAkxT3vXl39ZqvpsQ==","signatures":[{"sig":"MEQCIDKiE3qE1pVMxCVzDgOhEQZhNr31p/gIU1R5KMC8e5ctAiBw1vfdR268ce9PQbXfERtCepKprD7hR7dK7UJo6HX7nA==","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.17","dependencies":{},"_defaultsLoaded":true,"devDependencies":{"jison":"0.3.9","uglify-js":"*"},"_engineSupported":true,"optionalDependencies":{},"_id":"reflect@0.1.1","version":"0.1.1"}