aboutsummaryrefslogtreecommitdiff
path: root/dc.bqn
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-08 09:25:07 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-08 09:25:52 -0400
commit4944dee972f9ac492f3e6afb8518465100b596e3 (patch)
treed1a86c64930838290e72751bdd1ac6969fab9f9e /dc.bqn
parent9349cb822b44960aa6072063061ad49d00b73833 (diff)
Supppport trains in bytecode backend
Diffstat (limited to 'dc.bqn')
-rwxr-xr-xdc.bqn15
1 files changed, 10 insertions, 5 deletions
diff --git a/dc.bqn b/dc.bqn
index a2eee448..4ba2c642 100755
--- a/dc.bqn
+++ b/dc.bqn
@@ -121,11 +121,16 @@ Compile←{
DParse ← {
l←≠𝕩⋄sep←𝕩∊bS⋄𝕩↩(⌽⍋⍋⌽+`(≠↑0∾⊢)⊸∨sep)⊏𝕩
- a←𝕩∊2↑bG⋄o←𝕩=1⊑bB⋄c←𝕩=0⊑bB⋄v←𝕩≥vi⋄f←𝕩∊bF
- d←+`o-c⋄fe←(d⍋⊸(⍋∘⊣⊏+`∘⊏)o)⊏l∾(⍋⊏⟜d)⊸⊏/c
- dy←1↓0∾˜o∨v⋄la←(¯1⌽f×dy)/(o×fe)⌈↕l⋄mc←/f׬dy
- n←𝕩≥vi+𝕨⋄id←/v-n⋄cn←/f∨n⋄s←/sep⋄u←⍷ob←cn⊏𝕩
- bc←(⍋(∾˜cn∾id)∾(1+/a)∾s∾mc∾la)⊏∾⟨0¨cn,(1+(id-1)⊏a),u⊐ob,vi-˜id⊏𝕩,(11-⊑bG)+a/𝕩,14¨s,5¨mc,6¨la⟩
+ o←𝕩=1⊑bB⋄c←𝕩=0⊑bB
+ gi←⍋g←⍋d←+`o-c⋄pi←+`ps←g⊏o
+ tr←pi⊏(0∾(⍋⊏⟜d)⊸⊏/o)⊏xf←⌽(¬o)=○(·⌈`(1+↕∘≠)⊸×)○⌽𝕩∊bF
+ tf←(2(|<≤)↕∘≠⊸(⊣-·⌈`×)ps)×tr
+ f←¯1↓(⍋0∾d)⊏xf∾0
+ 𝕩↩g⊏𝕩⋄v←𝕩≥vi⋄fa←/tf∨tr<f
+ dy←1↓0∾˜(tr>tf∨ps)∨v∨(g⊏c)>f
+ n←𝕩≥vi+𝕨⋄id←/v-n⋄cn←/n∨𝕩∊bF⋄a←𝕩∊2↑bG⋄s←/𝕩∊bS⋄u←⍷ob←cn⊏𝕩
+ or←⍋g⊏˜∾outa←⟨cn,cn,id,id,1+/a,s,+⟜(⊏⟜dy)fa⟩
+ bc←or⊏∾outb←⟨0¨cn,u⊐ob,(1+(id-1)⊏a),vi-˜id⊏𝕩,(11-⊑bG)+a/𝕩,14¨s,5+fa⊏dy+4×tr⟩
bc‿u
}