all repos — min @ 8c28c71690c0bf6842022b1b9977051bb542db9d

A small but practical concatenative programming language.

run.min

 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
#!/usr/bin/env min

;Capture a reference of default symbols before more are added
symbols =min-symbols
2 :n-args
1 :taskspec-arg

(compiled?)
(
    1 @n-args
    0 @taskspec-arg
)
when

; Validation
(args size n-args <) ("No task specified" error 1 exit) when

args taskspec-arg get ":" split =taskspec
taskspec 0 get :task
"default" :subtask
(taskspec size 1 >) (taskspec 1 get @subtask) when

"./tasks/$#.min" (task) =% :task-file

; Load task module
task-file load

; Execute task
"$#-tasks" (task) =% eval subtask ^