From 8d3d1674f1a0b1dabd5877dcb0bd503fe2bcc1d9 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Thu, 26 May 2016 09:26:09 +0100 Subject: [PATCH] src/c-types-parse.lisp, src/c-types-proto.lisp: Some minor cleanups. * Reformat some documentation comments. * Use `&body' rather than `&rest' to mark the body argument of `define-c-type-syntax'. * Fix documentation comments to refer to `expand-c-type-spec' rather than `expand-c-type'. --- src/c-types-parse.lisp | 31 +++++++++++++++---------------- src/c-types-proto.lisp | 16 +++++++--------- 2 files changed, 22 insertions(+), 25 deletions(-) diff --git a/src/c-types-parse.lisp b/src/c-types-parse.lisp index b9a53db..e700a01 100644 --- a/src/c-types-parse.lisp +++ b/src/c-types-parse.lisp @@ -77,8 +77,8 @@ (:documentation "Represents the important components of a declaration specifier. - The only interesting instances of this class are in the table - `*declspec-map*'.")) + The only interesting instances of this class are in the table + `*declspec-map*'.")) (defmethod shared-initialize :after ((ds declspec) slot-names &key) "If no name is provided then derive one from the label. @@ -128,20 +128,19 @@ (sign :initform nil :initarg :sign :reader ds-sign) (size :initform nil :initarg :size :reader ds-size) (qualifier :initform nil :initarg :qualifiers :reader ds-qualifiers)) - (:documentation - "Represents a collection of declaration specifiers. - - This is used during type parsing to represent the type under - construction. Instances are immutable: we build new ones rather than - modifying existing ones. This leads to a certain amount of churn, but - we'll just have to live with that. - - (Why are instances immutable? Because it's much easier to merge a new - specifier into an existing collection and then check that the resulting - thing is valid, rather than having to deal with all of the possible - special cases of what the new thing might be. And if the merged - collection isn't good, I must roll back to the previous version. So I - don't get to take advantage of a mutable structure.)")) + (:documentation "Represents a collection of declaration specifiers. + + This is used during type parsing to represent the type under construction. + Instances are immutable: we build new ones rather than modifying existing + ones. This leads to a certain amount of churn, but we'll just have to + live with that. + + (Why are instances immutable? Because it's much easier to merge a new + specifier into an existing collection and then check that the resulting + thing is valid, rather than having to deal with all of the possible + special cases of what the new thing might be. And if the merged + collection isn't good, I must roll back to the previous version. So I + don't get to take advantage of a mutable structure.)")) (defmethod ds-label ((ty c-type)) :c-type) (defmethod ds-name ((ty c-type)) (princ-to-string ty)) diff --git a/src/c-types-proto.lisp b/src/c-types-proto.lisp index 55f2f31..c8aa72e 100644 --- a/src/c-types-proto.lisp +++ b/src/c-types-proto.lisp @@ -152,13 +152,11 @@ (export '(expand-c-type-spec expand-c-type-form)) (eval-when (:compile-toplevel :load-toplevel :execute) (defgeneric expand-c-type-spec (spec) - (:documentation - "Expand SPEC into Lisp code to construct a C type.") + (:documentation "Expand SPEC into Lisp code to construct a C type.") (:method ((spec list)) (expand-c-type-form (car spec) (cdr spec)))) (defgeneric expand-c-type-form (head tail) - (:documentation - "Expand a C type list beginning with HEAD.") + (:documentation "Expand a C type list beginning with HEAD.") (:method ((name (eql 'lisp)) tail) `(progn ,@tail)))) @@ -168,12 +166,12 @@ (expand-c-type-spec spec)) (export 'define-c-type-syntax) -(defmacro define-c-type-syntax (name bvl &rest body) +(defmacro define-c-type-syntax (name bvl &body body) "Define a C-type syntax function. A function defined by BODY and with lambda-list BVL is associated with the - NAME. When `expand-c-type' sees a list (NAME . STUFF), it will call this - function with the argument list STUFF." + NAME. When `expand-c-type-spec' sees a list (NAME . STUFF), it will call + this function with the argument list STUFF." (with-gensyms (head tail) (multiple-value-bind (doc decls body) (parse-body body) `(eval-when (:compile-toplevel :load-toplevel :execute) @@ -201,8 +199,8 @@ "Define NAMES all to describe the C-type VALUE. NAMES can be a symbol (treated as a singleton list), or a list of symbols. - The VALUE is a C type S-expression, acceptable to `expand-c-type'. It - will be expanded once at run-time." + The VALUE is a C type S-expression, acceptable to `expand-c-type-spec'. + It will be expanded once at run-time." (let* ((names (if (listp names) names (list names))) (namevar (gensym "NAME")) (typevar (symbolicate 'c-type- (car names)))) -- 2.11.0