implement very primitive REPL
This commit is contained in:
24
gem300.rkt
24
gem300.rkt
@@ -41,3 +41,27 @@
|
||||
|
||||
[else
|
||||
(values (string->number status) meta)])))))
|
||||
|
||||
(define commands
|
||||
(list
|
||||
(cons "default" (lambda (line) (void)))
|
||||
(cons "go" (lambda (line)
|
||||
(request line)))))
|
||||
|
||||
(define (dispatch-command line)
|
||||
(let ([split (string-split line " ")])
|
||||
|
||||
(let ([cmd (assoc (cond [(null? split) "default"]
|
||||
[else (first split)])
|
||||
commands)])
|
||||
(if cmd
|
||||
((cdr cmd) (string-join (cdr split)))
|
||||
(displayln "no such command")))))
|
||||
|
||||
|
||||
(define (repl)
|
||||
(display "G300> ")
|
||||
(dispatch-command (read-line))
|
||||
(repl))
|
||||
|
||||
(repl)
|
||||
|
Reference in New Issue
Block a user