mirror of
https://github.com/false-schemers/skint.git
synced 2024-12-25 21:58:54 +01:00
compiler support for P records, -l option
This commit is contained in:
parent
de3deba498
commit
2031aed6b2
2 changed files with 123 additions and 87 deletions
45
pre/t.scm
45
pre/t.scm
|
@ -150,6 +150,15 @@
|
|||
; for now, we will just use read with no support for circular structures
|
||||
(read-simple port))
|
||||
|
||||
(define (lookup-global k . ?alloc) ;=> box | #f if !defined and !alloc
|
||||
(let* ([v (global-store)] [i (immediate-hash k (vector-length v))])
|
||||
(cond [(assq k (vector-ref v i)) => cdr]
|
||||
[(and (pair? ?alloc) (car ?alloc))
|
||||
(let ([b (box k)]) ; default value is k itself
|
||||
(vector-set! v i (cons (cons k b) (vector-ref v i)))
|
||||
b)]
|
||||
[else #f])))
|
||||
|
||||
(define (error* msg args)
|
||||
(raise (error-object #f msg args)))
|
||||
|
||||
|
@ -2478,10 +2487,13 @@
|
|||
(let ([x0 (read-code-sexp port)]) ; support loading fasl files too
|
||||
(if (eq? x0 (symbol->shebang (string->symbol "/usr/bin/env skint -f")))
|
||||
(run-fasl-from-port port #f) ; do not call main even if it is there
|
||||
(let loop ([x x0])
|
||||
(unless (eof-object? x)
|
||||
(eval x env)
|
||||
(loop (read-code-sexp port))))))))
|
||||
(begin
|
||||
(when (eq? x0 (symbol->shebang (string->symbol "/usr/bin/env skint -s")))
|
||||
(set! x0 (read-code-sexp port))) ; just skip -- this file is loadable
|
||||
(let loop ([x x0])
|
||||
(unless (eof-object? x)
|
||||
(eval x env)
|
||||
(loop (read-code-sexp port)))))))))
|
||||
; we aren't asked by the spec to call last expr tail-recursively, so this
|
||||
(void))
|
||||
|
||||
|
@ -2496,6 +2508,11 @@
|
|||
(define (exec code)
|
||||
(define cl (closure (deserialize-code code)))
|
||||
(cl))
|
||||
(define (def id code)
|
||||
(define cl (closure (deserialize-code code)))
|
||||
(set-box! (lookup-global id #t) cl))
|
||||
(define (fail! lno hd)
|
||||
(error "unexpected line header on FASL body line" lno hd))
|
||||
(when (eqv? (peek-char port) #\#) ; header is optional if call is explicit
|
||||
(define x (read-code-sexp port))
|
||||
(unless (eq? x (symbol->shebang (string->symbol "/usr/bin/env skint -f")))
|
||||
|
@ -2503,7 +2520,7 @@
|
|||
(let loop ([c (peek-char port)])
|
||||
(when (memv c '(#\newline #\return))
|
||||
(read-char port) (loop (peek-char port))))
|
||||
(let loop ([line 1])
|
||||
(let loop ([lno 1])
|
||||
(unless (eof-object? (peek-char port))
|
||||
(define c1 (read-char port))
|
||||
(define c2 (read-char port))
|
||||
|
@ -2511,10 +2528,18 @@
|
|||
(define hd (list c1 c2 c3))
|
||||
(cond [(equal? hd '(#\C #\tab #\tab))
|
||||
(exec (read-line port))
|
||||
(loop (+ line 1))]
|
||||
(loop (+ lno 1))]
|
||||
[(and (eqv? c1 #\P) (eqv? c2 #\tab) (not (eof-object? c3)))
|
||||
(let scan ([c (read-char port)] [l (list c3)])
|
||||
(cond [(eof-object? c) (fail! lno 'eof)]
|
||||
[(eqv? c #\tab)
|
||||
(define id (string->symbol (list->string (reverse! l))))
|
||||
(def id (read-line port))
|
||||
(loop (+ lno 1))]
|
||||
[else (scan (read-char port) (cons c l))]))]
|
||||
[(equal? hd '(#\M #\tab #\tab))
|
||||
(and (pair? main-args) (eval `(main (quote ,main-args)) env))]
|
||||
[else (error "unexpected line header on FASL body line" line hd)]))))
|
||||
[else (fail! lno hd)]))))
|
||||
|
||||
(define (run-fasl filename args)
|
||||
(define main-args (cons filename args))
|
||||
|
@ -2619,9 +2644,7 @@
|
|||
(name-remove! *user-name-registry* (car args)) (display "done!\n" op)]
|
||||
[else (display "name not found: " op) (write name op) (newline op)])]
|
||||
[(gs) (write (global-store) op) (newline op)]
|
||||
[(gs <symbol>)
|
||||
(let* ([k (car args)] [v (global-store)] [i (immediate-hash k (vector-length v))])
|
||||
(write (cond [(assq k (vector-ref v i)) => cdr] [else #f]) op) (newline op))]
|
||||
[(gs <symbol>) (write (lookup-global (car args)) op) (newline op)]
|
||||
[(load <string>) (load (car args))]
|
||||
[(v) (set! *verbose* #t) (format #t "verbosity is on~%")]
|
||||
[(v-) (set! *verbose* #f) (format #t "verbosity is off~%")]
|
||||
|
@ -2727,6 +2750,7 @@
|
|||
[prepend-libdir "-I" "--prepend-libdir" "DIR" "Prepend a library search directory"]
|
||||
[define-feature "-D" "--define-feature" "NAME" "Add name to the list of features"]
|
||||
[eval "-e" "--eval" "SEXP" "Evaluate and print an expression"]
|
||||
[load "-l" "--load" "FILE" "Load file and continue processing"]
|
||||
[script "-s" "--script" "FILE" "Run file as a Scheme script"]
|
||||
[fasl "-f" "--fasl" "FILE" "Run file as a compiled script"]
|
||||
[program "-p" "--program" "FILE" "Run file as a Scheme program"]
|
||||
|
@ -2769,6 +2793,7 @@
|
|||
[(append-libdir *) (append-library-path! optarg) (loop restargs #t)]
|
||||
[(prepend-libdir *) (prepend-library-path! optarg) (loop restargs #t)]
|
||||
[(define-feature *) (add-feature! optarg) (loop restargs #t)]
|
||||
[(load *) (load optarg) (loop restargs #t)]
|
||||
[(eval *) (eval! optarg #t) (loop restargs #f)]
|
||||
[(script *) (set! *quiet* #t) (exit (run-script optarg restargs))]
|
||||
[(fasl *) (set! *quiet* #t) (exit (run-fasl optarg restargs))]
|
||||
|
|
165
t.c
165
t.c
|
@ -100,6 +100,10 @@ char *t_code[] = {
|
|||
"P", "read-code-sexp",
|
||||
"%1.0,@(y11:read-simple)[11",
|
||||
|
||||
"P", "lookup-global",
|
||||
"%!1U2,.0V3,.3H2,.0,.2V4,.4A3,.0?{.0d]5}.3p?{.3a}{f}?{.4b,.2,.4V4,.1,.7"
|
||||
"cc,.3,.5V5.0]6}f]5",
|
||||
|
||||
"P", "error*",
|
||||
"%2${.3,.3,f,@(y12:error-object)[03},@(y5:raise)[21",
|
||||
|
||||
|
@ -1550,26 +1554,31 @@ char *t_code[] = {
|
|||
|
||||
"P", "load",
|
||||
"%!1,,#0#1.2p?{.2a}{${@(y23:interaction-environment)[00}}.!0f.!1${.2,.4"
|
||||
",&2{%1:0^?{t,.1P79}${.2,@(y14:read-code-sexp)[01},'(s21:/usr/bin/env s"
|
||||
"kint -f)X5Y6,.1q?{f,.2,@(y18:run-fasl-from-port)[22}.0,,#0:1,.4,.2,&3{"
|
||||
"%1.0R8~?{${:2^,.3,@(y4:eval)[02}${:1,@(y14:read-code-sexp)[01},:0^[11}"
|
||||
"]1}.!0.0^_1[21},.6,@(y28:call-with-current-input-file)[02}Y9]4",
|
||||
",&2{%1:0^?{t,.1P79}${.2,@(y14:read-code-sexp)[01},#0'(s21:/usr/bin/env"
|
||||
" skint -f)X5Y6,.1^q?{f,.2,@(y18:run-fasl-from-port)[22}'(s21:/usr/bin/"
|
||||
"env skint -s)X5Y6,.1^q?{${.3,@(y14:read-code-sexp)[01}.!0}.0^,,#0:1,.4"
|
||||
",.2,&3{%1.0R8~?{${:2^,.3,@(y4:eval)[02}${:1,@(y14:read-code-sexp)[01},"
|
||||
":0^[11}]1}.!0.0^_1[21},.6,@(y28:call-with-current-input-file)[02}Y9]4",
|
||||
|
||||
"P", "expand",
|
||||
"%!1,#0.1p?{.1a}{${@(y23:interaction-environment)[00}}.!0.0^,.3,t,@(y5:"
|
||||
"xpand)[33",
|
||||
|
||||
"P", "run-fasl-from-port",
|
||||
"%2,,#0#1${@(y23:interaction-environment)[00}.!0&0{%1,#0.1U4,U91.!0.0^["
|
||||
"20}.!1'(c#),.3R1v?{,#0${.5,@(y14:read-code-sexp)[01}.!0'(s21:/usr/bin/"
|
||||
"env skint -f)X5Y6,.1^q~?{${.2^,'(s30:unexpected header in FASL file),@"
|
||||
"(y5:error)[02}}_1}${.4R1,,#0.6,.1,&2{%1'(l2:c%0a;c%0d;),.1A1?{:1R0:1R1"
|
||||
",:0^[11}]1}.!0.0^_1[01}'1,,#0.0,.4,.6,.8,.6,&5{%1:2R1R8~?{,,,,#0#1#2#3"
|
||||
":2R0.!0:2R0.!1:2R0.!2.2^,.2^,.2^,l3.!3'(l3:cC;c%09;c%09;),.4^e?{${${:2"
|
||||
",@(y9:read-line)[01},:3^[01}'1,.5+,:4^[51}'(l3:cM;c%09;c%09;),.4^e?{:1"
|
||||
"p?{:0^,n,n,:1c,'(y5:quote)cc,'(y4:main)c,@(y4:eval)[52}f]5}.3^,.5,'(s4"
|
||||
"0:unexpected line header on FASL body line),@(y5:error)[53}]1}.!0.0^_1"
|
||||
"[41",
|
||||
"%2,,,,#0#1#2#3${@(y23:interaction-environment)[00}.!0&0{%1,#0.1U4,U91."
|
||||
"!0.0^[20}.!1&0{%2,#0.2U4,U91.!0.0^,${t,.5,@(y13:lookup-global)[02}sz]3"
|
||||
"}.!2&0{%2.1,.1,'(s40:unexpected line header on FASL body line),@(y5:er"
|
||||
"ror)[23}.!3'(c#),.5R1v?{,#0${.7,@(y14:read-code-sexp)[01}.!0'(s21:/usr"
|
||||
"/bin/env skint -f)X5Y6,.1^q~?{${.2^,'(s30:unexpected header in FASL fi"
|
||||
"le),@(y5:error)[02}}_1}${.6R1,,#0.8,.1,&2{%1'(l2:c%0a;c%0d;),.1A1?{:1R"
|
||||
"0:1R1,:0^[11}]1}.!0.0^_1[01}'1,,#0.3,.7,.6,.3,.(i11),.7,.(i11),&7{%1:5"
|
||||
"R1R8~?{,,,,#0#1#2#3:5R0.!0:5R0.!1:5R0.!2.2^,.2^,.2^,l3.!3'(l3:cC;c%09;"
|
||||
"c%09;),.4^e?{${${:5,@(y9:read-line)[01},:6^[01}'1,.5+,:3^[51}'(cP),.1^"
|
||||
"v?{'(c%09),.2^v?{.2^R8~}{f}}{f}?{.2^,l1,:5R0,,#0:5,.1,:3,.(i10),:4,:0,"
|
||||
"&6{%2.0R8?{'(y3:eof),:2,:0^[22}'(c%09),.1v?{,#0.2A9X3X5.!0${${:5,@(y9:"
|
||||
"read-line)[01},.3^,:1^[02}'1,:2+,:3^[31}.1,.1c,:5R0,:4^[22}.!0.0^_1[52"
|
||||
"}'(l3:cM;c%09;c%09;),.4^e?{:2p?{:1^,n,n,:2c,'(y5:quote)cc,'(y4:main)c,"
|
||||
"@(y4:eval)[52}f]5}.3^,.5,:0^[52}]1}.!0.0^_1[61",
|
||||
|
||||
"P", "run-fasl",
|
||||
"%2,#0.2,.2c.!0.0,&1{%1:0^,.1,@(y18:run-fasl-from-port)[12},.2,@(y28:ca"
|
||||
|
@ -1635,47 +1644,47 @@ char *t_code[] = {
|
|||
"registry*),@(y11:name-lookup)[03}?{${:0^a,@(y20:*user-name-registry*),"
|
||||
"@(y12:name-remove!)[02}:2,'(s6:done!%0a)W4]1}:2,'(s16:name not found: "
|
||||
")W4:2,@(y4:name)W5:2W6]1}${.2,'(l1:y2:gs;),@(y11:sexp-match?)[02}?{:2,"
|
||||
"U2W5:2W6]1}${.2,'(l2:y2:gs;y8:<symbol>;),@(y11:sexp-match?)[02}?{:0^a,"
|
||||
"U2,.0V3,.2H2,:2,.1,.3V4,.4A3,.0?{.0d}{f}_1W5:2W6]4}${.2,'(l2:y4:load;y"
|
||||
"8:<string>;),@(y11:sexp-match?)[02}?{:0^a,@(y4:load)[11}${.2,'(l1:y1:v"
|
||||
";),@(y11:sexp-match?)[02}?{t@!(y9:*verbose*)'(s17:verbosity is on~%25)"
|
||||
",t,@(y6:format)[12}${.2,'(l1:y2:v-;),@(y11:sexp-match?)[02}?{f@!(y9:*v"
|
||||
"erbose*)'(s18:verbosity is off~%25),t,@(y6:format)[12}${.2,'(l1:y1:q;)"
|
||||
",@(y11:sexp-match?)[02}?{t@!(y7:*quiet*)'(s13:quiet is on~%25),t,@(y6:"
|
||||
"format)[12}${.2,'(l1:y2:q-;),@(y11:sexp-match?)[02}?{f@!(y7:*quiet*)'("
|
||||
"s14:quiet is off~%25),t,@(y6:format)[12}${.2,'(l2:y4:time;y1:*;),@(y11"
|
||||
":sexp-match?)[02}?{Z3,${:2,@(y16:repl-environment),:0^a,@(y22:repl-eva"
|
||||
"luate-top-form)[03}Z4,.1,Z3-/,'(i1000)*,'(s24:; elapsed time: ~s ms.~%"
|
||||
"25),t,@(y6:format)[23}${.2,'(l1:y3:pwd;),@(y11:sexp-match?)[02}?{:2,${"
|
||||
"@(y17:current-directory)[00}W4:2W6]1}${.2,'(l2:y2:cd;y8:<string>;),@(y"
|
||||
"11:sexp-match?)[02}?{:0^a,@(y17:current-directory)[11}${.2,'(l2:y2:sh;"
|
||||
"y8:<string>;),@(y11:sexp-match?)[02}?{:0^aZ6]1}${.2,'(l1:y2:si;),@(y11"
|
||||
":sexp-match?)[02}?{Zh,Zb,Zc,'(s49:~d collections, ~d reallocs, heap si"
|
||||
"ze ~d words~%25),t,@(y6:format)[15}${.2,'(l1:y2:gc;),@(y11:sexp-match?"
|
||||
")[02}?{Zg'(l1:y2:si;),:1^[11}${.2,'(l1:y4:help;),@(y11:sexp-match?)[02"
|
||||
"}?{:2,'(s57:%0aREPL commands (,load ,cd ,sh arguments need no quotes):"
|
||||
"%0a)W4:2,'(s44: ,load <fname> load <fname> into REPL%0a)W4:2,'(s"
|
||||
"59: ,q quiet: disable informational messages%0a)W4:2,"
|
||||
"'(s51: ,q- enable informational messages%0a)W4:2,'(s39"
|
||||
": ,v turn verbosity on%0a)W4:2,'(s40: ,v- "
|
||||
" turn verbosity off%0a)W4:2,'(s48: ,ref <name> show denota"
|
||||
"tion for <name>%0a)W4:2,'(s45: ,rnr show root name regi"
|
||||
"stry%0a)W4:2,'(s50: ,rref <name> lookup name in root registry%0"
|
||||
"a)W4:2,'(s52: ,rrem! <name> remove name from root registry%0a)W4"
|
||||
":2,'(s45: ,unr show user name registry%0a)W4:2,'(s50: ,"
|
||||
"uref <name> lookup name in user registry%0a)W4:2,'(s52: ,urem! "
|
||||
"<name> remove name from user registry%0a)W4:2,'(s46: ,gs "
|
||||
" show global store (big!)%0a)W4:2,'(s55: ,gs <name> l"
|
||||
"ookup global location for <name>%0a)W4:2,'(s56: ,time <expr> ti"
|
||||
"me single-line expression <expr>%0a)W4:2,'(s60: ,pwd sh"
|
||||
"ow skint's current working directory%0a)W4:2,'(s62: ,cd <dir> "
|
||||
" change skint's current working directory%0a)W4:2,'(s51: ,sh <cmdline"
|
||||
"> send <cmdline> to local shell%0a)W4:2,'(s41: ,si "
|
||||
" display system info%0a)W4:2,'(s55: ,gc force gc to "
|
||||
"finalize lost objects%0a)W4:2,'(s31: ,help this help%0a)"
|
||||
"W4]1}${.2,'(l1:y1:h;),@(y11:sexp-match?)[02}?{'(l1:y4:help;),:1^[11}:2"
|
||||
",'(s29:syntax error in repl command%0a)W4:2,'(s37:type ,help to see av"
|
||||
"ailable commands%0a)W4]1}.!0.0^_1[41",
|
||||
"U2W5:2W6]1}${.2,'(l2:y2:gs;y8:<symbol>;),@(y11:sexp-match?)[02}?{:2,${"
|
||||
":0^a,@(y13:lookup-global)[01}W5:2W6]1}${.2,'(l2:y4:load;y8:<string>;),"
|
||||
"@(y11:sexp-match?)[02}?{:0^a,@(y4:load)[11}${.2,'(l1:y1:v;),@(y11:sexp"
|
||||
"-match?)[02}?{t@!(y9:*verbose*)'(s17:verbosity is on~%25),t,@(y6:forma"
|
||||
"t)[12}${.2,'(l1:y2:v-;),@(y11:sexp-match?)[02}?{f@!(y9:*verbose*)'(s18"
|
||||
":verbosity is off~%25),t,@(y6:format)[12}${.2,'(l1:y1:q;),@(y11:sexp-m"
|
||||
"atch?)[02}?{t@!(y7:*quiet*)'(s13:quiet is on~%25),t,@(y6:format)[12}${"
|
||||
".2,'(l1:y2:q-;),@(y11:sexp-match?)[02}?{f@!(y7:*quiet*)'(s14:quiet is "
|
||||
"off~%25),t,@(y6:format)[12}${.2,'(l2:y4:time;y1:*;),@(y11:sexp-match?)"
|
||||
"[02}?{Z3,${:2,@(y16:repl-environment),:0^a,@(y22:repl-evaluate-top-for"
|
||||
"m)[03}Z4,.1,Z3-/,'(i1000)*,'(s24:; elapsed time: ~s ms.~%25),t,@(y6:fo"
|
||||
"rmat)[23}${.2,'(l1:y3:pwd;),@(y11:sexp-match?)[02}?{:2,${@(y17:current"
|
||||
"-directory)[00}W4:2W6]1}${.2,'(l2:y2:cd;y8:<string>;),@(y11:sexp-match"
|
||||
"?)[02}?{:0^a,@(y17:current-directory)[11}${.2,'(l2:y2:sh;y8:<string>;)"
|
||||
",@(y11:sexp-match?)[02}?{:0^aZ6]1}${.2,'(l1:y2:si;),@(y11:sexp-match?)"
|
||||
"[02}?{Zh,Zb,Zc,'(s49:~d collections, ~d reallocs, heap size ~d words~%"
|
||||
"25),t,@(y6:format)[15}${.2,'(l1:y2:gc;),@(y11:sexp-match?)[02}?{Zg'(l1"
|
||||
":y2:si;),:1^[11}${.2,'(l1:y4:help;),@(y11:sexp-match?)[02}?{:2,'(s57:%"
|
||||
"0aREPL commands (,load ,cd ,sh arguments need no quotes):%0a)W4:2,'(s4"
|
||||
"4: ,load <fname> load <fname> into REPL%0a)W4:2,'(s59: ,q "
|
||||
" quiet: disable informational messages%0a)W4:2,'(s51: ,q- "
|
||||
" enable informational messages%0a)W4:2,'(s39: ,v "
|
||||
" turn verbosity on%0a)W4:2,'(s40: ,v- turn ver"
|
||||
"bosity off%0a)W4:2,'(s48: ,ref <name> show denotation for <nam"
|
||||
"e>%0a)W4:2,'(s45: ,rnr show root name registry%0a)W4:2,"
|
||||
"'(s50: ,rref <name> lookup name in root registry%0a)W4:2,'(s52:"
|
||||
" ,rrem! <name> remove name from root registry%0a)W4:2,'(s45: ,un"
|
||||
"r show user name registry%0a)W4:2,'(s50: ,uref <name> "
|
||||
" lookup name in user registry%0a)W4:2,'(s52: ,urem! <name> "
|
||||
"remove name from user registry%0a)W4:2,'(s46: ,gs show"
|
||||
" global store (big!)%0a)W4:2,'(s55: ,gs <name> lookup global "
|
||||
"location for <name>%0a)W4:2,'(s56: ,time <expr> time single-lin"
|
||||
"e expression <expr>%0a)W4:2,'(s60: ,pwd show skint's cu"
|
||||
"rrent working directory%0a)W4:2,'(s62: ,cd <dir> change skin"
|
||||
"t's current working directory%0a)W4:2,'(s51: ,sh <cmdline> send "
|
||||
"<cmdline> to local shell%0a)W4:2,'(s41: ,si display sy"
|
||||
"stem info%0a)W4:2,'(s55: ,gc force gc to finalize lost"
|
||||
" objects%0a)W4:2,'(s31: ,help this help%0a)W4]1}${.2,'(l"
|
||||
"1:y1:h;),@(y11:sexp-match?)[02}?{'(l1:y4:help;),:1^[11}:2,'(s29:syntax"
|
||||
" error in repl command%0a)W4:2,'(s37:type ,help to see available comma"
|
||||
"nds%0a)W4]1}.!0.0^_1[41",
|
||||
|
||||
"P", "repl-from-port",
|
||||
"%4,#0${@(y18:current-file-stack)[00}.!0${k0,.0,${.2,.9,.(i12),.(i12),."
|
||||
|
@ -1712,19 +1721,20 @@ char *t_code[] = {
|
|||
",@(y16:repl-environment),.8^,@(y14:repl-from-port)[04}_3}t]3",
|
||||
|
||||
"C", 0,
|
||||
"'(l11:l5:y7:verbose;s2:-v;s9:--verbose;f;s25:Increase output verbosity"
|
||||
"'(l12:l5:y7:verbose;s2:-v;s9:--verbose;f;s25:Increase output verbosity"
|
||||
";;l5:y5:quiet;s2:-q;s7:--quiet;f;s30:Suppress nonessential messages;;l"
|
||||
"5:y13:append-libdir;s2:-A;s15:--append-libdir;s3:DIR;s33:Append a libr"
|
||||
"ary search directory;;l5:y14:prepend-libdir;s2:-I;s16:--prepend-libdir"
|
||||
";s3:DIR;s34:Prepend a library search directory;;l5:y14:define-feature;"
|
||||
"s2:-D;s16:--define-feature;s4:NAME;s32:Add name to the list of feature"
|
||||
"s;;l5:y4:eval;s2:-e;s6:--eval;s4:SEXP;s32:Evaluate and print an expres"
|
||||
"sion;;l5:y6:script;s2:-s;s8:--script;s4:FILE;s27:Run file as a Scheme "
|
||||
"script;;l5:y4:fasl;s2:-f;s6:--fasl;s4:FILE;s29:Run file as a compiled "
|
||||
"script;;l5:y7:program;s2:-p;s9:--program;s4:FILE;s28:Run file as a Sch"
|
||||
"eme program;;l5:y7:version;s2:-V;s9:--version;f;s20:Display version in"
|
||||
"fo;;l5:y4:help;s2:-h;s6:--help;f;s17:Display this help;;)@!(y15:*skint"
|
||||
"-options*)",
|
||||
"sion;;l5:y4:load;s2:-l;s6:--load;s4:FILE;s33:Load file and continue pr"
|
||||
"ocessing;;l5:y6:script;s2:-s;s8:--script;s4:FILE;s27:Run file as a Sch"
|
||||
"eme script;;l5:y4:fasl;s2:-f;s6:--fasl;s4:FILE;s29:Run file as a compi"
|
||||
"led script;;l5:y7:program;s2:-p;s9:--program;s4:FILE;s28:Run file as a"
|
||||
" Scheme program;;l5:y7:version;s2:-V;s9:--version;f;s20:Display versio"
|
||||
"n info;;l5:y4:help;s2:-h;s6:--help;f;s17:Display this help;;)@!(y15:*s"
|
||||
"kint-options*)",
|
||||
|
||||
"C", 0,
|
||||
"'(s5:0.4.9)@!(y15:*skint-version*)",
|
||||
|
@ -1757,21 +1767,22 @@ char *t_code[] = {
|
|||
"ibrary-path!)[01}t,.4,:2^[42}${.2,'(l2:y14:prepend-libdir;y1:*;),@(y11"
|
||||
":sexp-match?)[02}?{${.4,@(y21:prepend-library-path!)[01}t,.4,:2^[42}${"
|
||||
".2,'(l2:y14:define-feature;y1:*;),@(y11:sexp-match?)[02}?{${.4,:5^[01}"
|
||||
"t,.4,:2^[42}${.2,'(l2:y4:eval;y1:*;),@(y11:sexp-match?)[02}?{${t,.5,:4"
|
||||
"^[02}f,.4,:2^[42}${.2,'(l2:y6:script;y1:*;),@(y11:sexp-match?)[02}?{t@"
|
||||
"!(y7:*quiet*)${.5,.5,@(y10:run-script)[02},@(y4:exit)[41}${.2,'(l2:y4:"
|
||||
"fasl;y1:*;),@(y11:sexp-match?)[02}?{t@!(y7:*quiet*)${.5,.5,@(y8:run-fa"
|
||||
"sl)[02},@(y4:exit)[41}${.2,'(l2:y7:program;y1:*;),@(y11:sexp-match?)[0"
|
||||
"2}?{t@!(y7:*quiet*)${.5,.5,@(y11:run-program)[02},@(y4:exit)[41}${.2,'"
|
||||
"(l2:y9:benchmark;y1:*;),@(y11:sexp-match?)[02}?{${.5,.5,@(y10:run-scri"
|
||||
"pt)[02},@(y4:exit)[41}${.2,'(l1:y7:version;),@(y11:sexp-match?)[02}?{$"
|
||||
"{:3^[00}f,n,:2^[42}${.2,'(l1:y4:help;),@(y11:sexp-match?)[02}?{${:1^[0"
|
||||
"0}f,n,:2^[42}${.2,'(l1:f;),@(y11:sexp-match?)[02}?{.3p?{t@!(y7:*quiet*"
|
||||
")${.5d,.6a,@(y10:run-script)[02},@(y4:exit)[41}:0~?{t,@(y4:exit)[41}f]"
|
||||
"4}]4},@(y15:*skint-options*),.2,@(y28:get-next-command-line-option)[23"
|
||||
"}.!0.0^_1[02}PiP09?{PoP09}{f}?{${@(y15:*skint-version*),'(s30:SKINT Sc"
|
||||
"heme Interpreter v~a~%25),t,@(y6:format)[03}${'(s35:Copyright (c) 2024"
|
||||
" False Schemers~%25),t,@(y6:format)[02}}t]5",
|
||||
"t,.4,:2^[42}${.2,'(l2:y4:load;y1:*;),@(y11:sexp-match?)[02}?{${.4,@(y4"
|
||||
":load)[01}t,.4,:2^[42}${.2,'(l2:y4:eval;y1:*;),@(y11:sexp-match?)[02}?"
|
||||
"{${t,.5,:4^[02}f,.4,:2^[42}${.2,'(l2:y6:script;y1:*;),@(y11:sexp-match"
|
||||
"?)[02}?{t@!(y7:*quiet*)${.5,.5,@(y10:run-script)[02},@(y4:exit)[41}${."
|
||||
"2,'(l2:y4:fasl;y1:*;),@(y11:sexp-match?)[02}?{t@!(y7:*quiet*)${.5,.5,@"
|
||||
"(y8:run-fasl)[02},@(y4:exit)[41}${.2,'(l2:y7:program;y1:*;),@(y11:sexp"
|
||||
"-match?)[02}?{t@!(y7:*quiet*)${.5,.5,@(y11:run-program)[02},@(y4:exit)"
|
||||
"[41}${.2,'(l2:y9:benchmark;y1:*;),@(y11:sexp-match?)[02}?{${.5,.5,@(y1"
|
||||
"0:run-script)[02},@(y4:exit)[41}${.2,'(l1:y7:version;),@(y11:sexp-matc"
|
||||
"h?)[02}?{${:3^[00}f,n,:2^[42}${.2,'(l1:y4:help;),@(y11:sexp-match?)[02"
|
||||
"}?{${:1^[00}f,n,:2^[42}${.2,'(l1:f;),@(y11:sexp-match?)[02}?{.3p?{t@!("
|
||||
"y7:*quiet*)${.5d,.6a,@(y10:run-script)[02},@(y4:exit)[41}:0~?{t,@(y4:e"
|
||||
"xit)[41}f]4}]4},@(y15:*skint-options*),.2,@(y28:get-next-command-line-"
|
||||
"option)[23}.!0.0^_1[02}PiP09?{PoP09}{f}?{${@(y15:*skint-version*),'(s3"
|
||||
"0:SKINT Scheme Interpreter v~a~%25),t,@(y6:format)[03}${'(s35:Copyrigh"
|
||||
"t (c) 2024 False Schemers~%25),t,@(y6:format)[02}}t]5",
|
||||
|
||||
0, 0, 0
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue