OMG! CURSED is like, THE MOST iconic programming language that's giving major Go grammar vibes but with Gen Z slang for the keywords?! π It's literally a self-compiling compiler written in Rust and I'm obsessed! π
CURSED is lowkey based on Go's practical design but like, replaces all those boring programming keywords with Gen Z slang that slaps so hard! It's such a vibe while still being fully functional, no cap! π
CURSED now supports next-level generic programming with:
- Type Parameters: Write code that works with multiple types (
squad Container<T>
) - Constraint System: Ensure type safety with powerful constraints (
where T: Clone + Display
) - Zero-Cost Abstractions: Generics compile to optimized native code
- Advanced Features: Higher-kinded types, associated types, and variance support
Check out the Generics Guide for the full tea! β
CURSED features powerful type switches for handling interface values:
- Runtime Type Checking: Branch based on actual types (
vibe_check value.(type)
) - Variable Binding: Automatic type casting with
v := value.(type)
- Multiple Types: Handle related types in single cases (
mood int, int32, int64:
) - Interface Integration: Seamless work with interface hierarchies
Check out the Type Switch Guide and Tutorial! π₯
Example CURSED code (it ATE and left no crumbs):
vibe main
yeet "vibez"
slay main() {
vibez.spill("Hello, World!") fr fr This is a comment
sus name tea = "bestie"
vibez.spillf("Hey %s, what's good?", name)
lowkey 1 < 2 {
vibez.spill("This is based!")
} highkey {
vibez.spill("This is sus!")
}
}
CURSED is literally built different with this bootstrapping compiler approach:
- Stage 0: Bootstrap environment setup using Rust (so basic but necessary) π
- Stage 1: Minimal bootstrap compiler in Rust (starting to serve) π
- Stage 2: Full compiler written in CURSED (the main character energy) β
- Stage 3: Self-compiled full compiler (iconic behavior) πββοΈ
/src
: Compiler source code (core behavior, pretty much carrying) π/specs
: Language specifications and docs (the rulebook, very that) π/examples
: Example CURSED programs (slay examples) β¨/tests
: Test suite for the compiler (we don't flop, we test) β
- Rust toolchain (1.54.0 or later) βοΈ
- Cargo π¦
make build
make test
make run ARGS="path/to/your/file.csd"
CURSED comes with a built-in formatter that makes your code look absolutely iconic:
# Format a single file
cursed-fmt -w main.csd
# Format entire project
cursed-fmt -w src/
# Check if formatting is needed (perfect for CI)
cursed-fmt --check src/
The formatter supports customizable styling through .cursed-fmt.toml
config files. It's giving consistency! π
- Auto-formatting: Makes your code look clean and consistent
- Editor integration: Works with VSCode, Vim, and more
- CI/CD support: Perfect for automated checks
- Customizable: Configure to match your team's style
Quick start:
# Install the formatter
make build-formatter
# Format your code
cursed-fmt -w .
# Set up pre-commit hooks
cp examples/formatter/integration/pre-commit .git/hooks/
π Complete Formatter Guide | π§ Developer API
- Comprehensive docs: Auto-generates beautiful HTML documentation
- Live server: Development server with auto-reload
- Multiple formats: HTML, Markdown, JSON output
- Cross-references: Automatic linking between code components
- Search integration: Full-text search with syntax highlighting
Quick start:
# Generate HTML documentation
make docs
# Serve docs locally with auto-reload
make docs-serve
# Generate Markdown documentation
make docs-markdown
# Check documentation completeness
make docs-check
π Documentation Guide | π§ Configuration Reference
- Auto-rebuild: Instantly rebuild when source files change
- Smart filtering: Watch only relevant files with pattern matching
- Event batching: Efficient handling of multiple rapid changes
- Cross-platform: Works seamlessly on Linux, macOS, and Windows
- Performance tuned: Optimized for projects of any size
Quick start:
# Watch and auto-build current project
cursed build --watch
# Watch specific patterns
cursed build --watch --patterns "*.csd,*.toml"
# Watch with custom debounce (milliseconds)
cursed build --watch --debounce 1000
# Watch and run tests automatically
cursed test --watch
π File Watching Guide | π§ Configuration Examples
The complete language specifications are available in the /specs
directory (we ate with these specs):
- Overview ποΈ
- Lexical Structure π€
- Types π·οΈ
- Grammar π
- Compiler Stages πͺ
- Standard Library π
Contributions are welcome, bestie! Your pull requests can absolutely slay! Fork and go off! π
This project is licensed under the MIT License - see the LICENSE file for the deets. It's giving open source! π€©