diff --git a/README.md b/README.md new file mode 100644 index 0000000..249b487 --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# The Sabre Programming language + +Sabre is a bullshit-free (©) programming language that gets out of your way. +Is is meant to "just work", without adding unnecessary and bloated language features. + +## State of this projects + +Basic algorithms like the fibonacci sequence should compile fine. More sophisticated programs will not work yet. See [TODO](./TODO) for a roadmap. + +## Examples + +```rs +// examples/fib.sb +main :: () { + let num = 10 + return fib(num) +} + +fib :: (n) { + if n <= 1 { + return n + } + + return fib(n-1) + fib(n-2) +} +``` + +## License + +This software is licensed under the [Apache-2.0 license](./LICENSE). diff --git a/TODO b/TODO index eec3539..4956ff1 100644 --- a/TODO +++ b/TODO @@ -1 +1,14 @@ -- Generalize function/if/loop bodies into a "Block" node to remove redundancy \ No newline at end of file +# Bugs +- Fix `parser::tests::test_parse_compound_ops_with_identifier_first` test + + +# Cleanups +- Generalize function/if/loop bodies into a "Block" node to remove redundancy + + +# Features +- Add else/if else branch to conditionals +- Add while loop +- Add for loop +- Add type system +- Write stdlib with intrinsic functions