diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-07-27 08:52:20 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-07-27 08:52:20 -0400 |
| commit | 78fb79f234c9ab1dff63ad3645945a54404792df (patch) | |
| tree | b051f7410bbadb8fc6714538c45a436831863f95 /c.bqn | |
| parent | 3a4d300016df14609b77e9ae600a73ed01d78a76 (diff) | |
Use frame/slot system for all variables (buggy: assumes names are globally unique)
Diffstat (limited to 'c.bqn')
| -rwxr-xr-x | c.bqn | 19 |
1 files changed, 13 insertions, 6 deletions
@@ -168,13 +168,20 @@ DParse ← {nv‿r𝕊𝕩: opa←op>1↓0∾˜ps∨a⋄os←⌽↕∘≠⊸(⊣-⌈`∘×)⌽¬ro oa←⌽/opa⋄fa←/(tf∨¬tr)∧(ro∧1⌽opa)<(r=1)∨op<¯1⌽opa dy←fa⊏1↓0∾˜(𝕩≠⊑bO)∧(tr∧r≥0)∨ro<r=0 - n←𝕩≥vi+nv⋄id←/n<𝕩≥vi⋄sp←/𝕩∊bI⋄cn←/n∨𝕩≤¯1⊑bC⋄u←⍷ob←cn⊏𝕩 + n←𝕩≥vi+nv⋄id←/(n<𝕩≥vi)⋄sp←/𝕩∊bI⋄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←⍋g⊏˜∾⟨cn,cn,id,id,sp,sp,sp,b,b,rt,1+/a,dr,l,l,si,si,oa+1⌈oa⊏os,(dy×⊏⟜os)⊸+fa+dy⟩ - bc1←⟨0¨cn,u⊐ob,1+(id-1)⊏a,vi-˜id⊏𝕩,21+(sp-1)⊏a,0¨sp,(+⟜(0⊸≤)2+vi-˜sp⊏𝕩)+3×2|((sp⊏g)⊏+`bv>0)⊏ft,15¨b,1+↕≠b⟩ - bc←or⊏∾bc1∾⟨25¨rt,(11-⊑bG)+a/𝕩,14¨dr,3¨l,ll,3¨si,sll,5+oa⊏r,5+dy+4×fa⊏tr⟩ - ⟨LEBv bc,u,(ft⊏⥊"fmd"≍⌜⌽↕2)∾¨(ft⊏spd)<∘≍˘˜/1∾or∊(+´≠¨bc1)+↕≠rt⟩ + cf←g⊏+`bv>0 + dl←+`≠¨de←¯1↓(⊏⟜cf⊔○(∾⟜(1++´bv>0))⊏⟜𝕩)1+/𝕩=⊑bG + fd←0∾(bv>0)/rev⊏+`br + idf←dl⍋idl←de∾⊸⊐id⊏𝕩 + idd←(id⊏cf)-○(⊏⟜fd)idf + idi←idl-idf⊏0∾dl + is←id∾sp + or←⍋g⊏˜∾⟨cn,cn,is,is,is,b,b,rt,1+/a,dr,l,l,si,si,oa+1⌈oa⊏os,(dy×⊏⟜os)⊸+fa+dy⟩ + bc1←⟨0¨cn,u⊐ob,21+(is-1)⊏a,idd∾0¨sp,(idi∾+⟜(0⊸≤)2+vi-˜sp⊏𝕩)+3×2|(idf∾sp⊏cf)⊏ft,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↑˜≠)¨de)∾˜¨ft⊏spd)<∘≍˘˜/1∾or∊(+´≠¨bc1)+↕≠rt⟩ } prims←⟨ @@ -186,7 +193,7 @@ DGenFn←{ ⟨t,r,nVar,lits⟩←Tokenize𝕩 ⟨bc,u,blk⟩←nVar‿r DParse t o←(u-(vi+nVar-≠prims)×u≥vi)⊏prims∾LitVal¨lits - ⟨bc,o,⥊¨nVar↑•a,blk⟩ + ⟨bc,o,⟨⟩,blk⟩ } DRun←{ •COMP DGenFn 𝕩 |
