Runtime: add method dispatch for array/string/dict/number (.len, .push, .pop, .keys, .values, .has, .toInt) Stdlib: delete global len/push/pop/keys/values/has Tests/docs/examples: migrate to method style; add tests/test_builtin_methods_style.bob All tests pass Breaking: global len/push/pop/keys/values/has removed; use methods instead Parser/AST: add class/extends/extension/super, field initializers Runtime: shared methods with this injection; classParents/classTemplates; super resolution; ownerClass/currentClass; extension lookup order Builtins: method dispatch for array/string/dict/number (.len/.push/.pop/.keys/.values/.has/.toInt); remove global forms Tests/docs/examples: add/refresh for classes, inheritance, super, polymorphism; migrate to method style; all tests pass VS Code extension: update grammar/readme/snippets for new features |
||
|---|---|---|
| .idea | ||
| bob-language-extension | ||
| examples | ||
| leakTests | ||
| Reference | ||
| src | ||
| tests | ||
| tools | ||
| .gitignore | ||
| CMakeLists.txt | ||
| README.md | ||
| run_leak_tests.sh | ||
| test_bob_language.bob | ||
| test_fib.bob | ||
| tests.bob | ||
██████╗ ██████╗ ██████╗
██╔══██╗██╔═══██╗██╔══██╗
██████╔╝██║ ██║██████╔╝
██╔══██╗██║ ██║██╔══██╗
██████╔╝╚██████╔╝██████╔╝
╚═════╝ ╚═════╝ ╚═════╝
A modern programming language with all the features/sytax I prefer
Documentation
- Language Reference - Language syntax and features
- Build Guide - How to build Bob
- Roadmap - What's done and what might come next
Features
- Core Types: Numbers, strings, booleans, arrays, dictionaries, functions
- Advanced Functions: First-class functions, closures, anonymous functions, tail call optimization
- Control Flow: If/else statements, while/do-while/for loops, break/continue
- Operators: Arithmetic, logical, bitwise, comparison, compound assignment (+=, -=, etc.)
- Built-in Functions: print, input, assert, len, push, pop, keys, values, type conversion (toString, toNumber, toInt)
- Other Stuff: String interpolation, escape sequences, file I/O, eval, time/sleep, random
- Memory: Automatic cleanup, no manual memory management
Quick Start
# Build
cmake -G Ninja -B build -DCMAKE_BUILD_TYPE=Release
ninja -C build
# Run
./build/bin/bob your_file.bob