{
  "_args": [
    [
      {
        "raw": "acorn-walk@^6.1.0",
        "scope": null,
        "escapedName": "acorn-walk",
        "name": "acorn-walk",
        "rawSpec": "^6.1.0",
        "spec": ">=6.1.0 <7.0.0",
        "type": "range"
      },
      "E:\\Mine\\Project\\git\\laya\\dawawa\\layaairdoc_cmd\\node_modules\\acorn-node"
    ]
  ],
  "_from": "acorn-walk@^6.1.0",
  "_hasShrinkwrap": false,
  "_id": "acorn-walk@6.1.1",
  "_location": "/acorn-walk",
  "_nodeVersion": "10.11.0",
  "_npmOperationalInternal": {
    "host": "s3://npm-registry-packages",
    "tmp": "tmp/acorn-walk_6.1.1_1542099228973_0.491250253564689"
  },
  "_npmUser": {
    "name": "marijn",
    "email": "marijnh@gmail.com"
  },
  "_npmVersion": "6.4.1",
  "_phantomChildren": {},
  "_requested": {
    "raw": "acorn-walk@^6.1.0",
    "scope": null,
    "escapedName": "acorn-walk",
    "name": "acorn-walk",
    "rawSpec": "^6.1.0",
    "spec": ">=6.1.0 <7.0.0",
    "type": "range"
  },
  "_requiredBy": [
    "/acorn-node"
  ],
  "_resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz",
  "_shasum": "d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913",
  "_shrinkwrap": null,
  "_spec": "acorn-walk@^6.1.0",
  "_where": "E:\\Mine\\Project\\git\\laya\\dawawa\\layaairdoc_cmd\\node_modules\\acorn-node",
  "bugs": {
    "url": "https://github.com/acornjs/acorn/issues"
  },
  "dependencies": {},
  "description": "ECMAScript (ESTree) AST walker",
  "devDependencies": {},
  "directories": {},
  "dist": {
    "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==",
    "shasum": "d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913",
    "tarball": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz",
    "fileCount": 8,
    "unpackedSize": 95740,
    "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6pEdCRA9TVsSAnZWagAA3v0QAIl5YksIo1U0+joKuD/2\n2W8TTBIwK2prDL+PpnP9bp7eCMFkh3oMip82ENzApni/Cjq/QejQZaOXW1Xv\n/opEPCvGYH4YCB4ykqWccfQBMu/ihZyG4DJHzsDyJ552isWkRbHgI8vZnb6V\ndEdzcyuZ1b0X/+40Blo1LQCPlE1cmUS0aMjAESeCS7VmjkzSbo1n9/20LgIf\nUNAvBcYtC/NGQ31z5ZSzhBLjr9E42bpJfKRKxUT1iNl3TUdzh+a/f5yyrof3\njE2F38/isziXHJu2QsVSmhBVqIxHqM0mz/RI1q6Yh/3yIIQU/0DvX9Eu5qc3\nZ87P674eGw1/pzkV2a5pm405tw9W6YIV0UNj//SLxWoeveLVl5X7WmLB2MTt\na69E3dUAk2HdlH+tc4M0Cqw2Ku6yu7vmrrs5OwZHJIt407iKX9anDHWWa2P/\n69Whc2idmizspsqJadciqXjXATNzMT1PBMj81cp03tWdBh78Yoq2EVts4hS6\nGg6uwMDwIw/9XD4DB/tLUTrBWEuN0Xk4R61J43Uh71Gr5SCXy/3FhKz21Aax\nSBNAWca4Hy8eO6g2awY7nKhvFkNXtciLJOhorrDVf1DQhiAocPIAXGVviwVx\nLw/2nxF2ClMXSNwgZIhYoiXRAJswxxwhsLIOuvMNudpWweCuPP3cbOBHAVkV\n/KrY\r\n=7LVC\r\n-----END PGP SIGNATURE-----\r\n"
  },
  "engines": {
    "node": ">=0.4.0"
  },
  "homepage": "https://github.com/acornjs/acorn",
  "license": "MIT",
  "main": "dist/walk.js",
  "maintainers": [
    {
      "name": "Marijn Haverbeke",
      "email": "marijnh@gmail.com",
      "url": "https://marijnhaverbeke.nl"
    },
    {
      "name": "Ingvar Stepanyan",
      "email": "me@rreverser.com",
      "url": "https://rreverser.com/"
    },
    {
      "name": "Adrian Heine",
      "url": "http://adrianheine.de"
    }
  ],
  "module": "dist/walk.mjs",
  "name": "acorn-walk",
  "optionalDependencies": {},
  "readme": "# Acorn AST walker\n\nAn abstract syntax tree walker for the\n[ESTree](https://github.com/estree/estree) format.\n\n## Community\n\nAcorn is open source software released under an\n[MIT license](https://github.com/acornjs/acorn/blob/master/LICENSE).\n\nYou are welcome to\n[report bugs](https://github.com/acornjs/acorn/issues) or create pull\nrequests on [github](https://github.com/acornjs/acorn). For questions\nand discussion, please use the\n[Tern discussion forum](https://discuss.ternjs.net).\n\n## Installation\n\nThe easiest way to install acorn is from [`npm`](https://www.npmjs.com/):\n\n```sh\nnpm install acorn-walk\n```\n\nAlternately, you can download the source and build acorn yourself:\n\n```sh\ngit clone https://github.com/acornjs/acorn.git\ncd acorn\nnpm install\n```\n\n## Interface\n\nAn algorithm for recursing through a syntax tree is stored as an\nobject, with a property for each tree node type holding a function\nthat will recurse through such a node. There are several ways to run\nsuch a walker.\n\n**simple**`(node, visitors, base, state)` does a 'simple' walk over a\ntree. `node` should be the AST node to walk, and `visitors` an object\nwith properties whose names correspond to node types in the [ESTree\nspec](https://github.com/estree/estree). The properties should contain\nfunctions that will be called with the node object and, if applicable\nthe state at that point. The last two arguments are optional. `base`\nis a walker algorithm, and `state` is a start state. The default\nwalker will simply visit all statements and expressions and not\nproduce a meaningful state. (An example of a use of state is to track\nscope at each point in the tree.)\n\n```js\nconst acorn = require(\"acorn\")\nconst walk = require(\"acorn-walk\")\n\nwalk.simple(acorn.parse(\"let x = 10\"), {\n  Literal(node) {\n    console.log(`Found a literal: ${node.value}`)\n  }\n})\n```\n\n**ancestor**`(node, visitors, base, state)` does a 'simple' walk over\na tree, building up an array of ancestor nodes (including the current node)\nand passing the array to the callbacks as a third parameter.\n\n```js\nconst acorn = require(\"acorn\")\nconst walk = require(\"acorn-walk\")\n\nwalk.ancestor(acorn.parse(\"foo('hi')\"), {\n  Literal(_, ancestors) {\n    console.log(\"This literal's ancestors are:\", ancestors.map(n => n.type))\n  }\n})\n```\n\n**recursive**`(node, state, functions, base)` does a 'recursive'\nwalk, where the walker functions are responsible for continuing the\nwalk on the child nodes of their target node. `state` is the start\nstate, and `functions` should contain an object that maps node types\nto walker functions. Such functions are called with `(node, state, c)`\narguments, and can cause the walk to continue on a sub-node by calling\nthe `c` argument on it with `(node, state)` arguments. The optional\n`base` argument provides the fallback walker functions for node types\nthat aren't handled in the `functions` object. If not given, the\ndefault walkers will be used.\n\n**make**`(functions, base)` builds a new walker object by using the\nwalker functions in `functions` and filling in the missing ones by\ntaking defaults from `base`.\n\n**full**`(node, callback, base, state)` does a 'full' walk over a\ntree, calling the callback with the arguments (node, state, type) for\neach node\n\n**fullAncestor**`(node, callback, base, state)` does a 'full' walk\nover a tree, building up an array of ancestor nodes (including the\ncurrent node) and passing the array to the callbacks as a third\nparameter.\n\n```js\nconst acorn = require(\"acorn\")\nconst walk = require(\"acorn-walk\")\n\nwalk.full(acorn.parse(\"1 + 1\"), node => {\n  console.log(`There's a ${node.type} node at ${node.ch}`)\n})\n```\n\n**findNodeAt**`(node, start, end, test, base, state)` tries to locate\na node in a tree at the given start and/or end offsets, which\nsatisfies the predicate `test`. `start` and `end` can be either `null`\n(as wildcard) or a number. `test` may be a string (indicating a node\ntype) or a function that takes `(nodeType, node)` arguments and\nreturns a boolean indicating whether this node is interesting. `base`\nand `state` are optional, and can be used to specify a custom walker.\nNodes are tested from inner to outer, so if two nodes match the\nboundaries, the inner one will be preferred.\n\n**findNodeAround**`(node, pos, test, base, state)` is a lot like\n`findNodeAt`, but will match any node that exists 'around' (spanning)\nthe given position.\n\n**findNodeAfter**`(node, pos, test, base, state)` is similar to\n`findNodeAround`, but will match all nodes *after* the given position\n(testing outer nodes before inner nodes).\n",
  "readmeFilename": "README.md",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/acornjs/acorn.git"
  },
  "scripts": {
    "prepare": "cd ..; npm run build:walk"
  },
  "version": "6.1.1"
}
