aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-09-27 22:08:53 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-09-27 22:17:27 -0400
commitfd6791242177e880db399ac2368484ae5047fbe8 (patch)
tree215c029b5bb270cf3d81ae1663bec40ce9e755d7 /src
parentbd5e513efc8a33f19d74a901f00d8c7ea176b00e (diff)
Only deduplicate primitives in Parse since literals are already done
Diffstat (limited to 'src')
-rw-r--r--src/c.bqn10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/c.bqn b/src/c.bqn
index 5d6a15ae..8a08171f 100644
--- a/src/c.bqn
+++ b/src/c.bqn
@@ -138,7 +138,8 @@ Parse ← {r‿nv←𝕨
oa←⌽/op←(«r≥0)∧r≥2
fa←/(ta∨(ro∧«op)∨«aa)<(r=1)∨<⟜»op
dy←fa⊏«(𝕩≠⊑bO)∧(tr∧r≥0)∨ro<r=0
- n←𝕩≥vi+nv⋄cn←/n∨𝕩<sep⋄u←∧⍷ob←cn⊏𝕩
+ ob←pr⊐˜u←⍷∧pr←𝕩⊏˜pi←/𝕩<sep
+ cn←pi∾lt←/𝕩≥ci←vi+nv⋄ob∾↩(ci-˜≠u)+lt⊏𝕩
s←𝕩=sep⋄fo←𝕩=2+⊑bB⋄ls←s∧fo<○IT lo←𝕩=4+⊑bB
ll←(¬lo/1«ps)+-⟜»1↓(lo∾1)/+`ls∾0
dr←/ls<s⋄rt←/fo
@@ -156,7 +157,7 @@ Parse ← {r‿nv←𝕨
b⊏↩gi
or←⍋idor∾g⊏˜∾⟨cn,cn,b,b,dr,l,l,si,si,at,oa+1⌈oa⊏os,(dy×⊏⟜os)⊸+fa+dy,rt⟩
- bc←or⊏∾idbc∾⟨0¨cn,u⊐ob,15¨b,1+↕≠b,14¨dr,3+l⊏aa,ll,3+si⊏aa,sll
+ bc←or⊏∾idbc∾⟨0¨cn,ob,15¨b,1+↕≠b,14¨dr,3+l⊏aa,ll,3+si⊏aa,sll
(11-⊑bG)+a/ma+𝕩,5+oa⊏r,(⊢+9×10⊸=)16+dy-7×fa⊏tr,25¨rt⟩
bcl‿el←LEB bc∾25
fs←(ft⊏⥊3≍⌜⟜⌽○↕2)∾¨(el/˜1∾or≥bc-○≠rt)≍¨lc+fsc
@@ -173,7 +174,6 @@ LEB←{
Compile←{
⟨t,r,nVar,const⟩←Tokenize𝕩
- ⟨bc,u,blk⟩←r‿nVar Parse t
- o←(u-(vi+nVar-≠𝕨)×u≥vi)⊏𝕨∾const
- ⟨bc,o,blk⟩
+ ⟨bc,pr,blk⟩←r‿nVar Parse t
+ ⟨bc,(pr⊏𝕨)∾const,blk⟩
}