diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-07-12 09:36:55 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-07-12 09:36:55 -0400 |
| commit | e77f210a4c51fee2157e7faa407f33f3ce268bb8 (patch) | |
| tree | 672b79dd9288d7a7019efcdb6e672945190861da | |
| parent | 5173c63705c1cc0b1846150e5fc1d6ed3c97d1f0 (diff) | |
Finish strand implementation: fix role and argument handling
| -rwxr-xr-x | dc.bqn | 18 | ||||
| -rw-r--r-- | test/bcases.bqn | 1 |
2 files changed, 10 insertions, 9 deletions
@@ -128,21 +128,21 @@ Compile←{ DParse ← {nv‿r𝕊𝕩: g←⍋+`p←bB(⊣(≠⊸>ׯ1⋆2|⊢)⊐)𝕩 - r+↩(𝕩=1⊑bB)(⊣∧¬⊸∨=○(⌈`(1+↕∘≠)⊸×)⊢)(¯1⊸⌽⌾(g⊸⊏)3=r)∨1≤r - lg←1⊸⌽⊸∨𝕩∊bL⋄o←p>0 - rev←⍋+`1+¯1↓(⍋∘⊏⟜lg⊸⊏g)((¯1∾⊣)(⊣⍋⊸⊏⊏˜-⊏˜⟜⍋)⟜⍋1(+`∘∾-∾˜)⊏)o∨lg∨𝕩∊bS - g↩⍋+`rev⊏p - gr←g⊏rev⋄𝕩⊏˜↩gr⋄r⊏˜↩gr⋄o⊏˜↩gr - s←𝕩∊bS⋄ps←s∨o⋄a←𝕩∊2↑bG⋄lg↩¯1⊸⌽⊸∨𝕩∊bL - r∧↩¬1⊸⌽⊸∨lg⋄r-↩ps∨a⋄op←r≥2⋄ro←op∨1⌽r=3 + 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 + rev←⍋+`1+¯1↓g((¯1∾⊣)(⊣⍋⊸⊏⊏˜-⊏˜⟜⍋)⟜⍋1(+`∘∾-∾˜)⊏)o∨sl∨𝕩∊bS + g↩⍋+`rev⊏p⋄gr←g⊏rev⋄ll←1+2÷˜0(<-○/>)gr⊏sr-sl + g⊏˜↩⍋gr⊏sl⋄gr↩g⊏rev⋄𝕩⊏˜↩gr⋄r⊏˜↩gr⋄o⊏˜↩gr⋄l←/gr⊏sr>sl + s←𝕩∊bS⋄ps←s∨o∨gr⊏sl⋄a←𝕩∊2↑bG + r-↩ps∨a⋄op←r≥2⋄ro←op∨1⌽r=3 tr←(⌈`↕∘≠⊸ׯ1⌽ps)⊏r≥1 tf←(a≤○(⌈`(1+↕∘≠)⊸×)ps)∧2(|<≤)ps(⊢-⌈`∘×)+`¬ro opa←op>1↓0∾˜ps∨a⋄os←⌽↕∘≠⊸(⊣-⌈`∘×)⌽¬ro∨¯1⌽op oa←⌽/opa⋄fa←/(tf∨¬tr)∧(ro∧1⌽opa)<(r=1)∨op<¯1⌽opa dy←fa⊏1↓0∾˜(tr∧r≥0)∨r=0 n←𝕩≥vi+nv⋄id←/n<𝕩≥vi⋄cn←/n∨𝕩≤¯1⊑bC⋄u←⍷ob←cn⊏𝕩 - lo←(o/𝕩)=4⊑bB⋄l←/𝕩=5⊑bB⋄ll←1+lo/1(↓--⊸↓)(o∾1)/+`s∾0 - l∾↩sd←/1⊸⌽⊸<lg⋄ll∾↩1+2÷˜sd-/1⊸⌽⊸>lg + lo←(o/𝕩)=4⊑bB⋄l∾↩/𝕩=5⊑bB⋄ll∾↩1+lo/1(↓--⊸↓)(o∾1)/+`s∾0 dr←/s>o+`⊸⊏0∾lo or←⍋g⊏˜∾⟨cn,cn,id,id,1+/a,dr,l,l,oa+1⌈1-˜oa⊏os,fa+dy⟩ bc←or⊏∾⟨0¨cn,u⊐ob,1+(id-1)⊏a,vi-˜id⊏𝕩,(11-⊑bG)+a/𝕩 diff --git a/test/bcases.bqn b/test/bcases.bqn index 9657c1b2..cf4d7ab3 100644 --- a/test/bcases.bqn +++ b/test/bcases.bqn @@ -22,3 +22,4 @@ 3 % ≠0‿1‿2 2 % 0⊑2‿+‿-‿1 30 % ×´(2‿(1+3)‿(×4))+1 +1 % f←2⊑(ט)‿⍟‿(×-+)⋄2 F 3 |
