From 78fb79f234c9ab1dff63ad3645945a54404792df Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Mon, 27 Jul 2020 08:52:20 -0400 Subject: Use frame/slot system for all variables (buggy: assumes names are globally unique) --- c.bqn | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/c.bqn b/c.bqn index 3d168962..e09ff4e5 100755 --- a/c.bqn +++ b/c.bqn @@ -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)∨roo+`⊸⊏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 𝕩 -- cgit v1.2.3