From 8eb1f46a655270848908d0e79abc952749b7cfe4 Mon Sep 17 00:00:00 2001 From: John Date: Mon, 16 Oct 2023 22:32:06 -0500 Subject: [PATCH] Update readme.md --- readme.md | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index 6d1f557..ee6aedd 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,29 @@ -Conlang: Expression-oriented programming language +# Conlang: Expression-Oriented Programming Language +This project began out of a desire to merge functional-style control flow expressions +with Python's fun for-else/while-else syntax. I fully intend to devote my spare time +to conlang for the forseeable future, and I livestream development on Twitch for one +Friday each month. -TODO: the language +## Immediate Goals: +- [x] Decide on a minimal set of keywords and operators to support +- [x] Lex an entire Rust source file (minus generics, paths, and lifetimes) +- [x] Write expression grammar +- [ ] Write AST for expression grammar +- [ ] Write parser for AST +- [ ] Create tests for parser (and AST) +- [ ] Parse `dummy.cl` into a valid AST +- [ ] Pretty printer, for debugging +- [ ] Create minimal statement grammar + - [ ] Variable definition statements + - [ ] Function definition statements + +## Short Goals: +- [ ] `for` loops and `while` loops can be used on the right-hand side of an assignment +- [ ] Expression type-checker +- [ ] AST-walk interpreter for prototyping and debugging +- [ ] Three-reference bytecode VM for standard library development +- [ ] Semicolons are not given special treatment + +## Long Goals: +- [ ] Compile to LLVM IR +- [ ] Create a standard library for the language, with Rust-like