diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e70cad..10dd48a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,12 @@ # Changelog -## v0.1 +## v0.1.0 - **REPL**: Interactive read-eval-print loop and `flt version` CLI. - **Literals**: Numbers (arbitrary precision), strings, booleans, and symbols (`:foo`, `:"quoted"`). - **Expressions**: Identifiers, unary (`!`, `+`, `-`), binary (arithmetic, logical, bitwise, pipe `|>`, string concat `<>`), function calls with optional key-value arguments, parenthesized expressions, map literals `{ key: value }`, and array literals `[ expr, ... ]`. - **String interpolation**: `"Hello, {expr}!"` with arbitrary expressions inside `{}`. +- **Conditionals**: `if { } else { }` (block branches) and `if else ` (expression branches). The `else` branch is optional. +- **Assignment / Keywords**: `let x = expr;` and `x = expr;` (semicolon/newline handling is parser-dependent) plus core keywords like `let`, `if`, and `else`. - **Comments**: Line comments from `#` to end of line. -- **Evaluation**: Literals, unary and binary operators (arithmetic, logical, string concat), and parenthesized expressions. Function calls and map/array literals are not yet evaluated (runtime error if reached). +- **Evaluation**: Literals, unary and binary operators (arithmetic, logical, string concat), parenthesized expressions, and `if` expressions. Function calls and map/array literals are not yet evaluated (runtime error if reached). diff --git a/Cargo.lock b/Cargo.lock index 7fc9577..5e0ae99 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -470,7 +470,7 @@ dependencies = [ [[package]] name = "flt" -version = "0.0.2" +version = "0.1.0" dependencies = [ "bigdecimal", "clap", diff --git a/Cargo.toml b/Cargo.toml index 28ef797..da9b7c9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flt" -version = "0.0.2" +version = "0.1.0" edition = "2021" description = "a 'lite' functional language" license = "MIT"