From 60b9ed9eb2541d7fb727567ee0c892dc98ca34b4 Mon Sep 17 00:00:00 2001 From: Jacob Date: Sun, 12 Jan 2025 20:34:43 -0500 Subject: [PATCH] Updated README and added STATUS. --- README.md | 10 ++-------- STATUS.md | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 8 deletions(-) create mode 100644 STATUS.md diff --git a/README.md b/README.md index f02a16d..113b852 100644 --- a/README.md +++ b/README.md @@ -13,14 +13,8 @@ include the [Unity](https://github.com/ThrowTheSwitch/Unity) test framework. ## Current State -- [x] Floating-point numbers -- [x] Negative numbers -- [x] Basic binary infix operators; `+`, `-`, `*`, `/` -- [x] The same as conventional functions; `sum()`, `sub()`, `mul()`, `div()` -- [x] Arbitrary length functions -- [ ] User-defined variables -- [ ] Control flow -- [ ] User-defined functions +See [STATUS.md](STATUS.md). Currently, one is able to use `scl` as a basic, +interactive, four-function calculator. ## Syntax (Planned) diff --git a/STATUS.md b/STATUS.md new file mode 100644 index 0000000..4c94b55 --- /dev/null +++ b/STATUS.md @@ -0,0 +1,55 @@ +# SCL Design Status + +- [x] Data definitions + - [x] Token Definitions + - [x] AST Definitions + +- [ ] Parser + - [x] Parse numbers + - [x] Parse floats + - [x] Parse negative numbers + - [x] Parse infix operators + - [x] Order of operations + - [x] Parse function application + - [ ] Parse order of operations with parenthesis + - [ ] Parse variable invocation + - [ ] Parse variable definition + - [ ] Parse types + - [ ] Parse function definition + - [ ] Parse lists/arrays/vectors + - [ ] Parse blocks + - [ ] Parse control flow + - [ ] Parse `if` statements + - [ ] Parse `loop`s + - [ ] Parse `for` loops + - [ ] Parse `while` loops + - [ ] Parse `case` statements + - [ ] Parse `goto` statements + - [ ] Parse lambda function definition + - [ ] Parse function calling with positional arguments + - [ ] Parse variadic functions + - [ ] Parse infix function definition + + - [ ] Executer + - [x] Exec function calls + - [ ] Exec variable use + - [ ] Exec variable definition + - [ ] Exec function definition + - [ ] Exec symbolic variables + - [ ] Exec control flow statements + - [ ] Exec variadic functions + - [ ] Exec lambda functions + - [ ] Exec lists + - [ ] Exec arrays + - [ ] Exec vectors + +- [ ] Interface + - [ ] Interactive interpreter + - [ ] Use GNU readline + - [ ] Multi-line input + - [ ] Syntax highlighting + - [ ] Autocompletion/suggestion + - [ ] Command line interface + - [ ] Pass in a file + - [ ] Save AST to a file + - [ ] Run from AST file