{"_id":"@atlisp/parser","_rev":"9-578af3752be87ada9a02dd2ad3b3ec2a","name":"@atlisp/parser","dist-tags":{"latest":"0.1.9"},"versions":{"0.1.0":{"name":"@atlisp/parser","version":"0.1.0","license":"MIT","_id":"@atlisp/parser@0.1.0","maintainers":[{"name":"vitalgg","email":"vitalgg@gmail.com"}],"dist":{"shasum":"67491c7f26008b8c6c6c845df4176f21e6937e0d","tarball":"https://registry.npmjs.org/@atlisp/parser/-/parser-0.1.0.tgz","fileCount":6,"integrity":"sha512-XiODSx7kFubNB9zTV5zwB2OMrW9wYc/PBFD5GFqMvHp/vGTk5/4CYt3LR/v5h+abYVU1ATJe4rtnYdArOkd6vQ==","signatures":[{"sig":"MEQCIBg0sIeEdgdOdyQPnSun2aUgEGSHK18h2ZbS5IUQhMJIAiAtEWUiB+Wd9PKxGRpF7IM32nu2Ch3LPUn4JXj7UhmCkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21931},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"5d029b90694fd0272384dbec6b94af382f2ebbd6","scripts":{"build":"tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"vitalgg","email":"vitalgg@gmail.com"},"_npmVersion":"11.13.0","description":"S-expression parser for AutoLISP — AST types, tree walker, visitor pattern","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/parser_0.1.0_1782949434728_0.23898813444784994","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@atlisp/parser","version":"0.1.1","license":"MIT","_id":"@atlisp/parser@0.1.1","maintainers":[{"name":"vitalgg","email":"vitalgg@gmail.com"}],"dist":{"shasum":"381757b2cf07d4282fadaf6fa189ffaaac1c3acf","tarball":"https://registry.npmjs.org/@atlisp/parser/-/parser-0.1.1.tgz","fileCount":4,"integrity":"sha512-3kSuifQ7/8v2xrF1TfrOAwxnRt5UmebDNHL0fwh+QMjy+Pa8tAcH/n5dCjwcmwQ+jdu7T3iU8to1dSzj+tRNXg==","signatures":[{"sig":"MEQCIHskh0TOFUSX4xz23j2J6B+9zwdI23xB40jsPMEV8Mz/AiA4wjiR01XD1WJTqcKH+PgV6qZYK1IaVogpsar2dHOVYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14090},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"ecda3a04b4c1cfe7c24b82e7a4327ac5b286a591","scripts":{"build":"tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"vitalgg","email":"vitalgg@gmail.com"},"_npmVersion":"10.7.0","description":"S-expression parser for AutoLISP — AST types, tree walker, visitor pattern","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/parser_0.1.1_1783126628704_0.7266916053627228","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@atlisp/parser","version":"0.1.2","license":"MIT","_id":"@atlisp/parser@0.1.2","maintainers":[{"name":"vitalgg","email":"vitalgg@gmail.com"}],"dist":{"shasum":"c4e8fba2854b5c1f99a106706f7d39418924e781","tarball":"https://registry.npmjs.org/@atlisp/parser/-/parser-0.1.2.tgz","fileCount":4,"integrity":"sha512-KejMiYxeXYfN1b0TQ5aGnZsE0tOedV3/dL6Nysj9kSt6cGupXZB/1Sxm5/nbxyNgRYnDsy9XdwOxwpdzZ3H2fg==","signatures":[{"sig":"MEUCIFCrOoCaZ090ewQDkhMAyk4JU4mphZaPmqn72aeWF24iAiEArsfPTEE6mQiYjLT0n4mgCNHgB3mz0igwhVf4oZuB/eE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14090},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"5d4fc4fad9aa9cead92aa2a517b03cd4f4ae2abf","scripts":{"build":"tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"vitalgg","email":"vitalgg@gmail.com"},"_npmVersion":"11.13.0","description":"S-expression parser for AutoLISP — AST types, tree walker, visitor pattern","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/parser_0.1.2_1783209255175_0.665094192611914","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@atlisp/parser","version":"0.1.3","license":"MIT","_id":"@atlisp/parser@0.1.3","maintainers":[{"name":"vitalgg","email":"vitalgg@gmail.com"}],"bin":{"atlisp-parser":"dist/cli.js"},"dist":{"shasum":"0bbe622f98416f299d7c18aaeed20dce0b47ccac","tarball":"https://registry.npmjs.org/@atlisp/parser/-/parser-0.1.3.tgz","fileCount":8,"integrity":"sha512-3N1u4luynjLEEu4v6X+P2CH3z/l6zewTMsUtxpdypXSsLbtI/nQ8OMLk3mHyoPCdlbhgy3GgIYSabdMOKvLISw==","signatures":[{"sig":"MEUCIQDrKF6q127u8oifWvVKYL1XVDSNX+LQW4BTMY68NBuRewIgfkJSrtsIbsVjsumNNp5jbS+hkfMVMr8hG1oET9X178Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51152},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"e07cd54087a66812da798a0e56fd27a21b7910e2","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"vitalgg","email":"vitalgg@gmail.com"},"_npmVersion":"10.7.0","description":"S-expression parser for AutoLISP — AST types, tree walker, visitor pattern","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","typescript":"^5","@types/node":"^18"},"_npmOperationalInternal":{"tmp":"tmp/parser_0.1.3_1783301696576_0.7549456061509654","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@atlisp/parser","version":"0.1.5","license":"MIT","_id":"@atlisp/parser@0.1.5","maintainers":[{"name":"vitalgg","email":"vitalgg@gmail.com"}],"bin":{"atlisp-parser":"dist/cli.js"},"dist":{"shasum":"78d74865c4a685a9ca5962d64c52d16df4f34444","tarball":"https://registry.npmjs.org/@atlisp/parser/-/parser-0.1.5.tgz","fileCount":8,"integrity":"sha512-VNhNKm/uJDWhvV3fSwn+4q93EscEiNzWckjJEKH79CJbJ1bkbujUftMFHKrLyxNhAe4ONu6W9BBj6HDF697e6A==","signatures":[{"sig":"MEUCIQCLlDsDOwk98qIBgvqHspe1V0wGot4EsOPDHAEI6DH9/QIgT+8PpSaZ7miBFeAoEX5iJ230MbjUS3uNjiDtRQowl1Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51546},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"0dc810d2e1db62528cdb38ccc5fe1d63f2acf6b0","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"vitalgg","email":"vitalgg@gmail.com"},"_npmVersion":"11.13.0","description":"S-expression parser for AutoLISP — AST types, tree walker, visitor pattern","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","typescript":"^5","@types/node":"^22"},"_npmOperationalInternal":{"tmp":"tmp/parser_0.1.5_1783461091328_0.01310578208991986","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@atlisp/parser","version":"0.1.6","license":"MIT","_id":"@atlisp/parser@0.1.6","maintainers":[{"name":"vitalgg","email":"vitalgg@gmail.com"}],"bin":{"atlisp-parser":"dist/cli.js"},"dist":{"shasum":"b4a3fcf9fcf82247c88b548d3e5af04daf960eee","tarball":"https://registry.npmjs.org/@atlisp/parser/-/parser-0.1.6.tgz","fileCount":8,"integrity":"sha512-+2oSIvNrgwHPPSAXI06Z5IAwtH7hxJRV+rQ2W61jPPxDuCBgqvYct2Lf9LaVtL1VGDqmgzQB6RRMd9pCYRJWxA==","signatures":[{"sig":"MEQCIDwkPzgBIG9enogcAODgXM4VxCf8xgtJWw/sQMWGK52PAiBXGbJhnP+QZEoPJ+UMTACAyZrsMw1NKQZV7kM83JsEQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51555},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"6ecb888a131e34da8920ec53a43e8333793a3073","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"vitalgg","email":"vitalgg@gmail.com"},"_npmVersion":"11.13.0","description":"S-expression parser for AutoLISP — AST types, tree walker, visitor pattern","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^26.1.0"},"_npmOperationalInternal":{"tmp":"tmp/parser_0.1.6_1783462283258_0.6630557040904093","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@atlisp/parser","version":"0.1.7","license":"MIT","_id":"@atlisp/parser@0.1.7","maintainers":[{"name":"vitalgg","email":"vitalgg@gmail.com"}],"bin":{"atlisp-parser":"dist/cli.js"},"dist":{"shasum":"cfe474d3759b30b9ffe7bed1d76d4e0906e0400a","tarball":"https://registry.npmjs.org/@atlisp/parser/-/parser-0.1.7.tgz","fileCount":8,"integrity":"sha512-tLlPwrZvGQ7J/c1S3W9lyGwpAUe/cSRaGgweFQ4Y73mQrtmYr/W/SrPdGmcuS9B90CXF/Bfz7/3923qFQveVKA==","signatures":[{"sig":"MEUCIAmVGs7WnE32KT8tYGiQ516UI9anER2F6jIgX3VKWbxrAiEAuMKSGkRLm5StyY0woFLkhnl/P/kObOVICXE1aiqRae4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53033},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"0ea1a5b49c748dc8c9083779ad115212448f8848","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"vitalgg","email":"vitalgg@gmail.com"},"_npmVersion":"10.7.0","description":"S-expression parser for AutoLISP — AST types, tree walker, visitor pattern","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^26.1.0"},"_npmOperationalInternal":{"tmp":"tmp/parser_0.1.7_1784030583969_0.9921393619820713","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@atlisp/parser","version":"0.1.8","license":"MIT","_id":"@atlisp/parser@0.1.8","maintainers":[{"name":"vitalgg","email":"vitalgg@gmail.com"}],"bin":{"atlisp-parser":"dist/cli.js"},"dist":{"shasum":"66cd8940b3aa9babcbcdc539ac675bf927bf4429","tarball":"https://registry.npmjs.org/@atlisp/parser/-/parser-0.1.8.tgz","fileCount":8,"integrity":"sha512-/Bqq3NzF5p1Vu0OSoU+Tbn8Cu/v6dSeAXpzpjmd2XeLSH9k6drImL8hY+pBmJ2m2TJdOa8sQiOsPVJJhdUvNuA==","signatures":[{"sig":"MEUCIQCC+u5crfL8ff4ZcLlZdBLvtbrbRwQP2zTOg0IUNd3x7AIgWXU6LBA9x2eWGJBKT7PFkhYX4pXch8/WRC6Zal4whk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53081},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"27a451ad976c728687c17f53f43dc76a216d58a4","scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"vitalgg","email":"vitalgg@gmail.com"},"_npmVersion":"10.7.0","description":"S-expression parser for AutoLISP — AST types, tree walker, visitor pattern","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"^6.0.3","@types/node":"^26.1.0"},"_npmOperationalInternal":{"tmp":"tmp/parser_0.1.8_1784709985226_0.19752322756270568","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@atlisp/parser","version":"0.1.9","description":"S-expression parser for AutoLISP — AST types, tree walker, visitor pattern","main":"dist/index.js","types":"dist/index.d.ts","bin":{"atlisp-parser":"dist/cli.js"},"scripts":{"build":"tsc","clean":"rm -rf dist","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit","lint":"eslint src/","format":"prettier --check src/","format:fix":"prettier --write src/","checkall":"npm run typecheck && npm run lint && npm run test","prepublishOnly":"npm run build && npm run test","prepack":"npm run build"},"devDependencies":{"@types/node":"^26.1.0","typescript":"^6.0.3","vitest":"^4.1.10"},"engines":{"node":">=18"},"license":"MIT","_id":"@atlisp/parser@0.1.9","gitHead":"333b2bd8d032a61ad32f2eb92f93a8641ea933de","_nodeVersion":"24.15.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-GwMxhP7a6GgGmnabizeKOQIaEa5+oPsHhhNRYFKFKRZf2JKa4S5+WiMni1wKKZTnDYDckwkvXLZUjadaCbGEuQ==","shasum":"79932ab4620e0f05a683f31b169817782d34352a","tarball":"https://registry.npmjs.org/@atlisp/parser/-/parser-0.1.9.tgz","fileCount":22,"unpackedSize":80592,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFob1Q1aGesOt0OQHbutSHzK3SpKRWY8tEMptRVUkXjeAiAo+qSOWXAz09sqhHf0xZzdFfMiGPdbaxiD0lXnJ7j0cA=="}]},"_npmUser":{"name":"vitalgg","email":"vitalgg@gmail.com"},"directories":{},"maintainers":[{"name":"vitalgg","email":"vitalgg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/parser_0.1.9_1785202034811_0.276940781092321"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-01T23:43:54.558Z","modified":"2026-07-28T01:27:15.158Z","0.1.0":"2026-07-01T23:43:54.895Z","0.1.1":"2026-07-04T00:57:08.838Z","0.1.2":"2026-07-04T23:54:15.320Z","0.1.3":"2026-07-06T01:34:56.702Z","0.1.5":"2026-07-07T21:51:31.458Z","0.1.6":"2026-07-07T22:11:23.403Z","0.1.7":"2026-07-14T12:03:04.117Z","0.1.8":"2026-07-22T08:46:25.363Z","0.1.9":"2026-07-28T01:27:14.983Z"},"license":"MIT","description":"S-expression parser for AutoLISP — AST types, tree walker, visitor pattern","maintainers":[{"name":"vitalgg","email":"vitalgg@gmail.com"}],"readme":"# @atlisp/parser\n\nS-expression parser for AutoLISP — AST types, tree walker, visitor pattern.\n\n## Install\n\n```sh\nnpm install @atlisp/parser\n```\n\n## Usage\n\n```ts\nimport { parseAst, astWalk, astIsList, astIsSymbol, AstVisitor } from '@atlisp/parser'\n\nconst ast = parseAst('(+ 1 2 (* 3 4))')\n\n// Walk all nodes\nfor (const node of astWalk(ast)) {\n  console.log(node.type, node.pos)\n}\n\n// Check node types\nif (astIsList(ast)) { /* ... */ }\nif (astIsSymbol(node, 'defun')) { /* ... */ }\n\n// Visitor pattern\nconst visitor = new AstVisitor()\nvisitor.on('defun', (node) => {\n  console.log('Found defun:', node.children?.[1]?.name)\n})\nvisitor.run(ast)\n```\n\n## API\n\n| Function | Description |\n|----------|-------------|\n| `parseAst(content)` | Parse entire input into an AST root node |\n| `parseContent(content)` | Parse input, return top-level forms as array |\n| `astChildren(node)` | Get children of a node |\n| `astIsSymbol(node, name?)` | Type guard for symbol nodes |\n| `astIsList(node, head?)` | Type guard for list nodes |\n| `astWalk(node)` | Generator yielding all descendants depth-first |\n| `astFindAll(node, predicate)` | Find all nodes matching a predicate |\n| `astFindListWithHead(node, headName)` | Find lists with a given head symbol |\n| `AstVisitor` | Class with `on(name, handler)` / `run(root)` |\n\n## Build\n\n```sh\nnpm run build    # tsc\nnpm run typecheck # tsc --noEmit\n```\n","readmeFilename":"README.md"}