(deftrans-defn-type-spec names bodies extra-args extra-args-names) → *
Function:
(defun deftrans-defn-type-spec (names bodies extra-args extra-args-names) (declare (xargs :guard (and (alistp names) (alistp bodies) (true-listp extra-args) (true-listp extra-args-names)))) (let ((__function__ 'deftrans-defn-type-spec)) (declare (ignorable __function__)) (deftrans-defn 'type-spec names bodies '((tyspec type-specp)) extra-args (cons 'type-spec-case (cons 'tyspec (cons ':void (cons '(type-spec-fix tyspec) (cons ':char (cons '(type-spec-fix tyspec) (cons ':short (cons '(type-spec-fix tyspec) (cons ':int (cons '(type-spec-fix tyspec) (cons ':long (cons '(type-spec-fix tyspec) (cons ':float (cons '(type-spec-fix tyspec) (cons ':double (cons '(type-spec-fix tyspec) (cons ':signed (cons '(type-spec-fix tyspec) (cons ':unsigned (cons '(type-spec-fix tyspec) (cons ':bool (cons '(type-spec-fix tyspec) (cons ':complex (cons '(type-spec-fix tyspec) (cons ':atomic (cons (cons 'type-spec-atomic (cons (cons (cdr (assoc-eq 'tyname names)) (cons 'tyspec.type extra-args-names)) 'nil)) (cons ':struct (cons (cons 'type-spec-struct (cons (cons (cdr (assoc-eq 'strunispec names)) (cons 'tyspec.unwrap extra-args-names)) 'nil)) (cons ':union (cons (cons 'type-spec-union (cons (cons (cdr (assoc-eq 'strunispec names)) (cons 'tyspec.unwrap extra-args-names)) 'nil)) (cons ':enum (cons (cons 'type-spec-enum (cons (cons (cdr (assoc-eq 'enumspec names)) (cons 'tyspec.unwrap extra-args-names)) 'nil)) (cons ':typedef (cons '(type-spec-fix tyspec) (cons ':int128 (cons '(type-spec-fix tyspec) (cons ':float128 (cons '(type-spec-fix tyspec) (cons ':builtin-va-list (cons '(type-spec-fix tyspec) (cons ':typeof-expr (cons (cons 'make-type-spec-typeof-expr (cons ':expr (cons (cons (cdr (assoc-eq 'expr names)) (cons 'tyspec.expr extra-args-names)) '(:uscores tyspec.uscores)))) (cons ':typeof-type (cons (cons 'make-type-spec-typeof-type (cons ':type (cons (cons (cdr (assoc-eq 'tyname names)) (cons 'tyspec.type extra-args-names)) '(:uscores tyspec.uscores)))) '(:typeof-ambig (prog2$ (raise "Misusage error: ~x0." (type-spec-fix tyspec)) (type-spec-fix tyspec))))))))))))))))))))))))))))))))))))))))))))))) '(:returns (new-tyspec type-specp) :measure (type-spec-count tyspec)))))