aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-05-25 21:38:28 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-05-25 21:38:28 -0400
commit27e951549590c3a973c0e7675305ed4bc26450bf (patch)
tree3924292205fc9d9b1e07a87ef89f48b313819d14 /src
parent6813f63a4f5ffca4874167a72010101534d91d0f (diff)
Fix slot numbers for pre-defined variables with depth >0
Diffstat (limited to 'src')
-rw-r--r--src/c.bqn4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/c.bqn b/src/c.bqn
index 742a05af..dbb88662 100644
--- a/src/c.bqn
+++ b/src/c.bqn
@@ -214,10 +214,10 @@ Parse ← {r‿vn‿i‿e‿def←𝕨⋄nv←≠vn
du←+´¬»⊸∨0<ds⋄uv←(du↑ig)⊏idv # Number undefined (always sorted to front)
("Undefined identifier"Pl·⍷/⟜uv)_err_(du↑ID) uv≥≠def
ix←(ic<3)∧ia←0<ic # Which are exports, assignments
- idd←(⊢-(uv⊏-0⌈def)∾(du↓IT d)⊸⊏)id⊏fd # Identifier frame depth
+ idd←(⊢-(uv⊏ded←-0⌈def)∾(du↓IT d)⊸⊏)id⊏fd # Identifier frame depth
"Can't export from surrounding scope"_err_(ID) ix∧0<idd
dx←dg⊔zda∾(dig←⍋d/ig)⊏d(/≥1↓PN)ix # Exported identifier mask
- idi←(da⊐uv)∾(¯1+`du↓d)⊏dig⍋⊸⊏da≠⊸↓(⊏⟜fsc+⊒)¯1↓dg # Slot within frame
+ idi←(uv⊸⊏∾(¯1+`du↓d)⊏dig⍋⊸⊏da≠⊸↓⊢)(⊏⟜fsc+⊒)ded∾df # Slot within frame
uu←(ia<1«d)∧d(⊣+`⊸⊏·0⌾⊑PN)0<idd # Unused marker
spi←((spf←sp⊏fi)⊏3×fx)+0⊸≤⊸+2+sp⊏xv # Special name index
uu∾↩∊⌾⌽spi+6×spf # and unused marker