{"_id":"reflect","_rev":"39-fc22cb34056e6728b3781c238a56eab1","name":"reflect","dist-tags":{"latest":"0.1.3"},"versions":{"0.0.2":{"author":{"name":"Zach Carter","email":"zach@carter.name","url":"http://zaa.ch"},"name":"reflect","description":"JavaScript parser adhering to Mozilla's parser API","version":"0.0.2","keywords":["parser","reflect","javascript"],"repository":{"type":"git","url":"git://github.com/zaach/reflect.js.git"},"bugs":{"url":"http://github.com/zaach/reflect.js/issues"},"main":"dist/reflect.js","engines":{"node":"0.4 || 0.5"},"devDependencies":{"jison":"*","uglify-js":"*"},"scripts":{"test":"node test/reflect-parse.js"},"dependencies":{},"_id":"reflect@0.0.2","_engineSupported":true,"_npmVersion":"1.0.3","_nodeVersion":"v0.4.7","_defaultsLoaded":true,"dist":{"shasum":"6091775788ef42cf30b50c674377d92270f0a181","tarball":"https://registry.npmjs.org/reflect/-/reflect-0.0.2.tgz","integrity":"sha512-6kU9+wAz79Pw6reQCzHlknE4WpsmYl0z+vlatsRmHlWUosBl9tuMSXUX+JBWaOpKedmzgMiyeS/UQXun/IUOAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID9QJrZQhqCQvSX/ukDs9jIUJHAJN7KvNkm/TWdtRVSyAiBVujVs+K/6vLgXftuzYs8ZjG0rlMWVNzlCg1GKJcMGdw=="}]},"directories":{}},"0.0.3":{"author":{"name":"Zach Carter","email":"zach@carter.name","url":"http://zaa.ch"},"name":"reflect","description":"JavaScript parser adhering to Mozilla's parser API","version":"0.0.3","keywords":["parser","reflect","javascript"],"repository":{"type":"git","url":"git://github.com/zaach/reflect.js.git"},"bugs":{"url":"http://github.com/zaach/reflect.js/issues"},"main":"dist/reflect.js","engines":{"node":"0.4 || 0.5"},"devDependencies":{"jison":"*","uglify-js":"*"},"scripts":{"test":"node test/reflect-parse.js"},"dependencies":{},"_id":"reflect@0.0.3","_engineSupported":true,"_npmVersion":"1.0.3","_nodeVersion":"v0.4.7","_defaultsLoaded":true,"dist":{"shasum":"6274b3bd9311837cd1153a311f5583261bb6692d","tarball":"https://registry.npmjs.org/reflect/-/reflect-0.0.3.tgz","integrity":"sha512-6Qp3XmmlbOXSznTBkkYPvvtI1klWndQWoU1grNvCHElqvERIZgs0sREF6ulrRex0QpF/aFjtLA30kr3x9NY4lg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBSOBUHrzQKVyQxFB1nsLz9a1nKPCXJeJ6BJWuANxCCPAiBKgSLjBKaoJgAXz/uP370Tn7bew6D6/5CFsMIHhh8Q1A=="}]},"directories":{}},"0.0.4":{"author":{"name":"Zach Carter","email":"zach@carter.name","url":"http://zaa.ch"},"name":"reflect","description":"JavaScript parser adhering to Mozilla's parser API","version":"0.0.4","keywords":["parser","reflect","javascript"],"repository":{"type":"git","url":"git://github.com/zaach/reflect.js.git"},"bugs":{"url":"http://github.com/zaach/reflect.js/issues"},"main":"dist/reflect.js","engines":{"node":"0.4 || 0.5"},"devDependencies":{"jison":"*","uglify-js":"*"},"scripts":{"test":"node test/reflect-parse.js"},"dependencies":{},"_id":"reflect@0.0.4","_engineSupported":true,"_npmVersion":"1.0.3","_nodeVersion":"v0.4.7","_defaultsLoaded":true,"dist":{"shasum":"4bb9419ff9d43c6a3a555628d8c5bfde0c0fc7f6","tarball":"https://registry.npmjs.org/reflect/-/reflect-0.0.4.tgz","integrity":"sha512-HCDWnvn7M1mICUpubqxe7VzLdpu6RDMDuGNKr/ax2TJP/Xysi1DjN7YzFAisBCTU9i4CqYfjvk1fCYZusGR/uA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtbVnY1MfSxxPwp8I/lmzHMmk6ws3MbxwMBDZGDYb8hAIgJAxYz0NyL1KQk+35Yffw/U85I169N6pYaZyjZwoA9+g="}]},"directories":{}},"0.0.5":{"author":{"name":"Zach Carter","email":"zach@carter.name","url":"http://zaa.ch"},"name":"reflect","description":"JavaScript parser adhering to Mozilla's parser API","version":"0.0.5","keywords":["parser","reflect","javascript"],"repository":{"type":"git","url":"git://github.com/zaach/reflect.js.git"},"bugs":{"url":"http://github.com/zaach/reflect.js/issues"},"main":"dist/reflect.js","engines":{"node":"0.4 || 0.5"},"devDependencies":{"jison":"*","uglify-js":"*"},"scripts":{"test":"node test/reflect-parse.js"},"dependencies":{},"_npmJsonOpts":{"file":"/Users/zach/.npm/reflect/0.0.5/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"reflect@0.0.5","_engineSupported":true,"_npmVersion":"1.0.17","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"09381e3af5d270fe937426b7c1e52319ee225096","tarball":"https://registry.npmjs.org/reflect/-/reflect-0.0.5.tgz","integrity":"sha512-xdCLQZsbX2m2YYpxGUfRkdWpdcTrKKNFipmi58jBXbDfx5/0lGmM3TwsMHF3M59FFoIWcuxQst0KPFxzvZkZng==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGdWzXiUPr9IjXa5QdWRBkQYPpTpz5tSJwrCrIK62d2QIhANiPNlZTVk1GYKTtbxNMrZwr2gZLLag5HKKrD3WO/EW0"}]},"directories":{}},"0.0.6":{"author":{"name":"Zach Carter","email":"zach@carter.name","url":"http://zaa.ch"},"name":"reflect","description":"JavaScript parser adhering to Mozilla's parser API","version":"0.0.6","keywords":["parser","ast","reflect","javascript"],"repository":{"type":"git","url":"git://github.com/zaach/reflect.js.git"},"bugs":{"url":"http://github.com/zaach/reflect.js/issues"},"main":"dist/reflect.js","engines":{"node":">= 0.4"},"devDependencies":{"jison":"*","uglify-js":"*"},"scripts":{"test":"node test/all-tests.js"},"dependencies":{},"_npmUser":{"name":"zaach","email":"zack.carter@gmail.com"},"_id":"reflect@0.0.6","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"76e3047a41409ec43a270f27c32d0b8505763cb2","tarball":"https://registry.npmjs.org/reflect/-/reflect-0.0.6.tgz","integrity":"sha512-Ew5LA6XbEf/BlFNsD+7jISshvNDKqhONikcjSEzrdcbspHaX8d0/Gv7OnY/IUiDKFM3pb8RDMW+uCgDnNg+PxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGqQyWEn748FEQC3iOmBgJr9j3oCJ2xeDea9dHmEe/bQIhAKGwh8jGKtRwW4ZtJjKweWHOaSmJ5vuHIX0gPFnu9XRh"}]},"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","maintainers":[{"name":"zaach","email":"zack.carter@gmail.com"}]},"0.0.7":{"author":{"name":"Zach Carter","email":"zach@carter.name","url":"http://zaa.ch"},"name":"reflect","description":"JavaScript parser adhering to Mozilla's parser API","version":"0.0.7","keywords":["parser","ast","reflect","javascript"],"repository":{"type":"git","url":"git://github.com/zaach/reflect.js.git"},"bugs":{"url":"http://github.com/zaach/reflect.js/issues"},"main":"dist/reflect.js","engines":{"node":">= 0.4"},"devDependencies":{"jison":"*","uglify-js":"*"},"scripts":{"test":"node test/all-tests.js"},"dependencies":{},"optionalDependencies":{},"_npmUser":{"name":"zaach","email":"zack.carter@gmail.com"},"_id":"reflect@0.0.7","_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"6666edcb40feacb1204ec00899e28c715daf417c","tarball":"https://registry.npmjs.org/reflect/-/reflect-0.0.7.tgz","integrity":"sha512-Knwbri8VohFJO24J4SPpyZb/ZLXLH7wuKmdyrsNCrjl3Yw4dyPcwFM14gBlyI0LiP8r1bn+AEDGrW+Ci+V1NxA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkv8oRhM5qDyiAP+4OfZgLk3C0uDZuy4GPCUvqxVLLGAIhAIBoFGPUxczAsLI/V4FAeFQ/Xr+mn8lGkmyTaYDwx1Lq"}]},"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","maintainers":[{"name":"zaach","email":"zack.carter@gmail.com"}]},"0.1.1":{"author":{"name":"Zach Carter","email":"zach@carter.name","url":"http://zaa.ch"},"name":"reflect","description":"JavaScript parser adhering to Mozilla's parser API","version":"0.1.1","keywords":["parser","ast","reflect","javascript"],"repository":{"type":"git","url":"git://github.com/zaach/reflect.js.git"},"bugs":{"url":"http://github.com/zaach/reflect.js/issues"},"main":"dist/reflect.js","engines":{"node":">= 0.4"},"devDependencies":{"jison":"0.3.9","uglify-js":"*"},"scripts":{"test":"node test/all-tests.js"},"dependencies":{},"optionalDependencies":{},"_npmUser":{"name":"zaach","email":"zack.carter@gmail.com"},"_id":"reflect@0.1.1","_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"845c3ce79a557dd7694015dd8930805b6e8c50ed","tarball":"https://registry.npmjs.org/reflect/-/reflect-0.1.1.tgz","integrity":"sha512-/xao2eSZ6SR5bcrKVhSm5omBE3f4TUZtf29qZF33HqixKy4PkTWOMieNwNrU0nU1VzoIevAkxT3vXl39ZqvpsQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDKiE3qE1pVMxCVzDgOhEQZhNr31p/gIU1R5KMC8e5ctAiBw1vfdR268ce9PQbXfERtCepKprD7hR7dK7UJo6HX7nA=="}]},"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","maintainers":[{"name":"zaach","email":"zack.carter@gmail.com"}]},"0.1.2":{"author":{"name":"Zach Carter","email":"zach@carter.name","url":"http://zaa.ch"},"name":"reflect","description":"JavaScript parser adhering to Mozilla's parser API","version":"0.1.2","keywords":["parser","ast","reflect","javascript"],"repository":{"type":"git","url":"git://github.com/zaach/reflect.js.git"},"bugs":{"url":"http://github.com/zaach/reflect.js/issues"},"main":"dist/reflect.js","engines":{"node":">= 0.4"},"devDependencies":{"jison":"0.3.9","uglify-js":"*"},"scripts":{"test":"node test/all-tests.js"},"dependencies":{},"optionalDependencies":{},"_npmUser":{"name":"zaach","email":"zack.carter@gmail.com"},"_id":"reflect@0.1.2","_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"c7cd93f1370dd88a9b595aa27ec06965514b34a7","tarball":"https://registry.npmjs.org/reflect/-/reflect-0.1.2.tgz","integrity":"sha512-k583MnXZvlLHHREC85/9LmUSy9UEFIxrmiXNTzqJK3QScqvkE/bT7oCdmcxwIFtRPsM98Ni6oJHpvCc5z0IYgQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHNWXI9lbTZl47KJ/rVmkoNXkzlO8saJhwbXrQ85DFdKAiBmBUVz8HOC5jBx55zn+kK0LWFw+K8bYHy+6qWqWojf2w=="}]},"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","maintainers":[{"name":"zaach","email":"zack.carter@gmail.com"}]},"0.1.3":{"author":{"name":"Zach Carter","email":"zach@carter.name","url":"http://zaa.ch"},"name":"reflect","description":"JavaScript parser adhering to Mozilla's parser API","version":"0.1.3","keywords":["parser","ast","reflect","javascript"],"repository":{"type":"git","url":"git://github.com/zaach/reflect.js.git"},"bugs":{"url":"http://github.com/zaach/reflect.js/issues"},"main":"dist/reflect.js","engines":{"node":">= 0.4"},"devDependencies":{"jison":"0.3.9","uglify-js":"*"},"scripts":{"test":"node test/all-tests.js"},"dependencies":{},"optionalDependencies":{},"_npmUser":{"name":"zaach","email":"zack.carter@gmail.com"},"_id":"reflect@0.1.3","_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.19","_defaultsLoaded":true,"dist":{"shasum":"6ae7332fe3c97a578772d39b86f96f9462d715fe","tarball":"https://registry.npmjs.org/reflect/-/reflect-0.1.3.tgz","integrity":"sha512-2c5cybmpJqWWnz7PviqZZXGtYBQ3EaFAjNFPug/5tnFvC53WXPoNjpLlgzr9W3VyzY8Em9DWump40PySN1sKrw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTs84wlP9cg1AnhUVglV0N4QPTBQDTuVUWz9lqaKvCcwIgYmNP2W3OoDE0nRpZoiXwbQhRSq5z6YY6c1UBEOZKQ9c="}]},"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","maintainers":[{"name":"zaach","email":"zack.carter@gmail.com"}]}},"maintainers":[{"name":"zaach","email":"zack.carter@gmail.com"}],"time":{"modified":"2022-06-26T10:37:49.521Z","created":"2011-04-11T23:13:10.391Z","0.0.1":"2011-04-11T23:13:10.693Z","0.0.2":"2011-06-16T22:48:33.523Z","0.0.3":"2011-06-28T09:10:14.754Z","0.0.4":"2011-07-06T18:07:19.373Z","0.0.5":"2011-07-07T07:33:35.853Z","0.0.6":"2012-06-06T03:48:13.938Z","0.0.7":"2012-06-06T04:01:50.603Z","0.1.1":"2012-06-17T00:18:35.901Z","0.1.2":"2012-06-19T08:53:27.853Z","0.1.3":"2012-06-27T05:47:32.093Z"},"author":{"name":"Zach Carter","email":"zach@carter.name","url":"http://zaa.ch"},"description":"JavaScript parser adhering to Mozilla's parser API","repository":{"type":"git","url":"git://github.com/zaach/reflect.js.git"}}