diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-07-30 09:44:08 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-07-30 09:44:08 -0400 |
| commit | 672fa33980494249626e3ffc6d73a4f69e9ba25b (patch) | |
| tree | acdb8d12ed6ce89b25ab642f5cc927dfb3e506da | |
| parent | 97dd08aab03affeb0bed8508f25d7a04f2a92d67 (diff) | |
Support multiple assignment
| -rwxr-xr-x | c.bqn | 10 | ||||
| -rw-r--r-- | test/bcases.bqn | 1 |
2 files changed, 7 insertions, 4 deletions
@@ -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⥊<is←id∾sp - idbc←⟨21+(is-1)⊏𝕩∊2↑bG,(id-○(⊏⟜fd)ui)∾0¨sp,ii⟩ + idbc←⟨21+¯2=is⊏r,(id-○(⊏⟜fd)ui)∾0¨sp,ii⟩ lc←FC dec g↩⍋+`rev⊏p-br⋄gr←g⊏rev⋄sll←1+2÷˜0(<-○/>)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 |
