blob: 254c8a7bb4d403ab899ef07305177f113cda2f62 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# BQN hosted in dzaima/BQN
# Result is a function that executes BQN code.
⟨src,need⟩ ← •Import "src/pr.bqn"
⟨DRun⟩ ← •Import "dc.bqn"
⟨DCompile⟩ ← need •Import "dc.bqn"
glyphs ← ∾ gl ← •Import "src/glyphs.bqn"
GroupLen ← {(𝕨⌈≠)⊸↑0•FillFn≠¨⊔𝕩}
extra ← ⟨ •Type, •FillFn, ⋆⁼, GroupLen, ∾⊔∘⊢, •_fillBy_ ⟩
provide ← { g←𝕩∊glyphs ⋄ (⍋⍋g)⊏extra∾•BQN¨g/𝕩 } ∾need
rt‿SetPrims ← •COMP ⟨provide,(•BQN"•"⊸∾)¨⟩ DCompile src
PrimInd ← rt⊸⊐⌾<
Decompose ← ((≠glyphs)>PrimInd)◶⟨•Decompose,0⊸≍⟩
SetPrims ⟨ Decompose, PrimInd ⟩
sys ← {𝕩⊏˜𝕨⊸⊐}˝⍉>⟨
"bqn"‿{BQN𝕩}
"type"‿•Type
"glyph"‿(glyphs⊑˜PrimInd)
"decompose"‿Decompose
⟩
BQN ← ⟨rt,Sys⟩⊸DRun
|