aboutsummaryrefslogtreecommitdiff
path: root/c.bqn
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-30 16:47:17 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-07-30 16:48:45 -0400
commit0d13401bde67f9e8106d8189eec2edb9662d4436 (patch)
treee173ed7d9241f15229c763dce56c6e94f01f8218 /c.bqn
parentdb99d751e2940ad1ca53b5461cce7bd734a06fba (diff)
Support modified assignment
Diffstat (limited to 'c.bqn')
-rwxr-xr-xc.bqn16
1 files changed, 9 insertions, 7 deletions
diff --git a/c.bqn b/c.bqn
index 838da723..45286af3 100755
--- a/c.bqn
+++ b/c.bqn
@@ -169,13 +169,15 @@ DParse ← {nv‿r𝕊𝕩:
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⋄𝕩⊏˜↩g⋄r⊏˜↩g⋄o⊏˜↩gr⋄si←/gr⊏sr>sl
gi←⍋g⋄b⊏↩gi⋄l⊏↩⍋gs
- asn←¯1⌽+`gi⊏-⟜(≠↑0∾⊢)𝕩∊bG⋄r↩¯2¨⌾((g⊏asn)⊸/)r
s←𝕩∊bS⋄ps←s∨o∨gr⊏sl⋄a←𝕩∊2↑bG
- r-↩ps∨a⋄op←r≥2⋄ro←op∨1⌽r=3
- tr←(⌈`↕∘≠⊸ׯ1⌽ps)⊏ro∨r≥1
+ r-↩ps∨a⋄op←r≥2⋄fe←(r≥1)∨1⌽r=3
+ tr←(⌈`↕∘≠⊸ׯ1⌽ps)⊏fe
+ ma←tr<(𝕩=1⊑bG)∧1⌽fe
+ ro←op∨a<1⌽r=3⋄os←⌽↕∘≠⊸(⊣-⌈`∘×)⌽¬ro∨ma⋄at←(⊢+1+⊏⟜os)/a
+ aa←g⊏asn←¯1⌽+`gi⊏-⟜(≠↑0∾⊢)(↕≠𝕩)∊at-1⋄r↩¯1¨⌾(aa⊸/)r
tf←(a≤○(⌈`(1+↕∘≠)⊸×)ps)∧(⊢∧2(|<≤)ps(⊢-⌈`∘×)+`)¬ro
- opa←op>1↓0∾˜ps∨a⋄os←⌽↕∘≠⊸(⊣-⌈`∘×)⌽¬ro
- oa←⌽/opa⋄fa←/(tf∨¬tr)∧(ro∧1⌽opa)<(r=1)∨op<¯1⌽opa
+ opa←op>1↓0∾˜ps∨a
+ oa←⌽/opa⋄fa←/(1⌽aa)<(tf∨¬tr)∧(ro∧1⌽opa)<(r=1)∨op<¯1⌽opa
dy←fa⊏1↓0∾˜(𝕩≠⊑bO)∧(tr∧r≥0)∨ro<r=0
n←𝕩≥vi+nv⋄cn←/n∨𝕩≤¯1⊑bC⋄u←⍷ob←cn⊏𝕩
lo←(o/𝕩)=4⊑bB⋄ll←1+lo/1(↓--⊸↓)(o∾1)/+`(s∾0)-(1∾o)∧ps∾1
@@ -189,9 +191,9 @@ DParse ← {nv‿r𝕊𝕩:
idor←∾3⥊<is←id∾sp
idbc←⟨21+is⊏asn,(id-○(⊏⟜fd)ui)∾0¨sp,ii⟩
- or←⍋idor∾g⊏˜∾⟨cn,cn,b,b,rt,dr,l,l,si,si,1+/a,oa+1⌈oa⊏os,(dy×⊏⟜os)⊸+fa+dy⟩
+ or←⍋idor∾g⊏˜∾⟨cn,cn,b,b,rt,dr,l,l,si,si,at,oa+1⌈oa⊏os,(dy×⊏⟜os)⊸+fa+dy⟩
bc0←∾idbc∾⟨0¨cn,u⊐ob,15¨b,1+↕≠b⟩
- bc←or⊏bc0∾∾⟨25¨rt,14¨dr,3+¯2=l⊏r,ll,3+¯2=si⊏r,sll,(11-⊑bG)+a/𝕩,5+oa⊏r,16+dy-7×fa⊏tr⟩
+ bc←or⊏bc0∾∾⟨25¨rt,14¨dr,3+l⊏aa,ll,3+si⊏aa,sll,(11-⊑bG)+a/ma+𝕩,5+oa⊏r,16+dy-7×fa⊏tr⟩
fs←(ft⊏⥊"fmd"≍⌜⌽↕2)∾¨((+`0∾1+⌊128⋆⁼1⌈bc)⊏˜/1∾or∊bc0+⟜↕○≠rt)≍○<¨(ft⊏spd)∾⟜(⥊¨↑⟜•a)¨lc
⟨LEBv bc,u,fs⟩
}