X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/a888e3acc123993fa6fca9338f291b306aa131e2..3178259703980c111c7b56acf8bff08cbb258a49:/src/classes.lisp diff --git a/src/classes.lisp b/src/classes.lisp index 1a3a925..9484141 100644 --- a/src/classes.lisp +++ b/src/classes.lisp @@ -48,7 +48,7 @@ sod-class-direct-superclasses sod-class-precedence-list sod-class-chain-link sod-class-chain-head sod-class-chain sod-class-chains - sod-class-slots + sod-class-slots sod-class-initfrags sod-class-tearfrags sod-class-instance-initializers sod-class-class-initializers sod-class-messages sod-class-methods sod-class-state @@ -71,6 +71,12 @@ :accessor sod-class-instance-initializers) (class-initializers :initarg :class-initializers :initform nil :type list :accessor sod-class-class-initializers) + (initargs :initarg :initargs :initform nil + :type list :accessor sod-class-initargs) + (initfrags :initarg :initfrags :initform nil + :type list :accessor sod-class-initfrags) + (tearfrags :initarg :tearfrags :initform nil + :type list :accessor sod-class-tearfrags) (messages :initarg :messages :initform nil :type list :accessor sod-class-messages) (methods :initarg :methods :initform nil @@ -319,6 +325,28 @@ See `sod-initializer' for more details.")) +(export 'sod-initarg) +(defclass sod-initarg () + ((%class :initarg :class :type sod-class :reader sod-initarg-class) + (location :initarg :location :initform (file-location nil) + :type file-location :reader file-location) + (name :initarg :name :type string :reader sod-initarg-name) + (%type :initarg :type :type c-type :reader sod-initarg-type)) + (:documentation + "Describes a keyword argument accepted by the initialization function.")) + +(export 'sod-user-initarg) +(defclass sod-user-initarg (sod-initarg) + ((default :initarg :default :type t :reader sod-initarg-default)) + (:documentation + "Describes an initialization argument defined by the user.")) + +(export 'sod-slot-initarg) +(defclass sod-slot-initarg (sod-initarg) + ((slot :initarg :slot :type sod-slot :reader sod-initarg-slot)) + (:documentation + "Describes an initialization argument used to initialize a slot.")) + ;;;-------------------------------------------------------------------------- ;;; Messages and methods.