#!/Users/dbane/openlisp-11.0.0/uxlisp -shell (require "abs-syn") (require "lex") (require "parsing") (defpackage #:basic (:use #:openlisp) (:export #:main)) (in-package #:basic) ;;; Not sure yet if it's a good idea or not, ;;; but I'm trying to keep the number of top-level functions the same as in OCaml. (defun one-command (st) (format (standard-output) "> ") (with-handler #'error-handler (let ((l parse (read-line))) (case (car l) ((line) (insert (cadr c))) ((p-end) (throw 'end nil)))))) ; throw and conditions are orthogonal (defclass () ((prog :accessor prog) (env :accessor env))) (defmethod initialize-object :after ((self ) initargs) (setf (prog self) nil) (setf (env self) nil)) (defun main () (catch 'end (lambda () (format (standard-output) "BASIC version 0.1~%~%") (for ((st (create (class )))) (()) (format (standard-output) "> ") (catch 'error (one-command st))))) (format (standard-output) "See you later...~%")) (provide "basic")