From e0260e4496c9af395ca18d37d1f26cc406b47c0d Mon Sep 17 00:00:00 2001 From: w6vvn Date: Mon, 1 Sep 2025 16:43:35 -0700 Subject: [PATCH] implement very primitive REPL --- gem300.rkt | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gem300.rkt b/gem300.rkt index 62883bc..b25f292 100644 --- a/gem300.rkt +++ b/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)