aboutsummaryrefslogtreecommitdiff
path: root/src/c.bqn
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-12-25 16:51:51 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-12-25 16:51:51 -0500
commit932dee725c0f2667eef9c69a6720b6c0dfb1adb1 (patch)
tree9480bb0a7e0a541f7281d17409b8df7a2ff72109 /src/c.bqn
parent334af0539ed52eb9c58e582ae5ff2bf25839aab9 (diff)
Fix modification of assignment indices since their location has moved
Diffstat (limited to 'src/c.bqn')
-rw-r--r--src/c.bqn7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/c.bqn b/src/c.bqn
index 00a27034..018e032b 100644
--- a/src/c.bqn
+++ b/src/c.bqn
@@ -319,12 +319,13 @@ Parse ← {r‿vn‿i‿e‿def←𝕨⋄nv←≠vn
# Object code generation: numbers oc ordered by source location (after rev) oi
ao←48+(0⌈(1+⊑bG)-˜ai⊏𝕩+ma+mm)∾-hd # Assignment opcode
- or←⍋oi←idor∾g⊏˜∾⟨cn,cn,bk,bk,hq,api,2/l,at,dr,qp,al+1,al+1,oa+1⌈oa⊏os,fl,rt⟩
+ or←⍋oi←idor∾g⊏˜∾oil←⟨cn,cn,bk,bk,hq,api,2/l,at,dr,qp,al+1,al+1,oa+1⌈oa⊏os,fl,rt⟩
oc←or⊏∾idoc∾⟨0¨cn,ob,1¨bk,1+↕≠bk,43¨hq,44¨api,⥊⍉(11+l⊏aa)≍ll,ao,6¨dr,42¨qp,66¨al,vi-˜(al-1)⊏𝕩
24+oa⊏r,16+(fn/dy+2×fm⌈1=ny)+4×0<fa⊏er,¯1↓rc←7+nf⟩
# Instruction source positions
- MI←-⊸↓˜⟜≠∾g⊏˜⊢⋄oj←(rt-∘≠⊸⌽oi⌊1-˜≠i)Mi∾⟨at-1‿0/˜≠¨ai‿hj,oa,fa⟩
- ind←⟨oj,oj Mi fa⊏IT»¬ro∨ma⟩(¯1∾˜or⊏(≠rt)⊸⌽)⊸⊏¨i‿e
+ ui←8‿13‿14(⊏⟜(»+`)+⟜↕¨⊏)(≠idor)∾≠¨oil # at,oa+…,fl locations
+ oj←(g⊏˜∾⟨at-1‿0/˜≠¨ai‿hj,oa,fa⟩)⌾((∾ui)⊸⊏)oi
+ ind←⟨oj,(g⊏˜fa⊏IT»¬ro∨ma)⌾((¯1⊑ui)⊸⊏)oj⟩(¯1∾˜or⊸⊏)⊸⊏¨i‿e
# Indices for multi-body blocks
cm∨↩(fx∧1≠cw)∨0<ut↩ut⌾(ch⊸/)ch # Dyad- and inverse-only generate as multiple
cj←/cv←1+1=ciw←cw⊏˜ci←/cm # Number of copies