chiark / gitweb /
src/method-impl.lisp: Initialize `suppliedp' flags properly.
[sod] / src / classes.lisp
index 1a3a9258605cab70426ab112e9194d3865c788d9..9484141060402e97cee2514b46e51058bf3c3706 100644 (file)
@@ -48,7 +48,7 @@ (export '(sod-class sod-class-name sod-class-nickname
          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 @@ (defclass sod-class ()
                          :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 @@ (defclass sod-instance-initializer (sod-initializer)
 
    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.