From 246bd42eaad81a5ea8748abf79926bf6e658d744 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Fri, 25 Sep 2020 22:18:27 -0400 Subject: =?UTF-8?q?Use=20=E2=8C=88`=C3=97=20and=20related=20utility=20func?= =?UTF-8?q?tions=20in=20the=20compiler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/c.bqn | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/c.bqn b/src/c.bqn index 9cc3487f..79bafdf4 100644 --- a/src/c.bqn +++ b/src/c.bqn @@ -27,6 +27,7 @@ bF‿bM‿bC‿bS‿bG‿bB‿bL‿bO‿bI‿bD‿bN‿bA‿bW‿bP←≍¨˜⟜ M←1⊸⊑(0⊸≤∧>)-⟜⊑ vi←⊑bD charRole←((⊑bI)↑/0∾3↑cgl)∾(5/⌽↕2)∾0 +T←⌈`× ⋄ IT←↕∘≠⊸T ⋄ I1T←(1+↕∘≠)⊸T spc←⥊3‿5‿6-⌜3‿0 Tokenize←{ @@ -56,9 +57,9 @@ Tokenize←{ k←id‿num‿chr‿str⋄k(⊢>¯1»⌈`)⊸/¨˜↩j←⊐¨k c↩(w∨¬l∨c M bW)/(∾j++`vi»≠¨k)⌾(ki⊸⊏)c c/˜↩¬(1»(c∊2‿4+⊑bB)∨⊢)⊸∧c M bS⋄c/˜↩¬(1«c∊3‿5+⊑bB)∧c M bS - t←ti⌾((c M vi∾≠⊑k)⊸/)(vi⌊c)⊏charRole + tt←ti⌾((c M vi∾≠⊑k)⊸/)(vi⌊c)⊏charRole c+↩5×c M 5≍˜⊑bI - ⟨c,t,≠⊑k,∾1↓k⟩ + ⟨c,tt,≠⊑k,∾1↓k⟩ } ErrNumericChars←{ @@ -76,8 +77,7 @@ ReadNums←{ v←(>⟜«0≤l)/(0⊸≤××⟜10⊸+)`»«l v×↩1‿¯1⊏˜(r←>⟜»d∨m)/»n vm←c/z - ld←(⌈`⊢×1+↕∘≠)d∾0 - dp←vm/(»⊸<×-)⟜(⊏⟜ld)(≠«/)c + dp←vm/(»⊸<×-)⟜(⊏⟜(I1T d∾0))(≠«/)c t←10⋆|ee←dp-˜vm/«v׬vm t÷˜⌾((0>ee)⊸/)t×⌾((0)gr⊏sr-sl⋄l←/g⊏𝕩=5+⊑bB g⊏˜↩gs←⍋gr⊏sl⋄gr↩g⊏rev⋄𝕩⊏˜↩g⋄r⊏˜↩gr⋄o⊏˜↩gr⋄si←/gr⊏sr>sl gi←⍋g⋄l⊏↩⍋gs s←𝕩 M bS⋄ps←s∨o∨gr⊏sl⋄a←𝕩 M 2≍˜⊑bG r-↩ps∨a⋄op←r≥2⋄fe←(r≥1)∨«r=3 - tr←(⌈`↕∘≠⊸×»ps)⊏fe + tr←(IT»ps)⊏fe ma←tr<(𝕩=1+⊑bG)∧«fe - ro←op∨a<«r=3⋄os←⌽↕∘≠⊸(⊣-⌈`∘×)⌽¬ro∨ma⋄at←(⊢+1+⊏⟜os)/a + ro←op∨a<«r=3⋄os←⌽↕∘≠⊸(⊣-T)⌽¬ro∨ma⋄at←(⊢+1+⊏⟜os)/a aa←g⊏asn←»+`gi⊏-⟜»(≠𝕩)↑/⁼at-1⋄r↩¯1¨⌾(aa⊸/)r - tf←(a≤○(⌈`(1+↕∘≠)⊸×)ps)∧(⊢∧2(|<≤)ps(⊢-⌈`∘×)+`)¬ro + tf←(a≤○I1T ps)∧(⊢∧2(|<≤)ps(⊢-T)+`)¬ro opa←op>«ps∨a oa←⌽/opa⋄fa←/(«aa)<(tf∨¬tr)∧(ro∧«opa)<(r=1)∨op<»opa dy←fa⊏«(𝕩≠⊑bO)∧(tr∧r≥0)∨roo+`⊸⊏0∾lo⋄rt←/𝕩=2+⊑bB @@ -145,8 +145,8 @@ Parse ← {nv‿r←𝕨 "Multiple definitions" ! 1∧´ixx∨○(»⊸≠((≠id)⊸≤⊸/ig)⊏⊢)ixf ig↩<⟜(≠id)⊸/(⍋+`∘⊏⟜(d∾-/˜d))⊸⊏ig d⊏˜↩ig⋄ErrUndeclared∘/˜⍟(0∨´⊢)⟜(d<»⊸≠)ig⊏idx - ui←(⌈`↕∘≠⊸×d)⊸⊏⌾(ig⊸⊏)id - ii←(ui⊏(fi⊏fsc)-(⌈`c⊸×)⊸¬+`dec)∾((sp⊏fi)⊏3×2|ft)++⟜(0⊸≤)2+sp⊏xv + ui←(IT d)⊸⊏⌾(ig⊸⊏)id + ii←(ui⊏(fi⊏fsc)-c⊸T⊸¬+`dec)∾((sp⊏fi)⊏3×2|ft)++⟜(0⊸≤)2+sp⊏xv idor←∾3⥊