39 lines
622 B
Common Lisp
39 lines
622 B
Common Lisp
;;; cl-scopes/forge - may the forge be with you!
|
|
|
|
;;;; A Forth-like interpreter implemented in Common Lisp.
|
|
|
|
(defpackage :scopes/forge
|
|
(:use :common-lisp)
|
|
(:export #:hello #:new-forge-env #:data-stack #:exec
|
|
#:add))
|
|
|
|
(in-package :scopes/forge)
|
|
|
|
(defun new-forge-env ()
|
|
nil)
|
|
|
|
(defun exec (fe &rest code)
|
|
code
|
|
fe)
|
|
|
|
(defun data-stack (fe)
|
|
fe)
|
|
|
|
; forge primitives
|
|
|
|
(defun add (fe)
|
|
(pushd (+ (popd fe) (popd fe)) fe ))
|
|
|
|
; dummy exampled, to be removed
|
|
|
|
(defun hello ()
|
|
(format t "Hello Common Lisp - 2024-04-19"))
|
|
|
|
; internal definitions
|
|
|
|
(defun popd (fe)
|
|
(pop fe))
|
|
|
|
(defun pushd (fe v)
|
|
(push v fe))
|
|
|