From 7639517e1ed30816efd8fd9b6810d9a8295b4f64 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Thu, 2 Sep 2021 18:47:16 -0400 Subject: Reject aliases in modified assignment in the compiler --- src/c.bqn | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/c.bqn b/src/c.bqn index a0811199..38b1247b 100644 --- a/src/c.bqn +++ b/src/c.bqn @@ -234,10 +234,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 - 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 + ak←af+(0≤ar)+(ai⊏ma)+(⊑bG)-˜ai⊏𝕩 # Class of assignment: 1⇐ 2⇐? 3←? 4↩? 5+↩? + at∾↩hj⋄ac←«⊸-(ak∾6¨hj)⌾(at⊸⊏)0¨𝕩 # Header assignment is 6 temporarily + aa←×gac←g⊏ac↩»+`(1⊸»⊸∨0=+`)⊸×gi⊏ac # Broadcast ac to the entire target + ac-↩3×ah←6=ac # Assignment is header; 6→3 nf←H ac«𝕩=⊑bL)∨𝕩(=⟜(3+⊑)aa af>↩alm←ai⊏aa⋄al←alm/ai # aliases al ai/˜↩af⋄at/˜↩af∾1¨hj -- cgit v1.2.3