From 80a3fe4874cef67475d6ac691ddd316b49715449 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Sun, 13 Sep 2020 20:14:50 -0400 Subject: More simplifications with shift; replace all Rotates --- src/c.bqn | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/c.bqn b/src/c.bqn index 7695b427..4c0907d3 100644 --- a/src/c.bqn +++ b/src/c.bqn @@ -36,15 +36,14 @@ Tokenize←{ Se←{(⊏˜𝕨)Se 1¨⌾((𝕩/𝕨)⊸⊏)𝕩}⍟{0=¯1⊑𝕩} st←¯1↓Se⟜(1↑˜≠)∾⟜≠q⍋e⋄q/˜↩st⋄e/˜↩st n←≠𝕩⋄a←n↑/⁼q⋄b←n↑/⁼e - f←¬(≠`a∨b)∨1⌽qe←a∧»⊸∧dm + f←¬(≠`a∨b)∨«qe←a∧»⊸∧dm "Unclosed quote"!¬∨´(sm∨dm)∧bqe)×≠`dm∧a∨b lv←chr(⊣∾(1+¯1⌈´⊣)+⊢)○⊐str - UM←(¯1»⌈`)⊸< - lit←lv UM⊸/chr∾str + lit←lv(⊢>¯1»⌈`)⊸/chr∾str li←(ci∾/si)⊏+`»f c←CharCode f/𝕩 @@ -52,7 +51,7 @@ Tokenize←{ us←c=¯1++´bA id←(1-˜(usiu⊏ti + iu←/(⊢>¯1»⌈`)is←⊐id⋄ie←vi+≠in←0>iu⊏ti ti↩(us/˜«⊸0 pt←sa<𝕩=1+⊑bB rev←⍋+`1+¯1↓g((¯1∾⊣)(⊣⍋⊸⊏⊏˜-⊏˜⟜⍋)⟜⍋1(+`∘∾-∾˜)⊏)o∨sl∨𝕩 M bS @@ -108,7 +107,7 @@ Parse ← {nv‿r←𝕨 ft←(0∾1⊸H+2×2⊸H⌈2×3⊸H)(0‿3‿4‿5+5+⊑bI)⍋𝕩 fsc←ft⊏spc r↩((1↓ft)⊏(1+2⊸≤)⊸/↕4)⌾((b⊏rev)⊸⊏)r - r+↩pt(⊣∧¬⊸∨=○(⌈`(1+↕∘≠)⊸×)⊢)(¯1⊸⌽⌾(g⊸⊏)3=r)∨1≤r + r+↩pt(⊣∧¬⊸∨=○(⌈`(1+↕∘≠)⊸×)⊢)(»⌾(g⊸⊏)3=r)∨1≤r id←/idm←(0⊸≤∧<⟜nv)xv←𝕩-vi⋄idx←id⊏𝕩⋄sp←/𝕩 M bI ad←(⌈`↕∘≠⊸×𝕩 M bG)⊏𝕩=⊑bG @@ -117,14 +116,14 @@ Parse ← {nv‿r←𝕨 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)∨1⌽r=3 - tr←(⌈`↕∘≠⊸ׯ1⌽ps)⊏fe - ma←tr<(𝕩=1+⊑bG)∧1⌽fe - ro←op∨a<1⌽r=3⋄os←⌽↕∘≠⊸(⊣-⌈`∘×)⌽¬ro∨ma⋄at←(⊢+1+⊏⟜os)/a - aa←g⊏asn←¯1⌽+`gi⊏-⟜»¯1↓/⁼(≠𝕩)∾˜at-1⋄r↩¯1¨⌾(aa⊸/)r + r-↩ps∨a⋄op←r≥2⋄fe←(r≥1)∨«r=3 + tr←(⌈`↕∘≠⊸×»ps)⊏fe + ma←tr<(𝕩=1+⊑bG)∧«fe + ro←op∨a<«r=3⋄os←⌽↕∘≠⊸(⊣-⌈`∘×)⌽¬ro∨ma⋄at←(⊢+1+⊏⟜os)/a + aa←g⊏asn←»+`gi⊏-⟜»(≠𝕩)↑/⁼at-1⋄r↩¯1¨⌾(aa⊸/)r tf←(a≤○(⌈`(1+↕∘≠)⊸×)ps)∧(⊢∧2(|<≤)ps(⊢-⌈`∘×)+`)¬ro opa←op>«ps∨a - oa←⌽/opa⋄fa←/(1⌽aa)<(tf∨¬tr)∧(ro∧1⌽opa)<(r=1)∨op<¯1⌽opa + oa←⌽/opa⋄fa←/(«aa)<(tf∨¬tr)∧(ro∧«opa)<(r=1)∨op<»opa dy←fa⊏«(𝕩≠⊑bO)∧(tr∧r≥0)∨ro