diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-10-07 15:38:51 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-10-07 15:38:51 -0400 |
| commit | 5f9b2d015f9d9e6a17311c9f09cc618b34077d69 (patch) | |
| tree | 54d1fe6100776fd1b8450ad218a251bb342fbb23 | |
| parent | 39f2d2698e1c10e9fc7090ab955bbaedb57af6d9 (diff) | |
Recompute ps from r instead of permuting it
| -rw-r--r-- | src/c.bqn | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -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<r<0⋄ro←(r≥2)∨a<«r=3⋄ma←(𝕩=1+⊑bG)∧«er≥1 + er⊏˜↩IT»ps⋄ma>↩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 |
