;;; Catbird Game Engine ;;; Copyright © 2022 David Thompson ;;; ;;; Catbird is free software: you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation, either version 3 of the License, or ;;; (at your option) any later version. ;;; ;;; Catbird is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;;; General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with Catbird. If not, see . ;;; Commentary: ;; ;; In-engine asynchronous REPL implementation. ;; ;;; Code: (define-module (catbird repl) #:use-module (catbird line-editor) #:use-module (catbird kernel) #:use-module (catbird mode) #:use-module (catbird node) #:use-module (catbird node-2d) #:use-module (catbird region) #:use-module (catbird ring-buffer) #:use-module (catbird scene) #:use-module (catbird ui) #:use-module (chickadee) #:use-module (chickadee graphics color) #:use-module (chickadee graphics path) #:use-module (chickadee graphics text) #:use-module (chickadee graphics texture) #:use-module (chickadee math vector) #:use-module (ice-9 exceptions) #:use-module (ice-9 match) #:use-module (oop goops) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (system base compile) #:use-module (system base language) #:use-module (system vm loader) #:export ( resize-repl repl-print)) ;; TODO: $number values like regular Guile REPL ;; TODO: Multiple expressions ;; TODO: Debugger ;; TODO: Switching languages ;;; ;;; Graphical Printers ;;; (define-method (repl-print obj) (make