aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-08 14:35:59 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-08 14:36:53 -0400
commit42b9f8dab1d88537060f73b12137330052b8f267 (patch)
tree3c4b4cae7fcb7ad37ac8305e7d6f3b16b4218044
parent9213d5469fc53496eb1a83260062661ffdf269e8 (diff)
Support function assignment, but not use
-rwxr-xr-xdc.bqn21
-rw-r--r--test/bcases.bqn1
2 files changed, 12 insertions, 10 deletions
diff --git a/dc.bqn b/dc.bqn
index 6e8ab63d..da871ae0 100755
--- a/dc.bqn
+++ b/dc.bqn
@@ -120,16 +120,17 @@ Compile←{
# Targetting dzaima/BQN bytecode:
DParse ← {
- l←≠𝕩⋄sep←𝕩∊bS⋄𝕩↩(⌽⍋⍋⌽+`(≠↑0∾⊢)⊸∨sep)⊏𝕩
- o←𝕩=1⊑bB⋄g←⍋d←+`o-𝕩=0⊑bB⋄pi←+`ps←g⊏o
- tr←pi⊏(0∾(⍋⊏⟜d)⊸⊏/o)⊏xf←⌽(¬o)=○(·⌈`(1+↕∘≠)⊸×)○⌽𝕩∊bF
- tf←(2(|<≤)↕∘≠⊸(⊣-·⌈`×)ps)×tr
- f←¯1↓(⍋0∾d)⊏xf∾0
- 𝕩↩g⊏𝕩⋄v←𝕩≥vi⋄fa←/tf∨tr<f
- dy←1↓0∾˜(tr>tf∨ps)∨v∨f<𝕩=0⊑bB
- n←𝕩≥vi+𝕨⋄id←/v-n⋄cn←/n∨𝕩∊bF⋄a←𝕩∊2↑bG⋄s←/𝕩∊bS⋄u←⍷ob←cn⊏𝕩
- or←⍋g⊏˜∾⟨cn,cn,id,id,1+/a,s,+⟜(⊏⟜dy)fa⟩
- bc←or⊏∾⟨0¨cn,u⊐ob,(1+(id-1)⊏a),vi-˜id⊏𝕩,(11-⊑bG)+a/𝕩,14¨s,5+fa⊏dy+4×tr⟩
+ l←≠𝕩⋄sep←𝕩∊bS⋄𝕩⊏˜↩⌽⍋⍋⌽+`(≠↑0∾⊢)⊸∨sep
+ o←𝕩=1⊑bB⋄g←⍋d←+`o-𝕩=0⊑bB⋄ps←g⊏o∨sep
+ xf←⌽(¬o∨sep)=○(⌈`(1+↕∘≠)⊸×)○⌽𝕩∊bF
+ 𝕩↩g⊏𝕩⋄v←𝕩≥vi⋄a←𝕩∊2↑bG⋄s←/𝕩∊bS⋄f←(l↑0∾1+g)⊏xf∾0
+ tr←ps+`⊸⊏(0∾ps/g)⊏xf
+ tf←tr∧2(|<≤)ps(⊢-⌈`∘×)↕l
+ fa←/(tr<f)∨tf∧a<○(⌈`(1+↕∘≠)⊸×)ps
+ dy←fa⊏1↓0∾˜(tr>tf∨ps)∨v∨f<𝕩=0⊑bB
+ n←𝕩≥vi+𝕨⋄id←/v-n⋄cn←/n∨𝕩∊bF⋄u←⍷ob←cn⊏𝕩
+ or←⍋g⊏˜∾⟨cn,cn,id,id,1+/a,s,fa+dy⟩
+ bc←or⊏∾⟨0¨cn,u⊐ob,1+(id-1)⊏a,vi-˜id⊏𝕩,(11-⊑bG)+a/𝕩,14¨s,5+dy+4×fa⊏tr⟩
bc‿u
}
diff --git a/test/bcases.bqn b/test/bcases.bqn
index 93388d41..3c546248 100644
--- a/test/bcases.bqn
+++ b/test/bcases.bqn
@@ -1,3 +1,4 @@
-4 % (⌈-)4+÷2
3 % √5(+×-)4
1 % 4((¬=)∧¬=1+-)6
+5 % F←-⋄2+3