Skip to main content

Bro Code 🤙

The Ultimate Vibe Check Programming Language

Bro Code is a high-level, dynamically typed esoteric programming language designed for the ultimate vibe check. It combines the block structure of C++ with the simplicity of Python.

License: MIT Python 3.8+ PyPI

Installation

Via pip

pip install brocode-lang

Manual Installation

# Clone the repository
git clone https://github.com/Prashithshetty/Bro-CODE.git
cd Bro-CODE

# Install in development mode
pip install -e .

# Or just run directly without installing
python -m brocode examples/hello.homie

Quick Start

# Run a .homie file
brocode examples/hello.homie

# Or use the Python module directly
python -m brocode examples/hello.homie

# Or use the wrapper script
chmod +x bro
./bro examples/hello.homie

Hello World

Create hello.homie:

sup {
    spit("Hello World!");
    peace;
}

Run it:

python -m brocode hello.homie

Language Features

Variables & Data Types

var name = "Bro";           // String
var age = 21;               // Integer
var price = 4.20;           // Float
var isAwesome = no_cap;     // Boolean (true)
var isBoring = cap;         // Boolean (false)
var nothing = ghost;        // Null
const PI = 3.14;            // Constant

Input/Output

spit("Hello!");                         // Print to console
var name = listen("Enter your name: "); // Read input

Conditionals

fr (energy > 80) {
    spit("Hyper mode");
} 
meh (energy > 20) {
    spit("Chilling");
} 
nah {
    spit("Need coffee");
}

// Equality check with is_vibe
fr (score is_vibe 100) {
    spit("Perfect!");
}

Loops

// While loop
var i = 0;
hold_up (i < 5) {
    spit(i);
    i = i + 1;
}

// For loop
cycle (var i in range(0, 10)) {
    spit(i);
}

Functions

gig add(a, b) {
    pay a + b;
}

sup {
    var result = add(5, 3);
    spit(result);  // Outputs: 8
    peace;
}

Arrays (Squads)

var squad = [1, 2, 3];
spit(squad[0]);        // Access: 1
squad.push(4);         // Add: [1, 2, 3, 4]
var last = squad.pop(); // Remove & return: 4
spit(len(squad));      // Length: 3

Error Handling

shoot {
    var result = 10 / 0;
} 
fumble (error) {
    spit("Error: " + error);
}

Quick Reference

Feature Bro Code Python
Main block sup { } if __name__ == "__main__":
Exit peace; exit()
Print spit(x) print(x)
Input listen(prompt) input(prompt)
Variable var x = 1; x = 1
Constant const X = 1; X = 1 (by convention)
True/False no_cap / cap True / False
Null ghost None
If fr (cond) { } if cond:
Else if meh (cond) { } elif cond:
Else nah { } else:
While hold_up (cond) { } while cond:
For cycle (var i in range(0, n)) { } for i in range(n):
Break dip; break
Continue skip; continue
Function gig name(x = 10) { } def name(x=10):
Return pay x; return x
Equality is_vibe or == ==
Try shoot { } try:
Catch fumble (e) { } except Exception as e:

Operators

  • Arithmetic: +, -, *, /, %, ** (power), // (integer division)
  • Comparison: >, <, >=, <=, !=, ==, is_vibe
  • Logical: && (AND), || (OR), ! (NOT)
  • Assignment: =, +=, -=, *=, /=, %=
  • Increment/Decrement: ++, --

Built-in Functions

Category Functions
I/O spit(value), listen(prompt)
Type int(v), float(v), str(v), type(v)
Math abs(x), min(a,b), max(a,b), pow(x,y), sqrt(x), floor(x), ceil(x), round(x)
String upper(s), lower(s), trim(s), split(s,d), join(arr,d), replace(s,old,new), contains(s,sub), starts_with(s,p), ends_with(s,p), char_at(s,i), substring(s,start,end)
Array len(arr), range(start,end,step), sort(arr), reverse(arr), slice(arr,s,e), index_of(arr,v), includes(arr,v), concat(a,b)
Utility random(), random_int(min,max), time()

CLI Options

python -m brocode <file.homie>     # Run a file
python -m brocode --version        # Show version
python -m brocode --tokens file    # Debug: show tokens
python -m brocode --ast file       # Debug: show AST

Examples

Check out the examples/ directory for sample programs:

  • hello.homie - Hello World
  • variables.homie - Data types and operations
  • conditionals.homie - fr/meh/nah
  • loops.homie - hold_up and cycle
  • functions.homie - gig/pay with recursion
  • squads.homie - Array operations
  • fibonacci.homie - Fibonacci sequence
  • fizzbuzz.homie - Classic FizzBuzz
  • error_handling.homie - shoot/fumble
  • input.homie - Interactive input

Project Structure

Bro-CODE/
├── brocode/
│   ├── __init__.py      # Package info
│   ├── __main__.py      # CLI entry point
│   ├── tokens.py        # Token definitions
│   ├── lexer.py         # Tokenizer
│   ├── parser.py        # AST builder
│   ├── ast_nodes.py     # AST node classes
│   ├── interpreter.py   # Executor
│   ├── builtins.py      # Built-in functions
│   └── errors.py        # Exception classes
├── examples/            # Sample programs
├── docs/                # Documentation
├── bro                  # CLI wrapper script
└── README.md

Requirements

  • Python 3.8+

No external dependencies required!

License

MIT License - See LICENSE file.


Created for CSI Code Wars

Metadata

Release files for brocode-lang 1.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for brocode-lang 1.2.3
File Size Uploaded Provenance Actions
brocode_lang-1.2.3.tar.gz 73.6 kB Without provenance Details for brocode_lang-1.2.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for brocode-lang 1.2.3
File Interpreter ABI Platform Actions
brocode_lang-1.2.3-py3-none-any.whl Python 3 none any Details for brocode_lang-1.2.3-py3-none-any.whl

Total release size: 97.0 kB

Release files / brocode_lang-1.2.3.tar.gz

Download URL brocode_lang-1.2.3.tar.gz
Size 73.6 kB
Tags Source
SHA-256 checksum
How to use checksums
6da1a8f1bbd883fdad9ecc346cb8b5e67d08a5e88cd5bef6bbc00d9861f1e77a
BLAKE2b-256 checksum
How to use checksums
42c3e69a3f3146d40f7a221d7a0f94586cd913e8f87c6335c8998e0bd8374d24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / brocode_lang-1.2.3-py3-none-any.whl

Download URL brocode_lang-1.2.3-py3-none-any.whl
Size 23.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4e66bb6aec78faac5a11c874beef2b430084af4ac9594ac35dfc92a4b0fe755d
BLAKE2b-256 checksum
How to use checksums
372d0307cc55b547536b2115da044ddfd33f79f286982a1f81e39691c20e7da2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Security for brocode-lang 1.2.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page