{"id":50658379,"url":"https://github.com/sayedrisat/bnscript","last_synced_at":"2026-06-11T04:01:02.301Z","repository":{"id":363141017,"uuid":"1258949208","full_name":"sayedrisat/bnscript","owner":"sayedrisat","description":"Automation-first programming language that compiles to JavaScript with a real compiler pipeline, runtime, and CLI.","archived":false,"fork":false,"pushed_at":"2026-06-09T16:04:42.000Z","size":285,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T03:10:42.656Z","etag":null,"topics":["automation","bangla","cli","code-generator","compiler","developer-tools","javascript","language-design","lexer","parser","programming-language","sayed-risat","semantic-analysis","transpiler"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sayedrisat.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-04T04:12:01.000Z","updated_at":"2026-06-09T16:09:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sayedrisat/bnscript","commit_stats":null,"previous_names":["sayedrisat/bnscript"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sayedrisat/bnscript","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayedrisat%2Fbnscript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayedrisat%2Fbnscript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayedrisat%2Fbnscript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayedrisat%2Fbnscript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sayedrisat","download_url":"https://codeload.github.com/sayedrisat/bnscript/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayedrisat%2Fbnscript/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34181555,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","bangla","cli","code-generator","compiler","developer-tools","javascript","language-design","lexer","parser","programming-language","sayed-risat","semantic-analysis","transpiler"],"created_at":"2026-06-08T01:04:54.932Z","updated_at":"2026-06-11T04:01:02.179Z","avatar_url":"https://github.com/sayedrisat.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 BN Script\n\n**An automation-first programming language that compiles to JavaScript.**\n\nBN Script is a programming language designed to make automation scripts easier to write, read, and maintain while still generating clean JavaScript that runs on Node.js.\n\nIt combines a real compiler architecture with a beginner-friendly syntax inspired by Bangla-transliterated keywords.\n\n---\n\n## ✨ Current Status\n\n**Version:** `v0.1.0-alpha.0`\n\n### Implemented\n\n✅ Lexer\n✅ Parser\n✅ Abstract Syntax Tree (AST)\n✅ Semantic Analyzer\n✅ JavaScript Generator\n✅ Runtime System\n✅ CLI Tool\n✅ Function Support\n✅ 103+ Automated Tests\n\n---\n\n## 🔥 Why BN Script?\n\nModern automation often requires repetitive JavaScript boilerplate for:\n\n* File operations\n* API requests\n* Environment variables\n* Task automation\n* Future AI workflows\n\nBN Script aims to make these workflows simpler while still compiling into readable JavaScript.\n\nInstead of replacing JavaScript, BN Script sits on top of it.\n\nWrite BN Script.\n\nCompile to JavaScript.\n\nRun anywhere Node.js runs.\n\n---\n\n## 🏗 Architecture\n\nBN Script follows a real compiler pipeline:\n\n```text\nBN Script Source\n        ↓\n      Lexer\n        ↓\n      Parser\n        ↓\n Semantic Analyzer\n        ↓\n JavaScript Generator\n        ↓\n      Runtime\n        ↓\n        CLI\n```\n\nUnlike simple text replacement tools, BN Script performs proper parsing, semantic analysis, and code generation.\n\n---\n\n## 🚀 Quick Example\n\n### BN Script\n\n```bn\nkaj greet(name) {\n  ferot \"Hello \" + name\n}\n\ndekhi greet(\"Risat\")\n```\n\n### Generated JavaScript\n\n```js\nfunction greet(name) {\n  return \"Hello \" + name;\n}\n\nconsole.log(greet(\"Risat\"));\n```\n\n### Output\n\n```txt\nHello Risat\n```\n\n---\n\n## ✨ Features\n\n### Variables\n\n```bn\ndhori name = \"Risat\"\n```\n\n### Constants\n\n```bn\nsthir version = 0.1\n```\n\n### Output\n\n```bn\ndekhi \"Hello World\"\n```\n\n### Conditionals\n\n```bn\njodi score \u003e= 90 {\n  dekhi \"Excellent\"\n} nahole {\n  dekhi \"Keep Going\"\n}\n```\n\n### Functions\n\n```bn\nkaj greet(name) {\n  ferot \"Hello \" + name\n}\n\ndekhi greet(\"Risat\")\n```\n\n### Literals\n\n```bn\nsotti\nmittha\nkhali\n```\n\n### Operators\n\n```bn\n+\n-\n*\n/\n%\n**\n==\n!=\n\u003e\n\u003c\n\u003e=\n\u003c=\nebong\nothoba\nna\n```\n\n---\n\n## 📦 Installation\n\nRequirements:\n\n* Node.js 18+\n\nClone the repository:\n\n```bash\ngit clone https://github.com/sayedrisat/bnscript.git\ncd bnscript\nnpm install\n```\n\nRun tests:\n\n```bash\nnpm test\n```\n\nWindows PowerShell:\n\n```powershell\nnpm.cmd test\n```\n\n---\n\n## 🖥 CLI Usage\n\nCheck a BN Script file:\n\n```bash\nnode src/cli.js check examples/hello.bn\n```\n\nBuild JavaScript:\n\n```bash\nnode src/cli.js build examples/hello.bn\n```\n\nRun directly:\n\n```bash\nnode src/cli.js run examples/hello.bn\n```\n\nFuture installed usage:\n\n```bash\nbn check file.bn\nbn build file.bn\nbn run file.bn\n```\n\n---\n\n## 📚 Supported In Alpha\n\n### Declarations\n\n* `dhori`\n* `sthir`\n\n### Output\n\n* `dekhi`\n\n### Conditions\n\n* `jodi`\n* `nahole`\n\n### Functions\n\n* `kaj`\n* `ferot`\n* Parameters\n* Function Calls\n\n### Expressions\n\n* Identifiers\n* Number Literals\n* String Literals\n* Boolean Literals\n* Null Literals\n* Unary Operators\n* Binary Operators\n* Parenthesized Expressions\n\n### Values\n\n```bn\nsotti\nmittha\nkhali\n```\n\n---\n\n## ⚠ Current Limitations\n\nNot implemented yet:\n\n* Assignment Expressions\n* While Loops\n* For Loops\n* Arrays\n* Objects\n* Imports / Exports\n* Async / Await\n* AI Runtime Helpers\n* Package Manager\n* REPL\n* LSP\n* VS Code Extension\n\nThis project is currently in Alpha and focused on compiler stability.\n\n---\n\n## 🗺 Roadmap\n\n### v0.2\n\n* Assignment Expressions\n* Variable Reassignment\n* Compound Assignment Operators\n\n### v0.3\n\n* While Loops\n* For Loops\n\n### v0.4\n\n* Arrays\n* Objects\n\n### v0.5\n\n* Imports / Exports\n* Modules\n\n### Future\n\n* AI Runtime Helpers\n* REPL\n* Language Server Protocol (LSP)\n* VS Code Extension\n* Package Ecosystem\n\n---\n\n## 🧪 Testing\n\nCurrent test coverage includes:\n\n* Lexer Tests\n* Parser Tests\n* Semantic Analyzer Tests\n* Generator Tests\n* Runtime Tests\n* CLI Tests\n* Integration Tests\n\n**103+ tests passing**\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome.\n\nGood first contributions:\n\n* Compiler improvements\n* Parser edge cases\n* Better diagnostics\n* Documentation\n* Examples\n* Tests\n\nBefore submitting a PR:\n\n1. Run tests\n2. Add/update tests\n3. Keep changes focused\n4. Document limitations\n\n---\n\n## 📖 Documentation\n\n* Getting Started\n* CLI Reference\n* Language Specification\n* Compiler Architecture\n* Runtime Design\n\nSee the `docs/` directory.\n\n---\n\n## ⭐ Support The Project\n\nIf you find BN Script interesting:\n\n* Star the repository\n* Report bugs\n* Open feature requests\n* Share the project\n\nRepository:\n\nhttps://github.com/sayedrisat/bnscript\n\n---\n\n## 📄 License\n\nReleased under the MIT License.\n\nSee `LICENSE` for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsayedrisat%2Fbnscript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsayedrisat%2Fbnscript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsayedrisat%2Fbnscript/lists"}