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.
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() |
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 Worldvariables.homie- Data types and operationsconditionals.homie- fr/meh/nahloops.homie- hold_up and cyclefunctions.homie- gig/pay with recursionsquads.homie- Array operationsfibonacci.homie- Fibonacci sequencefizzbuzz.homie- Classic FizzBuzzerror_handling.homie- shoot/fumbleinput.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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.