Files
blackroad/roadc/QUICKSTART.md
Alexa Amundson 78fbe80f2a Initial monorepo — everything BlackRoad in one place
bin/       230 CLI tools (ask-*, br-*, agent-*, roadid, carpool)
scripts/   99 automation scripts
fleet/     Node configs and deployment
workers/   Cloudflare Worker sources (roadpay, road-search, squad webhooks)
roadc/     RoadC programming language
roadnet/   Mesh network (5 APs, WireGuard)
operator/  Memory system scripts
config/    System configs
dotfiles/  Shell configs
docs/      Documentation

BlackRoad OS — Pave Tomorrow.

RoadChain-SHA2048: d1a24f55318d338b
RoadChain-Identity: alexa@sovereign
RoadChain-Full: d1a24f55318d338b24b60bad7be39286379c76ae5470817482100cb0ddbbcb97e147d07ac7243da0a9f0363e4e5c833d612b9c0df3a3cd20802465420278ef74875a5b77f55af6fe42a931b8b635b3d0d0b6bde9abf33dc42eea52bc03c951406d8cbe49f1a3d29b26a94dade05e9477f34a7d4d4c6ec4005c3c2ac54e73a68440c512c8e83fd9b1fe234750b898ef8f4032c23db173961fe225e67a0432b5293a9714f76c5c57ed5fdf35b9fb40fd73c03ebf88b7253c6a0575f5afb6a6b49b3bda310602fb1ef676859962dad2aebbb2875814b30eee0a8ba195e482d4cbc91d8819e7f38f6db53e8063401649c77bb994371473cabfb917fb53e8cbe73d60
2026-03-14 17:08:41 -05:00

3.4 KiB

🚀 BlackRoad Language - Quick Start Guide

5-Minute Setup

Step 1: Build the Compiler

cd ~/roadc
gcc -std=c99 -O2 -o roadc roadc.c

Step 2: Write Your First Program

cat > hello.road << 'EOF'
# My First BlackRoad Program
fun main():
    print("Hello, BlackRoad! 🖤🛣️")
EOF

Step 3: Run It!

./roadc hello.road

What's Next?

Try the Examples

# Simple 3D rotating cube
./roadc examples/hello_3d.road

# Full 3D space shooter game
./roadc examples/space_shooter.road

Start the REPL

./roadc
> let x = 42
> print(x)

Read the Docs

Syntax Cheat Sheet

Variables

let x: int = 42           # Immutable
var y = 3.14              # Mutable (type inferred)
const PI = 3.14159        # Constant

Functions

fun add(a: int, b: int) -> int:
    return a + b

fun greet(name: string):
    print("Hello, {name}!")

Control Flow

if x > 10:
    print("Large")
elif x > 5:
    print("Medium")
else:
    print("Small")

for i in 0..10:
    print(i)

while condition:
    process()

3D Objects

space MyScene:
    cube Box:
        position: vec3(0, 0, 0)
        color: #FF1D6C

    light Sun:
        type: point
        intensity: 1.0

    camera Cam:
        position: vec3(0, 0, 5)
        fov: 75

Types

type User:
    name: string
    age: int
    email: string

let user = User{
    name: "Alexa",
    age: 25,
    email: "alexa@blackroad.io"
}

Common Tasks

Create a 3D Scene

space Game:
    cube Player:
        position: vec3(0, 0, 0)
        color: #FF1D6C

fun main():
    render(Game)

Async/Await

async fun fetchData(url: string) -> string:
    let response = await http.get(url)
    return response.text()

fun main():
    let data = await fetchData("https://api.example.com")
    print(data)

Lists & Loops

let numbers = [1, 2, 3, 4, 5]

for num in numbers:
    print(num * 2)

Pattern Matching

match status:
    200 -> print("OK")
    404 -> print("Not Found")
    500..599 -> print("Server Error")
    _ -> print("Unknown")

Testing Your Code

Python Parser (for validation)

python3 parser.py

C Compiler (native)

./roadc your_file.road

Deploy to Raspberry Pi

# On your Mac
scp roadc.c pi@192.168.4.38:~

# On the Pi
ssh pi@192.168.4.38
gcc -std=c99 -O2 -o roadc roadc.c
./roadc

Troubleshooting

"Command not found: roadc"

# Make sure you compiled it
gcc -std=c99 -O2 -o roadc roadc.c

# Or use full path
./roadc test.road

"Syntax Error"

Check the syntax matches the specification:

# Correct
let x: int = 42

# Wrong
int x = 42  # This is C, not BlackRoad!

"Unexpected token"

Make sure indentation is consistent (spaces or tabs, not mixed).

Learning Resources

  1. Read the Spec - ~/BLACKROAD_LANGUAGE_SPECIFICATION.md
  2. Study Examples - ~/roadc/examples/*.road
  3. Experiment in REPL - ./roadc (no arguments)
  4. Check the Source - Lexer and parser are well-documented

Community


Happy coding in BlackRoad! 🖤🛣️