From 542ad5bd80c43f5765a2404ed5c14ebf3b6d2c3d Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Sun, 5 Jul 2020 20:40:13 -0400 Subject: Add dzaima/BQN bytecode backend (missing block support) --- dc.bqn | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/dc.bqn b/dc.bqn index 0064b72d..f219b5b1 100755 --- a/dc.bqn +++ b/dc.bqn @@ -115,3 +115,31 @@ Compile←{ f←⟨rcp,or,body⟩ Gen ⟨(≠¨f)/(1‿2‿0∾¨1)⥊¨¨f64 ⋄ 2 ⋄ ∾f⟩ } + + +⍝ Targetting dzaima/BQN bytecode: + +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⟩ + bc‿u +} + +prims←⟨ + +,-,×,÷,⋆,√,⌊,⌈,|,¬,∧,∨,<,>,≠,=,≤,≥,≡,≢,⊣,⊢,⥊,∾,≍,↑,↓,↕,⌽,⍉,/,⍋,⍒,⊏,⊑,⊐,⊒,∊,⍷,⊔ + ˜,˘,¨,⌜,⁼,´,` + ∘,○,⊸,⟜,⌾,⊘,◶,⎉,⚇,⍟ +⟩ +DGenFn←{ + ⟨t,nVar,nLoc,lits⟩←⟨⟩Tokenize𝕩 + ⟨bc,u⟩←nVar DParse t + o←(u-(vi+nVar-≠prims)×u≥vi)⊏prims∾ReadNum¨lits + ⟨bc,o,nVar↑•a,⟨⟩⟩ +} +DRun←{ + ('f'‿0 •COMP DGenFn 𝕩){𝔽} 0 +} -- cgit v1.2.3