Login
7 branches 0 tags
Ben (X13/Arch) Simplified things a little 0643405 9 days ago 1260 Commits
nujel / stdlib / core / classes.nuj
;;; Nujel - Copyright (C) 2020-2021 - Benjamin Vincent Schulenburg
;;; This project uses the MIT license, a copy should be included under /LICENSE
;;;
;;; Contains macros that provide a nice class system on the underlying prototype system

(defmacro defclass (name . body)
          (def fn-meta (meta/parse/body name '() body))
          (def def-form `(def ~name (:data (let* ~@body (def meta* ~fn-meta) (current-closure)))))
          (if (ref fn-meta :export)
              (if (ref fn-meta :export)
                  (list 'export (if (symbol? (ref fn-meta :export))
                                (ref fn-meta :export)
                                name) def-form))
              def-form))