-
-
Notifications
You must be signed in to change notification settings - Fork 32
/
main.apl
57 lines (50 loc) · 1.42 KB
/
main.apl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
(⎕IO ⎕ML ⎕WX ⎕CT)←0 1 3 0
VERSION←5 5 0
AF∆PREFIX←'/opt/arrayfire'
VS∆PATH←'\Program Files\Microsoft Visual Studio\2022\Community'
f∆←'ptknfsrdx'
N∆←'∘ABCEFGHKLMNOPSTVZ'
(A B C E F G H K L M N O P S T V Z)←1+⍳17
Compile←{
m←(-≢2⊃⎕NPARTS ⍵)↓⍵
_← ⊃⎕NGET ⍵ 1⊣⍞←'R'
_← TK _⊣⍞←'T'
_←a n s src←PS _⊣⍞←'P'
_← TT _⊣⍞←'C'
_← m GC _⊣⍞←'G'
f l← m CX _⊣⍞←'B'
f⊣⎕←l
}
Exec←{
m←(-≢2⊃⎕NPARTS ⍵)↓⍵
_← ⊃⎕NGET ⍵ 1
_← TK _
_←a n s src←PS _
_← TT _
_← m GC _
f l← m CX _
'UTF-8'⎕UCS ⎕UCS ∊(⎕UCS 13),¨⍨⎕CMD f
}
Fix←{
_← TK ⍵⊣⍞←'T'
_←a n s src←PS _⊣⍞←'P'
_← TT _⊣⍞←'C'
_← ⍺ GC _⊣⍞←'G'
_← ⍺ CC _⊣⍞←'B'
n NS _⊣⍞←'L'
}
∇Z←Help _
Z←'Usage: <object> <target>'
∇
∇r←List
r←⎕NS¨1⍴⊂⍬ ⋄ r.Name←,¨⊂'Compile' ⋄ r.Group←⊂'CODFNS'
r[0].Desc←'Compile an object using Co-dfns'
r.Parse←⊂'2S '
∇
∇ Run(cmd input);Convert;in;out;src
Convert←{⍺(⎕SE.SALT.Load'[SALT]/lib/NStoScript -noname').ntgennscode ⍵}
in out←input.Arguments
src←(⊂':Namespace ',out),2↓0 0 0 out Convert ##.THIS.⍎in
→0⌿⍨'Compile'≢cmd
{##.THIS.⍎out,'←⍵'}out Fix src⊣⎕EX'##.THIS.',out
∇