{"_id":"@aethex.os/lang","_rev":"3-f3bce5f4ade3b92012e21ff5a3d9caea","name":"@aethex.os/lang","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@aethex.os/lang","version":"1.0.0","keywords":["aethex","compiler","language","parser","lexer","ast","roblox","uefn","unity","metaverse","cross-platform"],"author":{"name":"AeThex Corporation"},"license":"MIT","_id":"@aethex.os/lang@1.0.0","maintainers":[{"name":"mrpiglr","email":"mrpiglr@aethex.dev"}],"homepage":"https://aethex.dev","bugs":{"url":"https://github.com/AeThex-Corporation/AeThex-OS/issues"},"dist":{"shasum":"c0d770d3bca01933cb212340fa532271ec193b46","tarball":"https://registry.npmjs.org/@aethex.os/lang/-/lang-1.0.0.tgz","fileCount":25,"integrity":"sha512-KeymkqbObxiD3y7JK1WHiphX4qZ5svrulrqCmfM2wrEdE3chUb/lwI1E48cZlLhCIAQEsaVzXyG83XdHMSNvoA==","signatures":[{"sig":"MEUCIQCHYmheEh11DqgDZVd06h86b9yEK3kR5DlJxyr6mMIn4gIgHDb9pfFN22xqRuM857Q18wAy+QTGO6c3wWbnTsgr/nE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111404},"main":"lib/index.js","types":"lib/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b094d5c032765a30612c2348ce0356d3a50d9feb","scripts":{"dev":"tsc --watch","build":"tsc"},"_npmUser":{"name":"mrpiglr","email":"mrpiglr@aethex.dev"},"repository":{"url":"git+https://github.com/AeThex-Corporation/AeThex-OS.git","type":"git","directory":"packages/aethex-lang"},"_npmVersion":"11.12.1","description":"AeThex language compiler API — Lexer, Parser, AST types, and code generators for JavaScript, Roblox (Lua), UEFN (Verse), and Unity (C#)","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lang_1.0.0_1777930941728_0.4321436287092011","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aethex.os/lang","version":"1.0.1","keywords":["aethex","compiler","language","parser","lexer","ast","roblox","uefn","unity","metaverse","cross-platform"],"author":{"name":"AeThex Corporation"},"license":"MIT","_id":"@aethex.os/lang@1.0.1","maintainers":[{"name":"mrpiglr","email":"mrpiglr@aethex.dev"}],"homepage":"https://aethex.dev","bugs":{"url":"https://github.com/AeThex-Corporation/AeThex-OS/issues"},"dist":{"shasum":"86c37bc31db21702a2fe3766f14a195534594b71","tarball":"https://registry.npmjs.org/@aethex.os/lang/-/lang-1.0.1.tgz","fileCount":26,"integrity":"sha512-yFM3YKunqPMUAt8AQvy7Drm2Ff9uAW5fcQzUKaAh96jPaSEslua8jD6arXXFvXpOtx+GLr9WLX98DC5Ln1pgKA==","signatures":[{"sig":"MEUCIHBCrw4UzY/4+jf7ew6jchIFy9X8cdo6zYNNDSfK/dv4AiEAn96aIQ3h172n/HOVGjUm0f/8aSTlk3Bw6JofAbjytXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113798},"main":"lib/index.js","types":"lib/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b094d5c032765a30612c2348ce0356d3a50d9feb","scripts":{"dev":"tsc --watch","build":"tsc"},"_npmUser":{"name":"mrpiglr","email":"mrpiglr@aethex.dev"},"repository":{"url":"git+https://github.com/AeThex-Corporation/AeThex-OS.git","type":"git","directory":"packages/aethex-lang"},"_npmVersion":"11.12.1","description":"AeThex language compiler API — Lexer, Parser, AST types, and code generators for JavaScript, Roblox (Lua), UEFN (Verse), and Unity (C#)","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lang_1.0.1_1777932484728_0.14196339007940306","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@aethex.os/lang","version":"1.1.0","description":"AeThex language compiler API — Lexer, Parser, AST types, and code generators for JavaScript, Roblox (Lua), UEFN (Verse), and Unity (C#)","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc","dev":"tsc --watch"},"keywords":["aethex","compiler","language","parser","lexer","ast","roblox","uefn","unity","metaverse","cross-platform"],"author":{"name":"AeThex Corporation"},"license":"MIT","homepage":"https://aethex.dev/docs","repository":{"type":"git","url":"git+https://git.aethex.tech/Labs/os.git","directory":"packages/aethex-lang"},"devDependencies":{"@types/node":"^20.0.0","typescript":"^5.3.0"},"engines":{"node":">=18.0.0"},"bugs":{"url":"https://git.aethex.tech/Labs/os/issues"},"_id":"@aethex.os/lang@1.1.0","gitHead":"6c77abd6440deb925777f64998d4c67a398236e0","_nodeVersion":"22.22.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-tvc2c6YXYKy/uSpRagJYzhFUcuWTvHiHZMTF94KvVJWQPMPIo7F6Xo+VaCQKrSl8ymP0K6gXbGkJdhnCzHPdEw==","shasum":"a8a06ac2976fc9c67b19b07167dc4aec7871b9be","tarball":"https://registry.npmjs.org/@aethex.os/lang/-/lang-1.1.0.tgz","fileCount":34,"unpackedSize":160103,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDuER9zS0QRmvG2gxzyGP7yV0vF/wFKcR0PuXPEZLpclAIhAKA6WNazDPtFVfkFSO69WcazOCXiI5nVw3zGiT7KLUua"}]},"_npmUser":{"name":"mrpiglr","email":"mrpiglr@aethex.dev"},"directories":{},"maintainers":[{"name":"mrpiglr","email":"mrpiglr@aethex.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lang_1.1.0_1783399670632_0.09536281307972172"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-04T21:42:21.653Z","modified":"2026-07-07T04:47:50.917Z","1.0.0":"2026-05-04T21:42:21.909Z","1.0.1":"2026-05-04T22:08:04.878Z","1.1.0":"2026-07-07T04:47:50.768Z"},"bugs":{"url":"https://git.aethex.tech/Labs/os/issues"},"author":{"name":"AeThex Corporation"},"license":"MIT","homepage":"https://aethex.dev/docs","keywords":["aethex","compiler","language","parser","lexer","ast","roblox","uefn","unity","metaverse","cross-platform"],"repository":{"type":"git","url":"git+https://git.aethex.tech/Labs/os.git","directory":"packages/aethex-lang"},"description":"AeThex language compiler API — Lexer, Parser, AST types, and code generators for JavaScript, Roblox (Lua), UEFN (Verse), and Unity (C#)","maintainers":[{"name":"mrpiglr","email":"mrpiglr@aethex.dev"}],"readme":"# @aethex.os/lang\n\nProgrammatic API for the AeThex compiler. Lex, parse, and generate code from AeThex source — without the CLI. Use it to build IDE extensions, linters, formatters, and build tools.\n\n## Install\n\n```bash\nnpm install @aethex.os/lang\n```\n\nFor the CLI, see [@aethex.os/cli](https://npmjs.com/package/@aethex.os/cli).\n\n## Compile AeThex source\n\n```ts\nimport { AeThexCompiler } from '@aethex.os/lang';\n\nconst compiler = new AeThexCompiler({ target: 'javascript' });\nconst result = compiler.compile(`\n  reality HelloWorld {\n    platforms: all\n  }\n\n  journey Greet(name) {\n    platform: all\n    notify \"Hello, \" + name\n  }\n`);\n\nif (result.success) {\n  console.log(result.code); // generated JavaScript\n} else {\n  console.log(AeThexCompiler.formatErrors(result));\n}\n```\n\n### Targets\n\n```ts\ntype CompileTarget = 'javascript' | 'roblox' | 'uefn' | 'unity';\n```\n\n| Target | Output | Platform |\n|---|---|---|\n| `javascript` | `.js` | Web, Node |\n| `roblox` | `.lua` | Roblox Studio |\n| `uefn` | `.verse` | Unreal Editor for Fortnite |\n| `unity` | `.cs` | Unity |\n\n## Lexer\n\nTokenize AeThex source into a flat token stream:\n\n```ts\nimport { Lexer, TokenType } from '@aethex.os/lang';\n\nconst lexer = new Lexer(`journey Greet(name) { notify name }`);\nconst tokens = lexer.tokenize();\n\ntokens.forEach(t => console.log(t.type, t.value));\n// JOURNEY 'journey'\n// IDENTIFIER 'Greet'\n// LEFT_PAREN '('\n// ...\n```\n\n## Parser\n\nBuild an AST from tokens:\n\n```ts\nimport { Lexer, Parser } from '@aethex.os/lang';\n\nconst lexer = new Lexer(source);\nconst parser = new Parser(lexer.tokenize());\nconst ast = parser.parse();\n\n// ast.body — array of Reality | Journey | Import nodes\n```\n\n## Code Generators\n\nUse generators directly against an AST:\n\n```ts\nimport { Lexer, Parser, JavaScriptGenerator, LuaGenerator } from '@aethex.os/lang';\n\nconst ast = new Parser(new Lexer(source).tokenize()).parse();\n\nconst js  = new JavaScriptGenerator().generate(ast);\nconst lua = new LuaGenerator().generate(ast);\n```\n\n## AST types\n\nFull TypeScript types are exported for every AST node:\n\n```ts\nimport type {\n  Program, Reality, Journey, Import,\n  LetStatement, WhenStatement, NotifyStatement,\n  BinaryExpression, CallExpression, Identifier, Literal,\n} from '@aethex.os/lang';\n```\n\n## Part of the @aethex.os ecosystem\n\nSee [@aethex.os/core](https://npmjs.com/package/@aethex.os/core) for the full package list.\n","readmeFilename":"README.md"}