aboutsummaryrefslogtreecommitdiffstats
path: root/docs/design/001-language-v0.md
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-25 15:05:58 +0100
committereunhhu <[email protected]>2026-09-25 15:05:58 +0100
commit91aa0afcd34cff345f1f7293d82fec7d00082d8b (patch)
treed96b3c7c20f756562e596ded34acf35a95a57327 /docs/design/001-language-v0.md
parentf35ded451b1da147613ece18e2b334d0966b24f1 (diff)
downloadaup-91aa0afcd34cff345f1f7293d82fec7d00082d8b.tar.gz
aup-91aa0afcd34cff345f1f7293d82fec7d00082d8b.zip
Add conditional expressions and table views
if c { a } else { b }, with else-if chains, is an expression anywhere a value goes. Only the chosen branch runs, every branch gives the same type, and nesting that would pass Pure's limit of 8 value-carrying joins is a compile error. view name = each row in list { column = value ... } declares a table with a row per item; columns read their row as an index of the list. An index now reads and writes its item's fields directly (at.title, at.done = 1), so 'position' cannot name a record field. examples/tasks.aup gains conditional views and a board table and still matches its reference model; a new check confirms the unchosen branch is never computed.
Diffstat (limited to 'docs/design/001-language-v0.md')
-rw-r--r--docs/design/001-language-v0.md4
1 files changed, 2 insertions, 2 deletions
diff --git a/docs/design/001-language-v0.md b/docs/design/001-language-v0.md
index 0b7b8dc..30a26c4 100644
--- a/docs/design/001-language-v0.md
+++ b/docs/design/001-language-v0.md
@@ -1,6 +1,6 @@
# aup v0 — 한 언어, 한 모듈 형식
-2026-09-25. 상태: v0a(scalar)와 v0b(바이트·영속 문서·text·커서), v0c의 레코드·리스트·인덱스 구현.
+2026-09-25. 상태: v0a(scalar)와 v0b(바이트·영속 문서·text·커서), v0c의 레코드·리스트·인덱스·조건식·표 보기 구현.
text와 리스트 문법은 [002](002-dsl-direction.md).
착수 기준:
@@ -48,7 +48,7 @@ on frame { # 1/60초 진행. 핸들러 안에서 dt를 쓸
```
- 선언과 문장은 줄바꿈이나 `;`로 끝난다. 이름은 ASCII `[A-Za-z_][A-Za-z_0-9]*`, 31바이트 이하다.
-- 예약어: `state input view on if else key frame dt min max clamp message by bytes u32 reply require record`.
+- 예약어: `state input view on if else key frame dt min max clamp message by bytes u32 reply require record each`.
- 키: `Space Enter ArrowLeft ArrowRight ArrowUp ArrowDown KeyA..KeyZ Digit0..Digit9`. 입력 이름과
키는 각각 한 번만 쓴다. 상태·입력·보기의 이름공간은 서로 겹칠 수 없다.
- 식: 숫자, 상태 이름, `dt`(핸들러 안에서만), 괄호, 단항 `- !`, 이항 `* /`, `+ -`,