diff options
Diffstat (limited to 'main.lisp')
-rw-r--r-- | main.lisp | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -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))))) |