diff --git a/ALE.dws b/ALE.dws index 6eadbf7..ae79d88 100644 Binary files a/ALE.dws and b/ALE.dws differ diff --git a/build-workspace.apls b/build-workspace.apls index d243a90..4255e50 100755 --- a/build-workspace.apls +++ b/build-workspace.apls @@ -13,28 +13,29 @@ W ← {⍺←1,≢∆ ⋄ 0≠c←chkrange ⍺:_←c ⋄ ⎕←∆[rngidx ⍺]∆e ∆nl ⎕NPUT ⍵ 2 ⋄ ∆f∘←0 ⋄ ⍙∘←(''≡⍙)⊃⍙ ⍵ ⋄ _←0} _r ← {∆p∘←p←⍵ ∆p⊃⍨⍵≡'' ⋄ 0=≢z←1+p ⎕S 2⊢∆:4 perr ¯1 ⋄ 0=+⌿m←z<_:⊃⌽z ⋄ ⊃⌽m⌿z} _s ← {∆p∘←p←⍵ ∆p⊃⍨⍵≡'' ⋄ 0=≢z←1+p ⎕S 2⊢∆:4 perr ¯1 ⋄ 0=+⌿m←z>_:⊃z ⋄ ⊃m⌿z} - a ← {0≠c←chkline ⍵:_←c ⋄ d←input ⋄ __∘←_ ⋄ _∘←⍵+≢d ⋄ d≡0⍴⊂'':_←0 ⋄ ∆∆∘←∆ ⋄ ∆∘←(⍵↑∆),d,⍵↓∆ ⋄ ∆f∘←1 ⋄ _←0} - c ← {0≠c←chkrange ⍵:_←c ⋄ d←input ⋄ s e←2⍴⍵ ⋄ ∆∆∘←∆ ⋄ ∆∘←(∆↑⍨s-1),d,e↓∆ ⋄ ∆f∘←1 ⋄ __∘←_ ⋄ _∘←(s-1)+≢d ⋄ _←0} + a ← {0≠c←chkline ⍵:_←c ⋄ d←input ⋄ __∘←_ ⋄ _∘←⍵+≢d ⋄ d≡0⍴⊂'':_←0 ⋄ ∆∆∘←∆ ⋄ ∆∘←(⍵↑∆),d,⍵↓∆ ⋄ ∆f∘←1 ⋄ ⍵ fixmarks≢d ⋄ _←0} + c ← {0≠c←chkrange ⍵:_←c ⋄ d←input ⋄ s e←2⍴⍵ ⋄ ∆∆∘←∆ ⋄ ∆∘←(∆↑⍨s-1),d,e↓∆ ⋄ ∆f∘←1 ⋄ __∘←_ ⋄ _∘←(s-1)+≢d ⋄ s fixmarks¯1+(s-e)+≢d ⋄ _←0} chkline ← {⍺←0 ⋄ ⍬≢⍴⍵:0 perr 4 ⋄ (⍵≥⍺)⍲(⍵≤≢∆):0 perr 11 ⋄ _←0} chkrange ← {⍺←1 ⋄ 1<⍴⍴⍵:0 perr 4 ⋄ >/w←2⍴⍵:0 perr 5 ⋄ ~∧/(w≥⍺)∧(w≤≢∆):0 perr 11 ⋄ _←0} - d ← {0≠c←chkrange ⍵:_←c ⋄ ∆∆∘←∆ ⋄ ∆∘←∆[,(⍳≢∆)~rngidx ⍵] ⋄ __∘←_ ⋄ _∘←(≢∆)⌊⊃⍵ ⋄ ∆f∘←1 ⋄ _←0} - e ← {∆f:2 perr 24 ⋄ 22::1 perr 22 ⋄ ∆∆∘←⊃∆ ∆e ∆nl∘←⎕NGET(⍙∘←⍵)1 ⋄ ⎕←2 ⎕NINFO ⍵ ⋄ __∘←_∘←≢∆ ⋄ _←0} + d ← {0≠c←chkrange ⍵:_←c ⋄ ∆∆∘←∆ ⋄ ∆∘←∆[,(⍳≢∆)~rngidx ⍵] ⋄ __∘←_ ⋄ _∘←(≢∆)⌊⊃⍵ ⋄ ∆f∘←1 ⋄ (0⌈¯1+⊃⍵)fixmarks 1+-/⌽2⍴⍵ ⋄ _←0} + e ← {∆f:2 perr 24 ⋄ 22::1 perr 22 ⋄ mn md←2⍴↓⍉↑∆mk ⋄ _←⎕EX mn/⍨md≡¨⊂⍙ ⋄ _←⍎⍕(,'_')(m/mn)'∘←'0,∆mv/⍨m←md≡¨⊆⍵ ⋄ ∆∆∘←⊃∆ ∆e ∆nl∘←⎕NGET(⍙∘←⍵)1 ⋄ ⎕←2 ⎕NINFO ⍵ ⋄ __∘←_∘←≢∆ ⋄ _←0} efn ← {∆f:2 perr 24 ⋄ 2≠≡⍵:3 perr 11 ⋄ 1≠≢⍴⍵:3 perr 4 ⋄ z←RESET ⋄ ∆∆ _∘←∆ _ ⋄ ∆ _∘←⍵(≢⍵) ⋄ _←0} eval ← {⍎⍵} g ← {⍺←1,≢∆ ⋄ 0≠c←chkrange ⍺:_←c ⋄ i←rngidx ⍺ ⋄ ∆p∘←p←⍵ ∆p⊃⍨⍵≡'' ⋄ 0=≢z←1+i[p ⎕S 2⊢∆[i]]:_←0 ⋄ i∆ i_←∆ _ ⋄ _←⍺⍺{⍺⍺⊢_∘←⍵}¨z ⋄ ∆∆ __∘←i∆ i_ ⋄ ∆f∘←1 ⋄ _←0} - i ← {0≠c←chkline ⍵:_←c ⋄ d←input ⋄ __∘←_ ⋄ _∘←⍵+0⌈¯1+≢d ⋄ d≡0⍴⊂'':_←0 ⋄ ∆∆∘←∆ ⋄ ∆∘←((0⌈⍵-1)↑∆),d,(0⌈⍵-1)↓∆ ⋄ ∆f∘←1 ⋄ _←0} - j ← {0≠c←chkrange ⍵:_←c ⋄ s e←2⍴⍵ ⋄ ∆∆∘←∆ ⋄ ∆∘←(∆↑⍨s-1),(,/∆[rngidx s e]),e↓∆ ⋄ ∆f∘←1 ⋄ __∘←_ ⋄ _∘←s ⋄ _←0} - k ← {0≠c←chkline ⍺:_←c ⋄ ∆m,¨←(⊂⍵)⍺} + i ← {0≠c←chkline ⍵:_←c ⋄ d←input ⋄ __∘←_ ⋄ _∘←⍵+0⌈¯1+≢d ⋄ d≡0⍴⊂'':_←0 ⋄ ∆∆∘←∆ ⋄ ∆∘←((0⌈⍵-1)↑∆),d,(0⌈⍵-1)↓∆ ⋄ ∆f∘←1 ⋄ (0⌈¯1+⍵)fixmarks≢d ⋄ _←0} + j ← {0≠c←chkrange ⍵:_←c ⋄ s e←2⍴⍵ ⋄ ∆∆∘←∆ ⋄ ∆∘←(∆↑⍨s-1),(,/∆[rngidx s e]),e↓∆ ⋄ ∆f∘←1 ⋄ __∘←_ ⋄ _∘←s ⋄ (⊃⍵)fixmarks s-e ⋄ _←0} + k ← {0≠c←chkline ⍺:_←c ⋄ k←⊂('_',⍵)⍙ ⋄ ∆mk∪←k ⋄ m←k≡¨∆mk ⋄ ∆mv(⊣⊣@(⍸m)∘⊢(≢m)⍴⊢)⍨←⍺ ⋄ ⍎'_',⍵,'∘←⍺'} l ← {0≠c←chkrange ⍵:_←c ⋄ z←{0⊣⎕←⍵}¨'\t' '$'⎕R'\\t' '$'⊢∆[rngidx ⍵] ⋄ _∘←⊃⌽2⍴⍵ ⋄ z←0} m ← {⍺←_,_ ⋄ 0≠c←chkline ⍵:_←c ⋄ 0≠c←chkrange⊢x y←2⍴⍺:_←c ⋄ (x≤⍵)∧(⍵≤y):0 perr 11 z←(1+y-x)↑(x-1)↓∆ ⋄ 0≠c←d x y:_←c ⋄ ∆∆∘←∆ ⋄ ∆f∘←1 ⋄ __∘←_ ⋄ _∘←⍵+(⍵/w←2⍴⍵:0 perr 5 ⋄ ~ ∇ ∇ {z}←RESET - ⍙ ∆ ∆∆ ∆e ∆f ∆nl ∆m ∆p _ __ z←''(0⍴⊂'')(0⍴⊂'')'UTF-8' 0(13 10)(⍬ ⍬)''0 0 0 + ⍙ ∆ ∆∆ ∆e ∆f ∆nl ∆mk ∆mv ∆p _ __ z←''(0⍴⊂'')(0⍴⊂'')'UTF-8' 0(13 10)(0⍴'' '')⍬''0 0 0 ∇ RESET