aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-10-06 11:07:08 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-10-06 11:07:08 -0400
commit83939b328870936faaddf865682121a0d12fd0dd (patch)
tree2f14dac76bd907de24d977dc6a361d2515b66ccd /src
parent7b7204e598c80d6ceed6d8ae12e7863684a62590 (diff)
Remove redundant parentheses at the beginning of parsing
Diffstat (limited to 'src')
-rw-r--r--src/c.bqn8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/c.bqn b/src/c.bqn
index 91a10597..b6af9c89 100644
--- a/src/c.bqn
+++ b/src/c.bqn
@@ -106,15 +106,17 @@ ErrUndeclared←{
0 !˜ "Undefined identifier"∾(1<≠𝕩)/"s"
}
Parse ← {r‿nv←𝕨
- g←⍋pd←+`p←(¯1-2×r)×𝕩 M bB⋄br←p×𝕩M⟨2+⊑bB,2⟩
+ g←⍋pd←+`p←(¯1-2×r)×𝕩 M bB⋄pp←g⊏p×𝕩M⟨⊑bB,2⟩
p(=⟜1⊸/ErrMismatchedBrackets⍟≢1-˜=⟜¯1⊸/)○(g⊸⊏)𝕩
"Swapped open and closed brackets" ! 0≤(⊑g)⊑pd
- sl←«⊸∨𝕩 M bL⋄sr←»⌾(g⊸⊏)sl⋄cp←𝕩=1+⊑bB
+ rp←¬g⍋⊸⊏(pp>0)(/{𝕨⌾((pp<0)⊸/)𝕩}∧)(«⊢<1⊸«)⊸∧g⊏p>0
+ 𝕩/˜↩rp⋄r/˜↩rp⋄g↩⍋+`p↩rp/p
+ sr←»⌾(g⊸⊏)sl←«⊸∨𝕩 M bL⋄cp←𝕩=1+⊑bB
ps←(𝕩=sep)∨sl∨p>0
g⊏˜↩⍋g⊏sl
rev←⍋+`¯1↓(¯1∾g)(⊣⍋⊸⊏⊏˜⟜⍋¬⊏˜)⍋+`⊸+1∾g⊏ps
- gf←⍋fd←+`rev⊏br
+ gf←⍋fd←+`rev⊏br←p×𝕩M⟨2+⊑bB,2⟩
rev⊏˜↩gf⋄fd⊏˜↩gf
𝕩⊏˜↩rev⋄bv←rev⊏br⋄b←/bv<0⋄fi←+`c←bv>0