# dullabs/bhai-lang

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/dullabs-bhai-lang).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

4,100 stars · 491 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/DulLabs/bhai-lang
- Homepage: https://bhailang.js.org/
- awesome-repositories: https://awesome-repositories.com/repository/dullabs-bhai-lang.md

## Topics

`interpreter` `javascript` `parser` `programming-language` `typescript`

## Description

Bhai-lang is a TypeScript-based toy programming language and custom syntax interpreter. It functions as an educational language implementation designed to demonstrate core concepts of variable management, conditional logic, and execution flow.

The project provides a custom command line interface and an interactive code playground for writing and testing scripts. It serves as a framework for programming language prototyping, allowing for the definition of custom syntax and execution logic.

The system covers the full interpreter pipeline, including lexical analysis, recursive descent parsing, and abstract syntax tree traversal. Its runtime manages program state through primitive data types and implements standard control flow and console output.

## Tags

### Programming Languages & Runtimes

- [Programming Language Development](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-development.md) — Provides a complete implementation for creating a custom programming language, including its own syntax and execution logic.
- [CLI Script Execution](https://awesome-repositories.com/f/programming-languages-runtimes/cli-script-execution.md) — Ships a command line interface and interactive playground for executing scripts written in a custom syntax. ([source](https://cdn.jsdelivr.net/gh/dullabs/bhai-lang@develop/README.md))
- [Custom Runtime Logic](https://awesome-repositories.com/f/programming-languages-runtimes/custom-runtime-logic.md) — Provides a runtime engine that executes custom logic and computations from non-standard syntax. ([source](https://bhailang.js.org/))
- [Custom Syntax Execution](https://awesome-repositories.com/f/programming-languages-runtimes/custom-syntax-execution.md) — Executes scripts written in a non-standard syntax to perform computations and logic via the CLI.
- [Language Interpreters](https://awesome-repositories.com/f/programming-languages-runtimes/language-interpreters.md) — Implements a full language interpreter that converts custom code into executable actions using TypeScript.
- [Lexical Tokenizers](https://awesome-repositories.com/f/programming-languages-runtimes/lexical-tokenizers.md) — Implements a lexical tokenizer to convert raw source text into a stream of meaningful symbols.
- [Toy Language Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/toy-language-implementations.md) — Implements a custom toy programming language featuring a dedicated parser and execution environment written in TypeScript.
- [Execution Flow Control](https://awesome-repositories.com/f/programming-languages-runtimes/execution-flow-control.md) — Implements control flow constructs including conditional logic, loops, and jump instructions. ([source](https://cdn.jsdelivr.net/gh/dullabs/bhai-lang@develop/README.md))
- [Runtime Variable Stores](https://awesome-repositories.com/f/programming-languages-runtimes/shared-global-value-stores/runtime-variable-stores.md) — Maintains a central key-value map to track variable state across the execution scope.
- [Variable and Constant Declarations](https://awesome-repositories.com/f/programming-languages-runtimes/variable-and-constant-declarations.md) — Manages program state through the declaration and modification of primitive variables. ([source](https://cdn.jsdelivr.net/gh/dullabs/bhai-lang@develop/README.md))

### Data & Databases

- [Recursive Descent Parsers](https://awesome-repositories.com/f/data-databases/data-transformation-functions/recursive-processors/recursive-logic-implementations/recursive-descent-parsers.md) — Uses a recursive descent parser to translate source code into a structural abstract syntax tree.

### Development Tools & Productivity

- [Standalone CLI Runtimes](https://awesome-repositories.com/f/development-tools-productivity/standalone-cli-runtimes.md) — Provides a standalone command line interface to execute scripts and interact with the language runtime.
- [Interactive Code Playgrounds](https://awesome-repositories.com/f/development-tools-productivity/interactive-code-playgrounds.md) — Includes a web-based interactive playground for writing and testing custom scripts with immediate feedback.

### Operating Systems & Systems Programming

- [Language Interpreters](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-command-line-environments/shells-scripting/language-interpreters.md) — Provides an interactive interpreter for parsing and executing a custom language syntax.

### Education & Learning Resources

- [Educational Implementations](https://awesome-repositories.com/f/education-learning-resources/educational-resources/languages-and-programming-concepts/programming-language-mastery-guides/language-implementation-guides/educational-implementations.md) — Serves as a concrete codebase to illustrate core concepts of variable management and execution flow.
- [Language Implementation Prototyping](https://awesome-repositories.com/f/education-learning-resources/programming-language-education/language-implementation-prototyping.md) — Designed as a toy language to experiment with and demonstrate parser and interpreter behavior.

### Software Engineering & Architecture

- [Tree Traversal](https://awesome-repositories.com/f/software-engineering-architecture/abstract-syntax-tree-parsing/tree-traversal.md) — Implements programmatic visitation of abstract syntax tree nodes to execute program operations.
- [Dynamic Typing](https://awesome-repositories.com/f/software-engineering-architecture/typed-value-systems/dynamic-typing.md) — Supports dynamic typing where variable types are assigned and tracked at runtime.
