aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdc.bqn12
1 files changed, 5 insertions, 7 deletions
diff --git a/dc.bqn b/dc.bqn
index 6e449e49..86e31a1a 100755
--- a/dc.bqn
+++ b/dc.bqn
@@ -1,7 +1,5 @@
⍝ Run with spec/dzref
-_ur_ ← {(𝕘/⊸∾↕≠𝕩) ⊑¨∘⊔ (𝔽𝕘/𝕩)∾𝕩}
-
Base←{+⟜(𝕨⊸×)´⌽𝕩}
Enc2←{𝕨⥊2(|∾˜(𝕨-1)Enc2⌊∘÷˜)⍟(0<𝕨)𝕩}
@@ -28,7 +26,7 @@ Tokenize←{
r←𝕩='⍝'⋄s←/(≠↑2⊸↓)⊸∧𝕩=⊑"'"⋄d←/𝕩='"'
g←⍋q←∾⟨ s⋄¯1↓d⋄/r⟩ ⋄q↩g⊏q
e← g⊏∾⟨2+s⋄ 1↓d⋄(⊢-¯1↓0∾⊢)∘⊏⟜(0∾+`r)⊸//(𝕩=nl)∾1⟩
- Se←{(⊏˜𝕨)Se𝕩∨(↕≠𝕩)∊𝕩/𝕨}⍟{0=⊑⌽𝕩}
+ Se←{(⊏˜𝕨)Se 1¨⌾((𝕩/𝕨)⊸⊏)𝕩}⍟{0=⊑⌽𝕩}
st←¯1↓Se⟜(1↑˜≠)∾⟜≠q⊸⍋¨e⋄b←st/q∾˘e
ToI←¯1↓·≠¨∘⊔(≠𝕩)∾˜⥊⋄f←¬≠`ToI b
cb←(¬(st/q)⊏r)/b
@@ -38,14 +36,14 @@ Tokenize←{
w←(≠↑0∾⊢)⊸<l←c∊∾bD‿bN‿bA
id←⍷args∾(bA∊˜w/c)⍒⊸⊏i←(1-˜l×+`w)⊔c
nv←+´bA∊˜⊑¨id
- c↩(w∨¬l∨c∊bW)/(vi+id⊐i)_ur_ w(vi+(≠id)+lu⊐lit)_ur_ cl c
- c/˜↩¬(1∾1∾˜2⊸↓)⊸∧c∊bS
+ c↩(w∨¬l∨c∊bW)/(vi+id⊐i)⌾(w⊸/)(vi+(≠id)+lu⊐lit)⌾(cl⊸/)c
+ c/˜↩¬(1⌾⊑1⌽1⌾⊑)⊸∧c∊bS
⟨c,nv,nv-≠args,(nv↓id)∾lu⟩
}
Parse←{
a←𝕩∊(2↑bG)⋄at←1⌽a⋄𝕩/˜↩¬a⋄a/˜↩¬at
- l←≠𝕩⋄sep←𝕩∊bS⋄𝕩↩(bF⊑˜⥊chF⊐<'⊣')¨_ur_ sep 𝕩⋄sep∨↩𝕩=2⊑bB
+ l←≠𝕩⋄sep←𝕩∊bS⋄𝕩↩(bF⊑˜⥊chF⊐<'⊣')¨⌾(sep⊸/)𝕩⋄sep∨↩𝕩=2⊑bB
o←𝕩=0⊑bB⋄c←𝕩=1⊑bB⋄v←a-˜𝕩≥vi⋄f←¬o∨c∨v∨sep
na←(2×sep)+f×1+l↑0∾c∨v
d←+`o-c⋄fe←((⍋⍋d)⊏+`(⍋d)⊏o)⊏l∾(⍋⊏⟜d)⊸⊏/c
@@ -83,7 +81,7 @@ GenFn←{
⟨t,nVar,nLoc,lits⟩←𝕨Tokenize𝕩
t⊏˜↩⍋+`-´<˘(2‿3⊏bB)=⌜t
nd←+´c←t=3⊑bB
- t↩((vi+nVar+≠lits)+↕∘≠)_ur_ c t
+ t↩((vi+nVar+≠lits)+↕∘≠)⌾(c⊸/)t
⟨a,na⟩←Parse t
ops←⥊∾⟨
∾⟜(0⥊˜3∾˜vi-≠)fntab