diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-08-05 13:59:21 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-08-05 17:41:05 -0400 |
| commit | 67cdbb1270c911f9d37dfdee9f1a99e2eeaaf71d (patch) | |
| tree | 5a0a29f11cfafa5494bccded9fc1afecfdc75cb0 /src/c.bqn | |
| parent | d2ec66f3dbb4d8b2bd9ab1fa370a5511a09f8e13 (diff) | |
Precompute character code for letter e
Diffstat (limited to 'src/c.bqn')
| -rw-r--r-- | src/c.bqn | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -22,6 +22,7 @@ charSet←∾charGroups←⟨ # #'" eliminated during tokenization ⟩ bF‿bM‿bC‿bS‿bG‿bB‿bL‿bO‿bI‿bD‿bN‿bA‿bW←⊔/≠¨charGroups +bA_e←4⊑bA M←⊢(0⊸≤∧≠⊸>)-⟜⊑ vi←+´≠¨9↑charGroups charRole←((vi-≠bI)↑/0∾≠¨3↑charGroups)∾(5/⌽↕2)∾0 @@ -59,7 +60,7 @@ ReadNum←{ Int←(n=⊑)◶⟨Nat,-·Nat 1⊸↓⟩ Dec←⊐⟜(<d)⊸(Nat∘↑ + ·(0<≠)◶⟨0,Nat÷10⋆≠⟩+⟜1⊸↓) Pos←(⊑p‿i⊐⊏)◶⟨π,∞,Dec⟩ - e←⊑𝕩⊐charSet⊐<'e' + e←⊑𝕩⊐bA_e m←(n=⊑)◶⟨Pos,-·Pos 1⊸↓⟩e↑𝕩 𝕩×⟜(10⋆·Int(e+1)↓⊣)˜⍟(e<≠𝕩)m } @@ -87,6 +88,7 @@ Parse ← {nv‿r←𝕨 FC←-⟜(≠↑0∾⊢)(c∾1)/·+`∾⟜0 H←0<1↓·FC𝕩 M (5⊑bI)+⊢ ft←0∾(H↕3)+2×(H⥊3)⌈2×H⥊4 + fsc←ft⊏spc r↩((1↓ft)⊏(1+2⊸≤)⊸/↕4)⌾(b⊸⊏)rev⊏r id←/idm←(0⊸≤∧<⟜nv)xv←𝕩-vi⋄idx←id⊏𝕩⋄sp←/𝕩 M bI @@ -113,7 +115,7 @@ Parse ← {nv‿r←𝕨 ig←⍋(⊏⟜(¯1∾c/gf)∾d⊸/⊏((≠𝕩)∾b⊏gf)˜)id⊏fi ig↩<⟜(≠id)⊸/(⍋+`∘⊏⟜(d∾-/˜d))⊸⊏(⍋⊏⟜(∾⟜(d⊸/)idx))⊸⊏ig ui←d(⌈`↕∘≠⊸×)⊸⊏⌾(ig⊸⊏)id - ii←(ui⊏(fi⊏ft⊏spc)-(⌈`c⊸×)⊸¬+`dec)∾((sp⊏fi)⊏3×2|ft)++⟜(0⊸≤)2+sp⊏xv + ii←(ui⊏(fi⊏fsc)-(⌈`c⊸×)⊸¬+`dec)∾((sp⊏fi)⊏3×2|ft)++⟜(0⊸≤)2+sp⊏xv idor←∾3⥊<is←id∾sp idbc←⟨21+is⊏asn,(id-○(⊏⟜fd)ui)∾0¨sp,ii⟩ @@ -121,7 +123,7 @@ Parse ← {nv‿r←𝕨 or←⍋idor∾g⊏˜∾⟨cn,cn,b,b,rt,dr,l,l,si,si,at,oa+1⌈oa⊏os,(dy×⊏⟜os)⊸+fa+dy⟩ bc0←∾idbc∾⟨0¨cn,u⊐ob,15¨b,1+↕≠b⟩ bc←or⊏bc0∾∾⟨25¨rt,14¨dr,3+l⊏aa,ll,3+si⊏aa,sll,(11-⊑bG)+a/ma+𝕩,5+oa⊏r,(⊢+9×10⊸=)16+dy-7×fa⊏tr⟩ - fs←(ft⊏⥊3≍⌜⟜⌽○↕2)∾¨((+`0∾1+⌊128⋆⁼1⌈bc)⊏˜/1∾or∊bc0+⟜↕○≠rt)≍○<¨lc+ft⊏spc + fs←(ft⊏⥊3≍⌜⟜⌽○↕2)∾¨((+`0∾1+⌊128⋆⁼1⌈bc)⊏˜/1∾or∊bc0+⟜↕○≠rt)≍○<¨lc+fsc ⟨LEBv bc∾25,u,fs⟩ } |
