diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-07-24 14:46:44 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-07-24 14:46:44 -0400 |
| commit | bfbe6b74346f760598bfc07dd7e94a0b427415ab (patch) | |
| tree | 20960f4ba1f9dcd84044df8d99113113a312dee5 | |
| parent | 4b4b5d9c2d94b853f874ad06a0dd015e51a29d9b (diff) | |
Encode bytecode with LEB128
| -rwxr-xr-x | c.bqn | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -138,6 +138,13 @@ Compile←{ # Targetting dzaima/BQN bytecode: +LEBv ← { + b←128 + ⍷l←⌊b⋆⁼1⌈𝕩 + o←⍋⍋⊒/1+l + o⊏l{f←×𝕨⋄(𝕨-1)(b⊸(×⟜f+|)∾𝕊⟜(⌊÷⟜b)○(f⊸/))⍟(∨´f)𝕩}𝕩 +} + DParse ← {nv‿r𝕊𝕩: g←⍋+`p←bB(⊣(≠⊸>ׯ1⋆2|⊢)⊐)𝕩⋄br←p×𝕩∊2‿3⊏bB sl←1⊸⌽⊸∨𝕩∊bL⋄sr←¯1⊸⌽⌾(g⊸⊏)sl⋄sa←sl∨sr @@ -165,7 +172,7 @@ DParse ← {nv‿r𝕊𝕩: or←⍋g⊏˜∾⟨cn,cn,id,id,b,b,rt,1+/a,dr,l,l,si,si,oa+1⌈oa⊏os,(dy×⊏⟜os)⊸+fa+dy⟩ bc1←⟨0¨cn,u⊐ob,1+(id-1)⊏a,5+vi-˜id⊏𝕩,15¨b,1+↕≠b⟩ bc←or⊏∾bc1∾⟨25¨rt,(11-⊑bG)+a/𝕩,14¨dr,3¨l,ll,3¨si,sll,5+oa⊏r,5+dy+4×fa⊏tr⟩ - ⟨bc,u,((0∾ft)⊏(2/"fmd")≍¨6⥊⌽↕2)∾¨/1∾or∊(+´≠¨bc1)+↕≠rt⟩ + ⟨LEBv bc,u,((0∾ft)⊏(2/"fmd")≍¨6⥊⌽↕2)∾¨/1∾or∊(+´≠¨bc1)+↕≠rt⟩ } prims←⟨ |
