aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-27 16:41:23 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-27 16:43:02 -0400
commit22d27100e2f823b14dacd6655afc136017a5ec28 (patch)
treec91cc9bcb69e7e515cb4198fb2ff31e0a2bdef45
parent7987c2e3f254e5048482be6878936b4a62dee842 (diff)
Simplify lexical lookups: ⍋fi is the same as ⍋fd
-rwxr-xr-xc.bqn30
1 files changed, 15 insertions, 15 deletions
diff --git a/c.bqn b/c.bqn
index 0dd3c773..008c6608 100755
--- a/c.bqn
+++ b/c.bqn
@@ -154,23 +154,22 @@ DParse ← {nv‿r𝕊𝕩:
r+↩(sa<𝕩=1⊑bB)(⊣∧¬⊸∨=○(⌈`(1+↕∘≠)⊸×)⊢)(¯1⊸⌽⌾(g⊸⊏)3=r)∨1≤r
rev←⍋+`1+¯1↓g((¯1∾⊣)(⊣⍋⊸⊏⊏˜-⊏˜⟜⍋)⟜⍋1(+`∘∾-∾˜)⊏)o∨sl∨𝕩∊bS
- fg←⍋fd←+`pr←rev⊏br⋄fi←+`⌾(fg⊸⊏)pr>0
- g↩⍋fi⋄rev⊏˜↩g⋄fi⊏˜↩g⋄fd⊏˜↩g
- 𝕩⊏˜↩rev⋄bv←rev⊏br⋄b←/be←bv<0
+ g↩⍋fd←+`rev⊏br
+ rev⊏˜↩g⋄fd⊏˜↩g
+ 𝕩⊏˜↩rev⋄bv←rev⊏br⋄b←/bv<0⋄fi←+`c←bv>0
- FC←-⟜(≠↑0∾⊢)(1∾˜bv>0)/·+`∾⟜0
+ FC←-⟜(≠↑0∾⊢)(c∾1)/·+`∾⟜0
H←0<1↓·FC𝕩∊(5⊑bI)+⊢
ft←0∾(H↕3)+2×(H⥊3)⌈2×H⥊4
r↩((1↓ft)⊏(1+2⊸≤)⊸/↕4)⌾(b⊸⊏)rev⊏r
- id←/(𝕩≥vi)∧𝕩<vi+nv⋄d←id⊏dec←¯1⌽𝕩=⊑bG⋄sp←/𝕩∊bI
- pr⊏˜↩fg⋄fb←¯1∾fg/˜pr>0⋄fe←(≠𝕩)∾fg/˜pr<0
- ig←⍋(⊏⟜fb∾d⊸/⊏fe˜)id⊏fi
+ id←/(0⊸≤∧<⟜nv)𝕩-vi⋄d←id⊏dec←¯1⌽𝕩=⊑bG⋄sp←/𝕩∊bI
+ ig←⍋(⊏⟜(¯1∾c/g)∾d⊸/⊏((≠𝕩)∾b⊏g)˜)id⊏fi
ig↩<⟜(≠id)⊸/(⍋+`∘⊏⟜(d∾¯1⥊˜+´d))⊸⊏(⍋⊏⟜(∾⟜(d⊸/)id⊏𝕩))⊸⊏ig
ui←d(⌈`↕∘≠⊸×)⊸⊏⌾(ig⊸⊏)id
- ip←1-˜ui⊏-⟜(⌈`(bv>0)⊸×)+`dec
- ii←ip∾+⟜(0⊸≤)2+vi-˜sp⊏𝕩
- ii+↩(ui∾sp)⊏(+`bv>0)⊏3×2|ft
+ ii←1-˜ui⊏-⟜(⌈`c⊸×)+`dec
+ ii∾↩+⟜(0⊸≤)2+vi-˜sp⊏𝕩
+ ii+↩(fi⊏˜ui∾sp)⊏3×2|ft
idor←∾3⥊<is←id∾sp
idbc←⟨21+(is-1)⊏𝕩∊2↑bG,(id-○(⊏⟜fd)ui)∾0¨sp,ii⟩
lc←FC dec
@@ -186,11 +185,12 @@ DParse ← {nv‿r𝕊𝕩:
dy←fa⊏1↓0∾˜(𝕩≠⊑bO)∧(tr∧r≥0)∨ro<r=0
n←𝕩≥vi+nv⋄cn←/n∨𝕩≤¯1⊑bC⋄u←⍷ob←cn⊏𝕩
lo←(o/𝕩)=4⊑bB⋄ll←1+lo/1(↓--⊸↓)(o∾1)/+`(s∾0)-(1∾o)∧ps∾1
- dr←/s>o+`⊸⊏0∾lo⋄rt←/𝕩=2⊑bB
- or←⍋idor∾g⊏˜∾⟨cn,cn,b,b,rt,1+/a,dr,l,l,si,si,oa+1⌈oa⊏os,(dy×⊏⟜os)⊸+fa+dy⟩
- bc1←idbc∾⟨0¨cn,u⊐ob,15¨b,1+↕≠b⟩
- bc←or⊏∾bc1∾⟨25¨rt,12¨/a,14¨dr,3¨l,ll,3¨si,sll,5+oa⊏r,5+dy+4×fa⊏tr⟩
- ⟨LEBv bc,u,(ft⊏⥊"fmd"≍⌜⌽↕2)∾¨(((⥊¨↑⟜•a)¨lc)∾˜¨ft⊏spd)<∘≍˘˜/1∾or∊(+´≠¨bc1)+↕≠rt⟩
+ dr←/s>o+`⊸⊏0∾lo⋄rt←/𝕩=2⊑bB⋄as←1+/a
+ or←⍋idor∾g⊏˜∾⟨cn,cn,b,b,rt,as,dr,l,l,si,si,oa+1⌈oa⊏os,(dy×⊏⟜os)⊸+fa+dy⟩
+ bc0←∾idbc∾⟨0¨cn,u⊐ob,15¨b,1+↕≠b⟩
+ bc←or⊏bc0∾∾⟨25¨rt,12¨as,14¨dr,3¨l,ll,3¨si,sll,5+oa⊏r,5+dy+4×fa⊏tr⟩
+ fs←(ft⊏⥊"fmd"≍⌜⌽↕2)∾¨(/1∾or∊bc0+⟜↕○≠rt)≍○<¨(ft⊏spd)∾⟜(⥊¨↑⟜•a)¨lc
+ ⟨LEBv bc,u,fs⟩
}
prims←⟨