25 lines
558 B
Racket
25 lines
558 B
Racket
#lang racket
|
|
|
|
(require (prefix-in net: "net.rkt")
|
|
(prefix-in gmi: "gmi.rkt"))
|
|
|
|
(define commands
|
|
(list
|
|
(cons "default" (lambda (line) (void)))))
|
|
|
|
(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))
|