-
Notifications
You must be signed in to change notification settings - Fork 1
/
repObj.js
1 lines (1 loc) · 2.71 KB
/
repObj.js
1
jsRepObj = "repObj←{\n ⍺←0\n P←'(',')',⍨⍕\n 10::P⍣⍺⊢'0(220⌶)0(219⌶)',∊P¨2 9(219⌶)1(220⌶)⍵\n (⊢⊣⍎){\n s←⍵/⍨~≠''''=⍵ ⋄ p←s/⍨0=+-⌿'()'∘.=s ⋄ b←p/⍨0=+-⌿'[]'∘.=p ⋄ ∨/'⊂,⍴+-×/⍳'∊p:P ⍵ ⋄ ⍵\n }⍣⍺{\n ⍵≡⍬:'⍬' ⋄ ⍵≡'':'''''' ⋄ ⍵≡⎕NULL:'⎕NULL'\n ⍵≡⎕D:'⎕D' ⋄ ⍵≡⎕A:'⎕A' ⋄ ⍵≡⎕Á:'⎕Á' ⋄ ⍵≡⎕AV:'⎕AV'\n scal←0∊rank←+/⍴s←⍴⍵ ⋄ char←>/(simple num)←∧\\~(10|⎕DR 1/⍵)∊¨6(0 2)\n ⍺←0\n (rc ref)←2↑⍺\n or←scal∧1=≡R←⍵\n or∨9=⎕NC'R':ref{⍵⊣÷⍺}⍕⍵\n mod←(0<rank)∧(n=0)∨(5×char)<n←×/s\n mod←mod∧as←char{0∊⍴⍵:1 ⋄ ⍵∧.≡1↑⍵}obj←,⍵\n obj←mod{16::⊂'[ref]' ⋄ 1(↑⍣⍺)⍵}obj\n shape←mod{⍵≡,1:',' ⋄ (⍺∨1<⍴⍵)/'⍴',⍨⍕⍵}s\n shape←shape,(encl←simple<as)⍴'⊂'\n parens←rc∧simple≤(0<⍴shape)∨(rank=1)∧num∨∨/(4↑⎕AV)∊⍵\n (lp rp)←parens⍴¨'()'\n Paren←{>/'⎕' 'ADÁN'∊¨⍨2↑⍵:P ⍵ ⋄ ⍵}\n ~simple:rp,⍨lp,shape,encl{⍺⍲'('=1↑⍵:⍵ ⋄ 1↓¯1↓⍵}1↓⊃,/' ',¨Paren¨1 ref∘∇¨obj\n ⎕PP←17\n cmpv←{⎕CT←⎕IO←0\n ∨/e←(0∊s),⍬≡s←⍴v←⍵:⍕e/'⍬',1↑v\n ⍺←4 ⋄ ⍺≥s:⍕v↑⍨⍺⌊s\n d←{⍵>¯1⌽1 1 0⍷⍵}{1,⍵,⍨1↑⍵}2≠/2-/v\n s←-+/lim←{(⍵>1⌽⍵)∨⍵>¯1↓0,⍵}d\n addp←(s↑1)<s≠¯1\n r←1↓⊃,/addp{d v←⍵ ⋄ ∧/d:',',⍕v\n lp←'[('[⍺] ⋄ rp←⍺/')' ⋄ ap←{',',lp,⍵,rp}\n 0=∆←-⍨/2⍴v:ap(⍕⍴v),'/',⍕1⍴v\n A←(nz←0≠t)/⍕t←1⍴v\n A,←nz/'+'\n B←(t≠1)/(⍕t←∆),'×'\n C←'⎕io-⍨⍳',⍕⍴v\n (⍴d←⍕v)>⍴t←A,B,C:ap t\n ',',d\n }¨↓⍉↑lim∘⊂¨d v\n b←(','=r)⍲(¯1⌽r=')')⍱1⌽r∊'[('\n (b\\b\/r)~'['\n }\n obj←shape,num ⍺{1↑⍺:cmpv ⍵ ⋄ ⎕ML←1 ⋄ ⎕IO←0 ⋄ QU←{Q,((1+t=Q)/t←⍵),Q←''''}\n Always←⎕A,⎕D,'abcdefghijklmnopqrstuvwxyz_.,:;%!\"/=-+''#$£¢^¿¡(){}[]§@`∣¶&'\n Always,←'ÁÂÃÇÈÊËÌÍÎÏÐÒÓÔÕÙÚÛÝþãìðòõÀÄÅÆÉÑÖØÜßàáâäåæçèéêëíîïñùúûüóôöø'\n Always,←'≤≥⌿⍀<>≠∨∧÷×?∊⍴~↑↓⍳○*⌈⌷¨⌊∇∆⍙⍨∘⊂⊃∩∪⊥⊤⌶|⍺⍵¯⍬⍱⍲⍒⍋⍉⌽⊖⍟⌹⍕⍎⍫⍪≡≢⍷⋄←→⍝⎕⍞⍣ '\n Always,←'⊢⊣',⎕UCS 8838 9016 9018 9056 9060 9080/⍨80=⎕DR''\n ∧/t←⍵∊Always:QU ⍵\n UCS←{1⌽')(⎕ucs ',⍕cmpv ⎕UCS ⍵}\n minsize←3\n c∨←minsize>∊⍴¨c←ucs⊂⍨c←1,1↓ucs≠¯1⌽ucs←~t\n (lp rp)←'()'/⍨¨(1↓⍺)∧1<+/c←1,1↓ucs≠¯1⌽ucs←∊c\n rp,⍨lp,∊{⍺,',',⍵}/(c/ucs){⍺:UCS ⍵ ⋄ QU ⍵}¨c⊂⍵\n }obj\n lp,obj,rp\n }⍵\n }\n"