Files
calctext/_bmad-output/implementation-artifacts/5-3-previous-line-reference.md
2026-03-16 19:54:53 -04:00

42 lines
1.5 KiB
Markdown

---
epic: 5
story: 5.3
title: "Previous Line Reference"
status: draft
---
## Epic 5 — Variables, Line References & Aggregators
**Goal:** Transform the notepad into a lightweight computational document.
### Story 5.3: Previous Line Reference
As a **CalcPad user**,
I want to use `prev` or `ans` to reference the result of the immediately preceding line,
So that I can chain calculations naturally without tracking line numbers or variable names.
**Acceptance Criteria:**
**Given** line 1 evaluates to `50`
**When** the user writes `prev * 2` on line 2
**Then** the result on line 2 is `100`
**Given** line 1 evaluates to `50`
**When** the user writes `ans + 10` on line 2
**Then** the result on line 2 is `60`
**Given** `prev` is used on line 1 (the very first line)
**When** the engine evaluates the sheet
**Then** the engine reports an error such as "no previous line" (there is no preceding result)
**Given** line 3 is a comment or blank line, and line 4 uses `prev`
**When** the engine evaluates the sheet
**Then** `prev` resolves to the most recent line above that produced a numeric result (e.g., line 2)
**Given** line 2 uses `prev` referencing line 1, and the user inserts a new line between them
**When** the engine re-evaluates
**Then** `prev` on the original line now references the newly inserted line (it always means "the line directly above")
**Given** line 1 evaluates to `$50` (with currency)
**When** line 2 uses `prev + $25`
**Then** the result is `$75` with the currency context preserved