From 672fa33980494249626e3ffc6d73a4f69e9ba25b Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Thu, 30 Jul 2020 09:44:08 -0400 Subject: Support multiple assignment --- c.bqn | 10 ++++++---- test/bcases.bqn | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/c.bqn b/c.bqn index 6513ecf9..53d9bed3 100755 --- a/c.bqn +++ b/c.bqn @@ -152,6 +152,7 @@ DParse ← {nv‿r𝕊𝕩: sl←1⊸⌽⊸∨𝕩∊bL⋄sr←¯1⊸⌽⌾(g⊸⊏)sl⋄sa←sl∨sr g⊏˜↩⍋g⊏sl⋄r×↩¬sa⋄o←p>0 r+↩(sa<𝕩=1⊑bB)(⊣∧¬⊸∨=○(⌈`(1+↕∘≠)⊸×)⊢)(¯1⊸⌽⌾(g⊸⊏)3=r)∨1≤r + r↩¯2¨⌾((+`¯1↓1⊸⌽⌾((0∾1+g)⊸⊏)⊸-1⌽0∾𝕩∊bG)⊸/)r rev←⍋+`1+¯1↓g((¯1∾⊣)(⊣⍋⊸⊏⊏˜-⊏˜⟜⍋)⟜⍋1(+`∘∾-∾˜)⊏)o∨sl∨𝕩∊bS g↩⍋fd←+`rev⊏br @@ -163,13 +164,14 @@ DParse ← {nv‿r𝕊𝕩: ft←0∾(H↕3)+2×(H⥊3)⌈2×H⥊4 r↩((1↓ft)⊏(1+2⊸≤)⊸/↕4)⌾(b⊸⊏)rev⊏r - id←/(0⊸≤∧<⟜nv)xv←𝕩-vi⋄d←id⊏dec←¯1⌽𝕩=⊑bG⋄sp←/𝕩∊bI + id←/idm←(0⊸≤∧<⟜nv)xv←𝕩-vi⋄sp←/𝕩∊bI + d←id⊏dec←idm∧((⌈`↕∘≠⊸×𝕩∊bG)⊏𝕩=⊑bG)∧r=¯2 ig←⍋(⊏⟜(¯1∾c/g)∾d⊸/⊏((≠𝕩)∾b⊏g)˜)id⊏fi ig↩<⟜(≠id)⊸/(⍋+`∘⊏⟜(d∾-/˜d))⊸⊏(⍋⊏⟜(∾⟜(d⊸/)id⊏𝕩))⊸⊏ig ui←d(⌈`↕∘≠⊸×)⊸⊏⌾(ig⊸⊏)id ii←(ui⊏(fi⊏ft⊏≠¨spd)-(⌈`c⊸×)⊸¬+`dec)∾((sp⊏fi)⊏3×2|ft)++⟜(0⊸≤)2+sp⊏xv idor←∾3⥊)gr⊏sr-sl⋄l←/g⊏𝕩=5⊑bB @@ -184,9 +186,9 @@ DParse ← {nv‿r𝕊𝕩: 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⟩ + or←⍋idor∾g⊏˜∾⟨cn,cn,b,b,rt,dr,l,l,si,si,1+/a,oa+1⌈oa⊏os,(dy×⊏⟜os)⊸+fa+dy⟩ bc0←∾idbc∾⟨0¨cn,u⊐ob,15¨b,1+↕≠b⟩ - bc←or⊏bc0∾∾⟨25¨rt,(11-⊑bG)+a/𝕩,14¨dr,3¨l,ll,3¨si,sll,5+oa⊏r,16+dy-7×fa⊏tr⟩ + bc←or⊏bc0∾∾⟨25¨rt,14¨dr,3+¯2=l⊏r,ll,3+¯2=si⊏r,sll,(11-⊑bG)+a/𝕩,5+oa⊏r,16+dy-7×fa⊏tr⟩ fs←(ft⊏⥊"fmd"≍⌜⌽↕2)∾¨((+`0∾1+⌊128⋆⁼1⌈bc)⊏˜/1∾or∊bc0+⟜↕○≠rt)≍○<¨(ft⊏spd)∾⟜(⥊¨↑⟜•a)¨lc ⟨LEBv bc,u,fs⟩ } diff --git a/test/bcases.bqn b/test/bcases.bqn index 72249b8f..1b7dfbc6 100644 --- a/test/bcases.bqn +++ b/test/bcases.bqn @@ -36,3 +36,4 @@ 5 % 2+⍟3-1 9 % _m←˜⋄{mm←𝕩⋄×_mm 3}m -2 % F←{-𝕩}⋄{F 2} +2 % c‿d←2+⟨a,b⟩←↕2⋄⟨b‿c,a⟩↩⟨4⋄5⟩‿6⋄(b×c)-d×a -- cgit v1.2.3