From 98097b4c73f274f95bf1360a2b2f99b555917cd5 Mon Sep 17 00:00:00 2001 From: Darren Bane Date: Mon, 1 Jun 2020 19:10:35 +0100 Subject: Making changes --- comal.lsp | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'comal.lsp') diff --git a/comal.lsp b/comal.lsp index 77b1c2a..12f8d0a 100644 --- a/comal.lsp +++ b/comal.lsp @@ -3,26 +3,35 @@ (cond ((eq (class-of condition) (class )) ))) -(defun one-command-h (c) - (case (car c) - ((line) (insert (cadr c))) - ((p-end) (throw 'end nil)))) ; ok? No condition stuff? +(defun one-command-h (st) + (let ((l parse (read-line))) + (case (car l) + ((line) (insert (cadr c))) + ((p-end) (throw 'end nil)))) ; ok? No condition stuff? -(defun one-command (c) - (handler-bind ((error #'error-handler)) - (one-command-h c))) +(defun one-command (st) + (with-handler #'error-handler + (one-command-h st))) -(defun main-loop (program env) +;; Should this be in (for or something since it's called -loop? +(defun main-loop (st) (format (standard-output) "> ") - (catch 'error (one-command-h))) + (catch 'error (one-command st))) + +(defclass () ((prog :accessor prog) + (env :accessor env))) +(defmethod initialize-object :after ((self ) initargs) + (setf (prog self) nil) + (setf (env self) nil)) (defun main-h () (format (standard-output) "OpenCOMAL version 0.4~%~%") - (main-loop nil nil)) + (for ((st (create (class )))) + (main-loop st))) (defun bye () (format (standard-output) "See you later...~%")) -(defun go () +(defun main () (catch 'end (main-h)) (bye)) -- cgit 1.4.1-2-gfad0