mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-18 21:29:19 +02:00
26 lines
885 B
Scheme
26 lines
885 B
Scheme
#!/usr/bin/env chibi-scheme
|
|
|
|
(import (scheme base) (scheme read) (scheme write) (scheme eval)
|
|
(chibi net) (chibi net server))
|
|
|
|
(define (repl-handler in out sock addr)
|
|
(let ((env (environment '(scheme base)
|
|
'(only (chibi) import))))
|
|
(let lp ()
|
|
(let ((expr (read in)))
|
|
(cond
|
|
((not (eof-object? expr))
|
|
(let ((result (guard (exn (else
|
|
(display "ERROR: " out)
|
|
(write exn out)
|
|
(newline out)
|
|
(if #f #f)))
|
|
(eval expr env))))
|
|
(cond
|
|
((not (eq? result (if #f #f)))
|
|
(write result out)
|
|
(newline out)))
|
|
(flush-output-port out)
|
|
(lp))))))))
|
|
|
|
(run-net-server 5556 repl-handler)
|