From 1732b9a1a137d8a7e6476e8cdfa254c01638bce3 Mon Sep 17 00:00:00 2001 From: mRnea Date: Tue, 23 Jul 2024 16:15:31 +0300 Subject: added repl --- main.lisp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'main.lisp') diff --git a/main.lisp b/main.lisp index 716c76b..578fa01 100644 --- a/main.lisp +++ b/main.lisp @@ -14,7 +14,7 @@ ;; (generate-program program :compile t))) (compile-program (second args))) ((string= flag "-i") - (format t "Interpret program WIP~%")) + (interpret-program (make-program (second args)))) (t (format t "~a is not a valid flag~%" flag)))))) ;; (defun make-exe () @@ -22,7 +22,7 @@ ;; :toplevel #'main ;; :executable t)) -(defparameter *example-path* "./test/prog.lorth") +(defparameter *example-path* (from-root "test/prog.lorth")) (defun example-lex () (lex-file *example-path* t)) @@ -34,6 +34,15 @@ (generate-program (make-program *example-path*) :path "test/output.asm" :compile t)) +(defun example-interpret () + (interpret-program (make-program *example-path*))) + (defun example-run () (example-compile) (run '("test/output"))) + +(defun start-forth-repl () + (iter (for line = (progn (format t "~&> ") (read-line))) + (when (string= line "bye") + (finish)) + (interpret-program (parse-tokens (lex-line line 0))))) -- cgit v1.2.3