From 5f9b2d015f9d9e6a17311c9f09cc618b34077d69 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Wed, 7 Oct 2020 15:38:51 -0400 Subject: Recompute ps from r instead of permuting it --- src/c.bqn | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/c.bqn b/src/c.bqn index dec6c1a9..acf69214 100644 --- a/src/c.bqn +++ b/src/c.bqn @@ -113,9 +113,8 @@ Parse ← {r‿nv←𝕨 "Empty statement or expression" ! ∧´(4+⊑bB)=(1⊸«⊸∧1∾gb)/0∾gx "Invalid assignment or stranding use" ! ∧´(r≤¯2)/r»⊸∧⟜«○(0⊸≤)r+p sr←»⌾(g⊸⊏)sl←«⊸∨r=¯2⋄cp←𝕩=1+⊑bB - ps←sl∨r=¯1 g⊏˜↩⍋g⊏sl - rev←⍋+`¯1↓(¯1∾g)(⊣⍋⊸⊏⊏˜⟜⍋¬⊏˜)⍋+`⊸+1∾g⊏ps + rev←⍋+`¯1↓(¯1∾g)(⊣⍋⊸⊏⊏˜⟜⍋¬⊏˜)⍋+`⊸+1∾g⊏sl∨r=¯1 gf←⍋fd←+`rev⊏br←p×𝕩M⟨2+⊑bB,2⟩ rev⊏˜↩gf⋄fd⊏˜↩gf @@ -136,9 +135,9 @@ Parse ← {r‿nv←𝕨 g↩⍋+`rev⊏p-br⋄gr←g⊏rev⋄sll←1+2÷˜0(<-○/>)gr⊏sr-sl⋄l←/g⊏𝕩=5+⊑bB g⊏˜↩gs←⍋gr⊏sl⋄gr↩g⊏rev⋄gi←⍋g - 𝕩⊏˜↩g⋄r⊏˜↩gr⋄ps⊏˜↩gr⋄si←/gr⊏sr>sl⋄l⊏↩⍋gs - er⊏˜↩gr⋄ma←(𝕩=1+⊑bG)∧«er≥1⋄er⊏˜↩IT»ps⋄ma>↩tr←er≥1 - a←r=¯3⋄ro←(r≥2)∨a<«r=3 + 𝕩⊏˜↩g⋄r⊏˜↩gr⋄er⊏˜↩gr⋄si←/gr⊏sr>sl⋄l⊏↩⍋gs + a←r=¯3⋄ps←a↩tr←er≥1 os←⌽↕∘≠⊸(⊣-T)⌽¬ro∨ma⋄at←1+⊏⟜os⊸+/a "Role of the two sides in assignment must match" ! (⊏⟜er≡⊏⟜r)at r(×⟜¬-⊢)↩aa←g⊏asn←»+`gi⊏«⊸-(≠𝕩)↑/⁼at -- cgit v1.2.3