(defpackage #:utilities (:use #:common-lisp) (:export #:eval-always #:make-string-view #:read-file-contents)) (defpackage #:monkey (:use #:common-lisp #:utilities)) (defpackage #:token (:use #:common-lisp #:utilities) (:shadow #:type) (:export #:token #:literal #:type #:type-is #:token= #:make #:as-token #:lookup-identifier ;; the following depend on macro arguments #:token-type ;;#:string->token ;;#:token->string )) (defpackage #:lexer (:use #:common-lisp #:utilities) (:export #:make #:lex #:next-token)) (defpackage #:ast (:use #:common-lisp #:utilities) (:export #:node #:stringify #:token-literal #:emit #:statement #:expression #:program #:statements #:identifier #:integer-literal #:prefix-expression #:right #:expression-statement #:boolean-expression #:infix-expression #:let-statement #:name #:value #:return-statement #:return-value #:if-expression #:block-statement #:function-literal #:call-expression #:args)) (defpackage #:parser (:use #:common-lisp #:utilities) (:export #:make #:parse-program)) (defpackage #:monkey/test (:use #:common-lisp #:utilities))