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

217 lines
3.4 KiB
Markdown

# 🚀 BlackRoad Language - Quick Start Guide
## 5-Minute Setup
### Step 1: Build the Compiler
```bash
cd ~/roadc
gcc -std=c99 -O2 -o roadc roadc.c
```
### Step 2: Write Your First Program
```bash
cat > hello.road << 'EOF'
# My First BlackRoad Program
fun main():
print("Hello, BlackRoad! 🖤🛣️")
EOF
```
### Step 3: Run It!
```bash
./roadc hello.road
```
## What's Next?
### Try the Examples
```bash
# Simple 3D rotating cube
./roadc examples/hello_3d.road
# Full 3D space shooter game
./roadc examples/space_shooter.road
```
### Start the REPL
```bash
./roadc
> let x = 42
> print(x)
```
### Read the Docs
- [Full Specification](../BLACKROAD_LANGUAGE_SPECIFICATION.md)
- [README](README.md)
- [Complete Guide](../BLACKROAD_LANGUAGE_COMPLETE.md)
## Syntax Cheat Sheet
### Variables
```road
let x: int = 42 # Immutable
var y = 3.14 # Mutable (type inferred)
const PI = 3.14159 # Constant
```
### Functions
```road
fun add(a: int, b: int) -> int:
return a + b
fun greet(name: string):
print("Hello, {name}!")
```
### Control Flow
```road
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
```road
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
```road
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
```road
space Game:
cube Player:
position: vec3(0, 0, 0)
color: #FF1D6C
fun main():
render(Game)
```
### Async/Await
```road
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
```road
let numbers = [1, 2, 3, 4, 5]
for num in numbers:
print(num * 2)
```
### Pattern Matching
```road
match status:
200 -> print("OK")
404 -> print("Not Found")
500..599 -> print("Server Error")
_ -> print("Unknown")
```
## Testing Your Code
### Python Parser (for validation)
```bash
python3 parser.py
```
### C Compiler (native)
```bash
./roadc your_file.road
```
## Deploy to Raspberry Pi
```bash
# 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"
```bash
# 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:
```road
# 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
- **Issues**: blackroad.systems@gmail.com
- **Ideas**: amundsonalexa@gmail.com
- **GitHub**: Coming soon!
---
**Happy coding in BlackRoad!** 🖤🛣️