From db1b030ad7febc0c1f7d51ef2e868104c6fab956 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Sat, 21 Aug 2021 17:41:05 -0400 Subject: Don't allow expression-like syntax in assignment --- src/c.bqn | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/c.bqn b/src/c.bqn index 3504cf80..b4a08c6e 100644 --- a/src/c.bqn +++ b/src/c.bqn @@ -233,11 +233,10 @@ Parse ← {r‿vn‿i‿e‿def←𝕨⋄nv←≠vn os←↕∘≠⊸(⊣-T)⌾⌽¬ro∨ma # Operator skip: distance rightward to derived function start at←1+⊏⟜os⊸+ai←/a⋄af←¯4≠ai⊏r⋄ar←at⊏r # Assignment target; af for actual (non-export) assignment "Role of the two sides in assignment must match"_err_(at⊏G) af∧ar≠0⌈at⊏er - aid←(¯6⊸≤∧<⟜nv)𝕩-vi # Assignable identifer ak←af+(0≤ar)+(⊑bG)-˜ai⊏𝕩 # Class of assignment: 1⇐ 2⇐? 3←? 4↩? at∾↩hj⋄ac←«⊸-(ak∾5¨hj)⌾(at⊸⊏)0¨𝕩 # Header assignment is 5 temporarily aa←×g⊏ac↩»+`(1⊸»⊸∨0=+`)⊸×gi⊏ac # Broadcast ac to the entire target - ac-↩2×ah←5=ac # Assignment is header; 5→3 + ac-↩2×ah←5=ac⋄ah⊏˜↩g # Assignment is header; 5→3 nf←H ac«𝕩=⊑bL)∨𝕩(=⟜(3+⊑)«𝕩=⊑bL)∨𝕩(=⟜(3+⊑)aa af>↩alm←ai⊏aa⋄al←alm/ai # aliases al -- cgit v1.2.3