diff options
Diffstat (limited to 'pi/plans/gt-boolean-operators-syntax-examples.md')
| -rw-r--r-- | pi/plans/gt-boolean-operators-syntax-examples.md | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/pi/plans/gt-boolean-operators-syntax-examples.md b/pi/plans/gt-boolean-operators-syntax-examples.md deleted file mode 100644 index 9751bb2..0000000 --- a/pi/plans/gt-boolean-operators-syntax-examples.md +++ /dev/null @@ -1,52 +0,0 @@ -# GT – Boolean Operators (RPN) – Syntax Examples - -## Overview -We are extending the **gt** REPL with a full set of Boolean comparison operators, usable **only** in RPN (postfix) form. The operators will be available in two token styles: -- **Word form** – `gt`, `lt`, `gte`, `lte`, `eq`, `neq` -- **Symbolic form** – `>`, `<`, `>=`, `<=`, `==`, `!=` - -Both forms map to the same underlying implementation, allowing users to pick the style they prefer while keeping backward compatibility. - ---- -## Example REPL syntax -```text -# Word forms -> rpn 5 3 gt # → true (5 > 3) -> rpn 7 7 eq # → true (7 == 7) -> rpn a 10 2 lt = # store true in variable "a" -> rpn a # → true - -# Symbolic forms (quote the expression if your shell would interpret the symbols) -> rpn 5 3 > # → true -> rpn 7 7 == # → true -> rpn a 10 2 < = # store true in variable "a" -> rpn a # → true - -# Mixed usage across the same session -> rpn 8 4 gte # → true -> rpn 8 4 >= # → true -> rpn 8 4 neq # → false -> rpn 8 4 != # → false -``` -All operators push a **boolean** (`true`/`false`) onto the stack, which can be stored in variables or inspected with `show`. - ---- -## Goals -1. Provide the six Boolean operators in both word and symbolic token forms. -2. Extend the RPN value system to store booleans alongside numbers. -3. Ensure existing REPL behavior (stack, variables, commands) stays unchanged. -4. Document the syntax with clear examples (as shown above). -5. Add comprehensive unit tests and CI verification. - ---- -## Plan -1. Implement the Boolean operator handlers (`gt`, `lt`, `gte`, `lte`, `eq`, `neq`) using the `Number.Compare` method and push a boolean onto the stack. -2. Register symbolic aliases (`>`, `<`, `>=`, `<=`, `==`, `!=`) in the `OperatorRegistry` as synonyms for the word forms. -3. Extend the `Stack` (or introduce a new stack type) to hold a `Value` that can represent either a `float64` or a `bool`. -4. Update `Show` to display booleans as `true`/`false` while preserving numeric formatting. -5. Write unit tests for each operator, covering numeric, mixed‑type, and edge cases (NaN, Inf, zero). -6. Add documentation to `README.md` and godoc comments, including the example syntax block above. -7. Update the CI pipeline to run the new tests, bump the module version (e.g., `v0.2.1`), and generate a changelog entry. - ---- -*This plan is stored at* `/home/paul/.pi/plans/gt-boolean-operators-syntax-examples.md` *and serves as the reference for any upcoming tasks.*
\ No newline at end of file |
